I’m sure this has happened to you. Probably many times over your long career in software development. You wake up, take a long hard look at yourself in the mirror and courageously make that decision you had been wanting to take for the past few months. You go back to the office, take your manager aside and in a decisive tone deliver the news, the bad, bad, bad news: we need to rearchitect the system. All of it? No, that’s the best part! Only this (very critical, absolutely critical) small part. You don’t mention the “critical” part of course. You know better.
Your manager looks at you, silently thinks it over for about 0.35 seconds and then solemnly states: that sounds like a plan, make up the Gantt chart and deliver it to me, I’ll take it to the boss.
And so it is done. You have taken the first step to re-write (from scratch, obviously) that part of the system. Did you make the right decision? You say only time will tell?
I beg to disagree, and so does Uncle Bob. You just made the most stupid, crazy-ass, fully incompetent, narrow minded, ignorant, and hole-digging decision of your life and soon you will regret it. Hopefully for the rest of your life, so that you don’t do it again!
Re-architecting (read re-developing from scratch) a part of your system is the single most waterfall-ish idea that could cross your head — and it will make you fail…
I’ve been a developer that made that decision, and still regret it today.
I managed a project where I was the one accepting to re-implement that part of the system, and still regret it today.
And if that was not enough a colleague at work did the same decision and he is already in his 3rd re-implementation of a module that should take 2 weeks to implement (his words) and he has been at it for more than a year… (his boss is still saying “ok” after thinking about it for 0.35 seconds…)