Professional Documents
Culture Documents
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
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
Metodologas Agiles
XP
Las 12 Practicas de XP
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
Per project
Per feature
http://www.nebulon.com/articles/fdd/DevView.html
3. Plan By Feature
Determine the development sequence
3. Plan By Feature
http://www.nebulon.com/articles/fdd/planview.html
5. Develop by feature
Unit Testing
Code
Promote to build
Code inspections
Plan by feature
Design by feature
Build by feature
4% initial, 1% ongoing
2% initial, 2% ongoing
77%
Design by feature
Build by feature
77%
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.
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
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
Ceremonies
Sprint Planning Sprint Review Daily Scrum Meeting Product Backlog Sprint Backlog Burndown Chart
Artifacts
Time-Boxing is used to control the duration of each step and must be adhered to
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
Q&A