2. Extreme Programming
• Focusses on ongoing and rapid delivery of small releases of
software
• Relies on close collaboration and continuous refinements of
requirement.
• Small self directing teams. Outputs are simple in design,
rigorously tested and constantly updated.
• Team sets their own coding standards and plan coding work
based on set of customer stories
• XP Core values
– Communication
– Simplicity
– Feedback
– Courage
3. Extreme Programming
• XP Principles
– Collective ownership
• Any member can alter code
– Continuous integration
• Code changes fully integrated into the larger system
– Energized work
• Encourage healthy work life balance and 40 hour work week. Avoid
working overtime
• Maintain sustainable workspace
– Shared workspaces
• Work in one room
– On-site customer
• Customer located in the same workspace as the development team.
4. Extreme Programming
• XP Practices
– Pair programing
– Testing
– Refactoring
– Simple design
– Planning game
• Which functionality to take up first
• Customer gives requirements as story cards.
– Metaphor
5. Lean development
• Streamlined, efficient and high quality outputs
• Focus on activities that adds value to the customer
• Lean principles
– Eliminating waste
• IT wastes
– Unnecessary processes
– Production delays
– Incomplete work
– Multi tasking
– Building integrity in
– Seeing the whole
• Team members focus on whole system and how it integrates
– Deciding late
– Delivering fast
– Empowering team
• All team members are responsible for learning and applying lean principles
– Amplifying learning
6. Lean development
• Lean tools
– Value stream mapping
• For eliminating waste
• Visually representing the development process
• Begin with the end point and then move backward with all
process steps
– Kanban
• It’s a Japanese term meaning Card or board
• Uses cards to control the flow of work and show task status
• Improves efficiency and communication
• Summary
7. The crystal methodologies
• Crystal development process
– Highly flexible light weight approach.
– Shouldn’t work on multiple projects
– Pauses between iterations
– Focus on people rather then rules, documentation and matrix
– Crystal methodologies
• Crystal clear
– Small teams – 3 to 6 members
• Crystal yellow
– 6 to 20 team members
• Crystal orange
– 20 to 40 team members
• Crystal Red
– 40 to 80 team members
•
8. The crystal methodologies
– Chartering
1. Building team
2. Perform exploratory 360 degree
3. Shaping and fine tuning methodology
4. Building initial project plan
– Delivery cycles
• Iteration planning
• Daily activities
• Integration cycle activities
• Updating release plans
– Takes breaks between iterations
– Project wrapup
•
9. The crystal methodologies
• Crystal principles
1. Frequent delivery
2. Reflective improvement
3. Osmotic communication
4. Personal safety
5. Focus
6. Easy access to subject-matter expert
7. Technical environment.
• Automation testing
• Configuration management etc
• Continuous integration
10. The crystal methodologies
• Crystal tools
– Walking skeleton
• End to end workflow of basic functionality
• Tested production quality code
• Functionality is incrementally completed and added in to the system
• Supports frequent delivery
– Information radiators
• Visual representation of status like dashboards
– Reflective improvement workshops
• Discuss success and failures of the work done in each iteration
• Other tools
– Burndown chart
– Planning games
– Daily standup meetings
11. Feature Driven development
• Describes specific development process in
detail
• Iterative development methodology
• Planned managed and tracked at feature level
• Used for a large complex software projects
• Three levels
– Subject area
– Feature sets
– Features
12. Feature Driven development
• 6 main roles in FDD team
– Project manager
– Chief architect
– Development Manager
– Chief programmer
– Class owner
– Domain expert
– Other roles
• Tester
• Deployers
• Technical writers
13. Feature Driven development
• FDD process
– Develop overall model
• Conducting high level walk through with the customer to define overall scope
and context of a project
– Build feature list
– Plan by feature
– Design by feature
– Build by feature
• FDD Tools
– To track and report its progress
• Task list
• Milestone tables
• Line graph
• Progress report
• Summary
14. DSDM and Agile Unified process
• Instead of focusing on technical aspect of the
project development, DSDM takes a business
perspective
• Based on RAD model (Rapid application
development)
• Continuous customer involvement
• Prototypes created
• For projects that have tight schedules and
budgets
15. DSDM and Agile Unified process
• Dynamic system development
– DSDM principles
• Integrated testing
• 80/20 rule
• Business fit
– DSDL Phases
• Pre-project phase
– Project is identified and commissioned and necessary funding is committed
• Project life cycle phase
– Feasibility
» Business requirements
» DSDM’s suitability as a methodology for project
» Project Scope
» Risk
» Technical solutions
» Cost and timelines
» Quality test
16. DSDM and Agile Unified process
– Business Study
» Gather business requirement and what to include in each
iteration
» Prototype planning
– Functional model iteration
» Convert requirements into models
» Create working prototypes
– Design and build iteration
» Develop, integrate and test
» Writes user documentation
– Implementation
» Install and test in the customers working environment
» Test customers
• Post project phase
17. DSDM and Agile Unified process
– DSDM core techniques
• MosCow principle
• Prototyping
– Demonstrates proposed software to the customer
• Workshops
– Discuss project related issues
• Visual modeling
• Configuration management
18. DSDL and Agile Unified process
• Framework for iterative and incremental development of software
• Simplified version of RUP
• Number of pre production phases and one final production release
• The agile unified process
– Phases
• Inception phase
• Elaboration phase
• Construction phase
• Transition phase
– Disciplines
• Modeling
• Implementation
• Testing
• Deployment
• Configuration Management
• Project Management
• Environment
– Principles
• Provide high level guidance
• Simple and concise
• Conforms with agile principles
• Focus on value
• Independent of toolsets
• Tailor process to suite needs