Why is it every time I try to take the simple approach and not over-engineer things, I end up regretting it and needing to change it to the "I thought this would be over-engineered" approach?

Like, seriously, this happens all the time.

This is why I tend to "over-engineer" early, because I have been burned by this *so many times*.

#Programming #PHP

@Crell it me.

“Maybe everyone has a point and it can be done in a simpler get it done fashion”
And then a lot of my forecasted risks and foot-guns are encountered in an almost inevitable fashion.

But “I told you so” is still taboo even in the professional environments I’ve been in so
*giant shrug*

I’m tired lol

@[email protected] I'm guilty of this. Spent weeks building a 'perfect' schema. Needed it in 5 minutes and had to throw it all out. The over-engineered approach becomes its own kind of over-simplicity.
@Crell Architectural and design decisions made in early or a toy/learning project will always look like "over-engineering"
@shudder It happens even in non-toy projects for me.
@Crell "Toy/learning" was just a possible alternative to the "early" you mentioned.
For me, when matured/scaled projects also seem obfuscated by technical solutions, it's usually the moment I remove quotes from "over-engineered"

@Crell the challenge for me is, finding the sweet spot. Build in enough flexibility, but build it simple enough for speed. I do not always succeed in this. But with my current team I think I did find it many times. This does mean we have to revisit parts of our application, always with reasons. When we take shortcuts, we always take paths that allow us to return. Dead ends are killing flexibility.

I think the term over-engineering only applies when you never need the complexity & flexibility.

@Crell in open source, I lose myself. Crossing boundaries I should not cross. This is definitely where I see a lot of over engineering.
But since I do not see my open source work as work... I accepted this. Things will go slower, this helps me again to learn how to do things better and make better estimates when it comes to customer projects.
@Crell We've been pbserving this at our company as well. In reviews we all tend to demand a "simpler" solution, and in the end the "over-engineered" thing saves the day. I think this happend mostly because we think to know all the edge cases (except for the edgy ones...)
@chaos0815 The line between over-engineered and "I've done this before and I have the scars to prove it and don't need more" can be very thin...
@Crell and you do get scars working on a 26 year old codebase!