Don’t Let Business Requirements Ruin Your Software
For some developers, Business Requirement Documentation (BRD) is a cringe-worthy word. For others, it is their everything. I think that the appropriate place for BRDs lies somewhere in the middle.
Business Requirement Documents are simply a list of things that need to be developed by a software engineer. The business side of an organization will say “Hey, we need XYZ built for our customers! Here is a document that has everything XYZ should do.” The list of functionality for “XYZ” is marked down as “Acceptance Criteria” and the developer starts work on it. When the developer is done creating the software, it is checked against the acceptance criteria to ensure that the delivered software meets all of the requirements that it was set out to do. This is all how development works from a very high level.
To get more specific, there are two different types of development ideologies to achieve that process. One type of ideology says that once a developer gets the requirements for the project, they start working on it and create the software to exactly meet the requirements of the BRD. The flow looks like this:
Business owner gives the BRD to the development team.
Developer asks questions and clarifies the BRD.
Developer creates solution to address the functionality in BRD.
Developer gives functionality to business owner.
So far everything seems okay, the business owner got what they asked for, and the developer has accounted for what he was responsible for. I’ll pause a moment here to give a real-life example of how this can go poorly.
Business owner John needs to add a new drop-down list to a form page in an application. John builds out his business requirements to build the drop down with a tree menu. John does his best to try to explain what he wants in the BRD, then meets with the development team to go over the BRD and answer developer questions. The developer builds a tree menu and a drop down, and lays them out in the application separately. John didn’t explicitly say that the tree menu had to be inside the drop down. The BRD had been perfectly adhered to, but the functionality was not what was being requested. This resulted in another enhancement to be taken up in another development cycle to get to the desired functionality.
Now on to the second development ideology. Continuing with our example above, John decides he needs a new drop down with a tree menu inside of it. Here’s how it would flow:
John approaches his dev team about the problem and they have a conversation.
Together they come up with a different type of solution that uses swiping and panels, much like modern touch interfaces.
After the solution is agreed on by the business owner and the dev team, the business owner creates the BRD to match what was discussed with the dev team.
Developer gives functionality to business owner.
In this second scenario, John is happy because he got a better solution than what he was trying to accomplish, and the user is happy because the experience is much better. The developer is happy because he got to have input on the design, and he got to use a new technique that he’s been wanting to try. The relationship between business owner and developer is also better, since there is more coordination and better results. In addition, when business owners are intimately involved with the development process, their business requirements get markedly better over time. They also get better insight into the complexities of creating software, and gain knowledge of how platforms and systems work.
Users expect great experiences. I’m not trying to bash John or any other business person out there, but oftentimes the developers have access to new techniques and technologies that can make products much better. Simply put, when the developer is intimately involved in the design and solution phase, better solutions are created. I believe that in any software business, we should always try to minimize the distance between developer, business owner, and user. When business owners and developers work closely with users and each other, better products and experiences are created in a much more efficient manner.











