Así funciona un equipo de desarrollo de software en empresas como Apple
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.
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.