Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de...

6
Desarrollar un buen software depende de un gran número Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la de actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado proyecto metodología para un equipo en un determinado proyecto es trascendental para el éxito del producto. es trascendental para el éxito del producto. Según la filosofía de desarrollo se pueden clasificar Según la filosofía de desarrollo se pueden clasificar las metodologías en dos grupos. las metodologías en dos grupos. Las metodologías Las metodologías tradicionales tradicionales , que se basan en una fuerte planificación , que se basan en una fuerte planificación durante todo el desarrollo, y durante todo el desarrollo, y las metodologías ágiles las metodologías ágiles , , en las que el desarrollo de software es incremental, en las que el desarrollo de software es incremental, cooperativo, sencillo y adaptado. cooperativo, sencillo y adaptado.

Transcript of Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de...

Page 1: Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado.

Desarrollar un buen software depende de un gran número de Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la metodología actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado proyecto es trascendental para un equipo en un determinado proyecto es trascendental para el éxito del producto.para el éxito del producto.

Según la filosofía de desarrollo se pueden clasificar las Según la filosofía de desarrollo se pueden clasificar las metodologías en dos grupos. metodologías en dos grupos. Las metodologías tradicionalesLas metodologías tradicionales, , que se basan en una fuerte planificación durante todo el que se basan en una fuerte planificación durante todo el desarrollo, y desarrollo, y las metodologías ágileslas metodologías ágiles, en las que el desarrollo , en las que el desarrollo de software es incremental, cooperativo, sencillo y adaptado.de software es incremental, cooperativo, sencillo y adaptado.

Page 2: Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado.

Metodologías tradicionales Metodologías tradicionales

-Las metodologías tradicionales son denominadas, a veces, de Las metodologías tradicionales son denominadas, a veces, de forma, como metodologías pesadas.forma, como metodologías pesadas.

-Centran su atención en llevar una documentación exhaustiva de Centran su atención en llevar una documentación exhaustiva de todo el proyecto y en cumplir con un plan de proyecto, definido todo el proyecto y en cumplir con un plan de proyecto, definido todo esto, en la fase inicial del desarrollo del proyecto.todo esto, en la fase inicial del desarrollo del proyecto.

-Otra de las características importantes dentro de este enfoque, Otra de las características importantes dentro de este enfoque, son los altos costes al implementar un cambio y la falta de son los altos costes al implementar un cambio y la falta de flexibilidad en proyectos donde el entorno es volátil.flexibilidad en proyectos donde el entorno es volátil.

-Las metodologías tradicionales (formales) se focalizan en la Las metodologías tradicionales (formales) se focalizan en la documentación, planificación y procesos (plantillas, técnicas de documentación, planificación y procesos (plantillas, técnicas de administración, revisiones, etc.) administración, revisiones, etc.)

Page 3: Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado.

Metodologías ágilesMetodologías ágiles

- Este enfoque nace como respuesta a los problemas que puedan - Este enfoque nace como respuesta a los problemas que puedan ocasionar las metodologías tradicionales y se basa en dos ocasionar las metodologías tradicionales y se basa en dos aspectos fundamentales, retrasar las decisiones y la planificación aspectos fundamentales, retrasar las decisiones y la planificación adaptativa. adaptativa.

- Basan su fundamento en la adaptabilidad de los procesos de - Basan su fundamento en la adaptabilidad de los procesos de desarrollo. desarrollo.

- Estas metodologías ponen de relevancia que la capacidad de - Estas metodologías ponen de relevancia que la capacidad de respuesta a un cambio es más importante que el seguimiento respuesta a un cambio es más importante que el seguimiento estricto de un plan. estricto de un plan.

Page 4: Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado.

¿Metodologías ágiles o metodologías ¿Metodologías ágiles o metodologías tradicionales? tradicionales? En las metodologías tradicionales el principal problema es que

nunca se logra planificar bien el esfuerzo requerido para seguir la metodología. Pero entonces, si logramos definir métricas que apoyen la estimación de las actividades de desarrollo, muchas prácticas de metodologías tradicionales podrían ser apropiadas.

Tener metodologías diferentes para aplicar de acuerdo con el Tener metodologías diferentes para aplicar de acuerdo con el proyecto que se desarrolle resulta una idea interesante. Estas proyecto que se desarrolle resulta una idea interesante. Estas metodologías pueden involucrar prácticas tanto de metodologías pueden involucrar prácticas tanto de metodologías ágiles como de metodologías tradicionales. De metodologías ágiles como de metodologías tradicionales. De esta manera podríamos tener una metodología por cada esta manera podríamos tener una metodología por cada proyecto, la problemática sería definir cada una de las proyecto, la problemática sería definir cada una de las prácticas, y en el momento preciso definir parámetros para prácticas, y en el momento preciso definir parámetros para saber cuál usar.saber cuál usar.

Page 5: Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado.

Es importante tener en cuenta que el uso de un método ágil no Es importante tener en cuenta que el uso de un método ágil no vale para cualquier proyecto. Sin embargo, una de las vale para cualquier proyecto. Sin embargo, una de las principales ventajas de los métodos ágiles es su peso principales ventajas de los métodos ágiles es su peso inicialmente ligero y por eso las personas que no estén inicialmente ligero y por eso las personas que no estén acostumbradas a seguir procesos encuentran estas acostumbradas a seguir procesos encuentran estas metodologías bastante agradables. metodologías bastante agradables.

Metodologías agilesMetodologías agiles Metodologías tradicionalesMetodologías tradicionalesBasadas en heurísticas provenientes de Basadas en heurísticas provenientes de prácticas de producción de códigoprácticas de producción de código

Basadas en normas provenientes de Basadas en normas provenientes de estándares seguidos por el entorno estándares seguidos por el entorno de desarrollo de desarrollo

Especialmente preparados para cambios Especialmente preparados para cambios durante el proyectodurante el proyecto

Cierta resistencia a los cambiosCierta resistencia a los cambios

Page 6: Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado.

Metodologías agilesMetodologías agiles Metodologías tradicionalesMetodologías tradicionalesImpuestas internamente (por el equipo)Impuestas internamente (por el equipo) Impuestas externamenteImpuestas externamente

Proceso menos controlado, con pocos Proceso menos controlado, con pocos principiosprincipios

Proceso mucho más controlado, con Proceso mucho más controlado, con numerosas políticas/normasnumerosas políticas/normas

No existe contrato tradicional o al menos No existe contrato tradicional o al menos es bastante flexiblees bastante flexible

Existe un contrato prefijadoExiste un contrato prefijado

El cliente es parte del equipo de desarrolloEl cliente es parte del equipo de desarrollo El cliente interactúa con el equipo de El cliente interactúa con el equipo de desarrollo mediante reunionesdesarrollo mediante reuniones

Grupos pequeños (<10 integrantes) y Grupos pequeños (<10 integrantes) y trabajando en el mismo sitiotrabajando en el mismo sitio

Grupos grandes y posiblemente Grupos grandes y posiblemente distribuidosdistribuidos

Pocos artefactosPocos artefactos Más artefactosMás artefactos

Pocos rolesPocos roles Más rolesMás roles

Menos énfasis en la arquitectura del Menos énfasis en la arquitectura del softwaresoftware

La arquitectura del software es La arquitectura del software es esencial y se expresa mediante esencial y se expresa mediante modelosmodelos

Tabla comparativa entre metodologías tradicionales y Tabla comparativa entre metodologías tradicionales y desarrollo ágil desarrollo ágil