viernes, 5 de diciembre de 2014


 
Sensibilidad al cambio de alcance en ingeniería de software.

Gestionar un cambio de alcance en un proyecto suele ser, en algunos casos, más o mucho más complejo de lo que el cliente podría imaginar. 


Si hablamos de ingeniera de software parece que la sensibilidad por parte del cliente respecto al cambio  en el alcance del proyecto suele ser escasa o incluso nula. ¿Por qué? 

Sin embargo, si observamos otros ámbitos de la ingeniería, parece que este tema está superado. Por ejemplo, en una obra civil, si estamos construyendo un puente entre dos montañas y  ya tenemos los cimientos asentados,  es difícil que nos pidan mover el puente  400 metros a la derecha.  Parece existir una conciencia general sobre la dimensión del nuevo trabajo a realizar y del sobrecoste que supondrá.  Será porque se ve el hormigón, el perímetro de la obra delimitado, el despliegue de accesos a la zona de trabajo, las medidas de seguridad implantadas.

Sin llegar a este extremo, en otros proyectos como en la construcción de una casa, si ya estamos levantando los tabiques ¿sería lógico que nos pidieran reorientar la entrada principal? ¿Accedería el propietario a abrir una nueva fachada y a reorganiza la distribución de su casa?

Sin demasiados conocimientos sobre arquitectura el cliente es perfectamente consciente de lo que está pidiendo y de sus consecuencias. Puede “verlo”. 

En ocasiones,  en el desarrollo de software, nos solicitan  cambios que afectan a la arquitectura del proyecto (sus cimientos), hasta el punto de necesitar rediseñar los “from” (fachadas), la seguridad, los accesos, los modelos de datos o incluso la tecnología a utilizar.  

Sin embargo el cliente no siempre percibe la dimensión del cambio. No sólo piensa  que se puede hacer de forma rápida sino que el coste o es bajo o no tiene mayor  impacto. ¿Qué es lo que no ven?

Pasar de una arquitectura centralizada a distribuida, modular la funcionalidad, migrar a otro lenguaje o adaptarse a nuevas normativas bancarias en tiempo récord no parece un problema si se trata de algo “abstracto”, de código, de elementos  que residen  en nuestro “Cloud” tan de actualidad  en estos momentos. 

Al igual que en otras ingenierías es necesario levantar nuevos planos (volver a definir),  someterlos a aprobación, presentar un calendario, desarrollar (construir), realizar pruebas técnicas y funcionales, certificar, buscar nuevos perfiles si procede, etc.  

En definitiva volver a pasar por un procedimiento exigente y exhaustivo que garantiza que se entiende el nuevo alcance y la calidad de la entrega. 

Hace años se hablaba de líneas de código para valorar un cambio. Podíamos medir si el impacto era de veinte o treinta mil líneas, por utilizar un tangible, pero aun así era discutible.

De igual forma  ocurre con las  horas de esfuerzo. ¿Podemos explicar al cliente el impacto de una modificación en un modelo de datos, en una API o una DDL?  Sin cierto nivel de conocimiento previo  sobre la materia es difícil valorar el alcance de la propuesta. 

Es más fácil medir el cambio cuando se ve afectada el área de hardware, la que se puede ver, como ocurre si ampliamos nuestros entornos Host, Clúster, TELCO, etc.
En definitiva,  gestionar un cambio de alcance en una aplicación de software requerirá de un esfuerzo extra por parte de sus responsables que deberán transmitir de forma clara y sencilla, sin tecnicismos, lo que supone los cambios y de un ejercicio de imaginación  por parte del cliente, para entender lo que está  al otro lado de su pantalla.

No hay comentarios:

Publicar un comentario