Está en la página 1de 23

Unidad 1: Introducción.

Procesos Ágiles de Desarrollo de Software


Docente: Boris A. González Rivera
Magister en Ingeniería de Sistemas y Computación
Lecturas Inciales.
Mejores formas desarrollar software
Un Panorama General
© Universidad de Manchester

El agilísimo
Hitos Importantes.
• 1948 El primer computador que almacenaba programas digitalmente
corrió exitosamente su primer programa.

• El hardware duplica si capacidad y se hace posible la creación de


maquinas potentes, con tamaño reducido y menor costo de
producción, avanza la comunicación entre sistemas, con lo que los
computadores ya no son exclusivas del campo militar o el científico.

• Como el Hardware es más asequible las aplicaciones de Software son


más requeridas (ordenadores personales, juegos, relojes, ...), lo que Máquina experimental Manchester a pequeña escala
requiere que se ofrezcan soluciones más complejas y con mayor ("Baby"): Universidad de Manchester, 1948 Recuperado de
https://www.computerhistory.org/revolution/birth-of-the-
velocidad. computer/4/87/357

• Para los 50’ se requiere el desarrollo de aplicaciones que den


respuesta a las nuevas necesidades por lo que se hace necesario
gestionar equipos de proyectos con lo que surgen los problemas de
proyectos que no se concluyen o lo hacen muy tarde.
El agilísimo
Hitos Importantes • En el ámbito militar surge la necesidad de
profesionalizar la gestión de Proyectos para el
desarrollo de sistemas complejos coordinando equipos y
disciplinas diferentes. Esta nueva disciplina se basa en
la planificación, ejecución y seguimiento a través de
procesos sistemáticos, repetibles con requisitos
cerrados, proyectos cerrados, plazos cerrados.

• En 1968 el comité de ciencias de la OTAN patrocina la


Software Engineering Conference donde para muchos
nace la profesión de la Ingeniería del Software, también
se habla de la crisis del software para definir los
problemas que estaban surgiendo en el desarrollo.
imagen: Freepik.com
El agilísimo
Hitos Importantes
Los esfuerzos realizados producen tres áreas de conocimiento que se
revelaron como estratégicas para hacer frente a la crisis del
software:

• Ingeniería del software: este término fue acuñado para definir la


necesidad de una disciplina científica que, como ocurre en otras
áreas, permita aplicar un enfoque sistemático, disciplinado y
cuantificable al desarrollo, operación y mantenimiento del
software.

• Gestión Predictiva de proyectos: es una disciplina formal de


gestión, basada en la planificación, ejecución y seguimiento a
través de procesos sistemáticos y repetibles.
imagen: Freepik.com

• Producción basada en procesos: se crean modelos de procesos


basados en el principio de Pareto, empleado con buenos
resultados en la producción industrial. Dicho principio nos indica
que la calidad del resultado depende básicamente de la calidad de
los procesos.
Criterios de éxito –Gestión Predicativa de Proyectos
• Para la gestión predictiva de proyectos un
criterios de éxito obtener es obtener un
producto definido en el tiempo previsto y
con el coste estimado, asumiendo que el
proyecto se desarrolla en un entorno
estable y predecible.

• Por esta razón se empiezan a emular


modelos industriales e ingenieriles que
surgieron en otros ámbitos y con otros
desencadenantes.
Martin Fowler - Industrialización del Software
… Se pensaba que el trabajador promedio era vago, vanal y estúpido,
por lo que no podían ser ellos los que decidían como se debía realizar
una pieza de maquinaria en particular, sino alguien que fuera más
inteligente y educado, capaz de descubrir exactamente la mejor
manera de hacerlo.

Toda la industria del tiempo y el movimiento surgió de eso (teorías


de Frederick Taylor ). En el corazón de esta noción estaba que las
personas que están haciendo el trabajo no deberían decidir cómo
hacerlo. Debería ser un grupo separado de planificadores, y eso
afectó fuertemente la fabricación y el trabajo de fábrica durante
gran parte de principios del siglo XX

Martin Fowler recuperado de Fowler, M. (2018, agosto 25) El estado del software ágil en 2018
https://twitter.com/martinfowler
https://www.martinfowler.com/articles/agile-aus-2018.html
Este pensamiento afecto la industria del Software que buscaba
gente que supiera planificar como hacer software, siguiendo
el pensamiento Taylorista, pero el software no se amoldaba a
la teoría. Los involucrados en la fabricación del Software
necesitaban tener voz porque conocían lo que estaban
haciendo.

“El movimiento ágil fue parte de tratar de impulsar eso, para


tratar de decir: "Los equipos involucrados en hacer el trabajo
deben decidir cómo se hace", porque seamos sinceros, estamos
hablando de desarrolladores de software. Personas que están
bien pagadas, bien educadas, con suerte, personas bien
motivadas, por lo que deben averiguar qué es necesario en su
Martin Fowler recuperado de caso particular.”
https://twitter.com/martinfowler

Fowler, M. (2018, agosto 25) El estado del software ágil en


2018 https://www.martinfowler.com/articles/agile-aus-
2018.html
Carlos Blé- Industrialización del Software

