Jeff Atwood argues that over-architecture and strict adherence to strong object-orientation (exactly what has to happen in “design for testability”) doesn’t work well when you start considering who’s going to have to maintain this stuff once you move on to a different project
Rob Conery summarizes it well:
The ability to creatively think and solve without religious boundaries is what makes developing fun. The OO police are probably gonna pile on here Jeff but well done in speaking up and telling us “Neo” – phytes to “Free our mind”.
Making something ridiculously complex for the sake of making it simple is like trying to put out a fire with gasoline.
Some programmers just need to take a deep breath and write code that is a delicious salami sandwich, and not an extravagantly prepared four course meal that tastes like shit.
I love that sentence.
Oren seems pretty pissed off and believes that a Company that will only code in a way that the average programmer would know – is Stupid. But hey, there might be some sense in what this company does. Take a look at the comment to Anders Norås blog Balancing maintainability, readability and testability.
Introducing this kind of abstraction throughout the code of a large app seems like a daunting task when there are several people that is going to write the code.
So are we going to be religiously coding toward OOP or are we going to Program fOr Others and as Jeff says:
consider the poor sap who will have to read and support this code after you’re done with it.