Whenever there is a delay in software project delivery, the usual reaction is blaming it on the unclear and ever-changing business requirements.
Edward Berard, author of the Object Oriented Software Engineering, once said “Walking on water and developing software from a specification are easy, if both are frozen.” and clearly it proved that point … or did it ?
We all know in the real world, business changes fast and therefore so are the software requirements. So it’s really no point to insist in freezing requirements before starting the software development, instead we shall consider :
1) How can we cope with changing requirements in our development lifecycle ? (Read : Scrum Development)
2) How can we make our applications more flexible and easier to change without affecting other parts of the system ? (Read : API and Micro-services)
3) How can we migrate / rollback production systems easily ? (Read : DevOps)
4) How can we lower the cost of infrastructure and failure ? (Read : Cloud infrastructure)
So, don’t blame it on the requirement changes, as change is constant. Let’s do a better job in developing the business software.
Development professionals, any thoughts ?