“los productos de software no se pueden definir por


completo a priori, ni son totalmente predecibles, ni son
inmutables. Los procesos aplicados a la producción
industrial no tienen el mismo efecto que en desarrollo de
software, ya que en un caso se aplican sobre máquinas y en
otro, sobre personas. Estas particularidades tan
características del software no tuvieron cabida en la
elaboración del modelo más ampliamente seguido hasta el
momento: El modelo en cascada.”
(Blé, 2010 ,p.30)
Carlos Blé recuperado de
https://twitter.com/carlosble
… Sobre los proceso para construir
Software
“La historia nos ha demostrado que es muy difícil especificar en una
única, inamovible y primera fase los requisitos, es hasta
contraproducente para los negocios evitar el cambio en los mismos e,
igualmente, resulta complicado cerrar en una única fase de diseño todas
las cuestiones a tratar en la programación. El software, por su
naturaleza, si se construye correctamente, es fácil de modificar, de
añadirle funcionalidades evolutivamente, siendo esta una ventaja a
aprovechar y no algo a evitar. ”

Garzas, J. (2010, 06 julio). Hay mejores formas de desarrollar software.


https://www.computing.es/analytics/informes/1082541046201/mejores-
Garzas Javier Recuperado de
https://www.javiergarzas.co formas-desarrollar-software.1.html
m/javier_garzas_curriculum
Metodologías tradiciones vs metodologías

Metodologías tradicionales Metodologías ágiles


Predictivos Adaptativos
Orientados a procesos Orientados a personas
Proceso rígido Proceso flexible
Se concibe como un proyecto Un proyecto es subdividido en varios
proyectos más pequeños
Poca comunicación con el cliente Comunicación constante con el cliente
Entrega de software al finalizar el Entregas constantes de software
desarrollo
Documentación extensa Poca documentación
Fuente: Navarro, A., Fernández, J., Morales, J. (2013) Revisión de metodologías ágiles para el desarrollo de software
Framework Cynefin - Las Prácticas del Pasado
No siempre funcionan en el presente

• La palabra "Cynefin" es una palabra galesa que significa "hábitat",


fue desarrollado por primera vez por Dave Snowden en 1999 en el
contexto de gestión del conocimiento y estrategia organizacional.

• Cynefin es un Framawork cuyo objetivo es ayudar a los gerentes a


"Romper con las viejas formas de pensar y considerar que un
problema no podría ser tratado de una nueva forma"

• Este Framework trata de dar sentido a los sistemas complejos


explicando comportamientos, toma de decisiones y prácticas en
términos de los patrones de múltiples experiencias, personales,
culturales y empresariales.

• Cynefin se basa en la noción de que "los humanos utilizar patrones


para establecer el orden en el mundo y dar sentido a cosas en
Scum:Cynefin. Tomado de https://medium.com/@warren2lynch/scrum-what-is-cynefin-framework- situaciones complejas ”.
8c33c01bcc19
COMPLICADO (Prácticamente Conocido)
COMPLEJO (No Conocido) Predictivo, Experiencia
Experimental Pasos:
Pasos: Detectar: se conoce la situación
Experimentar: pruebas Analizar: que soluciones podría aplicar
Detectar: se conoce la situación Responder: solución
Responder: solución
Buenas Prácticas
Practicas Emergentes
Desorden

CAÓTICO (Incoherente)
Se actúa por instinto SIMPLE (Conocido)
Pasos: Repetitivo, seguir el manual
Actuar: Respuesta rápida Tiene una sola respuesta
Detectar: se conoce la situación Pasos:
Responder: solución Detectar: se conoce la situación
Clasificar: categoriza
Practicas Novedosas Responder: solución
Mejores Prácticas
Manifiesto Ágil
Historia, Valores y Principios
https://agilemanifesto.org/iso/es/manifesto.html
Historia: acerca del Manifiesto
A pasar de ser diferentes Del 11 al 13 de febrero de 2001, en la estación de esquí The
metodologías o framework de
trabajos, todas se cobijan bajo Lodge at Snowbird en las montañas Wasatch de Utah, diecisiete
los mismos principios y valores.
personas se reunieron para hablar, esquiar, relajarse y tratar de
encontrar puntos en común y, por supuesto, para comer.

Lo que surgió fue el Manifiesto Agile 'Desarrollo de


software'. Representantes de Extreme Programming, SCRUM,
DSDM, Desarrollo de software adaptativo, Crystal, Desarrollo
Kanban FDD basado en funciones, Programación pragmática y otros que
XP simpatizan con la necesidad de una alternativa a los procesos de
Scrum
Crystal desarrollo de software de gran peso impulsados por la
DSDM documentación.
ASD Lean
Ahora, sería difícil encontrar una reunión más grande de
anarquistas organizacionales, por lo que lo que surgió de esta
reunión fue simbólico — un Manifiesto para el Desarrollo Ágil de
Software — firmado por todos los participantes.
Cronología de los principales Hitos en
la mejora de las metodologías ágiles,
Tomado de, De Proyectos ágiles a
organizaciones ágiles. (Managements
Solutions, 2019, p.16)
Firmantes del Manifiesto

Arie van Bennekum Mike Beedle


Kent Beck, tomado de John Doyle tomado de Alistair Cockburn, Ward Cunningham, Martin Fowler tomado Tomado de
https://twitter.com/ke https://www.scrumalli tomado de , tomado de
Tomado de de https://www.s
ntbeck?lang=es ance.org/community/p https://twitter.com/ https://agiliaconferenc
https://heartofagile.co https://martinfowler. crumalliance.o
rofile/jdoyle15 wardcunningham e.com/agilia-
m/profile/alistaircockbu com/ rg/in-
conference-
rn/ 2017/speakers/arie- memoriam
van-bennekum/

Jim Highsmit, Andy Hunt, tomado Jon Kern tomado Brian Marick, Robert C. Martin
Ron Jeffries, tomado
James Grenning, Tomado de
tomado de de de tomado de (Uncle Bob), tomado
https://wingman-sw.com/about de
https://www.thou https://toolshed.com https://twitter.co https://twitter.co de
https://twitter.com/
ghtworks.com/pro / m/jonkernpa m/marick https://sites.google.c
ronjeffries
files/jim- om/site/unclebobcon
highsmith sultingllc/
Valores del Manifiesto
Estamos descubriendo formas mejores de desarrollar software tanto por nuestra
propia experiencia como ayudando a terceros. A través de este trabajo hemos
aprendido a valorar:

Individuos e interacciones sobre procesos y herramientas

Software funcionando sobre documentación extensiva

Colaboración con el cliente sobre negociación contractual

Respuesta ante el cambio sobre seguir un plan

imagen: Freepik.com

Esto es, aunque valoramos los elementos de la derecha, valoramos más los
de la izquierda.
Principios del Manifiesto Ágil

1. Nuestra mayor prioridad es satisfacer al cliente mediante


la entrega temprana y continua de software con valor.

2. Aceptamos que los requisitos cambien, incluso en etapas


tardías del desarrollo. Los procesos Ágiles aprovechan el
cambio para proporcionar ventaja competitiva al cliente.

3. Entregamos software funcional frecuentemente, entre dos


semanas y dos meses, con preferencia al periodo de
tiempo más corto posible.

4. Los responsables de negocio y los desarrolladores


trabajamos juntos de forma cotidiana durante todo el
proyecto. imagen: Freepik.com

5. Los proyectos se desarrollan en torno a individuos


motivados. Hay que darles el entorno y el apoyo que
necesitan, y confiarles la ejecución del trabajo.
Principios del Manifiesto Ágil
6. El método más eficiente y efectivo de comunicar información al equipo
de desarrollo y entre sus miembros es la conversación cara a cara.

7. El software funcionando es la medida principal de progreso.

8. Los procesos Ágiles promueven el desarrollo sostenible. Los promotores,


desarrolladores y usuarios debemos ser capaces de mantener un ritmo
constante de forma indefinida.

9. La atención continua a la excelencia técnica y al buen diseño mejora la


Agilidad.

10. La simplicidad, o el arte de maximizar la cantidad de trabajo no


realizado, es esencial.

11. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-


organizados. imagen: Freepik.com

12. A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo
para a continuación ajustar y perfeccionar su comportamiento en
consecuencia.
Referencias bibliográficas
• Kent Beck, K., Beedle. M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., Highsmith, J., Hunt, A ., Jeffries, R., Kern,
J., Marick, B., Martin, R., Mellor, S., Schwaber K., Sutherland, J., Thomas, D., 2001 Principios del Manifiesto ágil,
http://agilemanifesto.org/iso/es/principles.html

• Garzas, J. (2010, 06 julio). Hay mejores formas de desarrollar software. https://www.computing.es/analytics/informes/1082541046201/mejores-


formas-desarrollar-software.1.html

• Fowler, M. (2018, agosto 25) El estado del software ágil en 2018 https://www.martinfowler.com/articles/agile-aus-2018.html

• Blé, C., 2010, Diseño Ágil con TDD, Safe Creative

• O’Connor, R., Le, R. Lepmets, M. (2015). Exploring the Use of the Cynefin Framework to Inform Software Development Approach Decisions.
10.1145/2785592.2785608.
https://www.researchgate.net/profile/Rory_Oconnor11/publication/281345229_Exploring_the_Use_of_the_Cynefin_Framework_to_Inform_Software
_Development_Approach_Decisions/links/55e2e14e08aede0b57323382/Exploring-the-Use-of-the-Cynefin-Framework-to-Inform-Software-
Development-Approach-Decisions.pdf

• Navarro, A., Fernández, J., Morales, J. (2013) Revisión de metodologías ágiles para el desarrollo de software , Prospectiva, ISSN-e 2216-1368, ISSN
1692-8261, Vol. 11, Nº. 2 (julio-diciembre), 2013, págs. 30-39 https://dialnet.unirioja.es/descarga/articulo/4752083.pdf

• Managements Solutions, (2019) De Proyectos ágiles a organizaciones ágiles. p.16

También podría gustarte