Why requirement understanding is important in software engineering.

Minat Silvester
CodeX
Published in
4 min readApr 9, 2022

Implementing any software product to work at is best requires an understanding of the overall vision, the purpose, the data that will need to be captured for logical flow, and the logical flow itself. When the subject matter expertise is well defined, a software project providing solutions for any problem can be crafted. But when situations arise where you are trying out something new and the SME is not really well defined, then the requirements tend to keep changing which can lead to disastrous situations that affect all the stateholder,below are few of the major problems that you will face when requirements are not well defined.

Constant minor changes throughout development

Altough it might seem like idea overall idea is clear and some level of confidence comes out of it, there will be minor changes to be made everytime a demo happens, and these minor changes pile up and eventually pull down the development efficiency since the developers will be forced into situations where they have to keep toggling between the work they are supposed to do today and the changes they have to make from the pervious works. The end result is that these kind of task pile up leading to more toggling and most often none of the task gets properly completed leading to adverse effects on decided deadlines.

Misunderstanding in communications

Now we know that the requirements are not properly established it is safe to assume that then something is said, most often they reflect differently in the developers mind. Development happens as stated and understood then and there, but when there is some additional work to be done or the part of the code in that sections needs to be extended then you find out it cannot be as it was misunderstood earlier and needs to be totally revamped. Every single word used by either of these person in their conversation has the potential to entirely mislead the development process in an unexpected direction

Unrealistic Timelines

Misunderstading very often leads to underestimation of the task at hand. Somtimes it can also be the opposite where a lot of work is done and then it all goes to waste because it does not meet the requirements or worse it was completely out of scope of the client’s requirements. But this underestimation leads to deadlines which may be way less than the actual time required for the actual task to be completed or way more time for the actual task to be complete, Although the latter occurs rarely and more often is realised too late, the former will be seen a lot and will simply keep pulling the all the development effort down.

Conflicts among people building the product

Tensions increase as the efforts made look more and more inefficient. Altough a lot of work has been done, most of it has turned out to be wasted effort. The team really does not have anything to show for their efforts and no reason to justify the delay even after all those efforts. Though not clearly visible, this leads to lot of unrest among the workforce affecting both their personal and professional life.

So How do you get your company out of such situations?

Well, there are a few ways

Standerdized operating procedures.

When standerdized, employees will start seeing their work reflect positively thus setting a clear positive environment. But this cannot be done in parallel continuing the already going on work. Every one in the workforce kust be asked to halt their work, the current state of the overall product combined wth everyone’s effort should be compiled and then standerdized before starting the work again.

Proper documentation of the requirements

This will be big part of standerdizing process and from then on every tiny requirement will have to be documented and discussed as to how to approach and meet it. Documenting and discussing in this way will lead to a huge reduction in miscommunication and ensure everyone working on the product is synchronized.

Make communication tranparent

Simply make sure that all main stakeholders are involved in decision making and that the decision made and why it was made should be clear to everyone. When this becomes transparent, it automatically gets the entire team in sync and build a better working space where everyone knows what they are doing.

Conclusion

These are the few problems and the proposed solutions that can be implemented in such problematic situations that worked to some extend for us. Although the change to getting standerdized might take some time, It will for sure increase productivity. I hope you find this article useful.

--

--

Minat Silvester
CodeX
Writer for

Engineer, Nerd, Elixir/Phoenix developer, Machine Learning Engineer, Soon to be successful entrepreneur www.minatsilvester.dev #elixir #python #reactjs