Live data from Hacker News

Ask HN: Code examples to find out if a person is addicted to “overengineering”

news.ycombinator.com

41–50 of 52 posts

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#42
post #19

Are there actually experienced developers who still overengineer? I always thought of that as something that happens from the lack of experience. Straight from university developers, or people who never worked with a team before tend to do that, but I can't see how you will hold off this attitude after a bit of experience. And unless you're letting an inexperienced developer lead your team I can't see the problem. As…

I have seen experienced developers that overengineer. It's hard to definitively know why, but I suspect sometimes it's so they can get some new "thing" on their resume or added to the approved toolbox for their team.

I tend to think of overengineering of a team member as the mistake of the team leader, unless you're really hiring a solo developer then you'd better pick an experienced one.

If you communicate your priorities properly, you put real emphasis on not creating unneeded code, people aren't stupid, they wouldn't do that. Most projects don't live in vacuum, and the difference between overengineered solution and a good solution depends on outside requirements, and that's the job of the team member to keep it on track.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#43
post #19

Earlier quoted context omitted.

I have seen experienced developers that overengineer. It's hard to definitively know why, but I suspect sometimes it's so they can get some new "thing" on their resume or added to the approved toolbox for their team.

I tend to think of overengineering of a team member as the mistake of the team leader, unless you're really hiring a solo developer then you'd better pick an experienced one. If you communicate your priorities properly, you put real emphasis on not creating unneeded code, people aren't stupid, they wouldn't do that. Most projects don't live in vacuum, and the difference between overengineered solution and a good solu…

I could have been talking about the team leader in this case. They are fallible people too. It wouldn't be unheard of for one to to introduce Kafka, Elastic Search, React, etc, when it wasn't needed...for reasons unrelated to the task at hand. As mentioned, one reason would be to gain experience in it, or to get it pre-approved for the team to use...in some future more appropriate situation.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#45
It's not an addiction, its a phase. When an engineer is young, they will do anything to make something work. When an engineer is older they've learned how to make things work, but then learn that changing things in the future can be hard. So they try to build as many hinges in as many places as possible. Many years later they will realize that only 1/10 of their "flexible" solutions needed to be as flexible as they made it, and then they become experienced developers who know how to build something that works, how to build something that can be flexible for the future, and most importantly they learn how to question if the piece they are making needs to be flexible (or even better question the business if it needs to be built at all).

I'd say the test shouldn't be, how can you find out if they are in the overengineering stage or not. Instead, I'd filter for engineers who can be reasoned with. If you are an engineer in stage 3, it's okay to have a stage 2 engineer on your team, but if he can't take direction then he'll be a liability.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#46

Are there actually experienced developers who still overengineer? I always thought of that as something that happens from the lack of experience. Straight from university developers, or people who never worked with a team before tend to do that, but I can't see how you will hold off this attitude after a bit of experience. And unless you're letting an inexperienced developer lead your team I can't see the problem. As…

I worked with a guy who felt a burning need to use a certain JS functional utility library for literally everything. He would even use the library to access properties of objects instead of using JS's built in dot operator. This led to a lot of over-engineering on the micro level, although he had good practices on the macro level. The project was well thought out, but open any file and you'd see a bunch of this library's fanciest functional tricks.

I found it pretty bizarre. My guess was that he simply applied a different standard to code than most other people. Instead of preferring simple and obvious code, there was some other arbitrary criteria of cleverness he was looking for. This guy was very experienced as well. I think it may just have been boredom.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#47

Are there actually experienced developers who still overengineer? I always thought of that as something that happens from the lack of experience. Straight from university developers, or people who never worked with a team before tend to do that, but I can't see how you will hold off this attitude after a bit of experience. And unless you're letting an inexperienced developer lead your team I can't see the problem. As…

> lack of experience

Some people have 10 years of coding experience. Others have 1 year of experience 10 times.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#49
post #41
post #40

Earlier quoted context omitted.

"Hello World"

echo -e "#include \nvoid main() {printf(\"Hello world\\\n\");}" | gcc -o ./foo -xc - && ./foo && rm foo

(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc
Post reply on HN