Live data from Hacker News

You Don’t Need Superstar Developers

blog.lunarlogic.io

31–40 of 86 posts

Re: You Don’t Need Superstar Developers

#33
post #7
post #3

Earlier quoted context omitted.

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 underst…

Wrong. Machine code is for the computer. Human readable high-level languages were designed specifically for people.

Re: You Don’t Need Superstar Developers

#34
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…

>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

That simply means you're working with poor developers.

Re: You Don’t Need Superstar Developers

#37
post #13
post #7

Earlier quoted context omitted.

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 underst…

yeah. I've seen a lot of comments like: // Sleep for 10 minutes sleep(15*60) Unfortunately, the compiler cannot check your comments. Don't put facts that are better looked up in the actual code and that they only risk getting out of sync with the code.

I've found a better approach to comments is not to put them in at all.

Then, you raise a PR, have a code review, and whatever the other developer is confused about that you had to explain to them - that's where you needed a comment and what you explained to them is what the comment should be.

Developers who have their "head in the code" will almost always (unless they are very smart and very empathetic) fail to realize what is hard for other developers to understand because they will fail to accurately model to context which the other developer has.

Re: You Don’t Need Superstar Developers

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

Really depends how bright is your "junior developer".

Obviously you cannot expect complex code to be well understood without background and programming capability.

Having well-documented code is one thing, and ability to work on this code without breaking things is another.

Re: You Don’t Need Superstar Developers

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

It's better to lose yourself, IMO. I've been most productive when working with product managers who delivered crystal clear user stories and precisely ordered priorities and took pressure off me having to deal with "that side" of the business.

If I have to deal with ambiguous specifications, vague priorities and to fill in the gaps I need to start modeling the business's needs, operational structure and priorities in order to make appropriate decisions then that means I have fewer cognitive resources to deal with the actual coding.

i.e. it's not just code that needs to be loosely coupled, it's businesses.

Re: You Don’t Need Superstar Developers

#40

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 inven…

Ah, but if you are doing groundbreaking AI research, you need AI experts. You will also need developers, but those developers may not actually need to be superstars.

Yes, the AI example was not very good.

In Montreal, we have tons of AI people here - their code is sometimes a nightmare. They are AI guys, 'code' to them is like 'mathlab'. Fortunately, it's surprisingly not a lot of code.

But the general point stands: it depends what you're doing.

Developing frameworks is a good example: you generally want experienced people who have 'seen it, done it, been there' and have the 'wisdom' of that - plus - hopefully, an ability to actually 'get stuff done'. Doing 'new' is hard.

But 'in general' I think the post makes sense: 95% of companies need 'professional, thoughtful, collaborators' who can take mildly complex problems, write clean, safe, simple code, document, test, release and move on ...

Post reply on HN