Seasoned project managers and experienced software engineers know that expectation management is an important part of any successful software development project. And managing expectations dictates that all parties involved, from the systems analysts who are documenting the user stories, to the software developers who are building components, must be diligent about documenting the system. This means building clear and effective requirements documents.
Communication and understanding
The truth is that most humans have very unreliable memories. Given that all participants involved in the software development process are prone to forget various details about what may have been requested over the phone or in a face to face meeting, the experienced software developer knows to keep good records and to effectively document any formal and informal change requests.
No matter if we choose to communicate our understanding of what we have been tasked to do on paper napkin, or using a complex design tool, having documents supporting and defining the project requirements allow software developers to prove that their applications are doing exactly what was requested. This, in turn, makes the difficult process of getting sign-off from stakeholders much easier, not harder. From Agile to Waterfall, requirements are there to keep every stakeholder in the software development process playing fairly, and when everyone is playing fairly, people tend to be more reasonable.
When software engineers learn to treat requirements with the same reverence they do their source code, the real value of things like requirements checklists can be seen as something of value. When good documentation is combined with a quickly evolving software project, software developers can be working on implementing version 1.0 components, while systems analysts can be working to define components that will be part of a future version. Knowing how the software being developed today will evolve in the future can often dramatically impact the way good code is written.
Learning to love your documents
Managing, updating and maintaining an evolving set of requirements documents is not an evil process to be avoided. Requirements are not evil. Requirements are a software developers best friend, and by using them effectively, teams will run smoother, components will be developed more effectively, and expectations can be managed effectively across the board, so that when the development team releases their final product, none of the stakeholders involved will be disappointed.
Let us knowabout your experience with the benefits of maintaining good software requirement documents.