Live data from Hacker News

The Senior Engineer’s Guide to Helping Others Make Decisions

silverwraith.com

11–20 of 63 posts

Re: The Senior Engineer’s Guide to Helping Others Make Decisions

#11
post #6

I agree with the core premise of this post; you shouldn't put down ideas by junior developers by just flatly saying no. But we can't just go around letting junior developers do whatever they feel is a good idea because "it's a learning opportunity". I get that the most direct way of learning is to make mistakes and learn from those. But there's an easier way too. Read books, talk to people, get the benefit of others…

Totally agree there, sometimes there is room for learning and mistakes but not everything must become a learning opportunity otherwise nothing will get done.

I'm currently raising a toddler and find great parallels there compared to coaching a junior. It's always good to explain why something is bad/wrong to my kids and allow them to learn. But if w're in the middle of crossing the road that's not the time and place.

There are so many events in life that shape us, looking back at myself at my earlier career I can't understand how I got where I am now with how stupid I was then and the opinions I held.

I think it has a great deal to do with being able to see things in a different way and having the experience to be open for certain ideas. But I currently still have a hard time at recognising this in myself or others. And allow to know when you can go for the next step.

Re: The Senior Engineer’s Guide to Helping Others Make Decisions

#12
post #6

I agree with the core premise of this post; you shouldn't put down ideas by junior developers by just flatly saying no. But we can't just go around letting junior developers do whatever they feel is a good idea because "it's a learning opportunity". I get that the most direct way of learning is to make mistakes and learn from those. But there's an easier way too. Read books, talk to people, get the benefit of others…

> I get that the most direct way of learning is to make mistakes and learn from those. But there's an easier way too. Read books, talk to people, get the benefit of others experience without needing to make those same mistakes again.

> We don't go about individually discovering why modular design is a good thing, or why at certain scales microservices are a better option. We do the research, talk to others, and figure out that the general consensus is a reasonable one that we can use.

> I think we need to do a better job at explaining why something is a bad idea to junior developers. Learn to see things from their perspective, and communicate in a way that relates to their experience rather than ours.

Not everyone learns the same. Some people may learn significantly faster and/or more effectively if they are allowed to make mistakes - to see/experience the difference. I think this a good approach for simple problems. However, if the problem is highly complex and time consuming, its not as practical as the time cost to redo, as the work is too high. Thats where you do the research and reading. It requires a balance.

Re: The Senior Engineer’s Guide to Helping Others Make Decisions

#13
The real way a senior engineer trains juniors is by selecting appropriate work. They thread the needle of a number of factors: it needs to be done, its within reach, will build their skills, will educate them on product/business/process, they will find rewarding, will give ownership, relevant staff can support them etc. These factors are so important that the senior engineer might need to negotiate with the product manager to bring appropriate work forward to avoid failure or killing the enthusiasm of the junior.

What can't really happen is for a junior to suggest work. The experience and context they lack is for the business, the user and the strategy. The junior's biases for what they think matters are usually much worse that the senior's for what works e.g. they want to improve cosmetic factors or add cool features. Its not that they are wrong, the product might be offensively ugly and the cool features might be game changers, but professional development is a parade of gut wrenching compromises because the constraint is time and resources not imagination and ambition.

That said, I agree with the thrust of the article - the risk of senior engineers "fighting the last war" and accruing a set of limiting beliefs is very real and the naive optimism of a junior challenging them is part of the value they bring.

Re: The Senior Engineer’s Guide to Helping Others Make Decisions

#14
In my experience, typically the junior's suggestion can possibly be done. However it often would be complicated to implement well, and I would be concerned how long it would take the junior to complete (if they would complete it satisfactorily at all). So, I agree with the suggestions that it is often more productive if a senior engineer suggests appropriate work.

Re: The Senior Engineer’s Guide to Helping Others Make Decisions

#17
post #9

"Being a senior engineer means realising not everything should be done the way you want it to be." I think it's funny how these opinions can completely flip over or oscillate over time. In this case: As junior you known nothing so not everything can be done the way you want, then later you think you know a lot more and everything should be done your way, after that you really know a lot more and realise not everythin…

That’s a good observation. I’ve also worked at organizations where the policy pendulum swings.

For example, “Gotta release code quickly” to “quick is good, but all code must have unit tests and rigorous code reviews” to “gotta be quicker, can’t always be holding things up because of a rejected code review!”

I’ve also worked places where that didn’t happen because management, and the engineering culture, were strong.

Re: The Senior Engineer’s Guide to Helping Others Make Decisions

#18

The real way a senior engineer trains juniors is by selecting appropriate work. They thread the needle of a number of factors: it needs to be done, its within reach, will build their skills, will educate them on product/business/process, they will find rewarding, will give ownership, relevant staff can support them etc. These factors are so important that the senior engineer might need to negotiate with the product m…

> What can't really happen is for a junior to suggest work.

Junior engineers should feel welcome to suggest work. They should also be ok with having that suggestion rejected or put on the back burner because it's not pertinent to the current product/business goals.

Depending on how the company is run, the senior can make the call, or involve a product owner, as to whether the junior's suggestion is something that they should be working on or not. But I think the OP's point about tone is important: being dismissive about it is demoralizing and isn't helping the junior grow. Explaining why (to borrow the example from the article) it might be ok to lose a week's worth of data, or even why they just currently have bigger fish to fry, but will revisit the idea later... that shows respect for the junior's desire to grow and establish ownership while giving them a taste of knowledge and experience that you have but they don't.

Re: The Senior Engineer’s Guide to Helping Others Make Decisions

#19
This methodology is an effective way to leverage the developers in your team. It does rely on a certain discipline that juniours often don't have to drive and refine an exploratory solution into production code.

It requires curiosity, an openness to measuring and validating an idea and then driving it home. This sounds a lot like what I'd want from a team lead; but as someone pointed out some juniors aren't destined for leadership either.

I love the idea and have made it work, a lot less though than desirable.

Re: The Senior Engineer’s Guide to Helping Others Make Decisions

#20

> Being a senior engineer means realizing not everything should be done the way you want it to be. A real corollary is, you really don't know as much as you think you do sometimes.

I think the point (something I struggle with personally) is more that even if you do happen to know the ideal way to do something, it doesn't need to be done that way, and letting someone junior figure out how to do it their own way can still be sufficient. That has the added bonus that the junior will learn much better than if you were to dictate their path exactly.

Of course, sometimes letting a junior engineer do something their own way can fail to be sufficient entirely; knowing your junior engineers and their capabilities well enough to know how much rope to give them on a particular task is yet another skill to be honed.

Post reply on HN