Está en la página 1de 16

Facultad de Ingeniería Mecánica

y Eléctrica

Nombre: Bruno Alexander Lara Narváez


Matricula: 2008297
Carrera: Ing. Administrador de Sistemas
Tema: Tarea No.2
Materia: ADMON de proyectos de Software
¿Qué es una metodología?
Es más que un conjunto de elementos de tipo racional que se emplean para
alcanzar objetivos referentes a una investigación, por ello, al término se le conoce
como la metodología de investigación o, en su defecto, como la metodología de
un proyecto. El término tiene su génesis en el griego meta, el cual significa ir más
allá, camino y logos, lo cual significa estudio, razón o análisis.
La metodología de un proyecto o las técnicas de estudios en general, representa
una de las tantas etapas de los trabajos de investigación en la que es imperativo
el uso de posiciones teóricas que, próximamente, se llevarán a la práctica de
acuerdo a métodos concretos. Pero cuando se describe un trabajo a nivel
filosófico, se necesita de términos como:
Racionalismo (siempre en líneas contrarias al empirismo porque acentúa la razón
en las investigaciones.
Pragmática (de cómo cada elemento de la investigación tiene influencia en los
significados de las palabras).
Constructivismo (mismo en el que se analiza la información en base a diferentes
hipótesis realizadas por el investigador o analista).
Criticismo (es importante hacer énfasis en que en esta vertiente se hacen notar
los límites de la investigación, entonces se evalúan las posibilidades de
procedencia, etc).
Escepticismo (acá se pone en duda la veracidad de la investigación que
previamente se realiza, así que se hace una especulación y un análisis profundo
para saber si realmente lo que se ha adquirido es cierto).
Positivismo (se descartan los mitos o cualquier información que no sea científica).
Hermenéutica (elemento importante, pues acá se interpreta toda la
información y se procede a una correcta conclusión).
Scrum:
Alcances: Scrum es una metodología ágil que se centra en la gestión de
proyectos. Uno de los ejemplos serían los siguientes:
Gestión de Proyectos:
Scrum es conocido por su enfoque en la gestión de proyectos de desarrollo de
software, pero también se ha utilizado en otros contextos fuera del ámbito de la
tecnología.
Se organiza en sprints, que son iteraciones de tiempo fijo durante las cuales se
planifica, desarrolla y prueba un conjunto específico de funcionalidades.
Roles Definidos:
Scrum define roles específicos en el equipo, como el Scrum Master, que facilita el
proceso y elimina obstáculos; el Product Owner, que representa los intereses del
cliente y define las prioridades del producto; y el equipo de desarrollo, que es
responsable de entregar el trabajo.
Entrega Incremental:
Scrum promueve la entrega incremental del producto, con versiones funcionales
que se desarrollan y entregan al final de cada sprint. Esto permite una
retroalimentación temprana y continua por parte de los stakeholders.
Adaptabilidad:
Scrum es altamente adaptable a cambios en los requisitos del proyecto. Durante
la planificación de cada sprint, el equipo puede ajustar las prioridades y responder
a nuevas necesidades del cliente.
Reuniones Definidas:
Scrum incorpora reuniones regulares y bien definidas, como la planificación de
sprint, la revisión de sprint y la reunión diaria de scrum. Estas reuniones
proporcionan oportunidades para la colaboración y la toma de decisiones rápidas.

Transparencia y Visibilidad:
Scrum fomenta la transparencia en el proceso de desarrollo. Los tableros Scrum y
las reuniones regulares ayudan a mantener a todos los miembros del equipo y
stakeholders informados sobre el progreso y los posibles obstáculos.
Colaboración Intensiva:
Scrum fomenta la colaboración intensiva entre los miembros del equipo y los
stakeholders. La comunicación abierta y la colaboración son fundamentales para
el éxito del proyecto.

Métodos de desarrollo: Scrum organiza el trabajo en sprints, que son


iteraciones de tiempo fijo (generalmente de 2 a 4 semanas). En cada sprint, se
planifican, desarrollan y prueban funcionalidades. El equipo se organiza en roles
como el Scrum Master, el Product Owner y el equipo de desarrollo. Las reuniones
regulares, como la planificación de sprint, la revisión de sprint y la reunión diaria
de scrum, son características clave de Scrum.
Roles:
Scrum Master: Facilita el proceso Scrum, ayuda al equipo a comprender y adoptar
Scrum, y elimina los obstáculos que puedan afectar al equipo.
Product Owner: Representa los intereses del cliente y define las características y
prioridades del producto.
Equipo de Desarrollo: Profesionales que realizan el trabajo real para entregar el
incremento de producto al final de cada sprint.
Artefactos:
Product Backlog: Una lista priorizada de todas las características, historias de
usuario y tareas pendientes para el producto.
Sprint Backlog: Una selección de elementos del Product Backlog que el equipo se
compromete a completar durante un sprint.
Incremento: El producto potencialmente entregable al final de cada sprint.
Eventos:
Sprint Planning: Reunión al inicio de cada sprint donde se planifican las tareas y
se seleccionan los elementos del Product Backlog para incluir en el Sprint Backlog.
Daily Scrum: Reunión diaria de 15 minutos para que el equipo sincronice
actividades y planifique el trabajo para las próximas 24 horas.
Sprint Review: Reunión al final de cada sprint donde se revisa el incremento y se
recopila la retroalimentación del cliente.
Sprint Retrospective: Reunión después de la Sprint Review donde el equipo
reflexiona sobre el sprint y busca maneras de mejorar en el próximo.
Iterativo e Incremental:
Scrum organiza el trabajo en sprints, que son iteraciones de tiempo fijo
(generalmente de 2 a 4 semanas).
Cada sprint produce un incremento funcional del producto, lo que permite la
entrega continua y la retroalimentación temprana del cliente.
Colaboración Continua:
Scrum fomenta la colaboración intensiva entre el equipo de desarrollo, el Product
Owner y el Scrum Master.
La transparencia y la comunicación abierta son esenciales para el éxito de Scrum.
Adaptabilidad:
Scrum es altamente adaptable a cambios en los requisitos del proyecto. Durante
la planificación de cada sprint, el equipo puede ajustar las prioridades y responder
a nuevas necesidades del cliente.
Retroalimentación Continua:
La retroalimentación constante es una parte integral de Scrum, ya sea en las
reuniones diarias, las revisiones de sprint o las retrospectivas.

Kanban:
Alcances: Kanban se centra en la gestión visual y el flujo de trabajo. Es ideal para
equipos que necesitan una respuesta rápida a los cambios y una entrega
continua.
Gestión Visual:
El enfoque principal de Kanban es visualizar el flujo de trabajo mediante el uso de
un tablero Kanban. Este tablero tiene columnas que representan diferentes
estados del flujo de trabajo, como "Por hacer", "En progreso" y "Completado".
Flujo Continuo:
Kanban se centra en la entrega continua y en mantener un flujo de trabajo
constante. No tiene sprints fijos, lo que significa que las tareas pueden ser
completadas y entregadas tan pronto como estén listas.
Limitación del Trabajo en Progreso (WIP):
Kanban impone límites en la cantidad de trabajo que puede estar en progreso
simultáneamente en cada etapa del flujo de trabajo. Esto ayuda a evitar la
sobrecarga del equipo y a mantener un flujo constante de entrega.
Flexibilidad y Adaptabilidad:
Kanban es altamente adaptable y flexible a cambios en los requisitos y prioridades
del proyecto. No tiene sprints fijos, lo que permite ajustar las prioridades de
manera continua.
Optimización del Flujo:
Kanban se enfoca en la optimización del flujo de trabajo, identificando y
eliminando cuellos de botella para mejorar la eficiencia. Esto se logra a través de
la monitorización constante del tablero Kanban y la identificación de áreas de
mejora.
Colaboración y Comunicación:
Kanban fomenta la colaboración y la comunicación entre los miembros del equipo
al visualizar el trabajo y permitir que todos tengan una comprensión clara del
estado de las tareas.
Enfoque en la Calidad:
Kanban promueve la entrega de productos de alta calidad al centrarse en la
mejora continua y en la atención a la calidad en cada etapa del flujo de trabajo.
Retroalimentación Continua:
Al igual que otras metodologías ágiles, Kanban incorpora la retroalimentación
continua para permitir mejoras constantes en el proceso.

Métodos de desarrollo: Kanban utiliza un tablero visual que muestra las tareas en
diferentes columnas que representan estados del flujo de trabajo (por ejemplo,
"Por hacer", "En progreso", "Listo para revisar", "Completado"). Los elementos
(tarjetas) se mueven de una columna a otra según su progreso. No hay sprints
fijos en Kanban, y el equipo ajusta continuamente las prioridades según sea
necesario. A continuación, se describen algunos de los principios y prácticas
comunes asociados con el desarrollo de software utilizando Kanban:

Tablero Kanban:

La pieza central de Kanban es el tablero visual, que representa el flujo de


trabajo del equipo. Este tablero se compone de columnas que representan
diferentes etapas del proceso, como "Por hacer", "En progreso" y
"Completado". Las tarjetas representan las tareas individuales y se mueven
a través de las columnas a medida que avanzan en el proceso.

Limitación del Trabajo en Progreso (WIP):

Kanban aplica límites al número de elementos de trabajo que pueden estar


en progreso simultáneamente en cada columna del tablero. Esto ayuda a
mantener un flujo constante y a identificar cuellos de botella.

Flujo Continuo:

El objetivo principal es mantener un flujo continuo de trabajo, evitando


períodos de inactividad y optimizando el tiempo de entrega de las tareas.

Entrega Continua:

A diferencia de las metodologías con sprints fijos, Kanban permite la


entrega continua, lo que significa que las tareas pueden ser completadas y
entregadas tan pronto como estén listas.
Priorización Dinámica:

Las tarjetas en el tablero Kanban pueden ser priorizadas dinámicamente en


función de las necesidades del proyecto o del cliente. No hay una
planificación fija a largo plazo; en cambio, las prioridades pueden cambiar
según las circunstancias.

Mejora Continua:

Kanban promueve la mejora continua al enfocarse en la identificación y


resolución de problemas y cuellos de botella en el flujo de trabajo. Se
anima a los equipos a reflexionar sobre su desempeño y a realizar ajustes
para optimizar el proceso.

Colaboración Activa:

Kanban fomenta la colaboración activa entre los miembros del equipo y los
stakeholders. La visualización del trabajo en el tablero Kanban mejora la
comunicación y la comprensión compartida del progreso.

Gestión del Cambio:

Kanban abraza la gestión activa del cambio. Los equipos pueden ajustar su
proceso de trabajo según las lecciones aprendidas, los cambios en los
requisitos o las condiciones del mercado.

Retroalimentación Continua:

Al igual que otras metodologías ágiles, Kanban incorpora la


retroalimentación continua para permitir mejoras constantes en el proceso.

Extreme Programming (XP):


Alcances: XP se enfoca en la calidad del software y la colaboración cercana entre
el equipo de desarrollo y los clientes. Es adecuado para proyectos que requieren
una respuesta rápida a los cambios en los requisitos.
Desarrollo Iterativo e Incremental:
XP utiliza ciclos de desarrollo cortos e iterativos, donde se desarrolla, prueba y
entrega software funcional en incrementos pequeños. Esto permite una
adaptabilidad rápida a cambios en los requisitos y una entrega frecuente de valor
al cliente.
Programación en Parejas (Pair Programming):
En XP, los desarrolladores trabajan en parejas, compartiendo una estación de
trabajo. Este enfoque promueve la colaboración y el intercambio de
conocimientos, mejora la calidad del código y reduce la posibilidad de errores.
Pruebas Automatizadas (Test-Driven Development - TDD):
XP aboga por la creación de pruebas automatizadas antes de escribir el código de
producción. Esto ayuda a garantizar que el código cumple con los requisitos y
facilita la identificación temprana de posibles problemas.
Integración Continua:
La integración continua es un principio fundamental de XP, donde los cambios en
el código se integran en el repositorio principal varias veces al día. Esto ayuda a
identificar y solucionar problemas de integración de manera temprana.
Diseño Simple:
XP promueve la simplicidad en el diseño de software. Los equipos deben
mantener el código lo más simple posible y realizar refactorizaciones continuas
para mejorar la estructura y la legibilidad del código.
Cliente Presente:
La participación activa del cliente es esencial en XP. El cliente está presente
durante todo el proceso de desarrollo, proporcionando retroalimentación
constante y tomando decisiones sobre la dirección del proyecto.
Metáfora del Sistema:
XP utiliza una metáfora del sistema, que es una historia simple y coherente que
guía el diseño y desarrollo del software. Esto ayuda a mantener una visión
compartida del sistema entre los miembros del equipo.
Reuniones Cortas y Frecuentes:
XP fomenta la comunicación efectiva mediante reuniones cortas y frecuentes,
donde los equipos revisan el progreso, resuelven problemas y planifican el
próximo conjunto de tareas.
Entregas Frecuentes:
XP busca entregar versiones funcionales del software de manera frecuente, a
menudo en intervalos de una o dos semanas. Esto permite obtener comentarios
rápidos y mantener la orientación hacia la entrega de valor.
Cambio Incremental:
XP aborda el cambio de manera incremental, permitiendo adaptaciones continuas
a medida que se obtiene una mejor comprensión de los requisitos y del progreso
del proyecto.
Equipo Multifuncional:
Los equipos de XP están formados por miembros multifuncionales que tienen
habilidades diversas, lo que facilita la colaboración y la resolución eficiente de
problemas.

Métodos de desarrollo: XP utiliza prácticas como la programación en parejas,


pruebas automatizadas, integración continua y desarrollo dirigido por pruebas
(TDD). Se presta especial atención a la simplicidad en el diseño y a la
retroalimentación constante del cliente. Los equipos de XP también realizan
entregas frecuentes de software funcional.
Programación en Parejas (Pair Programming):
Dos programadores trabajan juntos en una única estación de trabajo. Uno es el
"conductor" que escribe código, mientras que el otro es el "observador" que
revisa el código y ofrece sugerencias. Esto fomenta la colaboración, el
intercambio de conocimientos y la mejora de la calidad del código.
Test-Driven Development (TDD):
Antes de escribir el código de producción, los desarrolladores crean pruebas
automatizadas que definen la funcionalidad que están a punto de implementar.
Luego, escriben el código necesario para que las pruebas pasen. Este enfoque
asegura que el código cumple con los requisitos y facilita la identificación
temprana de errores.
Integración Continua:
Los cambios en el código se integran constantemente en el repositorio principal
varias veces al día. La integración continua ayuda a detectar y corregir problemas
de integración de manera rápida, reduciendo los riesgos asociados con grandes
cambios tardíos.
Diseño Simple:
XP aboga por mantener el diseño del software lo más simple posible. Se prefieren
soluciones simples y se fomenta la refactorización continua para mejorar la
estructura del código sin agregar complejidad innecesaria.
Cliente Presente:
La participación activa del cliente es clave en XP. El cliente está involucrado en
todas las etapas del desarrollo, proporcionando requisitos claros, dando
retroalimentación constante y tomando decisiones sobre la dirección del
proyecto.
Reuniones Cortas y Frecuentes:
XP utiliza reuniones diarias cortas llamadas "stand-ups" donde los miembros del
equipo informan sobre su progreso, discuten posibles problemas y coordinan
actividades.
Historias de Usuario:
Las funcionalidades del sistema se expresan en términos de historias de usuario,
que son narrativas que describen cómo el usuario interactuará con el sistema. Las
historias de usuario guían el desarrollo y ayudan a priorizar las tareas.
Refactorización Continua:
La refactorización es una práctica constante en XP, que implica reescribir o
mejorar el código sin cambiar su funcionalidad. Esto ayuda a mantener un código
limpio y adaptable.
Iteraciones Cortas (Small Releases):
XP aboga por entregas frecuentes y versiones pequeñas del software funcional,
permitiendo que el cliente obtenga rápidamente valor y proporcione
retroalimentación temprana.
Metáfora del Sistema:
XP utiliza una metáfora del sistema para proporcionar una visión común del
proyecto. Esta metáfora ayuda a los miembros del equipo a entender cómo se
relacionan las diferentes partes del sistema.
Juego de Planeación (Planning Game):
Se lleva a cabo una reunión de planificación (planning game) donde el cliente y el
equipo seleccionan y planifican las tareas que se abordarán en la próxima
iteración.

Pruebas Automatizadas:
Además de TDD, XP incluye prácticas extensivas de pruebas automatizadas que
ayudan a garantizar la calidad y la estabilidad del código.

Lean Software Development:


Alcances: Inspirado en los principios de Lean Manufacturing, Lean Software
Development se centra en la eliminación de desperdicios y la entrega de valor
continuo al cliente.
Eliminación de Desperdicios (Waste Elimination):

Lean Software Development busca identificar y eliminar todas las formas de


desperdicio en el proceso de desarrollo de software. Esto incluye tareas
innecesarias, retrasos, trabajo no productivo y cualquier elemento que no
agregue valor al cliente.

Optimización del Flujo de Trabajo:

Se enfoca en la optimización del flujo de trabajo para lograr una entrega


más rápida y eficiente. Reducir la variabilidad y mejorar la velocidad del
flujo de trabajo son objetivos clave.

Entrega Continua de Valor al Cliente:

Lean Software Development pone un fuerte énfasis en la entrega continua


de valor al cliente. Cada iteración o entrega incremental se enfoca en
proporcionar características que agreguen valor, permitiendo una respuesta
rápida a los cambios en los requisitos.

Aprendizaje Continuo (Continuous Learning):

Se fomenta la mejora continua mediante la retroalimentación constante y la


adaptación a nuevas circunstancias. La organización y el equipo buscan
aprender de cada iteración y aplicar ese aprendizaje para mejorar el
proceso y los resultados.

Empoderamiento del Equipo (Empowered Teams):

Lean Software Development promueve la toma de decisiones


descentralizada y la autonomía de los equipos. Se busca empoderar a los
equipos para que tomen decisiones y resuelvan problemas en el nivel más
bajo posible.

Construcción de Calidad desde el Principio (Build Quality In):

La calidad no es algo que se añade al final del proceso; más bien, se


construye desde el principio. Se prioriza la prevención de defectos
mediante prácticas como la revisión continua del código y la
automatización de pruebas.

Ampliación de la Visión del Cliente (Amplified Customer Insight):

La colaboración con el cliente es esencial en Lean. Se busca una


comprensión profunda de las necesidades del cliente y se incorpora su
retroalimentación de manera activa y continua durante todo el proceso de
desarrollo.

Trabajo Basado en Takt Time:

Se busca equilibrar la carga de trabajo para mantener un ritmo constante y


predecible. El Takt time es el tiempo disponible dividido por la cantidad de
trabajo, y se busca que el equipo trabaje en función de este ritmo.

Desarrollo de Personas y Equipos (Develop People and Teams):

Lean Software Development reconoce la importancia de desarrollar las


habilidades y competencias del equipo. Se promueve la formación continua
y el desarrollo profesional para mejorar la efectividad y la capacidad de
adaptación del equipo.

Decisiones Basadas en Hechos (Decide as Late as Possible):

Lean favorece la toma de decisiones basada en datos y en el último


momento posible, para incorporar la mayor cantidad de información y
reducir la incertidumbre.

Diseño de Sistemas Integros (Integrate Systems Thinking):

Lean aborda el desarrollo de software desde una perspectiva sistémica,


considerando cómo cada componente interactúa con el conjunto del
sistema. Se busca optimizar todo el sistema en lugar de partes individuales.
Métodos de desarrollo: Lean promueve la optimización del flujo de trabajo, la
entrega rápida y la mejora continua.
Se busca minimizar el tiempo entre la identificación de una necesidad y la entrega
del producto. Se presta atención a la eficiencia y la calidad a través de la
retroalimentación continua. También se enfatiza la participación activa de los
clientes para asegurar que el producto entregado satisfaga sus necesidades.
Eliminación de Desperdicios (Waste Elimination):
Identificar y eliminar todas las formas de desperdicio en el proceso de desarrollo,
como tiempos de espera, exceso de trabajo, movimientos innecesarios, etc. Este
método se centra en la eficiencia y la entrega continua.
Optimización del Flujo de Trabajo (Workflow Optimization):
Buscar la mejora continua del flujo de trabajo para lograr una entrega más rápida
y eficiente. Esto implica reducir la variabilidad, eliminar cuellos de botella y
mejorar la velocidad del proceso.
Entrega Continua de Valor (Continuous Delivery of Value):
Enfocarse en entregar continuamente incrementos de software que proporcionen
valor real al cliente. Esto significa priorizar y construir características que tengan
un impacto significativo y que puedan ser entregadas de manera regular.
Aprendizaje Continuo (Continuous Learning):
Fomentar la mejora continua mediante la retroalimentación constante y la
adaptación a nuevas circunstancias. Esto implica aprender de las experiencias y
aplicar esos aprendizajes para mejorar el proceso y los resultados.
Empoderamiento del Equipo (Empowered Teams):
Permitir que los equipos tomen decisiones descentralizadas y tengan autonomía
en la ejecución de sus tareas. Esto fomenta la responsabilidad y la toma de
decisiones a nivel de equipo.
Construcción de Calidad desde el Principio (Build Quality In):
Poner un fuerte énfasis en construir calidad desde el principio. Esto implica
prácticas como la revisión continua del código, la automatización de pruebas y la
prevención de defectos en lugar de la detección tardía.
Ampliación de la Visión del Cliente (Amplified Customer Insight):
Colaborar estrechamente con el cliente para comprender sus necesidades y
obtener retroalimentación de manera activa y continua. La voz del cliente es
esencial para orientar el desarrollo.
Trabajo Basado en Takt Time:
Buscar equilibrar la carga de trabajo para mantener un ritmo constante y
predecible. El Takt time es el tiempo disponible dividido por la cantidad de
trabajo, y se busca que el equipo trabaje en función de este ritmo.
Desarrollo de Personas y Equipos (Develop People and Teams):
Reconocer la importancia de desarrollar las habilidades y competencias del
equipo. Esto incluye la formación continua y el desarrollo profesional para
mejorar la efectividad y la capacidad de adaptación del equipo.
Decisiones Basadas en Hechos (Decide as Late as Possible):
Favorecer la toma de decisiones basada en datos y hacer las decisiones en el
último momento posible para incorporar la mayor cantidad de información y
reducir la incertidumbre.
Diseño de Sistemas Integros (Integrate Systems Thinking):
Abordar el desarrollo de software desde una perspectiva sistémica, considerando
cómo cada componente interactúa con el conjunto del sistema. Se busca
optimizar todo el sistema en lugar de partes individuales.

También podría gustarte