Top
Best
New

Posted by nilirl 20 hours ago

Why senior developers fail to communicate their expertise(www.nair.sh)
594 points | 261 commentspage 2
luodaint 2 hours ago|
The article is all about technical communication — diagrams, architectural discussions, code snippets. The more difficult piece to communicate is product sense: which user feedback indicates a genuine trend, when a feature request is a workaround for an underlying issue vs. the issue itself.

It’s not difficult for seasoned engineers with deep technical backgrounds to whiteboard a distributed system in twenty minutes. It takes hundreds of customer discussions, invalid hypotheses, and years of experience building judgment about whether this is the right solution at the right time.

The engineers who compound quickly have usually built their skills in both areas concurrently. Communication of the latter is more challenging due to the judgment-based foundation beneath it.

ahussain 1 hour ago||
I’m curious about this scale vs speed distinction.

Every codebase includes parts that are more experimental, and parts that are more core. My sense is that AI can help on both of these fronts (I.e building rapid prototypes on the fringes and hardening the core with better test coverage).

goosejuice 17 hours ago||
> The avoider, the reducer, the recycler.

As this kind of person, it can be alienating in some teams / companies.

What I've found works best is to convey how the added complexity will affect non-engineers. You have to understand the incentives and trade offs though, and sometimes it's better to take the loss.

If you have the fortune of sticking around with the same leaders for awhile, a few rounds of being vocal, but compromising, will work in your favor. When that complexity comes back around to bite them in the way you described, you will earn some trust.

In my experience the solution proposed will rarely result in a less complex solution. Quick MVPs have the tendency to stick around. As soon as a customer starts using some product or feature, the cost of pivoting goes up. If you wish to experiment, do it on a segment.

bob1029 17 hours ago||
The best strategy is to frame your argument from the perspective of the customer:

> This will allow for us to deploy the feature in only X days supporting Y use case with Client W who has been complaining about this shit for Q months now.

Arguments like:

> We should do Z because it would provide future extensibility.

> Z could eventually enable some novel platform capabilities.

> Z is easier to unit test.

Are much less likely to succeed in the business contexts that I have experienced so far.

goosejuice 15 hours ago||
We may be looking at this differently based on our own experience fwiw. I also should have said added complexity or lack of (from poor planning).

That can work too, e.g. when demonstrating the pain a customer will experience when something complex is poorly designed (like some b2b workflow), but it's less visceral than telling your internal stakeholders all the extra work they'll have to do if it's rushed. Even the best of your peers are a bit selfish. The business side has a lot of incentives around quick turnarounds so it's easy to overlook the downside.

Imagine such a scenario. You're in healthcare and working on a feature that will add new data model for some kind of clinical information.

You could say:

> This will allow for us to deploy the feature in only X days supporting Y use case with Client W who has been complaining about this shit for Q months now.

Yeah that very well may prevent W from churning, though hopefully you think about how it will affect other clients too.

Or, you could say

"If we get this data model wrong, and the value set is ambiguous, you (product/sales/cs) will have to reach out to every single customer and clarify what they meant by x/y/z if we wish to migrate it with any degree of accuracy in the future."

That's drawn from experience but I'm sure there are a lot of parallels to that in other industries for any kind of data. Migrating data is a pain in the ass for everyone, but often it can be the people pushing for a quick solution that suffer the most when that goes wrong.

This kind is stuff is why commission structures should consider churn / residuals. Bad incentives make for hastily made decisions.

Yokohiii 14 hours ago|||
> you will earn some trust

Building trust is yet another quality of a good senior. By that I don't mean to be buddy with the CEO but earning trust from everyone by making good decisions, arguments and delivering as promised. Even giving a jr a warning and let him fall flat is a good trust building exercise.

imp0cat 6 hours ago|||
> You want to bake me a whole birthday cake? Just put a candle on my sandwich.

I think these people also need to learn that, in the eyes of the customer, a sandwich with a candle is in no way comparable to a birthday cake.

empath75 14 hours ago||
My experience with avoiders and reducers and recyclers is that they want to avoid _my_ idea and do _their_ idea instead.
goosejuice 12 hours ago||
Seems rather tangential
mgaunard 17 hours ago||
Even with AI, there is a clear difference between juniors and seniors.

None of the things I can think of have anything to do with avoiding problems.

