Live data from Hacker News

You Don’t Need Superstar Developers

blog.lunarlogic.io

1–10 of 86 posts

Re: You Don’t Need Superstar Developers

#2
One of my most useful insights in software development is that no matter how smart you are, if you write code that can't be understood by a junior developer, it means that you didn't do a good job writing that code.

Re: You Don’t Need Superstar Developers

#3
post #2

One of my most useful insights in software development is that no matter how smart you are, if you write code that can't be understood by a junior developer, it means that you didn't do a good job writing that code.

And the reason that "the code is self-documenting" is a bad smell is because in 3 months even the 'rock star' who wrote it won't remember without appropriate help (eg comments).

I've worked with some pretty smart developers in some pretty interesting roles, and the people cock-sure of themselves are rarely anything other than a poisonous danger to overall performance and deliverables typically.

I say this as a lone wolf by inclination, though also unexpectedly happy on a trading floor with hundreds of people around not entirely managing their emotional interactions!

Re: You Don’t Need Superstar Developers

#4
post #2

One of my most useful insights in software development is that no matter how smart you are, if you write code that can't be understood by a junior developer, it means that you didn't do a good job writing that code.

It's easy to lose yourself as a developer in problem-solving mode instead of looking at the big picture of a project. It's great to have people around you that reminds you the code is just a part of the more complex story - how to help your client solve a business problem.

Re: You Don’t Need Superstar Developers

#5
post #4
post #2

One of my most useful insights in software development is that no matter how smart you are, if you write code that can't be understood by a junior developer, it means that you didn't do a good job writing that code.

It's easy to lose yourself as a developer in problem-solving mode instead of looking at the big picture of a project. It's great to have people around you that reminds you the code is just a part of the more complex story - how to help your client solve a business problem.

That is a hard lesson to learn; I'm still working on it decades in!

Re: You Don’t Need Superstar Developers

#7
post #3
post #2

One of my most useful insights in software development is that no matter how smart you are, if you write code that can't be understood by a junior developer, it means that you didn't do a good job writing that code.

And the reason that "the code is self-documenting" is a bad smell is because in 3 months even the 'rock star' who wrote it won't remember without appropriate help (eg comments). I've worked with some pretty smart developers in some pretty interesting roles, and the people cock-sure of themselves are rarely anything other than a poisonous danger to overall performance and deliverables typically. I say this as a lone w…

Besides, code speaks to the compiler/runtime; comments speak to the human.

- The machine need to know HOW something should happen. That's code.

- The human needs to understand WHY that thing should happen that way.

These are two different objectives, and good quality code weaves the two in the appropriate measure.

Having said that, I don't believe all code should be reduced to the subset that a junior dev can understand. Keep it simple when possible, yes. But don't limit yourself, otherwise it's just a shift to verbosity, eating into the finite attention span within the brain. Rather, if the intent is properly documented, then the junior devs can still work on the parts of the code they understand, and reach out to a senior dev when they need to touch the part they don't understand, because even if they don't quite grasp the "how", they can follow the "why" in the code.

Re: You Don’t Need Superstar Developers

#8
post #2

One of my most useful insights in software development is that no matter how smart you are, if you write code that can't be understood by a junior developer, it means that you didn't do a good job writing that code.

I think you should rephrase this as "code that can't be explained to a junior developer". There certainly is legitimate code that is not easy to understand without knowing some background.

Re: You Don’t Need Superstar Developers

#9
post #3
post #2

One of my most useful insights in software development is that no matter how smart you are, if you write code that can't be understood by a junior developer, it means that you didn't do a good job writing that code.

And the reason that "the code is self-documenting" is a bad smell is because in 3 months even the 'rock star' who wrote it won't remember without appropriate help (eg comments). I've worked with some pretty smart developers in some pretty interesting roles, and the people cock-sure of themselves are rarely anything other than a poisonous danger to overall performance and deliverables typically. I say this as a lone w…

In my mind "the code is self-documenting" doesn't mean that you should have no comments anywhere in the code. It rather says that instead of lazily adding a comment for some complex piece of code, try to refactor the code so it better explains what is happening there.

And then sometimes, you just have some compiler-hack or otherwise complex piece of interaction that you can't refactor into something better, and then it's of course better to add a comment rather than just leaving it there.

Re: You Don’t Need Superstar Developers

#10
It depends so much on what you're building. If you're doing _groundbreaking_ research in, say, AI or facial recognition or whatever, you may need people who are technical superstars.

If you're building the average CRUD-plus-workflow application, the last thing you want are superstars who are going to get bored with routine work. Then they'll go off over-engineering some minor feature or spending weeks at a time inventing some algorithm you don't need instead of building the product you do need - just to keep themselves from going stir crazy.

What you really want are people who are technically not outstanding but quite capable and have very strong soft skills. People who can work well as part of a team; people who mentor and learn well; people who follow through on their tasks; people who not only can, but want to understand your product and business so they can make small decisions independently and well as they work; people who are good at prioritizing their own work; people who are good at identifying risk and knowing when it's worth the time to address; people who are good at communicating with both teammates and management.

Although you might argue that people with several or all these qualities are rare enough to be superstars in their own way, they're not superstars in the sense often discussed in forums like HN.

Post reply on HN