metodologías agiles de desarrollo de software

35
Metodologías Agiles de Desarrollo de Software Juan Gómez http:// www.linkedin.com/in/juandg

Upload: juan-gomez

Post on 26-Dec-2014

9.139 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Metodologías agiles de desarrollo de software

Metodologías Agiles de Desarrollo de Software

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

Page 2: Metodologías agiles de desarrollo de software

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.

Page 3: Metodologías agiles de desarrollo de software

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!

Page 4: Metodologías agiles de desarrollo de software

Modelo WaterfallFeasibility

Specify Requirements

Design

Implement

Test

Deliver

Maintain

Page 5: Metodologías agiles de desarrollo de software

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

Page 6: Metodologías agiles de desarrollo de software

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

Page 7: Metodologías agiles de desarrollo de software

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

Page 8: Metodologías agiles de desarrollo de software

Metodologías Agiles

XP (eXtreme programming) Scrum DSDM (Dynamic Systems Development

Method) FDD (Feature Driven Development) Kanban

Page 9: Metodologías agiles de desarrollo de software

Características Comunes

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

Page 10: Metodologías agiles de desarrollo de software

XPMetodologías Agiles

Page 11: Metodologías agiles de desarrollo de software

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

Page 12: Metodologías agiles de desarrollo de software

FDDMetodologías Agiles

Page 13: Metodologías agiles de desarrollo de software

Seis Roles

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

Page 14: Metodologías agiles de desarrollo de software

OK—Mas de seis!

Supporting Roles Domain manager Release manager Language guru Build engineer Toolsmith System administrator

Sometimes Helpful Testers Deployers Technical writers

Page 15: Metodologías agiles de desarrollo de software

Five Processes

Develop an overallmodel

Build a featureslist

Plan by featureDesign by feature Build by feature

Per project Per feature

Page 16: Metodologías agiles de desarrollo de software

2. Build a features list

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

Page 17: Metodologías agiles de desarrollo de software

3. Plan By Feature

Form the planningteam

Determine thedevelopment

sequence

Assign features tochief programmers

Assign classes todevelopers

Page 18: Metodologías agiles de desarrollo de software

3. Plan By Feature

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

Page 19: Metodologías agiles de desarrollo de software

5. Develop by feature

Code

Unit Testing

Code inspections

Promote to build

Page 20: Metodologías agiles de desarrollo de software

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.

Page 21: Metodologías agiles de desarrollo de software

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

Page 22: Metodologías agiles de desarrollo de software

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.

Page 23: Metodologías agiles de desarrollo de software

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

Page 24: Metodologías agiles de desarrollo de software

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

Page 25: Metodologías agiles de desarrollo de software

Achieving Smooth Flow

Device Management Ike II Cumulative Flow

020406080

100120140160180200220240

Time

Fe

atu

res

Inventory Started Designed Coded Complete

Page 26: Metodologías agiles de desarrollo de software

Six-Sigma enabler

Page 27: Metodologías agiles de desarrollo de software

SCRUMMetodologías Agiles

Page 28: Metodologías agiles de desarrollo de software

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

Page 29: Metodologías agiles de desarrollo de software

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

Page 30: Metodologías agiles de desarrollo de software

SCRUM Process Overview

Page 31: Metodologías agiles de desarrollo de software

How Are We Doing?

Page 32: Metodologías agiles de desarrollo de software

Ranking User Stories

Page 33: Metodologías agiles de desarrollo de software

How Are We Doing? - Velocity

Page 34: Metodologías agiles de desarrollo de software

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

Page 35: Metodologías agiles de desarrollo de software

Metodologías Agiles de Desarrollo de Software

Q&A