martes, 9 de octubre de 2012

La importancia de un software bien terminado

Ahora más que nunca, el software está mucho más presente entre nosotros de lo que nos podriamos imaginar.

La era en la que los aparatos eran los que se encargaban de hacer todo a cedido a una nueva generación de equipos en los que sus componentes se parecen mucho a las computadoras que actualmente conocemos.

Y es que el software es lo que está controlando, monitoreando y haciendo funcionar practicamente todo.  Al igual que cualquier producto fabricado, la calidad del software final tiene una gran importancia.

Al igual que sucede con los productos manufacturados, el proceso de producción de un software cumple con etapas de análisis, diseño, desarrollo, pruebas y producción.  En el software, la etapa de porducción se da cuando el mismo se hace público, listo para su uso.

EL llevar a cabo un estricto proceso de control de calidad es lo que permite asegurar que al final, el software hará lo que se supone que debe hacer de la forma correcta.  Sin embargo, en el mundo real hay muchas variables que afectan o influyen el proceso de desarrollo.

Entre las variables más importante se puede encontrar el tiempo.  Para el proceso de desarrollo de software el tiempo es crítico, sobre todo si vivimos en tiempos de dura competencia como lo estamos viviendo actualmente.  Esto crea presiones adicionales en las cuales a veces las decisiones que se toman no siempre son las más acertadas.

Como todo producto final, se supone que el mismo ha sido creado para ejecutar alguna tarea.  Ha sido producido para hacer algo y se espera que eso que debe hacer lo haga bien.  No que lo haga a medias o que no lo haga.  Una falla inesperada puede poner en riesgo la credibilidad y reputación de la compañía que lo produce o inclusive hasta lesionar personas.

He allí la importancia de que el software, al momento de hacerse público como producto final, haga correctamente lo que se supone que se dice que hará.

Esto es algo que compañías bien establecidas, productoras de software recientemente han olvidado.  Quizás presionados por la competencia y las limitantes de tiempo o quizás por errores en la planificación del trabajo.   El hecho es que hemos visto productos incompletos, como fue el caso de Research in Motion (RIM) que presentó al público su tableta Play Book como si fuese un producto superior pero evidentemente con falta de funciones que hacían al producto final poco atractivo.

Recientemente Apple cometió una falla similar.  Anunció con bombos y platillos que su aplicación de Mapas para el nuevo iPhone 5 era lo mejor que existía, con funciones nunca antes vista y cuando los usuarios finalmente adquirieron los productos se percataron que la aplicación era inferior a la que reemplazaba y encima no se caracterizaba por ser exacto.

Hace unas dos semanas, el CEO de Intel, expresaba a la prensa internacional que el nuevo sistema operativo de Microsoft , Windows 8, no era un producto terminado y que el mismo contenía muchas fallas.  Lo irónico del anuncio era que él, siendo la cabeza de una importante compañía tecnoloógica, recomendaba que el software saliera al público y que posteriormente se fuesen arreglando los problemas.

Personalmente, esa decisión no me parece la más correcta.  Daña la imagen de la compañía y daña al producto.  Y estos daños pueden ser irreversibles.

Hoy Microsoft anunció que estará haciendo una actualización masiva al sistema operativo Windows 8, antes de su lanzamiento oficial.  Esta es una señal positiva orientada a presentar un producto bien terminado que contenga practicamente ninguna falla.

La ferrea competencia que actualmente se dá entre las compañías que forman parte de las diferentes industrias relacionadas con las Tecnologías de Información y Comunicaciones ponen a prueba los diferentes procedimientos y metodologías para acelerar el desarrollo de software.

Los ejemplos que debemos seguir y evitar son todos aquellos relacionados con la presentación del producto final.  En muchos casos, que el software esté incompleto  o que no trabaje como se espera puede causar repercusiones negativas dificiles de preveer.

No importa el tamaño de la compañía, no importa el prestigio que pueda tener, si ante la advertencia de mal funcionamiento del software se decide seguir adelante y se presenta como algo novedoso aún cuando no funcione correctamente, se está faltando al respeto al cliente, pues está subestimando su capacidad y se le está tratando sin la debida consideración.

En cuanto al desarrollo de software, hay que aprender de las malas decisiones de los demás, pero sobre todo reforzar las buenas prácticas para evitar caer en los errores que otros han cometido, de allí la importancia de un software bien terminado.

Amanecerá y veremos.