Procesos de Software y Metodologías ágiles

Dificultades en el desarrollo de Software

En qué consiste la dificultad del desarrollo de software?

La complejidad del desarrollo de software en las siguientes causas raíz:

–          El software es un intangible difícil de visualizar su avance, en particular lo referente a arquitectura. Cuando se está mandando hacer una obra civil, sea una casa o un puente, como usuario puedo ver cómo está avanzando la estructura y la obra en sí. Si existe una relación o un cambio de estructura es más fácil de visualizar con todos los implicados. En software el avance es difícil de medir: una pantalla no necesariamente demuestra el avance o la dificultad que hubo en generarla.

–          El software está lleno de relaciones difíciles de controlar, por su cantidad o por su sutilidad. Los requerimientos están relacionados entre sí, de forma que es muy difícil de mantener en mente, ni mucho menos en la vista. El diseño está relacionado entre sí, y las líneas de código también tienen sus propias relaciones. Las relaciones son fuertes y sutiles, dando siempre la posibilidad que un cambio en requerimientos, diseño o código lleve a consecuencias que no se podían prever. Esto también causa dificultad para probar el software.

–          La base del desarrollo es la comunicación entre diferentes personas de distintos perfiles: cliente, usuarios, analistas de requerimientos, arquitectura, diseñadores y desarrolladores, probadores, analistas de pruebas, personas de soporte y operación. La comunicación tiene tanta variabilidad que hay posibilidad de ambigüedades y diferencias de interpretación dependiendo del paradigma que cada uno tenga en la cabeza.

–          El desarrollo es difícil de estimar por la cantidad de variables incluidas: interpretaciones de requerimientos, retos tecnológicos, cambios en los requerimientos por desconocimiento, por modificaciones en el negocio o por entendimiento del negocio.

–          La probabilidad de cambio de los requerimientos es muy alta, dado que los negocios son cambiantes lo que ocasiona que las prioridades y las características del software

Todo esto se agrava entre más grande sea un proyecto porque hay más requerimientos (con sus relaciones) y más personas involucradas.

 

Y las metodologías realmente ayudan?

Las metodologías recogen de forma organizada mejores prácticas demostradas en la industria para su correcta aplicación. No están hechas para llenar de formatos el proyecto, ni para certificar la empresa.

La correcta aplicación de una metodología significa llevar las mejores prácticas al día a día del proyecto, y hacer que mejore la satisfacción del usuario y el valor que el negocio recibe.

 

El desarrollo de software es un juego de equipo, con los retos que significa hacer que un equipo juegue de forma coordinada y con resultados. Haciendo la comparación con algún equipo deportivo, la metodología nos dice los roles de los jugadores, las posiciones de los mismos y que se espera de cada uno de ellos. Son diferente las jugadas y los roles de un equipo de microfútbol, a un equipo de futbol de campo, así como son distintos los roles para proyectos pequeños, a los medianos y los grandes.

Dentro de la misma cantidad de jugadores también es diferente la forma como se aproxima al triunfo del partido. Por ejemplo, en voleibol existen las técnicas de seis largo, la de seis corto, la de dos bloqueadores o la de uno solo. Dependiendo del conocimiento del equipo y sus habilidades, el técnico decide utilizar la forma más apropiada.

Pero no se puede esperar que con sólo una vez que el técnico “capacite” a sus jugadores, las personas sepan ya cómo es que deben interactuar entre ellos. Para que haya un buen equipo, hay que practicar, fallar, corregir y volver a practicar. Una jugada se practica y se corrige, hasta que salga adecuadamente. Además, las jugadas dependen del tipo de juego, del contrincante y del momento en el partido.

Posiblemente, en nuestros equipos de desarrollo de software no tenemos tanto espacio para practicar tantas veces. Pero es necesario practicar y corregir, sobre la misma técnica de jugada. Comúnmente, se inicia un proyecto con cierta técnica (metodología) y como el equipo no es productivo inmediatamente, entonces la metodología no funciona!!. ( Es como decir que la técnica de seis largo no funciona para el voleibol ) Y la conclusión es que se debe cambiar por la siguiente metodología de moda que está en la lista del momento, o simplemente dejar de intentarlo y seguir en el caos y la presión constante. Para la correcta implementación de una metodología se requiere de practica entre sus integrantes, que cada uno entienda su rol realmente, y entienda lo que se espera de él y de las otras personas. Cuando digo entender, no me refiero a tomar un curso o leer un libro, sino practicar hasta que quede aprehendido y se vuelva un hábito.

Una metodología funciona correctamente no cuando su documentación está con todos los formatos, sino cuando sus principios son llevados adecuadamente, cuando cada una de las personas del equipo realiza correctamente su rol, entiende lo que espera del resto de las personas y es clara la forma de comunicarse con ellas. No es que se necesite demasiado tiempo para su implementación, lo que se requiere es compromiso de parte de las directivas y también por el equipo.

El resultado es el aumento de productividad en muy buenas dimensiones

adminDificultades en el desarrollo de Software
Ver más