Metodologías agiles de desarrollo de software
-
Upload
juan-gomez -
Category
Technology
-
view
9.139 -
download
1
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