Friday, August 30, 2013

Overenginering

In the real world, a designer or architecture might draw an amazing sculpture of building, then engineers tell them, "sorry man! this, that and those are impossible to do by physical laws."

In world of IT, business maybe want a simple service to record time and expense. Engineers or software vendor will add thousand of functions you don't need. Some of them are necessary, but most of them are not even close to nice to have.


Why?
First it's not only we have different playgrounds. Engineers are too narrowed focused and forget the balance. For example: Making everything configurable to "avoid hard-coding", with the effect that there's more (complex, failure-prone) application logic in configuration files than in source code.

Secondly, the tools and interfaces to application is constant changing. Engineers sometimes felt into latest and greatest trick. Lost focus on KISS and chase new cool shiny thing than actually business. Or opposite on suffering on legacy.

Third and last one, we treat the "IT stuff" like the dark voodoo magi. We blindfold ourselves, and believe how great we are doing.



Great reading on Overengineering and YAGNI

No comments: