Introduce my friend Jane and John.
John is a long-time analyst at a large company, responsible for capturing the needs of new software products and existing software products. He uses SRS (software Requirements specification) to record all customers ' requirements for specific products being developed or maintained.
Jane is a developer of the same company. She usually receives John's software Requirements Specification (SRS) and then starts to analyze and design the content to be implemented. After the analysis was completed, she started writing code implementations.
My two friends, John and Jane, need documents and design documents that require approval, and for John, the requirement document needs to be approved before it is sent to Jane, and for Jane, it is approved before the code is written.
Recently, John and Jane's companies have adopted an agile approach to project management and software development, which has changed the way they work. There is no need to develop a lot of upfront requirements and design, the requirements specification and development are cut into small pieces of information, discard the use of many years of large documents. The development approach of the developer has also changed, encouraging such practices as testing design before implementation and naming functions with longer names.
As expected, John and Jane raised a whole bunch of questions:
If we don't know what to develop in advance, how do we start developing it?
Where is the recording of functional data that is not recorded in the SRS used in the usual?
How do we know all the details to be developed?
Where are the documentation and code for future maintenance?
If there is no stage for writing a document, when do we write the document?
In the past decade, the application of agile methodologies in project management and software development has undergone a period of rapid development and is expected to continue to grow. In the transition to agile, seemingly loose development is completely different, not so traditional, so many people around the world will be like John, Jane throw the same problem.
When the company begins to move into the agile mindset, some of the differences in working methods are related to documentation.
This article will focus on why, when, how and where to develop technical and functional documentation.