Un productor de software le contesta a un potencial cliente que no sabe cuánto tiempo toma y cuánto cuesta un proyecto de software sobre el cual están hablando? Usted le responde a su compañía cuánto va demorar el proyecto (y hasta desarrolla un cronograma detallado)? El productor de software se compromete en términos de costo y tiempo (y en su propuesta incluye un cronograma que deja muy satisfecho al cliente)? Que sucedería si … Usted le respondiera a su compañía que no tiene ni idea cuánto va a demorar un nuevo proyecto de software del cual usted es responsable? Que sucede cuando ….
Que haría si … A usted, que considera que la documentación es una pérdida de tiempo, un proveedor de software externo no le presentara un diagrama de arquitectura de la aplicación que usted le contrató, se la entregara sin documentación, etc.? Usted, que es conciente de la importancia de la documentación, tiene que decidir entre salir a producción un mes después, o hacerlo antes sacrificando la misma (Time to market)? La burocracia de su compañía no permite elicitar los requerimientos de un nuevo sistema con la celeridad que se requiere? La informalidad o falta de método no permite que el software sea construido de tal manera que satisfaga los requerimientos del cliente y usuarios finales (“Yo entendí eso ”, “No me dijeron”, “Si le dije”)?
Que haría si … Después de cuatro cronogramas el grupo de ingenieros sigue incumpliendo? Los cambiaría? Llamaría a un asesor? Se tiraría por la ventana? Nada? Luego de entregar a tiempo un proyecto con aproximaciones no formales, el software parece un crispetero, es lento, se cae a toda hora y no le gusta a los usuarios? Si ya se le acabó el presupuesto y sabe que aún tiene meses hombre de trabajo por delante? Si los usuarios siguen cambiando los requerimientos a pesar de múltiples reuniones, compromisos, conversaciones con la presidencia, peleas, etc.?
Estas y otras cuestiones han estado siempre en el centro de la discusión en cuanto a Ingeniería de software se refiere …
y han conducido a los metodologistas a asumir posiciones extremas.
Incorrectamente, a juicio del autor, se plantea a cuestión como si se tratara de una decisión entre Disciplina y Agilidad.
Incorrectamente, a juicio del autor, se predica la universalidad de uno y otro enfoque
Se oponen estos dos conceptos? Será cierto que algo ágil no puede ser disciplinado y algo disciplinado no puede ser ágil?
Agilidad. Rapidez y buena coordinación Disciplina. Apego a procedimientos establecidos. Auto control.
Disciplina Agilidad Baja Baja Alta Alta Burocrática Nueva organización (Startup) Gran organización Jerárquica No se oponen. Se complementan (*) (*) Collins. Matriz de disciplina creativa.
“La disciplina es la base de cualquier esfuerzo exitoso. Los atletas entrenan, los músicos practican … y los ingenieros aplican procesos. Sin estos fundamentos, puede darse el éxito ocasional, pero la consistencia profesional y el éxito a largo plazo son limitados.
Donde la disciplina arraiga y fortalece, la agilidad libera e inventa. Le permite a los atletas hacer la jugada inesperada, a los músicos improvisar … y a los ingenieros ajustarse a los cambios en tecnología …” Versión. Barry Boehm and Richard Turner. Balancing Agility and Discipline.
Las dos aproximaciones, aparentemente antagónicas, son conocidas en la literatura como ….
Metodologías ágiles. Entre las mas conocidas se encuentran XP, SCRUM, UP (RUP), etc. Algunos no consideran RUP como ágil, pues es una mezcla. Metodologías guiadas por un plan. Algunos las consideran como la aproximación tradicional al desarrollo de software.
Algunos relacionan las metodologías guiadas por un plan con el desarrollo en cascada tradicional porque ….
Las Metodologías guiadas por un plan surgieron hace algunos años, cuando se intentaba producir software con una aproximación en cascada.
Los primeros intérpretes de CMM, por ejemplo, adaptaron el modelo a ese ciclo de vida, influenciados por el tipo de Ingeniería de Sistemas que requería, en aquel entonces, el DoD de los EE.UU., y compañías como Siemens, Hitachi, IBM, etc.
Como se verá, las aproximaciones modernas reconocen una mezcla de aproximaciones denominadas ágiles y aproximaciones guiadas por un plan.
Página siguiente |