Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's the remnants of the late 90's early 2000's software development overengineering disease, so aptly captured in the mess that was J2EE.

Similar to "nobody got fired for buying IBM", the mindset was that "nobody got fired for building layers of abstraction just in case."

It's the culmination of the second system effect.[1] Without a pervasive unit testing culture, the big enterprise answer to "what if" is "let's add a point of flexibility here."

Obviously, people should be held responsible for building unnecessary abstraction layers like that. They waste time and are often wrongly abstracted, so when you do need to go in to refactor, you end up having to fight the pre-existing "what if" abstraction.

[1] http://c2.com/cgi/wiki?SecondSystemEffect



That argument works well for application code, not so well for frameworks as you can never be 100% sure how it will be used.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: