Mission Critical Agile
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Adopting agile practices for mission critical systems, creating a “insurance policy”:
- sustainable pace
- broccoli planning, using a season beat as well as a heart beat; use the season beat to deploy small releases (to mitigate risks and grow confidence and credibility); synchronize your releases and system integration tests to the season beat, not the other way around
- use the week out of time between any two consecutive season beats to celebrate and reflect on the previous beat and plan the next
- order the product backlog:
- risk-driven order
- value-driven order
- theme-driven order: adopt a key focus or theme for every season beat
- broccoli governance, a.k.a. sociocracy—in fact, holacracy is the fruitful allegation of agile and sociocracy.
- test-driven development—evolve an ever growing test suite guarantees quality (also see Jini Community Pattern Language)
- continuous integration
- continuous deployment
- acceptance test-driven development using Gherkin language to specify acceptance criteria that can be tested automatically.
- vibrant personas
- persona teams
- customer on site
- scenarios define the wish
- gilb p-language
- behavior-driven development
- slash the code base and prune any code—smaller code bases are easier to grasp, contain less bugs; continuously refactor code using an ordered refactoring wish list.
- stable teams
- elegant design—simplicity, efficiency, consistency, completeness, coherence
- identify high-risk areas
- multidisciplinary teams
- cook a team
- pair programming to
- eliminate code review—there's a ton of objective, scientific even, information on why and how pair programming boosts quality, speed and productivity
- spread knowledge and principles, patterns and practices
- evolutionary prototype everything
- Use sacred ceremonies like sprint planning meeting, weekly product backlog grooming meeting, sprint review meeting, daily scrum meeting
- Drive the product backlog order by a shallow hierarchy of goals
- trunk only revisions minimizes or even eliminates the effort to merge, synchronize and coordinate branches and eases configuration management
- product owner formally accepts results
- foreign eyes audit quality—use an external party that reviews, audits, scrutinizes the product as a whole.
- Aim for low defect density, defined as the number of SIT (System Integration and Test) found defects per KLOC.
- Set a bug count ceiling and technical debt ceiling and make them come down.
- Define criticality class governs rigour (see http://artisansoftwareconsulting.com/blogs/?tag=agile-development)
Sources
- http://www.tem-sw.com/library/XP%20for%20Large%20System%20Mission%20Critical.pdf
- see sources at broccoli planning
- http://www.niwotridge.com/PDFs/ADC%20Final.pdf
- http://arxiv.org/pdf/cs/0701010.pdf
- http://artisansoftwareconsulting.com/blogs/?tag=agile-development
- http://www.agilejournal.com/articles/columns/case-studies/313-case-study-war-stories-fighter-jets-and-agile-development-at-lockheed-martin
- http://www.agilejournal.com/articles/columns/case-studies