DEV Community

Cover image for The Worst Developer

The Worst Developer

Stefan Dorresteijn on August 07, 2019

When I was getting started in Web Development, I was told it was good to be the most precise and detail-oriented you can possibly be. I worked with...
Collapse
 
stefandorresteijn profile image
Stefan Dorresteijn

I think there's a really fine line between being efficient and being bad. I try to toe that line by writing high quality code without focusing on the small details that could improve my code but would take hours of extra work to implement. It's cutting corners where it's possible and where it doesn't inhibit future development.

Collapse
 
bycedric profile image
Cedric van Putten

The way I see it, to be a specific type of developer (e.g. product or really technical), you have to learn multiple factions within the whole development.

A really technical developer can be a tech lead or CTO and help other developers grow with complex material.

Product developers may find it a bit more difficult when helping mid/sen developers with complex technical solutions, but they would be an awesome fit for product owner roles.

I think this article is a great example on how to mix "being a pure developer" with other parts of the whole process.

Collapse
 
gergelyorosz profile image
Gergely Orosz

Nice article. I've observed two extremes of how to build things:

  1. The hacking approach: do it as quickly as possible to get it working. This is fantastic for prototyping. However, if what you build will be part of a product that grows quickly, needs to be maintained and new developers work on the component, it will cause headaches and might result in needing to rewrite the code.
  2. (Premature) optimizing. This is when, as building a new product or feature, the developer carefully plans on how to make it as extensible, reliable, performant as possible. Things take a lot longer to build. If we're talking about a new product, chances are, a lot of that work was done for nothing, as it might never get as high of a load or get extended as much as the developer planned.

I'd like to think that pragmatic developers sit somewhere in the middle, deciding on taking a hacking or more thorough approach based on the problem, the domain and other reality. For example, if you're building a financial application that goes live to people, you don't want to skip testing the business logic, no matter how much it would speed up shipping it. But if you're doing a throwaway prototype, going fast is fine, as long as everyone is clear that it's not going into production.

How do you find yourself adjusting your approach in different situations?

Collapse
 
stefandorresteijn profile image
Stefan Dorresteijn

Much like choosing the right stack for the job, choosing your approach to building something should come from the job itself. Applications always have a few must-haves and those should largely impact your approach. I do think as a developer you can land closer to either side of that spectrum, and I know I'm more prone to working quickly and wouldn't therefore take jobs that require the more detailed/optimized approach.

Collapse
 
havarem profile image
André Jacques

For me, I called that the "do-er" mindset, people that do and don't "necessarily" passes hours abstracting something that they don't need (they will only if the need it). It enters very well in startups and the "lean" mindset where agility is key.

Collapse
 
openspeedtest profile image
OpenSpeedtest.com

"writing your own code was often much more efficient than using a library." True! ALWASE TRUE!

Collapse
 
codemouse92 profile image
Jason C. McDonald

Often. Not always.

Collapse
 
0n1r1k0 profile image
0n1r1k0 • Edited

Well, I guess you're not alone (just joking) :)

Joke

Collapse
 
florinsith profile image
Florin Anghel

Wow

Collapse
 
florinsith profile image
Florin Anghel

I would like to belive this as well.