DEV Community

Discussion on: How do you identify "over-engineering"?

Collapse
 
yerac profile image
Rich • Edited

hey, what happens if the customer needs this feature in the future?

Although there is a big advantage to stepping back during the design process and thinking of extensibility or abstractions which will allow features to be expanded easily, or suit alternate approaches without mass refactoring. Sometimes, these thoughts come at a later implementation phase, and we have had big wins by doing iterative stuff at a later point to "enhance" the offering rather than go back via the planning and design phases.

There is a big difference between "gold-plating" and forward-thinking, and the line between the two is extremely fine and easy to end up on the wrong side of!

Collapse
 
gsto profile image
Glenn Stovall

I agree, and I think the difference is in how you approach it. You want to leave yourself open to extension, but not over-extend.