Você está na página 1de 35

Metodologas Agiles de Desarrollo de Software

Juan Gmez
http://www.linkedin.com/in/juandg

Abstarct
Presentar una mirada general a las metodologas "Agiles" de Desarrollo de Software y desbancar el mito de que desarrollo "gil" es simplemente desarrollar sin seguir un proceso, o sin crear documentacin. Hablar un poco sobre la experiencia de implementar una metodologa gil en un proyecto de software de gran volumen, las ventajas, desventajas y especialmente los retos que se esto presenta para un equipo de desarrollo.

Un ejemplo: Entrevista

Entrevistador: Dice en su hoja de vida que usted tiene experiencia en metodologas agiles, en cuales ha trabajado? Candidato: Como en cuales? En gil! Cual mas? Entrevistador: Y entonces que es gil? Candidato: Pues es desarrollar software sin seguir un proceso, sin tantas complicaciones y sin tanta documentacin, es mas rpido y mas gil. Entrevistador: Gracias, que pase el siguiente!

Modelo Waterfall
Feasibility Specify Requirements Design Implement Test Deliver Maintain

Mitos

Metodologas Agiles = Cowboy Coding Metodologas Agiles = Hay una sola! (XP?) Metodologas Agiles != Procesos Metodologas Agiles != Documentacin Metodologas Agiles != Buenas Practicas Metodologas Agiles = Para Todo el Mundo Metodologas Agiles != CMMI

Realidades

Metodologas Agiles != Cowboy Coding Metodologas Agiles = Muchas Diferentes Metodologas Agiles = Procesos Metodologas Agiles = Buena Documentacin Metodologas Agiles = Buenas Practicas Metodologas Agiles != Para Todo el Mundo Metodologas Agiles = CMMI

El Manifiesto gil: Principios Fundamentales


Individuals and interactions Working software Customer collaboration Responding to change
over

Process and tools Comprehensive documentation Contract negotiation Following a plan

over

over

over

Source: www.agilemanifesto.org

Metodologas Agiles
XP

(eXtreme programming) Scrum DSDM (Dynamic Systems Development Method) FDD (Feature Driven Development) Kanban

Caractersticas Comunes
Timeboxing Comunicacin Patrocinador

(Sponsor) Equipos de Alto rendimiento TDD Continous Integration

Metodologas Agiles

XP

Las 12 Practicas de XP

Fine scale feedback

Continuous process

Pair programming Planning Game Test drive development Whole team Continuous integration Design improvement Small releases

Shared understanding Coding Standards Collective code ownership Simple design System metaphor Programmer welfare Sustainable pace

Metodologas Agiles

FDD

Seis Roles
Project

Manager Chief Architect Development Manager Chief Programmers Class Owners (aka Developers) Domain Experts

OKMas de seis!
Supporting Roles Domain manager Release manager Language guru Build engineer Toolsmith System administrator Sometimes Helpful Testers Deployers Technical writers

Five Processes

Develop an overall model

Build a features list

Plan by feature Design by feature Build by feature

Per project

Per feature

2. Build a features list

http://www.nebulon.com/articles/fdd/DevView.html

3. Plan By Feature
Determine the development sequence

Form the planning team

Assign features to chief programmers

Assign classes to developers

3. Plan By Feature

http://www.nebulon.com/articles/fdd/planview.html

5. Develop by feature
Unit Testing

Code

Promote to build

Code inspections

Project Tracking Methodology

Develop an overall model

Build a features list

Plan by feature

Design by feature

Build by feature

10% initial, 4% ongoing

4% initial, 1% ongoing

2% initial, 2% ongoing

77%

Process 1s 10% is the most significant. Other numbers are fungible.

Project Tracking Methodology

Design by feature

Build by feature

walkthrough + design = 41% complete

77%

Walk through: 1% Design: 40% Inspection: 3%

Code/test: 45% Inspection: 10% Promote: 1%

FDD defines 6 milestones


1) 2) 3)

4) 5)

6)

walkthrough explanation of the requirement to the developers (face-to-face) design creation of the sequence diagram design review peer review to check the design meets the requirements coded methods are written in class files to deliver the design code review and unit test test & peer review to check that code does what was specified in the design promotion into the integrated build for system / product testing.

Project Tracking Methodology


Six exact meaningful milestones per feature Percentage complete assigned to each milestone Record completion dates for each milestone Roll up by Feature Set, Feature Area Represent graphically for upper management Trend and graph as desired
1% 40% 3%
Design Inspection

45%
Code

10%
Code Inspection

1%
Promote to Build

Domain Design Walkthrough

Project Tracking Methodology


To steer you need to know Exactly where you are Exactly where you are going Roughly how fast you are going

Achieving Smooth Flow


Device Management Ike II Cumulative Flow
240 220 200 180 160 140 120 100 80 60 40 20 0
eb eb eb 16 -M ar 23 -M ar 30 -M ar 2M ar 10 -F 17 -F 24 -F 9M ar

Features

Time
Inventory Started Designed Coded Complete

Six-Sigma enabler

Metodologas Agiles

Scrum

Features of SCRUM

Scrum is a simple inspect and adapt framework that has three roles, three ceremonies, and three artifacts designed to deliver working software in Sprints, usually in iterations of 1 to 4 weeks.

Roles

Product Owner ScrumMaster The Team

Ceremonies

Sprint Planning Sprint Review Daily Scrum Meeting Product Backlog Sprint Backlog Burndown Chart

Artifacts

Whats the process?

A sprint is considered the heartbeat of the Scrum cycle


Sprint Planning Sprint Sprint Review Sprint Retrospective

Time-Boxing is used to control the duration of each step and must be adhered to

SCRUM Process Overview

How Are We Doing?

Ranking User Stories

How Are We Doing? - Velocity

CMMI
CMMI

no dice que es lo que hay que hacer, Ni mucho menos como hacerlo. CMMI no dice que solo sirve con RUP o con Waterfall. Hay muchos caso de xito de empresas CMMI utilizando metodologas agiles

Metodologas Agiles de Desarrollo de Software

Q&A

Você também pode gostar