Documentation in Agile Development Christina Gu Jason Lee Stephen Smith Agenda • • • • • • • • • • • • Background Problem Statement Methodology Agile Overview Literature Search Case Studies Scrum Agile Document Development Framework (S.A.D.D.) DoD’s effort to embrace Agile Conclusion and Recommendation Website Reference Questions? Background • The current economic situation is driving contractors to look at more lean operating methods for project development. • Especially true for government contractors working with the Department of Defense. • One method pursued is to switch from a waterfall model to the more lean Agile method. Figure 1: Defective and Wasteful Requirements in Traditional Development Process [4] Problem Statement • Sponsor: Boeing • Problem statement: • Is Agile sufficient for satisfying documentation needs on DoD mission-critical systems? • How is documentation impacted by adopting an Agile methodology? • Deliverables: • Report on Agile’s ability to meet documentation needs with a framework developed for documentation generation. What is a mission critical system? • Systems critical to DoD’s ability to meet its responsibilities and include command and control systems, satellite systems, inventory management systems, transportation management systems, medical systems and equipment, and pay and personnel systems Documents of primary interest Milestone Review (Per DoD 5000) SRR Documentation of Relevance PDR CDR Figure 2: Technology or Initiative Transition to Program of Records (MITRE, 2010) SSS – System/Subsystem Specification SRS – Software Requirements Specification IRS – Interface Requirements Specification SSDD–System/Subsystem Design Description SDD – Software Design Description IDD – Interface Design Description TEMP- Test and Evaluation Management Plan SEP- System Engineering Plan Methodology • Literature research • Ideas behind the Agile method and how it impacts documentation • Existing methods for generating documentation in Agile • Case studies • Interview various companies with regards to projects using Agile. • A look at the approach to documentation used in each of the projects. What is Agile • A set of software best practices strung into an official set of principles in 2001 as the Agile Manifesto. • Principles of Agile: • • • • Individual and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Respond to change over following a plan Key Aspects of any Agile Methodology Agile Methodologies Iterative Planned modification of parts of the system. Assists with modification of design and requirements Incremental Develop parts of the system separately and integrate. Assists with improving overall methodology Self-Organizing The team has the responsibility of organizing its internal dynamics. Emergent The set of tools, techniques, development environment, and requirements emerge in the process Agile Misconception 1. 2. 3. 4. Agile is a “Pizza Box” Methodology Agile is an All-or-Nothing Methodology Traditional Development is Inferior Becoming Agile Only Affects the Developers Scrum Agile • Key Components of Scrum Agile: • • • • Cross-Functional Teams Product Backlog Timeboxed Development Iterations End of Cycle • Origins of Scrum • Japanese OR Advancements • Incremental Development in the U.S. • Object Oriented technologies in software Scrum Agile http://www.scrumalliance.com/pages/what_is_scrum Traditional Systems Engineering Document Generation vs. Agile Systems Engineering SRR •REQUIREMENTS -->SRS, IRS, SSS, etc. SDR •System Design Review --> SEMP PDR •Preliminary Design Review -->SDD, IDD, etc CDR •Critical Design Review --> SEP, TEMP Traditional Systems Engineering Documents Generation Agile Systems Engineering Document Generation DoD’s Effort to Embrace Agile The DoD is in the process of changing its Defense Acquisition Guideline to better serve Agile Software System Development Figure 3: MITRE’s suggested DoD IT Acquisition Process [2] Principles of Agile Documentation • Generate “just enough” documentation • Should satisfy the objectives of the use for the documentation. • Do not generate if not planning to be used. • Used to transfer knowledge in the team and between teams. • Agile tends to keep knowledge within the team. • Knowledge transfer is essential for add-on projects Two Approaches to Documentation in Agile • Method 1: Adapted Agile • Use DoD standards as binding constraints to the Agile effort. • Documentation must be generated to support periods of customer reviews • Full and complete documentation expected • Plan a full documentation update with each appropriate iteration with emphasis on the last iteration to generate complete deliverable documents. • Ideal for contracts already in work with waterfall style program management. Two Approaches to Documentation in Agile • Method 2: Aligned Agile • Documentation is generated as needed during the Agile implementation. • Customer understanding of the differences in Agile method is essential. • Customer must agree to less documentation that is generated only to meet documentation objectives. • In-progress reviews and supporting documentation are also broken down to match better with shorter development iterations. • Ideal when terms of documentation can be negotiated with the customer. • Suggested for company-wide migration towards the use of Agile methods. Project Case 1 • Raytheon • Method: Scrum Agile • Documentation method: Adapted Agile • Size of Project: 6 months • Notes: emphasis on generating documentation to meet customer review dates, heavy on documentation updates on the last iteration Project Case 2 • MITRE • Method: Hybrid Scrum Agile • Documentation method: Adapted Agile • Size of project: 3 years • Notes: Used a requirements governance council. Phased project according to spiral development ideas but fit with Agile development on every spiral. Project Case 3 • MITRE • Method: Hybrid Scrum Agile • Documentation method: Aligned Agile • Size of project: 1 year • Notes: Most documentation was done after the fact to reflect the true state of the system and to reduce rework on documentation. Placed heavy emphasis on labeling documentation as complete only if it can transfer knowledge to a team that has not previously worked on project. Project Case 4 • MITRE • Method: Hybrid Scrum Agile • Documentation method: Aligned Agile • Size of project: 2 years with 4-week long sprint cycles • Notes: Used a requirements committee to continuously align with customer needs. Heavy emphasis on documenting requirement changes. Key Concepts of the Framework • Designed to align with Scrum Agile • Integrates to become a seamless part of Scrum Agile The Core Concept: • Definition of Done Framework Detail (1 of 2) • Examine Required Documents Perform detailed analysis of projects documentation requirements defined by stakeholders • Finalize Contract Agreement Reflect any changes/additions and finalize contract in terms of documentation requirements • Develop Product Backlog Add relevant tasks associated with documentation to Product Backlog Framework Detail (2 of 2) • Sprint Work on document(s) • End of Cycle Review Evaluate completed work on document against definition of done. Present current work to stakeholders for review. If completed, handle accordingly, if not, prep for next sprint. Conclusions • The Agile methodology can be used to satisfy documentation needs for mission-critical software development for the department of defense with some modifications from its pure form. • Customer interaction and acknowledgement of the differing needs for documentation using Agile is key. Website • For more information please visit our website at: http://mason.gmu.edu/~slee32/index.html Reference • Larson, E., Peters, J. Preparing the U.S. Army for Homeland Security: Concepts, Issues, and Options, Issue 1251. RAND Corporation, 2001. • D. K. M. R. B. M. C. Carlton Northern, Handbook for Implementing Agile in Department of Defense Information Technology Acquisition, The MITRE Corporation, 2010. • Standish Group. (2010). Chaos summary 2010. Boston, MA: Author. • Session R. (2009). The IT complexity crisis: Danger and opportunity, Houston, TX: Object Watch. • Beck, K., Beedle, M., Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., et al. (2001). Manifesto for Agile Software Development. http://agilemanifesto.org/ Accessed April 24, 2013. Reference- cont. • Scrum Is an Innovative Approach to Getting Work Done. The SCRUM Alliance (2010) http://www.scrumalliance.org/pages/what_is_scrum Accessed April 27, 2013. • Burton, D., Hammons, C., Lapham, M., Schenker, A., Williams, R. (2010) “Considerations for Using Agile in DoD Acquisition.” http://www.sei.cmu.edu/reports/10tn002.pdf Accessed March 19, 2013. • I. G. Stamelos and P. Sfetsos, Agile Software Development Quality Assurance, Idea Group Inc (IGI), 2007. [also steve figure 1] • C. G. Cobb, Making Sense of Agile Project Management: Balancing Control and Agility, John Wiley & Sons, 2011. • P. Schuh, Integrating Agile Development in the Real World, Charles River Media, INC, 2005. Reference- cont. • K. S. Rubin, Essential Scrum: A Practical Guide to the Most Popular Agile Process, Addison-Wesley, 2012. • Ralph Hughes and the Ceregenics Data Management Team, Agile Data Warehousing, Delivering World-Class Business Intelligence Systems using Scrum and XP, iUniverse, 2008. • Forward, A. (2002) Software Documentation – “Building and Maintaining Artifacts of Communication,” www.site.uottawa.ca/~tcl/gradtheses/aforward/aforward_thesis.doc Accessed March 30, 2013. • DAGS (Defense Acquisition Management System), Enclosure 2 of DoD Instruction 5000.02, Operation of the Defense Acquisition System, Defense Acquisition Guidebook • Dr Steven J. Hutchison, Achieving Enterprise Agility in DoD IT Acquisition, 2010 Reference- cont. • K. A. Saleh, Software Engineering, J. Ross Publishing, 2009. • R. Mall, Fundamentals of Software Engineering, PHI Learning Pvt. Ltd., 2009. • D. Panchal, "Scrum Alliance," 03 September 2008. [Online]. Available: http://www.scrumalliance.org/articles/105-what-is-definition-of-done-dod. [Accessed 27 April 2013]. • Scrum Alliance, "Scrum Alliance, Transforming the World of Work," [Online]. Available: http://www.scrumalliance.org/pages/scrum_artifacts. [Accessed 4 April 2013]. Questions & Comment