So Su Team : Web Development Tags : Web Development Issues Programming Rants

Maintenance without requirements

So Su Team : Web Development Tags : Web Development Issues Programming Rants

When a project is "completed" (hint: it's never completed) and goes into maintenance mode, its essentially polished with bug fixes and minor (or major) feature requests. In maintenance mode there are rarely well defined requirements. Any actual requirements from the bulk of the project work have long been forgotten or lost. Why should it have well defined requirements? Usually these changes are so minor, everyone is practically on the same page just from the 1 line description of the problem.

So what does this mean for the maintenance developer? 

Let me set the scene. This project has been running in maintenance mode for a few years, with a few major revisions, and many, many minor feature implementations and bug fixes. There have been corrections, revisions, recorrections, contractions to the requirements. Pick a document and chances are, it won't match what the system is currently doing.

Heres a typical change request, "Add a cart summary on the purchase funnel." No more, no less. Pretty straight forward. So the maintenance dev adds this summary, does deployment into UAT, and sends the work off to be tested. The tester does the test and rejects the work, saying "summary should display tax seperately for each line item". Ok, so the dev fixes this and deploys to UAT. Tester rejects again, "summary is too long and occupies too much screen realestate".

Stop there. Why is a tester trickle feeding a developer requirements? Who allowed this work to go foward without full scoping?

We tend to become complacent when we are working on a project for so long, thinking we understand exactly what a client wants, assuming we are all on the same page. Trying to take shortcuts because we want to avoid the overhead. It happens all the time, but the best thing to do is follow process. Scope out the work, estimate costs and budget resources appropriately.

Being on a retainer or support agreement doesn't give clients exclusive access to developer resources. Go through the proper channels and follow process.