Once in a while one find itself on a task where numerous WTF moments appear. You can imagine such a task?
Yes you can. It’s adding new features to legacy code/database or to a ‘WTF’ code base.
A ‘What the F***’ code base, a collection of lines of code that make you shout WTF more than is healthy. You can usually hardly call it a program. It’s a collection of blunders after blunders. Not testable due to lack of interesting unit tests, thus not refactorable (if that’s even a word) without adding a unit test.
And then comes the day. ‘Hi mister, we’d like feature X, Y, Z added to this application.’ You say, ‘ok’ and come back with a rough estimation after carefully reading the specifications. Architect and Programmers decide: ‘Should take about 4 weeks in optimal man days’, what the client then hears that it will take around 3 months. And so the waterfall started spoiling it’s liquid.