4

Do you have a habit of over-engineer your projects?

 3 years ago
source link: https://dev.to/madza/do-you-have-a-habit-of-over-engineer-your-projects-1eo5
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Cover image for Do you have a habit of over-engineer your projects?

Do you have a habit of over-engineer your projects?

Jan 8

・1 min read

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?

Discussion

Subscribe

pic

CollapseExpand

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 😃.

Comment button Reply

CollapseExpand

Oh, certainly. When I’m making something that should take around five hours or so I almost all ways find myself re-inventing the wheel to make things overly efficient and organized. Which then ends up taking me 15 hours.

Comment button Reply

CollapseExpand

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

Comment button Reply

CollapseExpand

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.

Comment button Reply

CollapseExpand

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.

Comment button Reply

CollapseExpand

I usually try not to, using TDD (Test-Driven Development) in order to code the smallest, simplest solution that solves the problem, and then refactoring from there to improve the code. Ofc, it's not that simple, but if you extend the idea from just the code to the whole project, it's easier to end up with just the right solution, not too big but also not too small

Comment button Reply

CollapseExpand

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.

Comment button Reply

CollapseExpand

I think it comes from inexperience or it’s a personal trait - those are the two types of people I see do it.

I’m on the other end. I sometimes start by reducing a solution too much and have to add a little more sophistication. Adding to software tends to be a better proposition than removing, so I like my approach.

Comment button Reply

CollapseExpand

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'.

Comment button Reply

CollapseExpand

It is hard to say. More of violating the YAGNI.

Also sometimes, rewriting the code for nothing, or creating a new repo for nothing.

Comment button Reply

CollapseExpand

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.

Comment button Reply

CollapseExpand

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...

Comment button Reply

CollapseExpand

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 .

Comment button Reply


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK