Desarrollo de software. Todo lo anterior es teoría

Realmente hasta que no tienes software funcionando y preferentemente en el entorno de producción no tienes certeza de que el camino escogido ha sido el correcto.

¿Quiere decir esto que la ingeniería del software no sirve para nada?, ¿quiere decir esto que todo trabajo previo no es válido?

No, no quiero decir eso. Como he repetido en muchas ocasiones, el desarrollo de software debe hacerse con intención minimizando la especulación. La especulación da lugar a iteraciones de más y en consecuencia a trabajo de más que en función del presupuesto existente en el proyecto puede impactar en la calidad del producto final y en el cumplimiento de las expectativas del usuario. Por tanto, es serio desarrollar con intención.

La intención te la da el estudio y el conocimiento del problema, no solo a nivel técnico sino también a nivel funcional. Cada proyecto podría requerir soluciones particulares para la obtención de ese conocimiento.

Ese conocimiento sirve de ayuda para adaptarnos de manera más consciente al cambio, es ágil tener ese conocimiento y no es ágil lo contrario.

El enfoque de cómo se adquiere ese conocimiento y cómo se plasma, tal y como decía, depende del proyecto y también tiene mucho que ver, porque podrá haber diferentes opciones, nuestro conocimiento, nuestra experiencia y nuestra forma de trabajar (pero todos ellos deben ponerse a servicio del proyecto y no al revés). Aquí es donde pueden centrar el debate los más ortodoxos de la ingeniería del software de aquellos que aplican la ingeniería de otra manera (generalmente con otro estilo e instrumentos).

Tan malo es tirarse a la piscina sin agua (sin conocer qué es lo que vamos a hacer desde un nivel general) como esperar “eternamente” a tener todo “sobre plano”. Tal vez pueda bastar con tener solo ciertas partes “sobre plano” conservando una visión global de lo que se requiere. Lo primero porque hay que desarrollar con intención y lo segundo porque lo más probable es que el plan salte por los aires, teniendo en cuenta que el mismo ha sido desarrollado desde una imagen abstracta del sistema por parte del usuario que una serie de desarrolladores se han encargado de interpretar. A eso hay que sumar la incertidumbre inherente al desarrollo de software y a los cambios que se producirán a lo largo de todo el proceso de desarrollo.

Después, cuando tengamos el producto en producción, vendrán los ajustes. Mucho mejor tratarlos cuanto antes porque si la desviación de las expectativas es importante el coste siempre será mucho menor, todavía podría haber tiempo de revertir la situación.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: