In Agile Software Development Methodology, it is the responsibility of every member of the team to maintain the concise documentation (Agile Documentation) of work done parallelly. One thing to remember here is- documentation is required to track where we are. The focus should not be on comprehensive documentation.
Here is the list of documents that are required to maintain at different levels of product development as shown in Figure.1
Figure 1: Agile Methodology Phases and Documentation
· Requirement Documentation
· Design Documentation
· Developer Documentation
· Tester Documentation
· User Documentation
· Marketing Documentation
Requirement documentation includes what is the need of the project. It’s different from Software Requirement Specification document (SRS) or Request for Proposal (RFP) that costs IT Software development companies a lot of money. It should include product vision, roadmap. It should be shared with every member of the Team. Design Documentation is required to have a detailed overview of the product, for transparency and later used for inspection and training. It includes timelines, backlogs, detailed flow diagram covering the customer requirements perspective. This document is required to have a common understanding for the team. Though it does not include any low-level details. This documentation is the outcome of many calls between customers, Project managers, and Lead Members.
Developer Documentation includes source code, comments, API references. Though GitHub and Gitlab are great sources for developer documentation. But the developer must follow standard practices for coding. Meaningful comments and suggestions, following Nomenclature, avoiding hardcode secret credentials, and following language guidelines improve the readability of code. Sometimes it’s difficult to review our own code after some gap. So, the developer should have code hygienic practices in mind while developing.
Tester Documentation includes a test plan, sequence of test cases covering all the stories for sprint and test reports. Documentation helps the team to estimate the testing time and effort required. It helps to improve the quality of the product.
User Documentation is the manual. It includes the steps that users should follow for using the software product. It is completely different from technical documentation. Sometimes there are complex scenarios while using the product, that are required to represent and write simply. This document is considered as an issue tracker for the user.
Marketing Documentation includes promotional materials that distinguish the product from other competitors in the market. It covers FAQs and support provides to customer queries. Agile Documentation includes critical things, not the obvious things as depicted in the table below:
Table 1: Content Covered in different documents
Accuracy and Quality of documentation have been the major area of research as surveyed in [1][2]. Several techniques and metrics have been presented by the different researchers to determine the quality of documentation at a different level of development as discussed and investigated in [1]. The researchers made clear that accuracy is not the only criterion to judge the quality of the document. Agility Documentation is required to be simple and carefully designed in terms of content, effectiveness, and structure.
How we Deal with Documentation at AgBe
In AgBe, we follow Agile Methodology and use different modes of communication for share and knowledge transfer. Kanban and Scrum are the common frameworks that are used at AgBe for project implementation. We believe it’s a must to produce a quality document for scalability and customer satisfaction. Documentation is of great support, especially when a new employee is going to join the team or communicate and share content with a third party involved in software development. Documentation (includes Project Timeline, Use Case Diagram, Flow charts, database model, business diagrams) related to project design and development smoothen the onboarding process. Microsoft Teams conversation, Work Flow Modelling, Video Recordings of informative sessions, Trello, GitHub, GitLab are the few resources that we used and find as some better ways of communication between the team. The team feels flexible to share their feedback and reviews through these tools. It has been seen that detailed and regular communication on projects reduces the need for comprehensive documentation. The approach is to maintain a document that is required to move forward and there should not be a gap between the understanding of developers and stakeholders.
References
[1] https://t2informatik.de/en/blog/software-development/agile-documentation-in-software-development/