This morning one of my “connections” over on LinkedIn posted this image illustrating the difference between what a client wants and what they have budget to pay for:
This made me think of all the parts of any software development project where there is a potential “gap” that we as software developers spend our time trying to plug. Here are just a couple of the typical gaps we try to mitigate:
Requirements – We try to minimise the gap between the documented requirements for a project and what the actual requirements of the end users are. There are several approaches to solving this but in my experience having a close working relationship with the end users is definitely a step in the right direction. Get early version to them for their comment as soon and as frequently as possible.
Development – Here we’re trying to minimise the gap introduced by developers when actually implementing the requirements. Gaps introduced here can be due to lack of understanding of the requirements, issues raised that prevent the requirements being delivered as specified or just development errors.
There are a ton of other places during the software development process where gaps are introduced. In fact if you think about every conversation you have regarding a feature, there is always a risk that you’re introducing a gap as a result of miscommunication or a lack of understanding on what needs to be delivered.