Metodologías agiles de desarrollo de software

Post on 26-Dec-2014

9.141 views 1 download

description

 

Transcript of Metodologías agiles de desarrollo de software

Metodologías Agiles de Desarrollo de Software

Juan Gómezhttp://www.linkedin.com/in/juandg

Abstarct

 Presentar una mirada general a las metodologías "Agiles" de Desarrollo de Software y desbancar el mito de que desarrollo "Ágil" es simplemente desarrollar sin seguir un proceso, o sin crear documentación.

Hablar un poco sobre la experiencia de implementar una metodología Á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 metodologías 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 documentación, es mas rápido y mas ágil.

Entrevistador: Gracias, que pase el siguiente!

Modelo WaterfallFeasibility

Specify Requirements

Design

Implement

Test

Deliver

Maintain

Mitos

Metodologías Agiles = Cowboy Coding Metodologías Agiles = Hay una sola! (XP?) Metodologías Agiles != Procesos Metodologías Agiles != Documentación Metodologías Agiles != Buenas Practicas Metodologías Agiles = Para Todo el Mundo Metodologías Agiles != CMMI

Realidades

Metodologías Agiles != Cowboy Coding Metodologías Agiles = Muchas Diferentes Metodologías Agiles = Procesos Metodologías Agiles = Buena Documentación Metodologías Agiles = Buenas Practicas Metodologías Agiles != Para Todo el Mundo Metodologías Agiles = CMMI

El Manifiesto Ágil: Principios Fundamentales

Process and toolsProcess and toolsIndividuals and interactions

Individuals and interactions

over

Following a planFollowing a planResponding to changeResponding to change over

Source: www.agilemanifesto.org

Comprehensive documentation

Comprehensive documentationWorking softwareWorking software over

Contract negotiationContract negotiationCustomer collaborationCustomer collaboration over

Metodologías Agiles

XP (eXtreme programming) Scrum DSDM (Dynamic Systems Development

Method) FDD (Feature Driven Development) Kanban

Características Comunes

Timeboxing Comunicación Patrocinador (Sponsor) Equipos de Alto rendimiento TDD Continous Integration

XPMetodologías Agiles

Las 12 Practicas de XP

Fine scale feedback• Pair programming• Planning Game• Test drive

development• Whole team

Continuous process• Continuous

integration• Design improvement• Small releases

• Shared understanding– Coding Standards– Collective code

ownership– Simple design– System metaphor

• Programmer welfare– Sustainable pace

FDDMetodologías Agiles

Seis Roles

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

OK—Mas 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 overallmodel

Build a featureslist

Plan by featureDesign 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

Form the planningteam

Determine thedevelopment

sequence

Assign features tochief programmers

Assign classes todevelopers

3. Plan By Feature

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

5. Develop by feature

Code

Unit Testing

Code inspections

Promote to build

Project Tracking Methodology

Develop an overallmodel

Build a featureslist

Plan by featureDesign by feature Build by feature

10% initial,4% ongoing

4% initial,1% ongoing

2% initial,2% ongoing

77%

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

Project Tracking Methodology

Design by feature Build by feature

77%

Walk through: 1%Design: 40%

Inspection: 3%

Code/test: 45%Inspection: 10%

Promote: 1%

walkthrough + design = 41% complete

FDD defines 6 milestones1) walkthrough – explanation of the requirement to the

developers (face-to-face)

2) design – creation of the sequence diagram

3) design review – peer review to check the design meets the requirements

4) coded – methods are written in class files to deliver the design

5) code review and unit test – test & peer review to check that code does what was specified in the design

6) promotion – into the integrated build for system / product testing.

23

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

Domain Walkthrough

Design Design Inspection

Code Code Inspection

Promote to Build

1% 40% 3% 45% 10% 1%

Project Tracking Methodology

24

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

Project Tracking Methodology

Achieving Smooth Flow

Device Management Ike II Cumulative Flow

020406080

100120140160180200220240

Time

Fe

atu

res

Inventory Started Designed Coded Complete

Six-Sigma enabler

SCRUMMetodologías Agiles

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.

• Product Owner• ScrumMaster• The Team

Roles

• Sprint Planning• Sprint Review• Daily Scrum Meeting

Ceremonies

• Product Backlog• Sprint Backlog• Burndown Chart

Artifacts

What’s 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 metodologías agiles

Metodologías Agiles de Desarrollo de Software

Q&A