Sometimes, by trying to achieve more and be a perfectionist, you might actually end up shooting yourself in the foot.
Do you have a habit of over-engineer your projects?
Sometimes, by trying to achieve more and be a perfectionist, you might actually end up shooting yourself in the foot.
Do you have a habit of over-engineer your projects?
For further actions, you may consider blocking this person and/or reporting abuse
Michael Tharrington -
Nadia -
Martin Persson -
Ethern Myth -
Top comments (25)
Generally speaking I would say no but, over-engineering is maybe also a matter of perspective?
What I see as over-engineered may not see by others as over-engineered or the contrary, you know what I mean?
⭐️⭐️⭐️ Out of topic ⭐️⭐️⭐️
@mazda excellent choice of cover image 👍
The Wenger Swiss pocket knives were produced in my home region. They still manufacture knives but, have been incorporated in a bigger brand years ago (10 or 20 maybe).
This cover image is almost of a piece of history of local engineering, it makes my day 😃.
Switzerland is the first thing that comes to my mind when I see or hear something about them 😉👍 Same about watches and banks 😀😀
The inner desire for future-proofing, perfectionism is there. I get it out of my system on personal side projects. Professionally, I am quite extreme in simplifying, doing what's good enough until I have proof that I need more.
How long did it take for you to develop that skill? And did you learn the hard way by overengineering at the beginning, as well? 👀
Like any skills, it was probably gradual and my managers and mentors had probably tried to teach it to me for a long time.
But I remember ~8 years into my career I was working for a very small consultancy (which as opposed to product companies often have widely different deliverables for different clients/projects) company, and our roadmap was just packed full and we were really overbooked.
Our VP of Engineering was a master at juggling and making seemingly impossible amount of work fit, and under her guidance I learned to do the MVP and release.
So I would say, real-life constraints really helped learning the skill.
I now work for another type of business and schedules are comparatively much more comfortable, and I am trying to unlearn this extreme survival focus to allow for more balance, worthwhile tech investments without falling back into over-engineering.
Did I learn the hard way: yes, I would say I learn most things the hard way. It's not that big of a deal if the professional culture allows for learning and failures (which it should) and has fast iteration cycles.
I do the same thing.
SBTCVM, my balanced ternary (base 3) virtual machine, in its prototype codebsse, had a GUI 'launcher' that in a weekend got virtual 'windows' in 90s sim game style...
Eventually, i did end up writing a python/pygame framework,
StrazoloidWM
, to do the same thing... the framework ended up a LOT less complicated as well... ive used it in a gopberspace client:Zoxenpher
, which comes complete with a retro 'desktop' look.So ironically, even that launcher feature born out of overengineering, was in itself WAY more complex than it had to be...
Oh yea, that launcher, and several other GUI tools that SBTCVM's prototype codebase eventually got, had an entire theming system... that, however, never led anywhere other than: 'not doing that again...' :p
So yes, i have put myself in more than a few situations, where my code complexity blew up in my face... XD
Hahah, thanks for sharing 😀😀
For the most part, I only over-engineer the model layer of my applications, largely because I'm worried about future-proofing.
The reason I find myself more anxious about M than V and C, is that you can re-write an API/controllers, or re-develop your front-end at any time, but if you try to mess with the data models in a data-driven application in production you'll probably have a rather bad time.
I guess this comes from your personal experience in past, when not putting enough effort into the model layer caused you headaches later on!? 😉
Yes 100% I love to over-engineer to learn stuff how it works 😅
Example: In my project, I don't need Memcached to cache the queries we can achieve it only with Redis, but I love to Install Memcached and compare which one is fast 🤣
PS: All happens in production servers 👀
There is a bright side to the coin as well 👍💯
For my job, no not really since there's always tight deadlines. But for my personal projects, definitely! It really takes some will power for me not to over spec applications I work on and to eventually decide when its 'complete'.
Set tight deadlines for your personal projects, as well 😀😀 But then again, you remember the only person responsible is you and you overengineer anyway 😀
I think everyone has. I definitely am guilty. I feel it was not until I decided to take a shot at doing my own startups full time, in 2009 did I realize how much time I was wasting on overengineering vs good enough and still be elegant.
I feel it takes skill to differentiate these two, which only comes by experience once you have gone through it, like you said 😉
It is hard to say. More of violating the YAGNI.
Also sometimes, rewriting the code for nothing, or creating a new repo for nothing.
Right now I have a code I'm working on, I think my first solution is too crude so I want something more elegant, right now I think ave shot myself in the foot.
Don't worry 😉You are not the only one 😀😀
I knew I was not the only one 😀😀
Is the software into the hands of a lot of users, does the servicing side have multiple developers. If some of this is true, over engineering may be good. Otherwise is bad...
I do that a lot, end up being confused with a lot of open ends , with no solution in hand . Gives a lot of learning but delays the task in hand .
This is exactly 💯 how I feel! 😉
Very well put! 👍
Oof, I'm in this title and I don't like it.
I for sure shoot too high on the first go. I need to be better about focusing small, getting something working then adding onto it later.
I have also learned the hard way that 'simple' is not 'easy' 😉