Compartir

Muchos os preguntaréis cual es el motivo de que salgan tantas versiones beta de los sistemas operativos y es que estas abundan como setas en ocasiones, llegando incluso a coincidir varias versiones a la vez como sucedió este verano con las de iOS 13 y iOS 13.1. Si quieres saber en que consiste exactamente estas versiones y cual es su proceso, sigue leyendo porque vamos a intentar profundizar y ver como es en la vida real el desarrollo de software.

Cómo es el control de versiones en el desarrollo de software

Cuando has pasado mucho tiempo en ingeniería de software, tecnicismos como equipo de desarrollo, equipo de pruebas, control de versiones y ramas de desarrollo son conceptos que utilizas continuamente. Sin embargo para el común de los mortales no son conceptos amigables o que se puedan entender sin realmente saber algo más acerca de ellos. Así pues, comencemos esta exploración por todos estos tecnicismos, a ver si una vez explicado suena todo un poco menos a chino.

Arquitecto de la solución

Este es un rol que generalmente desempeña una persona con experiencia en el área de software. Una persona capaz de retener en su cabeza todas las partes que componen el software, tales como bases de datos, entornos gráficos, requisitos del cliente y un largo etcétera. Suelen usar un lenguaje propio llamado UML que sirve para maquetar estas ideas que tiene en mente y lo hacen en forma de código muy básico, tanto que casi se parece a lo que los programadores llamamos «pseudo código».

Equipo de desarrollo

Normalmente son personas que no tienen por que ser ingenieros, pero que conocen un lenguaje de desarrollo sobre el que se realizan las aplicaciones. Estos lenguajes son únicos para el caso de sistemas operativos como iOS, sin embargo en entornos Windows puede ser muy variado. Por norma general estos equipos están capitaneados por un Project Manager que reporta a los Product Manager los avances de los desarrollos. Los desarrolladores de software son los auténticos albañiles del software que vemos en nuestros teléfonos, y su pericia es el éxito de que una aplicacion este optimizada o no y funcione de una forma realmente fluida.

Equipo de pruebas

Los componentes de estos equipos suelen ser la pesadilla real de los desarrolladores, pues ellos son lo que deben conocer el producto y confeccionar las pruebas que se deben realizar sobre un software para considerar que tiene unos mínimos de calidad. Estas pruebas a veces se pueden automatizar a nivel de código y se lanzan en cada compilación del codigo. Te preguntarás qué es eso de compilar el código, pues básicamente es hacer comprensible para nuestra computadora o dispositivo lo que hemos escrito, y esto lo realiza el programa compilador sobre el que estamos escribiendo nuestro software. Normalmente se generan unas librerias y un ejecutable que usa estas librerías.

Diseñadores gráficos

Para que una aplicacion sea amigable y atractiva es vital un buen diseño que facilite su uso, y aquí es dónde entran los creativos y diseñadores que replantean la colocación de cabeceras, colores y botones para que la experiencia de usuario sea optima. En esto Apple tiene el trono de oro, pues sus diseñadores son los más cotizados y valorados del sector.

Una vez que esta maquina conjunta empiezan a desarrollar software y a producir lineas de codigo aparecen las versiones de software que podríamos asemejarla a las Betas que vemos periódicamente. Estas betas están marcadas por hitos del proyecto. A veces se exploran soluciones alternativas para resolver algun contratiempo y se crean «ramas» que salen de la rama principal. Como podemos ver en el siguiente gráfico de un controlador de versiones muy comun llamado Clearcase.

seleccion de versiones con filtro

Hay puntos de este desarrollo en las que se quieren sacar versiones y es aquí donde aparecen las betas que todos conocemos y que por ello son tan inestables, sobre todo si son primeras versiones. Actualmente en el desarrollo de software se tiene a usar metodología ”scrum” o “agile” y cuya filosofia es básicamente «cuanto mas pronto se pruebe lo generado, menos tardamos en solucionar el error y menos impacto tiene». De todo esto viene también que existan tantos riesgos a la hora de instalar una beta en nuestros dispositivos.

La política de Apple de dejar betas publicas lleva consigo algo muy inteligente y es que se da a los usuarios anticipos controlados de software y a la vez tienes feedback de si gusta o no. Por este motivo encontramos precisamente una app llamada Feedback en nuestros equipos cada vez que instalamos una beta, y es que está pensada para que los usuarios envíen a Apple sus impresiones sobre el software y que de paso reporten aquellos fallos que hayan sido encontrados.

  • Angel Gonzalez

    Pues últimamente se están luciendo con el resultado final que se lanza a los usuarios. A ver si entre actualizaciones tardan un poco más de tiempo en lanzarlas y que las prueben durante más tiempo, así poder lanzar actualizaciones limpias. Que cada día se parecen más a Microsoft lanzando sistemas operativos que fallan por todas partes para luego lanzar parches continuamente.

    • Microsoft tiene un perdón ya que existe miles de combinaciones de componentes y crear código que todo vaya bien en todos, es parte de MS y de los fabricantes en hacer drivers estables, pero apple que todos los iphones sabe lo que han añadido y a estas alturas se tenga esos bugs, no tiene perdón alguno.

  • Yo creo que están mas rato jugando al pim pom que creando código estable, solo ver que antes que salieran los iphone11 con IOS13 semanas antes ya teniamos nueva beta con moncletura superio, eso era lo que indicaba que IOS13 no es estable y les ha salido rana, yo espero que no sea un segundo IOS11 porque si es así, cuidadin con dar actualización los iphones que no sean el 11 (que solo añade funcionalidades para el y se optimiza, sin tener en cuenta los otros al mercado)