To some degree, having 5+ agents working on different projects is similar to leading a team of 5+ people. The skills translate well.

The senior is also able to understand what the agents do, review and challenge it. Juniors often can't.

And finally, the senior has a deeper understanding of what the business and problem domain are, and can therefore guide the AI more effectively towards building the right thing.

hun3 10 hours ago|
Avoiding problems outside your business problem domain, and can therefore guide the AI more effectively towards building the right thing.
mgaunard 3 hours ago||
Making things fit for purpose is not avoiding problems in my book.

If anything, quite often it's introducing more problems, because we know we'll run into them and they need to be addressed.

AI is sometimes quite lazy and refuses to solve the hard problems (sometimes making funny excuses like it would take weeks) until you make it explicit that it's important they are dealt with.

lionkor 2 hours ago||
I really dislike the "ah this is my favorite senior" language. The author would have done well to simply leave this "rating" of different kinds of people out, and it would not harm the article. In fact, it would improve it.

People don't want to be judged in the introduction of an article, based on how they like to approach their literal dayjob. It's a weird jab.

t43562 16 hours ago||
I found that the proposers of features "want everything" because they don't know what is critical - they're therefore totally unwilling to accept anything other than "the full monty". So as a senior developer you cannot propose any faster route.

As you might imagine, a lot of these ideas fell by the wayside but we had to develop them in full.

xyzelement 14 hours ago||
The article covers that under the imperative of discovery. Learn what works quickly because you may not know what the core part is otherwise.

There's ways to navigate it.

panny 11 hours ago||
It's the XY problem. The customers tell sales they want Y, rather than stating their problem X which they think Y will solve. Sales runs breathlessly to the dev team and demands we implement Y. Now scale this up to 10 customers or 100 customers. They all have the same X but come up with independent Ys.

You see the problem immediately. Sales/marketing didn't do their job sussing out what X is and wastes dev time with Ys. And worst of all, write once, support forever. Each one off Y has to be maintained for the special snowflake customer that uses it. None of the Ys actually work well for all the customers with problem X so you end up drowning in "technical debt" spent to create them all.

If your marketing department leads the company, I've discovered the best option is to just quit. Go find a job at an engineering company.

p0w3n3d 4 hours ago||

  “I found this new tool and it’s pretty cool ...”
yup

  “This company <company totally unlike the one we’re in> does things this way, so …”
agreed

  “Here, look at this HackerNews post that says this is best practice, we should probably …”
sir/m'lady, we're at war from now on. This is the only reason I come here. Of course I don't take everything carelessly, but the amount of experts on this forum is damn high and this is the only forum in the last 10 years that helped me grow so much
npodbielski 3 hours ago|
At war with whom? About what?
dirtbag__dad 10 hours ago||
> I don’t like senior developers who like trying new technology. I like ones that avoid more complexity.

I guess the author has never worked on a dog shit system with no tests at all and constant downtime.

I have worked with “complexity averse” engineers who would rather fix the edges over and over again, than roll up their sleeves and just get the job done.

I just don’t believe that using new tools is at odds with avoiding complexity.

Sometimes you have to take it to the chin, and get to use the new shiny thing along the way to move much faster.

chrisweekly 16 hours ago||
I may be missing something, but the "left" and "right" loops strike me as slightly different words for the same exact thing.

The company provides (offer | service) to the (market | user) and receives (feedback | payment).

The service IS the offer, the userbase IS the market, and payment IS the feedback signal.

Right?

EDIT - expanded on original comment to add:

The author's point might be lost on me but seems to be that framing things with one of those sets of labels vs the other may correspond to use of "complexity" vs "uncertainty" as the element targeted for reduction, and choosing those labels carefully in turn correlates to "senior" devs' persuasiveness in prioritization battles with product owners. To which my response would be, "maybe?". (shrug)

I'm not a copywriter by trade but I care about words and may have just been nerd-sniped.

DougWebb 15 hours ago|
The company is providing existing services to existing users for payment.

The company is offering potential new services to current and potential users in the market and getting feedback on how valuable those new services might be.

heisenbit 5 hours ago|
While I agree with adding code contributing to complexity is problematic there is lots of code in existing code basis which is overly complex due to past outdated requirements or less than perfect human coders. The current flood of AI driven security fixes demonstrates that AI can be pretty good in detecting security edge cases. It is not inconceivable to use it to also reduce code complexity.
More comments...