Meshing Agile and Documentation-Driven Methods in Practice

The motivation for this thesis originates in software development practice in the increasing interest in the adoption and diffusion of agile methods in software organizations; even by organizations complying with quality standards, representing the documentation-driven approach to developing software. While agile methods promise to deliver software with flexibility and without excessive cost; documentation-driven software development methods promise predictability and stability. Examples of agile methods are Scrum and eXtreme Programming. An example of a documentation-driven method is the Structured Systems Analysis and Design Method; documentation-driven methods are also associated with the Waterfall model and various quality assurance standards such as the Capability Maturity Model Integration and ISO standards. The agile and the documentation-driven methods appear contradicting at first, but the literature reports on a few scattered examples of software organizations that have succeeded in implementing a software practice meshing agile and documentation-driven methods. However, due to a lack of empirical research documenting this compatibility, it is not well understood how to implement a software development practice that meshes agile and documentation-driven methods. This thesis addresses the research question: “How can the agile and the documentation-driven methods be meshed in practice? ” The research builds on a literature review (providing a theoretical background) and two case studies of the development of safety-critical software. In safety-critical software development, the software practice is by law subject to strict requirements from quality standards, it is therefore discussed whether or not agile methods are suitable in these cases. The first case study presents the challenges of adopting quality assurance in an agile software practice in a small software organization, while the second case study reports on how a software practice meshes the practices and principles of the agile method of Scrum and the requirements and recommendations of the US Food and Drug Administration standard. Based on the literature review nine elements of agile and documentation-driven methods were identified: 1) management style, 2) customer relations, 3) people-issues, 4) documentation, 5) requirements, 6) development strategy, 7) communication and knowledge sharing, 8) testing and 9) culture. As this thesis is concerned with practice, in the discussion these are referred to as practice areas. The case studies provided findings on how to mesh six of the nine practice areas. Meshing the practice area of customer-relations is difficult. An agile customer relation can hinder the implementation of the documentation-driven customer strategy due to a high level of trust between the parties. Implementing agile customer relations can also be difficult in a documentation-driven project as such a relation is not prioritized by the management. The practice area of documentation is the hardest to mesh; the amount of documentation required by documentation-driven methods is not supported by the agile methods. The practice area of requirements is difficult to mesh. The challenge is related to the documentation of these. The practice area of development strategy can be meshed. A software organization can mesh the agile and the documentation-driven methods by dividing the software practice into short iterations within long-term milestones. The iterations will however be affected by the milestones as the passing of these are dependent on certain activities, for example writing documentation. The practice area of communication and knowledge sharing strategies can be meshed, but will most likely be dominated by the documentation-driven codification strategy. The practice area of testing is difficult to mesh. Both developers and management need to realize the advantages of test-driven software development.