Agile software processes and practices: setup, experiences and success factors Johan Platteau Leuven 8 June 2009
Agenda
Agility
Agile overview
Software iterations
Requirements & planning
Practices
Experiences
AgileTeam Value Proposition
Organizational Drivers:
* Growth
* Distribution of software
production
Software Industry Market Drivers * Positioning of software products to new target groups * Customizations of products ICT intensive enterprises Business drivers * Decrease time-to-market * Build the right software * Software that follows business changes Organizational Drivers: * Measurement of real progress of development investments * Improved quality of software * Technological & business innovation * Integration of other products as a result of a merger or acquisition * Reliable & predictable delivery of working software AgileTeam enables the software evolution while maintaining the sustainable software release pace AgileTeam enables ICT to incrementally deliver qualitative working software based on the right business requirements
Agility defined
Is the early and continuous delivery of working valuable software products
Delivery at a sustainable pace
Has value for the customer
Agility illustrated Start Planned result Plan Driven Needed result Agile
It takes 3 sprints to get to your level of productivity
Agenda
Agility
Agile overview
Software iterations
Requirements & planning
Practices
Experiences
Agile requirements Iceberg principle
Clear requirements on top (small : user stories)
Unclear requirements under water (big : epic)
Allows for making progress without detailing everything upfront
Clear requirements are delivered
Unclear requirements are fleshed out before next iteration/release
Requirements Product Backlog
Planning
Size = “bigness” of a requirement
Effort and duration are derived from size
p.
A Release Plan Size Time Cost = # sprints * Cs Cs = constant = # FTE in team
Agile Planning key points
Mike Cohn « Agile Estimating and Planning pp. 49-51
Small planning/sizing efforts are rewarded with big gains; more effort leads to diminishing returns
Frequent re-planning
Plan at different levels with different precisions
Release plan on requirements estimating in size
Sprint plan on tasks and hours
Planning effort
Agenda
Agility
Agile overview
Software iterations
Requirements & planning
Practices
Experiences
Trends
Agile Practices
Automation of different types of tests (unit, functional, acceptance testing)
Test Driven / First Development
Keeps level of unfinished work low
Favor black box over white box
Continuous integration and build
Sine qua non for ability to deliver frequently
Pair Programming
Contested
Agile Practices
Architecture & Design
Evolutionary good enough solutions
Refactoring
Agenda
Agility
Agile overview
Software iterations
Requirements & planning
Practices
Experiences
Experiences: software teams By the book Not invented here team XXXXXXL
The not invented here team Not invented here team
Team performance outperform meets expectations underperform Not invented here team
Productivity
Productivity
Successful practices Practices Used Benefits Delivering working software every sprint Visible product progress from end-user point of view Daily Scrum Quickly raising issues blocking progress Team members help on tasks that are blocking progress Team collaboration Emphasis on informal regular communication over written documentation Improved functional knowledge among the whole team improving quality Release planning Estimate in “points” instead of tasks/man-days creates a committed plan between product owner and team
The XXXXXXL team XXXXXXL
Team performance outperform meets expectations underperform XXXXXXL Not invented here team
Successful practices Practices Used Benefits Align heartbeat between teams Respect time to market commitments Scrum of Scrums (daily scrum for multiple teams) Ability to stick to tight deadline Setup of integrated development practices (configuration management, automatic code review,…) Improved intra team collaboration
The by the book team By the book
Team performance outperform meets expectations underperform XXXXXXL By the book Not invented here team
Pitfalls Pitfall Consequence Scrum is complete Product Management: no tangible vision and roadmap leaving the team to go in all directions. Software architecture: no shared technical vision, roadmap and implementation. Lesson learned : Agile processes should be complemented with other disciplines Scrum team is self learning by the process itself Too much reliance on the learning aspects of an agile team (retrospective, pair programming,…) had as consequence that underperformance was ignored by management and team. Lesson learned : after 3 sprints you get a good idea about the performance of a team. Measure progress!
Team performance outperform meets expectations underperform XXXXXXL By the book Not invented here team
Experiences wrap-up What is working Time to market Software Team organization Dealing with changing requirements
Promise of Agile Development Start Planned result Plan Driven Needed result Agile
0 comments
Post a comment