Sometimes we have this gut feeling that we need to change things radically and head to a new completely different direction. It is common in such a situation to experience strong resistance to change by partners and colleagues. Arguments such as “This will take too much time to implement”, “We do not have enough resources to work on this in parallel with the current product lines”, “Are you sure this is what customers need?” are very common when one drops the initial idea of re-writing a software product from scratch.
Every product follows a cycle and in particular software products reach soon a point where the addition of brand new features or the implementation of major improvements are almost impossible given specific and limited resources in a tight time-frame. At that point one feels that the experience accumulated from the development of the current version in terms of both technology and better understanding of customer needs can support the effort to redesign it. After all, customers tend to demand new features and as soon as they get them, they demand even more, which is to a degree justified by their ever changing needs.
No architecture and software design can anticipate and survive the changes coming in more than 2-3 years even if its prepared by the most visionary architect. Therefore, when you feel like Columbus proposing a plan to sail directly west across the “Ocean Sea“, and you are sure that you have the courage to lead the “operation”, don’t hesitate to fight and eventually convince experts, executives and colleagues about the value of your vision, because apart from commitment, success requires sacrifices and taking high risks…