New senior handles all the "thinking" for juniors.
Posted by UnluckyWarfish@reddit | ExperiencedDevs | View on Reddit | 266 comments
There are two teams working on a project (FE and BE with a few members working on both like me). A few months ago the frontend team got a new senior dev after the previous one left, and he has 5 people under him.
A few colleagues have complained to me that he "micro manages" every task they get. When he assigns a task to someone he will already have decided how it should be implemented, maybe even made a diagram to go with it, all that is left is someone to type it out. He will call juniors explain the task, explain the solution and send them on their way. Now in my mind apart from it being boring and a bit annoying for the juniors, it is also very bad for their growth.
But here is the problem. The overall efficiency of the FE team has doubled and most importantly regressions have become almost extinct. We are one month ahead of schedule. That senior is prbabably the best programmer I have worked with. Whenever I have to review any of his PRs I know it will be a 10 minute readthrough with no changes needed.
What should I do? The CEO wants my opinion but I honestly don't know what to say. I love his work and our current progress but also don't want the team to become dissatisfied.
ijustmadeanaccountto@reddit
He has probably seen where his team is lacking and essentially installing new firnware in their brains. They are being trained for free. Let the guy be, give him a pat and maybe a raise. As a junior all i ever wanted was to see how its supposed to be, the design pattern, the logic, and after I've done it once on my own, its part of my toolkit. Following instructions, as long as you understand why you do what you do, and with coding, thats a given, you actually learn a metric fuckton. Anyway its better.by miles from vibecoding. Thats all you need to know really. Talk with the juniors to see.for.yourself.
VisibleSherbet@reddit
I learned more from 6 months of working with a talented lead developer than from 5 years of being left to figure it out for myself. For one, I finally understood what good looked like.
Crazy-Mission-7920@reddit
I've heard many people make this statement. How does this work in reality? Pair programming, code reviews or what?
VisibleSherbet@reddit
Yes, but mostly good examples of well designed code and solutions. Watching them lead by example: how to engage positively with product, what questions to ask, how to adjust as new information came in. How to write readable and maintainable code that is extendable and tells its own story. How not to over-engineer or be too clever. That the work doesn't end once the feature is shipped to production. Etc etc
Goodie__@reddit
I think theres a balancing act. Asking the juniors what their opinion is. Trying to lead them to the correct answer.
But sometimes there isn't time for that. Or sometimes that's not the type of senior they are. Sometimes theres just too many juniors.
By the sounds of it there are several juniors here. Typically in my experience a single junior, intermediate and senior dev in a team is the right mix. Giving enough time for the senior to help others, get work done, and do personal development.
ConflictPotential204@reddit
Can confirm I'm 1.5 years into this field, I've been left to figure out everything for myself, and I actually feel like my skills/fundamentals are regressing. It's scaring me. I need to find a place with mentorship fast. It's actually kind of relieving to hear you made it 5 years like this and were still able to land a job with a Lead that was willing to lead you.
euph-_-oric@reddit
Ya was gonna win win.
XenonBG@reddit
This doesn't sound like working with, and very much like working under.
I also worked with fantastic developers and architects I learned loads from, but the design would never be presented to me. They would explain how they came to it, what they considered and what tradeoffs they made. Just writing code is trivial.
morswinb@reddit
Good point.
Also note that it's been a few months and they are one month ahead of the schedule.
That's a short time frame to actually judge if stuff actually works in production.
Given the benefit of the doubt that designs are right (never seen ones that were right on the first try myself but lol), what if juniors dont understand them and are eventually forced to make updates?
activematrix99@reddit
Yes, but that extra month can be used to TEST the hell out of the code solutions. IMO, it's a lot easier to learn from and revise well structured examples.
ShroomSensei@reddit
Idk everyone here has had different experiences which are leading us to interpret it differently. Unfortunately my team needs this sort of rigid structure to do meaningful work and any sort of fast pace. I can 100% see a senior engineer realizing that within a few weeks of being on the team and testing out by adding way more implementation details in a ticket. Then they see success and it only grows to be done more.
Sooner or later you learn who you can trust to escape the rigidity and let them start also planning / solutioning becoming another force multiplier
Slow-Entertainment20@reddit
Yup this is basically my situation. I tried giving tickets a base explaining without pointing to what files etc need to be changed, but I repeatedly was met with I can’t do x in this ticket it was never mentioned in the description/AC. It could be for TINY things like we added x functionality, this requires changing y component as well to use this. Simple 5-10 lline changes now need to be a separate ticket which will get another 1-3 point designation and take people another half sprint.
rayfrankenstein@reddit
That’s an artifact of scrum and holding developers to estimates for a sprint.
https://youtu.be/HURvJDldVGA?si=Jj5yLXj5sL0V6FNo
tikhonjelvis@reddit
Yep, 100%. If you don't give folks the space to take initiative, most won't.
maigpy@reddit
the amount of detail you put on the ticket should be calibrated to the receiver.
I am now playing the part of that star developer. I worked both as a software engineer and a business analyst, so I can immediately start writing the design for solution in my head as the user is speaking.
do I want to go on and do it all myself? no. but I like it even less drama for last minute fuck ups or being part of an unsuccessful project, so I will increase details and rigidity on the ticket I distrust the implementor.
the most frustrating bit is when I know I would it all myself in 15 minutes and have to spend 30 mins to explain it to someone instead, then review what they've done, feel frustrated etc. it has to be done sometimes for growth. it has been avoided sometimes, because, deadline.
SituationSoap@reddit
OK? There's nothing wrong with working under someone.
Writing code well is not trivial, and all of the things that come with that: testing and user validation and ironing out edge cases and supporting a feature as it goes to production is not trivial. It is in fact perfectly fine for a more senior person to say that your job for a time is to do all of the things required to write code well and shepherd pre-architected solutions to production. Not every feature needs to allow the developer a chance to bloom and display how much of a precious flower they are.
CodeRadDesign@reddit
fucking 100% same reaction to this. if i'm describing it in that kind of depth than i can almost certainly spend the same amount of time or less coding it myself. but i'm giving it to you to code, because i expect you to spent the time testing the shit out of it as well and owning the final form of it.
edgmnt_net@reddit
The question is how much time they've got to waste before they arrive at a workable solution and understand everything. Ideally, yeah, it's more like guidance, but that presents a choice between low output or low quality. So I guess this is a possible tradeoff and might even work in limited cases.
Blankaccount111@reddit
For sure. My exp is that you are much, much, much more likely to experience the dysfunctional version of doing things than the good version at any work place. Its nice when you get one of the good versions though.
Krom2040@reddit
Yep, this is the answer. Assuming, of course, that the mentor is happy to answer questions and alright.
I have a ton of experience and would still love an opportunity to learn from somebody with substantially more insight or specific expertise. Right now I’m pretty much only sending knowledge downstream, which is rewarding in its way but it leads to a certain feeling of stagnation.
SeasonofMist@reddit
I so agree. Working with someone talented like that can inspire people who know how to utilize the tool. Lazy devs won't learn from it and that's fine. If you want your jr's to learn stuff on their own and they have time maybe do development classes.
safetytrick@reddit
I think this can be a good experience, it shouldn't be every experience but I've worked with a guy like this and I learned how to be discriminate from him.
Eventually I developed my own opinions and started contributing at a higher level.
I'd suggest that ops team give this new manager more responsibilities until his team needs to pick up the slack. Everyone will grow.
Vegetable_Roll_8363@reddit
100% agree on this. The ability to differentiate a good and bad code
CepageAContreCourant@reddit
This does not sound like micromanaging to me. It rather sounds like a stellar architect who can predict the consequences of their choices, has a clear vision and who is able to communicate their vision in terms that are actionable by junior developers.
It is, or should be, perfectly fine for juniors to spend a year (or 2 or more) to just implement requirements laid out by an architect. From there on out, juniors with potential/interest should be either coached through the architect's design process and eventually "allowed" to first try and design their own solution that is then reviewed/discussed with the architect. Especially as your backlog shrinks and there is stress on the overall team, the architect should be spending more time on this style of mentoring.
TangerineSorry8463@reddit
Maybe the guy is trying to tutor junior by giving them enough examples so that soon he will start asking them "how do you think we should do this".
deniseleiajohnston@reddit
Sorry to hyperfocus on this singular bit here - strong disagree on this one. Long before I started as a professional software dev, whereever possible, I tried to identify who are the experts and then try to emulate them as best as I can do, until I could understand and go my own way - after walking in their footsteps for quite a while. I also actively research how others approach a topic and learn from that - why not learn from the mistakes that other before me did and (thankfully!) wrote about?
Since I am far from excellent when it comes to software engineering, I of course made many mistakes on my own. But those were "unprovoked", and I would have never denied someone who knew better to tell me the way forward right away - software engineering is hard enough as is, so I was and am glad for any helpful input I got.
I am probably over-representation your position, it is just something that irks me whenever I see it - in my view, "sometimes you can only learn from your own mistakes" is contrary to a craftsman approach, which I try hard to cultivate in my approach to software engineering.
cballowe@reddit
I think you're missing a ton here. Most crafts involve "do it a bunch and you get better". There's also "why do we do it that way" and my answer to people is usually "well... Try to do it another way, then try this way and let me know" - at least when there's room to learn. People who have a chance to safely do the wrong thing learn way more from the experience than they do taking my word for it.
deniseleiajohnston@reddit
I am not convinced. "having a chance to safely do the wrong thing" is obviously important to learning, if not an requirement. But what good would it be to not tell juniors about version control, instead letting them rediscover the need for themselves? As a junior, I would be pissed - I'd rather solve interesting problems than to solve problems that are already solved thousand times before.
Don't get me wrong: Exploring is great! But I am convinced that many juniors progress way slower or even stop the journey because they have too much freedom and don't know (and are not told) about the value of imitating others (for example, by reading lots of source code that other people wrote).
cballowe@reddit
Oh .. a guided journey is necessary. I wasn't thinking about tooling questions, I was actually thinking about larger scale (in context) systems thinking. Places where multiple ideas "work" but one gets 10x the performance for non obvious reasons. Just writing down "do it this way" doesn't really help people learn. Worse, sometimes the thing that made that right a few years ago has changed and now the more obvious way works at least as well.
deniseleiajohnston@reddit
Even there: I think it is important to research and think before attempting anything of value (i.e. designing a complex technical system), and I think that the "sometimes you have to make mistakes on your own in order to learn" mindset actively discourages some people from that very important step.
QueenAlucia@reddit
I have to disagree here. I learnt the best by shadowing the best senior I could find, asking them questions and seeing what they do. If anything, my 'big' mistakes just killed my confidence.
hachface@reddit
Counterpoint: It is not actually acceptable to saddle a working business with months or years of cost overruns because of a foolish architectural decision made by a junior's learning opportunity.
Junior developers' contributions need to be monitored and guided very carefully.
coworker@reddit
Correct. Allow the junior to fail at the design but not the implementation. This keeps the costs low
coworker@reddit
Correct. People learn from failures, not successes
Pure-Kaleidoscope207@reddit
Do you want a surgeon operating on you that's had 1000 failures or 1000 successes?
coworker@reddit
Surgeons train on cadavers and in simulations so they will almost always have more failures than successes. Didn't think that one through eh?
Pure-Kaleidoscope207@reddit
Wow, way to "but actually.." whilst looking a little silly.
Your initial comment was discussing as a junior, which is an employed member of staff working in the position - not in training or in a simulation (which would be leetcode etc).
Nice attempt at trying to avoid answering the question though!
coworker@reddit
Reread the thread.
We are talking about juniors learning from doing their own designs and learning from those failures, NOT from implementing said designs. This is effectively a simulation since the design stage does not include committing nor deploying any code.
Perhaps you're not used to thinking through your projects before doing them? :)
hachface@reddit
It is not acceptable to saddle a company with months or years of cost overruns in order to give one junior developer a learning opportunity. I swear some of you have no business sense at all.
subma-fuckin-rine@reddit
yes but you should learn from others failures too. not enough time in the world to make all the mistakes yourself
TimMensch@reddit
I learned more by reading and typing in other people's code than I did making my own mistakes. Anyone following specific instructions like that will internalize the patterns they are implementing.
I think the only real "problem" is that it's boring. But the point of a job isn't to entertain you, and repetition of really good patterns is likely a much faster way to teach you the right way to do things.
In fact, each failure only really teaches you one way not to do things. There are near infinite bad ways to do things. Given the average code quality I've seen of "experienced" developers, most never actually find a solid approach.
hardolaf@reddit
I agree but only to an extent. When I worked in defense, the approach that worked best that I saw across our hundreds of teams was where the leads started by giving completed design docs to juniors and then slowly started with having the juniors review the docs before they were approved, then having the juniors take the lead on designing small, inconsequential things with frequent check-ins and reviews by a mentor. Then slowly with each task completed have the junior take over more and more complicated designs. And the really good leads would on occasion present their preferred solution to a problem to junior engineers and then ask the junior engineers to find another way to solve the same problem.
Now, that company was planning for the long-term and actually wanted professional growth of its personnel. But other companies that I've seen only expect junior engineers to stay for 2-3 years at most so they don't care as much about professional growth.
Huge-Leek844@reddit
I agreed with you but it was in the old days. Now, leads do the thinking for you for years. You dont grow in that environment.
Awkward-Cupcake6219@reddit
This. If I cared about code quality, good design and no regressions, I would not let any junior follow their heart the way I would not let any inexperienced worker go rogue while building my house.
SituationSoap@reddit
A lot of people, especially more junior people, believe that the only way for a junior to grow is to go off and make their own mistakes and then correct those mistakes.
It's perfectly fine to teach people to do a good job by showing them the right way to do the job and then asking them to routinely apply those same lessons over and over.
ConflictPotential204@reddit
This is how 99.9% of all jobs work, except for software development, where it's considered suboptimal for some reason.
No_Beautiful_8353@reddit
Oh man, this. I couldn't agree more. This is about change management. Give it time and people will fall in line.
Just a thought, are there people who want to be on that team that aren't. Everyone hears complaints but few people speak up about opportunities just to risk denial, and their boss finding out they want out.
Anyway, lots of talented people will thrive and even less talented people will have runway they might not otherwise have. Seriously, being on that team hopefully means you skip a round of layoffs.
tikhonjelvis@reddit
Yikes, I am glad I did not work for you when I was starting my career. Your expectations for juniors sound absolutely miserable and awful for growth.
And, frankly, more than a bit patronizing—juniors are absolutely capable of coming up with designs and taking on larger tasks on their own, and they should be encouraged rather than "allowed" to do real work. Hell, in a healthy culture, nobody should be talking about "allowing" folks to make real decisions!
Eastern_Interest_908@reddit
I disagree if they're capable of all that then they aren't juniors anymore.
tikhonjelvis@reddit
almost all of the interns I've worked with were capable of that, and it was certainly an expectation when I was an intern back in college
sometimes it feels like I just live in a different world from like 95% of the industry >.<
QueenAlucia@reddit
Maybe you do lol there are bubbles in the industry, especially if you work in something niche.
QueenAlucia@reddit
You have a warped interpretation of what a real junior is.
If they can do all of that then they should be promoted as they are not juniors anymore.
SituationSoap@reddit
Other people have pointed this out, but to reiterate: no, they aren't. By definition. Being able to talk on the task of designing and implementing larger tasks on their own is precisely what moves them out of junior territory.
tikhonjelvis@reddit
I guess we've worked with very different people. Pretty much all the interns I've known have been perfectly capable, and that was certainly the expectation when I was an intern back in college. That's also been true with almost all the fresh grads I've worked with.
GistofGit@reddit
Totally agree with you - I was honestly surprised the top comment got so much traction. It sounds polished, but it misses some serious red flags.
“Perfectly fine for juniors to spend a year or two just implementing” is wild to me. That’s not mentorship - that’s control. Juniors grow by making decisions, even wrong ones, and learning from them. If you’re just handing them blueprints, you’re not building engineers, you’re creating a typing pool.
And the idea that they should be “allowed” to try designing later? That’s super patronising. In a healthy team, people are trusted early, encouraged to rise, and supported through mistakes - not told to wait their turn like it’s some rigid apprenticeship.
I get why that comment landed well though. It flatters a certain kind of senior mindset - the lone architect who does all the thinking because “nobody else can”. It plays into a mix of ego, past scars from junior mistakes, and the appeal of total control. But that might feel good in the short term while burning out juniors, bottlenecking growth, and turning your team into a feature factory.
High output is great, but if it comes at the cost of autonomy and long-term resilience, it’s a fragile win.
SituationSoap@reddit
This is a straw man. In healthy teams, people prove that they're ready for more responsibility by demonstrating that they're doing a good job with lower levels of responsibility, first. You ramp people up until you hit the point where they need to learn something to do a better job, then you set them up with challenges that help them learn those things.
GistofGit@reddit
You’re shifting the goalposts a bit here.
I’m not arguing against gradually giving people more responsibility - I’m pushing back on the original framing that juniors should spend a year or two just implementing and only be “allowed” to design later. That’s not healthy progression, that’s just gatekeeping.
It’s easy to defend a reasonable version of the idea, but that’s not what was actually said. Honestly I agree with your version of the argument ;)
SituationSoap@reddit
It takes 2000 hours of on the job training to move past being an apprentice plumber and 8000 to move past being an apprentice electrician. Both of those jobs are substantially less intellectually complicated than moving out of the apprentice stage of being a software developer. It's perfectly reasonable to expect that you're going to ramp up a software developer for 24 months before you're putting them in charge of their own small projects. Heck, if you're a junior you don't even know which way is up in a code base until 9-12 months in.
look_at_tht_horse@reddit
It's an extremely high-paying job. Not a daycare center.
GistofGit@reddit
if every task is pre-chewed with the design already locked in, where’s the space for them to actually think? They’re not learning by doing - they’re just typing someone else’s plan.
This isn’t about turning engineering into a daycare centre - it’s about giving people a chance to grow into actual engineers. If they never get to weigh up trade-offs or explore a solution themselves, they’ll just plateau.
It’s a high-paying job, sure. But mentoring and giving people real ownership isn’t charity - it’s how you build a team that doesn’t fall apart the second the “10x dev” takes a day off.
look_at_tht_horse@reddit
You still haven't articulated what's stopping these engineers from growing. You can come up with as many half-baked hypotheticals as you want, but don't expect to persuade anyone with that approach.
GistofGit@reddit
You’re misrepresenting the argument. I’m not saying quality work from a senior is bad, or that juniors can’t learn anything from implementation. I’m saying that if every task is fully designed upfront, they aren’t getting the kind of experience that actually develops engineering instincts.
What’s stopping them from growing? The fact that they’re not being asked to think. No trade-offs to consider, no design decisions to make, no input before the plan is locked. That’s not mentorship - it’s a production line.
And no, watching someone else do all the thinking isn’t how people magically absorb architecture. You don’t learn that by typing and asking the odd question - you learn by making your own calls, getting things wrong, and understanding why. If that space doesn’t exist, growth stalls. That’s not a hypothetical - that’s just how skill-building works.
Quality output is great, but let’s not pretend that shipping clean code is the same thing as developing future engineers. It’s not.
I don’t think we’re going to see eye to eye on this, so let’s agree to disagree.
look_at_tht_horse@reddit
And I'm saying that every task being fully designed upfront to the point where there's no opportunity for thought is a false premise.
DormantFlamingoo@reddit
There might be some nuance here. If the domain is complex enough and features aren't straightforward, I agree with the top comment - it's sort of on the junior to try and ask questions about why things are being designed the way they are, and get a feel for tradeoffs in the solution space, and why certain aspects in a design/implementation are preferrable. It's not a 0 mentorship environment unless the junior devs let themselves be a cog in the machine, but they absolutely have the ability to ask questions and learn.
I agree with you that this is not optimal for a junior's growth, but many teams don't have the bandwidth to slow down for the sake of mentorship by letting juniors make crucial design mistakes they can learn from.
GistofGit@reddit
Totally fair that not every team has the bandwidth to let juniors make big design mistakes. But the onus shouldn’t be entirely on the junior to extract context and growth from what’s essentially a pre-baked blueprint.
You don’t need to grind delivery to a halt either. Giving scoped design input, looping them into architecture reviews, or even just asking “what would you have done?” after the fact - that’s enough to start building instinct.
Otherwise, yeah, you ship fast - but you’re also locking in a team that only runs well if the senior’s around to steer everything. Not a great long-term bet, but I do appreciate there’s nuance to it.
ab161@reddit
Blatantly obvious GPT response
CepageAContreCourant@reddit
Yes, inexperienced devs are capable of coming up with designs, but it's pure luck if those designs are any good. This leads to massive amounts of technical debt, which has a real cost in terms of refactoring/re-architecting. OP even mentioned it themselves, they are twice as effective as before this "rockstar" arrived, and have had near no regressions ...
Your attitude is truly endemic in software engineering, everyone can just have a go at architecting whatever. In other sciences; structural engineering, medicine, ... humanity has learned that one needs over a decade of education and on-the-job experience before decisions can be made with sufficient background to hopefully get it right, with lethal consequences when mistakes are made.
And no this is not "trivial" for me to say, I came to software engineering after a decade in an adjacent field, in which I was already very senior. As I wanted to work on the niche that combines that other field and software, I started from the ground up on software development, implementing small features, architected by others. And so forth.
coworker@reddit
A junior designing a solution does not require the junior to approve said solution.
TimMensch@reddit
Given there are an unlimited number of bad designs and few good designs, having a junior design a solution and repeatedly telling them why the designs are bad sounds like a waste of time compared to showing the junior a good design.
It's like reading a lot of good novels before trying to write one. That's absolutely recommended by pretty much everyone. Why wouldn't it make sense to acclimate to good design by reading dozens of examples of good design?
Let them learn good design through immersion, and I guarantee it will be a better result than forcing them to guess at the best approach.
coworker@reddit
Nothing stopping them from reading about good designs to their heart's content
TimMensch@reddit
"Reading about".doesn't sink in well enough for most people. Actually implementing good designs is 100x more effective at building the patterns into their brain.
Plus, they're getting paid to learn here.
coworker@reddit
Do you want the junior to learn to design or to learn to code?
protip: leetcode is a better teacher for coding than spending a bunch of everyone's time implementing and reviewing failed designs
look_at_tht_horse@reddit
I'm 100% sure the job description didn't say, "You are being paid to learn."
JimDabell@reddit
They can’t. It’s basically the definition of “junior” that they are incapable of this. It’s not measured by years on the job, it’s whether they can work independently. If they can work independently, they aren’t a junior.
MiniGiantSpaceHams@reddit
100% agree, but I'd add that the architect should be including the "why" along with the "what" when they send tasks over (within reason, of course). There's always a balance here, but IMO juniors should at least be aware of why they're taking a particular approach (or doing a thing at all). The ones who show promise can then, as you say, be brought in earlier in the process to start to learn about how those decisions are made.
thelochteedge@reddit
Yeah I got 11 YOE and I would still love this lmao
cat_lost_their_hat@reddit
I'm surprised this answer is so popular.
Maybe it depends on how large the "tasks" are you are thinking about - a senior architecting a full system at a high level but leaving implementation details of individual parts to juniors is one thing, but if they are full on specifying everything and using the juniors as code monkeys then that is overall be bad (for those juniors, and for the company as they aren't learning and are likely to leave).
The way it is described in the post is a huge red flag for me that what's actually happening is the latter - i.e. senior is doing not (just) high level architecture but fairly low level design rather than reviewing work/plans done by juniors and helping them to improve it.
TimMensch@reddit
Learning does happen when typing in well designed solutions. In fact, it's likely to be far more effective learning than trial and error, as long as the juniors take the time to understand what they're typing in.
Waste-Bookkeeper-733@reddit
Meh, I used to be given opportunities to grapple with ambiguity which were extremely instructive. Having the choice and ability to problem solve without simply being told what to do has grown my critical thinking skills and ability to design solutions a great deal more than being treated like a disposable cog.
TimMensch@reddit
You need to learn to walk before you run.
Critical thinking is important. Sure. But learning strong patterns and understanding how things can and should work are just as important to critical thinking as being presented with ambiguity.
Let the junior developers learn the ropes and then start them on their journey of independence.
etherwhisper@reddit
The problem is that for a well specified solution, the typing becomes more and more trivial with LLMs. That path of learning to seniority is shrinking.
TimMensch@reddit
If they're not doing the learning that's being handed to them on a silver platter, then that's hardly the fault of the senior developer.
etherwhisper@reddit
That’s not the issue. The issue is that juniors typing every character of a well specified solution has become very improductive. LLMs have brought forward the need for code reviews and architecture skills that usually come with seniority. Now juniors need to develop them, in some way, much earlier.
Huge-Leek844@reddit
Thats why i left. The team lead didnt even let me analyse my own code and provided me pseudo code without explaining.
CepageAContreCourant@reddit
I guess OP did not specify but I'm talking about rather large tasks/features. I may e.g. provide a database schema as an architect along with guidelines on which layers in a software stack certain abstractions/data validation/caching should occur and outline what the test cases should cover.
hysan@reddit
+1 on this. The fact that the team almost doubled in efficiency screams that the juniors aren’t ready to take on architectural responsibility. Add to that the lack of regressions? To me, it sounds like this senior was put on this team precisely to right the ship. After a while, I’d expect that juniors who express interest will be given smaller tasks to architect out that the senior would review/coach them through. But as it currently stands, it sounds like it’s too early for that phase to happen. If I were to give feedback to the CEO, I’d mention all the good things and add something along the lines of being eager to see how this senior will help to mentor the juniors and help them grow once the ship is sailing smoothly. That would setup future expectations so that complaining about lack of growth wouldn’t come out of left field (if it comes down to that).
roselia_blue@reddit
hello it is i, a jr, and i spent 2 years with managers who left me alone doing jack all, and now ive spent 3 years with a new manager who write out everything for me to do, so much so i hardly think.
I learned a lot. Like, most of the time I could've done it, but that 10% of the time it helped slowly filled in my knowledge gaps.
Also inb4 a 5 yr jr scares you, I learned to code from a c++ textbook. I was more like "high school intern" level when I got the job.
No_Engineer6255@reddit
If you dont have this, switching jobs and learning will become hell in your first couple years , I wish I had something like this just to have some confidence with things and learning.
You will not understand his design choices anyway all the time so its really beneifical to progress in the way OP commented , most of the places Seniors will shit on you and just tell you to pick up a ticket , or if you ask they dont help, well good luck to work in a place like that but if these guys think this is the worst micromanaged hell , when they meet nobody cares and wont help you free for all environment will have a shock.
Alone_Ad6784@reddit
Maybe he should be encouraged to hear from the juniors before and after he explains the solution to them make sure they understand why, how and what they're doing also he must ocassionally let them do it themselves then go fix their mess. Idk that's what my seniors did and that helped me a lot it still does but I need less of it.
Sweaty_Confidence732@reddit
This developer sounds like he's got it together and knows what Juniors need to be successful, Juniors need direction and need to be helped out so they don't shoot themselves in the foot unknowingly.
glandis_bulbus@reddit
No problem, maybe he should just talk through the requirements, his decisions and reasoning with juniors instead of asking them to implement.
TheNASAguy@reddit
Exactly, they’re really good at their job from what I see
Realistic-Team8256@reddit
Absolutely correct 💯💯💯💯👍
poopindoopinscoopin@reddit
Is the senior explaining why a certain solution is the way it is or taking time to answer any clarifying questions? Hopefully these juniors will learn from good example.
NatoBoram@reddit
Sounds like perfection. I miss working with extremely talented people.
Middle_Ask_5716@reddit
Wtf did I just read
mr_brobot__@reddit
Perhaps you are wrong about what’s good for the team and junior devs and this new senior is right.
pbvignesh@reddit
You could propose an alternative? The way we do it is we don't spoonfeed the solutions to them. We ask the dev who is working on the feature to come up with multiple designs/architecture and with the pros and cons of each one and which design they finally recommend and why. We encourage them to use AI as well if it helps them restructure their thoughts better and maybe come up with more designs.
Once their document is ready we ask them to give it back to AI and ask the AI to poke holes extensively in it and critique it from every possible angle and try making sure they have answers for all the questions. Once they have done all this, they then come to the design reviewer (In this case it would be the senior) and then ask them to review it.
If the senior has new insights and opinions then the juniors can rethink their solution with those insights (after making sure they understand it though) and then proceed working on it, if not the senior gives approval to the design and then they go ahead.
With this way not only do the juniors know what the right method is but they also get to learn which methods WON'T work and doing this regularly for every feature gives them that experience very quickly. They do their own thinking while also getting the insight that comes with experience from the senior.
I'd suggest proposing this idea to your team and see how they take it and then go from there
epukinsk@reddit
The Senior is doing a great job.
The next step for them, however, is to teach the juniors how to do the same thing. Start with the one who is most interested in planning/architecture.
Step 1: Have them pair with the Senior. Junior does the typing, code searching, etc. Senior directs them how to do it.
Step 2: Let them do a couple tickets, have the Senior review their work & give feedback.
Step 3: Give them a project of their own to lead.
It's a ladder. Everyone is just helping everyone up to their rung.
Downtown-Ad-9905@reddit
once they pick up on the style and influence, he can delegate tasks and allow for more growth. i dont see any problem with this
DoJebait02@reddit
You know what ? After years of doing this job, i have figured it out that this is the most efficient way a senior should manage a team. I have spent time to train a really, really good team, with efficiency, hard working and creativity. Then one day they suddenly feel the cage is too small and quit.
You don't really need anyone under him develop so far, they can quit anywhere anytime they want and be easy replaced. You instead just need to satisfy one man instead of a whole team, and the output is exceed your expectation. That man can work with and improve anyone, even fresher.
You must admit that he's the best guy to suit this job.
theunixman@reddit
You don’t build teams, you grow them. And to grow a team you have to have the junior developers doing senior tasks with supervision. That way they can get familiar with the process while still having the safety net of knowing the senior isn’t going to let them fail. They’ll make tons of mistakes at first, sure, but that’s why they have supervision, to use each mistake as a lesson so that the mistake doesn’t turn into a failure. A good senior engineer will spend 80% of the technical task hours on mentoring and teaching. The other 20% are for doing things that are really challenging, like complex locking strategies, weird security things, etc.
But the senior should not be writing tickets and designs that detailed, the details should be filled in by the junior who will work on it together with the senior.
Electrical-Ask847@reddit
> When he assigns a task to someone
well why is he the one assigning work ?
Qinistral@reddit
Why not?
m4329b@reddit
Why is the CEO asking your opinion when this guy doubled the efficiency of the front end team lol
freethenipple23@reddit
Is he looking for more monkeys? That sounds awesome. I'd love to learn from someone like that, sounds like a true technical leader.
Perfect-Campaign9551@reddit
More efficient because you don't have idiots screwing up the codebase with bad decisions! Lol
QueenAlucia@reddit
Is the team actually complaining? Or are the juniors learning because he spends the time to explain the task and the solution? How long has this been going on? How juniors are the juniors?
QueenAlucia@reddit
That is NOT micromanaging... that's exactly what a senior should do to help juniors??
Baxter_Baxter@reddit
How efficient will it be if the team finds new jobs? Or, if the rockstar leaves again, what will happen to the team?
Id try and find a way to turn his skills into a coaching opportunity, both for him, and the juniors. If he can move to a more hands off coaching style, it will be good for his own growth as well as the team’s.
It’s also important he sees the impact of his current approach. Be honest, but appreciate.
SpacemanCraig3@reddit
This is good advice. It's probably fine for that team to take a 10% hit from where they are so that the rockstar can take the time to guide the jr's to figuring out the good solution for themselves.
TimMensch@reddit
The way a rockstar learns good solutions is by implementing them after seeing examples of the approach.
The new lead is already doing exactly what would be necessary to train another rockstar: Immersing them in examples of good design.
A rockstar doesn't have a set of rules they follow that allow them to come up with good designs. In fact, it's common that a really strong developer won't even be able to articulate why one approach is better than another. That's why we have terms like "code smell."
So there really isn't a way to guide juniors down that path that's better than simply exposing them to good design and having them implement that design.
I swear that the people in this thread who think what the senior is doing is bad for the juniors have literally never even met a really strong developer with good design instincts.
tikhonjelvis@reddit
I've seen what a high-performing team looks like (eg at Jane Street) and I can tell you that they absolutely do not micromanage junior engineers or even interns to anywhere near the level everybody in this thread seems to endorse.
SituationSoap@reddit
If you've been hanging around this sub for a while, it's become evident that the average skill level here has been in serious decline for a while. There's a reason that every thread in this sub about dealing with underperforming devs is flooded with responses about how nobody knows what underperforming really is and nobody can ever tell if anyone is actually doing a bad job.
SpacemanCraig3@reddit
I don't think it's bad. But if it's just "tell them exactly what to do" it could be done better with a bit more investment of time.
rayfrankenstein@reddit
Many people would love to have that problem.
adiberk@reddit
I am not seeing an issue. This is typically how juniors learn best. As they grow and show competence they will start having more freedoms to develop. I genuinely don’t see the problem
forbiddenknowledg3@reddit
Then I have juniors that complain there isn't enough detail 🤷, can't figure out basic shit, and delay the project. My new 3 person team moves faster than our old 8 person one lmao.
They can't complain IMO. Get to learn, and it won't be long before they can craft detailed tasks themselves.
mmcnl@reddit
What problem are you trying to solve?
AbruptlyTomato@reddit
The only problem I saw in the post is the efficiency doubling and regressions vanishing. Bizarre. This Senior engineer seems to actually understand what engineering is: building value for the business. It's no wonder our industry loses so much respect when we are in an experienced dev space and the primary goal is being improving the engineering output. If the Juniors are dissatisfied, they need to be managed to understand that what they are observing is perhaps the most valuable learning you can get(almost nobody has the privilege to directly experience how powerful a good engineering team can be). If they still don't like that, they are broadcasting they are not actually about learning, but they just 'don't like' what an efficient team looks like.
morswinb@reddit
Just wait for the end of the year official feedback reviews. Juniors will submit their reviews of the Senior guy. Seniors will get no bonus and HR will get involved :)
look_at_tht_horse@reddit
Why do you think leadership cares more about the opinions of a bunch of junior engineers over literally doubled output? How is this even a conversation in a sub for experienced devs?
xlb250@reddit
They care about turnover.
look_at_tht_horse@reddit
Where are the juniors going to go in this market? And they're going to attrite because of too much clarity? I don't buy it for a second.
If OP feels he's a top performer and wants more freedom, he should be more proactive in creating value. That's all there is to it. Why is he waiting to be spoonfed requirements and designs for a feature?
xlb250@reddit
If they are frustrated, they may just quit without anything lined up. I saw it happen. Many of these graduates come from upper middle class families that can support them.
look_at_tht_horse@reddit
Sounds like exactly the type of employee a company wants to invest in... /s
morswinb@reddit
The "problem" is that the "leadership" might care about something different, or one of the Juniors might be"friends" with the *leadership".
Half of this sub is about navigating office politics if you have not yet noticed.
look_at_tht_horse@reddit
Ah, so.... "nothing". You could've just said you're here to write fan fiction in the first place.
morswinb@reddit
Seen similar scenarios in practice. Upper management might genuinely be more interested in growing up a team, rather than focus on productivity.
Especially if not a tech company.
look_at_tht_horse@reddit
Yes, companies are notoriously focused on investing in junior engineers right now. Let's just ignore the slowing economy, ai-conscious hiring market, and stated productivity gains in the OP. /s
morswinb@reddit
There is already evidence of a weird company structure. 1 Senior to 5 Juniors is odd enough. And believe it or not, I just left a rather large bank that does internal dev work, but also won't hire anyone over 5 years of experience right now. Just fresh university graduates with good grades and some luck. The term is juniorization if you don't know.
Again the problem is not that Juniors are learning, but its what they perceive it as, and what the long-term company goal is.
look_at_tht_horse@reddit
All of Chase, Capital One, Citibank, and BofA are predominantly hiring seniors at the moment. COF and BofA almost exclusively recruit juniors through campus programs and recently international outsourcing. Can't speak to the others.
Those are four of the biggest banks in the country. Sorry that I remain unconvinced by your vagueties.
morswinb@reddit
Typical Americans think everything needs to be in one country :)
Just checked the careers site, and the number of entry level postings matches the experienced ones. And those entry levels actually get filled.
Those aren't even the largest banks in America that you have listed.
Anyway if your point is that my understanding of the problem is unlikely under the current predominant market condition, that only makes it less likely, but still probable.
look_at_tht_horse@reddit
This was your original comment. My point is that it's a stupid comment.
serg06@reddit
Juniors don't get an opportunity to prove themselves. When perf time rolls around, they won't have any design work on their packet, only implementation work.
mmcnl@reddit
This is very hypothetical and assumes a lot of things. Are juniors complaining? Is the senior dev open to delegating more on request?
Pale_Height_1251@reddit
Tell the truth.
If the senior is the best developer you've worked with, say so. If regressions are extinct, you're ahead of schedule and the senior is doing great, say it.
If you have concerns about the the growth of the juniors, say so.
The CEO is asking for your opinion, just give it.
Roguewind@reddit
Do they explain WHY they chose the implementation? Are they open to juniors asking questions about WHY they want it done a certain way? And can they clearly articulate a response?
If the answer is to those are yes, then they’re doing their job.
There is clearly more than one way to skin a cat. While throwing it in a blender and sieving the fur out might work, it’s a bad idea. Some ways are better than others. A senior’s job is to convey that to the juniors - create standards, iterate, integrate, refine, repeat.
The only thing I’d say to watch out for is if they’re working a lot outside of work hours in non-crunch time situations. That’s just heading for burnout.
Reasonable-Pianist44@reddit
"Annoying for the juniors"
Wtf did I just read? Imagine being a junior and having an opinion. The side-effect of LLMs.
mrfredngo@reddit
It seems to me that this is a golden opportunity for the Juniors to study his work and absorb and learn.
locknic@reddit
Great position to be in!
Coach the senior on how to more effectively mentor. Have the juniors spend some time doing the initial context building themselves and coming up with a design document (can be very lightweight like a one pager, a comment on the jira ticket or even a slack message depending on the size of the project).
Then have the senior review those documents and provide detailed feedback, suggesting alternatives, and explaining why those alternatives might be better and how they came to those conclusions.
TBH often it would be quicker for a senior developer to just go ahead and implement the project instead of coaching a junior on how to. But that’s not the point. You take some hit on productivity in exchange for upleveling the junior. Sure they can learn a lot from the detailed instructions from the senior, but without the practice of requirement gathering, designing, etc they won’t get better at doing those parts themselves. One day the senior might leave and the team will fall apart.
OkLanguage6322@reddit
Story time!
We had a lead who exactly did this. He even created the feature branch. He explained everything to such a granular level that there was no thinking to be done. There was no motivation as well to learn anything related to the code base because he did all the thinking for us. The joke was that if you reported to him, you can leave your brains at home.
Over the years 4 developers (one after the other) had left his team complaining about how demotivating things are. Now, I was the fifth one and according to my M the most easy going. So I was asked to report to him. I lasted for a full year before I gave up. Again, me being the easy going one, I did not say anything negative or complain. It just so happened that my previous team was doing something interesting and I got involved.
It was a very demoralizing experience. We were all Senior Engineers for heavens sake. After a few months or so, he was demoted.
blokelahoman@reddit
The results speak for themselves, so you don't want to lose that. The key might be re-framing this not as a top down imposition, but as learning by example. Good juniors will pick up on patterns and level up if they’re given space to reflect and ask questions.
A potential middle ground is to let the senior continue setting direction for now, but introduce optional design or architecture sessions where team members can discuss decisions, ask questions, and gradually take ownership. This gives the senior a forum to express their vision and allows juniors to participate and build confidence.
UnluckyWarfish@reddit (OP)
Okay thank you very much everyone, it's nice seing the situtation from an outsiders perspective. First of all I will definitely speak with him to let him know the sentiment from the team. I am sure he will be receptive. Then I will speak with each member on the team to be clear on wether this is a problem for everyone.
As for what to do going forward, I will suggest a daily tech meetup where they will talk about solutions as a team. Also the current pace amazing but great will also do, since we have time to spare, I will suggest for some tasks to let the members figure out a solution alone and then go over it together before the implementation.
AbruptlyTomato@reddit
I would beg you to push back on the Junior engineers too. They have been given a gift to be spoon fed proper solutions, see the results in real time, and have direct access to the person who is willing to talk with them about it. Most people will never encounter this in their entire career. They should understand how valuable it is, if their stated goal of learning is actually their concern.
Waste-Bookkeeper-733@reddit
Some people learn better by doing and I would say most people do
Simple-Box1223@reddit
Implementation is still doing.
The fastest learners I’ve worked with ask directly if they know someone else knows the answer. The slowest are fumbling around in the dark, learning the wrong way to do things.
Waste-Bookkeeper-733@reddit
I have nothing to say to that because I can think of a few work environments that would disagree with you. I think if people want to think of other people as wrong or inferior, they will find a way.
Simple-Box1223@reddit
Well then you do have something to say, and all you’re doing here is telling me you’re not going to say it.
AbruptlyTomato@reddit
Agreed. This situation described is not in conflict with that reality. Frankly, my own work is 'micro-managed' by my own designs, standards, and architecture I established 6-24 months ago.
If the juniors are truly constrained and talented in this current situation, they would be using this time to harden the ideas they have been wanting to bring to the table. Now the team is ahead of schedule and opportunity exists to showcase their ideas. The team has all the pieces setup to have healthy, productive, & growth oriented path forward for everyone. The next move from the team lead/manager is critical.
FulgoresFolly@reddit
please don't do this
suggest to the juniors in 1:1's that they need to give feedback to their lead and that they need to learn how to ask questions + propose solutions, and then have a team conversation around whether ideating solutions needs to be a synchronous process or if small improvements can be made
avaxbear@reddit
So you are gong to slow down this team and introduce unnecessary meetings as a reward for being good at their job. Great way to get people to quit.
notParticularlyAnony@reddit
I saw daily meetup and I did a double take...
please no ... how did they take that away from these responses???
dablya@reddit
There are great managers out there and for the most part I've been lucky to avoid horrible ones, but when I read shit like this I can't help but think "managers are gonna manage..."
Imaginary_Maybe_1687@reddit
Being ahead of schedule is also an amazing situation for sure. Thinking of it like you need to keep up this pace I feel might be "wasting" the extra time you earned.
notParticularlyAnony@reddit
I saw "daily" meetup and I did a double take
SoftEngineerOfWares@reddit
Honestly, junior developers are given small pre planned tickets for a reason, they need to learn the syntax and code styling. Not designing.
Of course they should take part in the overall design process, but until they can actually crunch out baby ticket, they need to slowly progress to taking bigger ones.
Visual_Counter5306@reddit
There are no people under the senior. People report to the tech lead, line lead, or manager.
"A few colleagues have complained to me that he 'micro manages' every task they get."
Red flag
"But here is the problem. The overall efficiency of the FE team has doubled and most importantly regressions have become almost extinct."
So even one man can run the whole FE project. That's not an issue, but if you're working in a big company, you guys should tell that dev to slow the pace and let others contribute.
"That senior is prbabably the best programmer I have worked with"
The best coder, worst teammate.
"What should I do? The CEO wants my opinion but I honestly don't know what to say."
The code is good, but he will (or already has) created a toxic environment, and you're seeing red flags that people might leave because of him. No matter the increased percentage of quality and speed, if your team is going to fall apart in 5 months, it’s a problem.
The dude is a good programmer, but a bad teammate and a bad manager. He should improve his soft skills and mentor juniors, then he could become your right-hand man soon. If ego is an obstacle, he's a one-man army, and you should use him as a solo developer, giving him projects to handle entirely on his own, with full responsibility.
Dimencia@reddit
What he's doing is an effective strategy, and it doesn't really stifle growth - assuming he allows discussion and contribution to his designs
Any junior can write code that does a thing, but a senior is the one who has the experience and knowledge on how to do it right; it's a good idea to rely on a senior for the how and why, and rely on juniors for the actual time consuming work. It's not a good idea to let juniors try to design a solution themselves, only to have it picked apart at PR time and add a ton of additional work rewriting it to match what a senior could have told them from the start - or worse, to let bad code into the repo because nobody wants to roll the sprint and it's too late to fix it
The only issue sounds like that he's not discussing it with the team, if he's calling up individual juniors to tell them what to do. He should be calling together the whole team to discuss the design, explain why it is what it is, let them contribute and point out potential issues or improvements (or just ask questions), and then send them off to get it done. That gives them every opportunity to learn and grow, and demonstrate their competence for more senior tasks in these design sessions
It doesn't take much time, and can often result in even better designs and ideas than what the seniors can come up with on their own
dogo_fren@reddit
I don’t think everything needs to be discussed with the whole team. You can have a quick demo of the completed feature so everyone is aware, but why waste time?
Dimencia@reddit
So they can learn from it and contribute to it, that's kinda the whole problem OP is talking about. It's just grooming a story
dogo_fren@reddit
Yeah, but they need time to do their own jobs?
Dimencia@reddit
Writing code to implement an already-designed solution doesn't take much time. Neither does an hour long meeting every week or two
look_at_tht_horse@reddit
How can you possibly say this without knowing anything about the task or solution?
SituationSoap@reddit
A lot of people in this thread are telling on themselves about the relative level of care that they put into shipping features. Writing code might not take a lot of time, but making sure that the thing actually does what it says and ships correctly and doesn't cause any problems after it ships take up a lot more time, and that stuff is why you delegate tasks like these.
dogo_fren@reddit
Hour long per task, with a team size of 5-ish, that is a whole day at least for everyone in the team.
Dimencia@reddit
Hour long for all the tasks. We're talking real timeframes, not corporate ones
effectivescarequotes@reddit
I always thought that refinement was the most important of the agile ceremonies. One or two hours a week wound up saving much more time in churn on the tail end of the task.
It's also fine to skip the meeting occasionally when the team is set for work and just needs to focus.
kaflarlalar@reddit
It sounds to me like you've got a pretty good situation that just needs some minor tweaks.
Make it really clear to your senior engineer that you love what he's been doing, but that you want to make sure that the juniors he's leading are learning and growing. Ask him to show the team more of his thought process - walk with them through the decision-making process rather than doing all the thinking offline and presenting them with fully-baked ideas. This will take a bit longer, but if you're ahead of schedule then that's fine.
Frame this all as saying that you want his team to be as capable as him in a few years. A little flattery goes a long way, especially when it's true.
notParticularlyAnony@reddit
I think this simple answer is right.
It doesn't sound like there is a very big problem here. A couple of dials need to be tweaked (just a little bit), it sounds like a very good situation to be in TBH.
thatsrealneato@reddit
Let him cook
fuckoholic@reddit
I had 4 juniors on a project writing total dog shit code, so after I almost burned myself out doing code reviews I mandated using this and that and only this way. This lead to them complaining to manager, which I of course won. The project was late because the code in PRs was dog shit and I just couldn't close my eyes and merge it.
lookmeat@reddit
Ok, so I am first going to note what I think of this sitatuion. In my reply I will give what I think could be good next-steps.
Micromanaging is managing to such an insane detail that it harms production. Basically the idea is that this senior would have their attention so spread out, that the decisions they make are worse than what individuals would do.
If this guy is "objectively a micromanager" that implies that he is doing worse decisions than what an average developer of that level would do. If productivity is increasing, that speaks badly of your colleague's ability, basically showing it must be underaverage and replacing them with a random hire would be an improvement. I doubt that's the case though, but lets be clear: what you're saying, as numbers, is that if it gets to the team or the senior dev, it seems you want to keep the senior around and switch the team. Lets go on to understand more of the problem and see if there's a better solution.
What do you think is the growth for juniors? What do you think is the level and tasks a junior should have?
Junior engineers have a lot to learn: they need to improve their coding skill to which they can "fluently talk code" (that is they don't think about how to write something, they just do) which is something you only gain with a lot of practice writing a lot of code (if you come out of a solid university program, I'd say about a year to two extra of full-time coding should be enough, otherwise this may not be the career for that person). They are also learning to be profesional, work on a profesional environment, interact with managers, understand the structure, realize the shift from "solving problems to prove you've learnt the lesson" to "solving problems that a business has", and the mindsets needed, as well as grok all the pragmatic aspects of programming you don't really think of when you first learn: testing, release systems, production systems, marketing requirements, domain models, etc. etc. etc.
The other thing is that it's easier to learn by seeing a good answer and doing it, rather than iterating on a myriad of mistakes (you could spend your whole life never learning the non-trivial lessons in the right way, and be stuck in a 1st junior year for 10 years). The juniors may think they could have done it themselves, but you know what? I'm calling Dunning-Kruger bullshit. There's no way someone with less than 2 years experience understands the implications of a design after 12 different people have iterated on it for 8 years.
So what you do is you give Juniors a lot of great models to follow, very detailed. Later they'll be able to make their own decisions, make mistakes and realize why those designs given to them were the way they were.
Now lets move on to mid-engineers. These ones are a bit more challenging, you still want to invest and have them grow, but you have to give them space to make mistakes. Here though I still sympathize and understand where the senior dev you're speaking off is coming from.
A lot of times, when I start a new project, I hog a lot of the coding and work setting things up, I basically set a foundation of thinking models, paradigms, strategies and conventions. I make spaces to expand and change, and leave key "load bearing" pillars of code done very well and resilient to future changes (~80% of the code is "good enough" sloppy, but there's a 20% that I know will be the main source of bugs if not done with care). This is also true when I get to a project that has serious tech-debt issues, or is struggling to work well.
And here's the harder thing on the second scenario: I am working with the team that let things get this bad. So I am trying to subtly, through Conway's law, through showing better ways of doing things, through specific requirements and expectations on the work of teams, to make the team's culture and practices change to something that will not go back. This is a lot of pressure, and this is going to mean making a lot of the engineers work on things that they think don't matter, and make them ignore things that they think they should care for. I expect pushback because ultimately I am telling engineers they are going wrong about the problem. Again what I do here is have numbers I can show to demonstrate it, and let people grow and improve, without accusing anyone, using passive voice, just saying "these practices have resulted in an improvement" and focus on that: the future and improving things. But egos will get bruised because people will realize the implicit thing: they were doing it wrong and it was the source of the problem.
And again, this isn't to speak ill of engineers. A lot of times they gained these practices when the project was in a dire situation and things weren't great. And those practices helped improve things to the point that they aren't needed anymore. Sometimes they just never get the training or vision to learn from this.
lookmeat@reddit
So what do we do on the situation when the team is resenting the senior engineer's choice?
The first one is realize they are employees, and their happiness should be in favor of productivity not against it. Push back with the numbers showing the improvements. If you can, show that their own numbers under the senior engineer have improved as well.
Make it clear that during promo/perf talks you'll talk about their numbers as coming from them, not who helped them or not.
Speak with the senior about this. What is their attitude to this? Do they think that they would be able to let go? What about training up some good engineers with a lot of potential so that you can increase your bus-factor? See where his mind is, and what he thinks the project needs, and what plans are there to start letting go so you can move him to other bigger projects? Frame it as him being to good to be stuck anywhere, I mean it's true. Gauge his attitude, the problem may not be micromanaging, but rather how he imposes things and gives our orders. The engineer may need training and education on their soft-skills and learn that delegating is also letting go.
Try to talk with the CEO of ensuring that mentorship and guidance can be used for promotion/perf. This senior engineer should be able to show that he's made junior engineers much more productive even without him to gain this.
The senior is clearly very knowledgeable, but is also being very pragmatic. I say create a space to teach and educate good coding practices or what not. Talk with the senior and say that you'd like them to help improve learning. A silent-meeting reading good articles or what not that the engineer thinks are attractive. Or having small short courses where the engineer talks about something that they think is important.
Set this up not as the senior's lectures, but rather as a place where you want engineers to share and spread knowledge and good practices. The senior engineer is just helping you bootstrap.
Have all your engineers be more privy to all the conversations that lead to deciding what to do. Even if it's just listening in (though I do think that participation is good). Let them be able to "get ahead" of the senior, having the design, diagrams, and everything that the senior would have done ready. Now if the engineers always had the chance, they just don't do anything until the senior already has everything ready for them.. well that's something to bring up to the engineers then. They should take initiative and push things on their own without needing to wait to be told what to do. I mean how else are you going to decide what to do for yourself without making that decision?
lost60kIn2021@reddit
I'd say inform the senior about, how juniors feel. Make sure he understands the benfits his approach brings, but the detrimental effects it may have in a long run (morale, risks that can occur if he, or majority of team leaves e.t.c).
One solution would be to do 'solution design sessions' between juniors and senior, when there is an initiative.
Have juniors propose solution then have that senior chalange them ... usually in the end juniors proposition would evolve to initial design from senior, but since there was a discusion, juniors would usually feel like they made more impact and have some sense of ownership (since there was concensus instead of dictatorship)... also this way senior can learn something also by teaching juniors ( hskills needed to break away from IC ... granted he wants that).
BrofessorOfLogic@reddit
You are having Stockholm syndrome. Bad for their growth? You're joking. This is what the word senior actually means, or at least what it used to mean before titles got completely washed out by middle mangers. Give him a raise god dammit.
AccomplishedLeave506@reddit
Part of a senior engineers job is to train junior engineers to become senior engineers. You might need to start out giving a detailed explanation of what needs to be done, but that should move towards having a conversation about how best to do it and then eventually become "Hey, we need this. Probably using x would be good. Come up with a plan and then let me know when you're ready to run it through with me".
They'll get it wrong. A lot to begin with. And it will slow a senior engineer down in the short term. But over a longer period you end up with a high performing team instead of a high performing individual.
What's better than having a highly skilled senior engineer improving team efficiency by 100%? Having 3 of them.
dogo_fren@reddit
How would they learn good design without actually working closely with someone who can create a good design and explain it in detail?
Imaginary_Maybe_1687@reddit
The problem is 2 pronged:
We dont know much explaining is happening. Is it the how it works or the why it was chosen this way and not snother way
No, you do not learn a lot from watching. Maybe a bit on the beginning. But we lewrn a whole lot more by doing. That's why math teachers try and get you to do a million problems, it is actually the part where you learn.
dogo_fren@reddit
Sporkmancer@reddit
Children learn mainly from observation, inquiry, and exploration. As mentioned by the previous poster, this is why schooling (along with other ways of teaching) has explanation, questions for clarity, and practice to reinforce the lesson. Previous poster is correct: we don't have enough information from OP to conclude anything, but we can say that just being told to implemnt a finished design doesn't leave much room for experimentation and learning...which can make for a bad bus risk situation.
As long as the senior is working with the juniors and not just dictating design at them, I see this as a good thing. In the idealized version, the senior is helping the juniors learn faster AND be more productive faster, which is obviously good. In the bad version, the juniors are learning nothing except how to code to a strict guideline (meaning they will not progress past being a junior without leaving, which they may eventually realize), and if the senior ever leaves they are in trouble anyways.
tikhonjelvis@reddit
There's a catagorical difference between working with somebody who can create a good design and just implementing a design somebody hands down to you.
drink_with_me_to_day@reddit
Depends on how the individual learn, I like it best when I can learn like an LLM: a big number of good training data
TimMensch@reddit
Yes there is. And implementing a good design that someone hands you teaches you by immersion.
In my own experience it's a much better approach. You form mental patterns of how things should look. It may seem boring, but it's probably the fastest way to wire up your brain for good design habits.
dogo_fren@reddit
It was always a very good opportunity to improve when this happened during my junior days.
bearicorn@reddit
That’s one competent architect.
TRexRoboParty@reddit
He wants your opinion. Give your opinion.
Not an imaginary shared opinion of what you think will satisfy others.
Imagine the CEO listens. Now the senior will have his hands tied and juniors can now throw their toys around and have fun making a mess. Senior - who is seemingly excellent on multiple fronts - will now be thinking: "WTF why am I being punished for doubling the teams output and reducing regressions?". Maybe Senior decides to leave as a result.
Juniors continue to enjoy rolling in their mess for a while... until the cracks form and a big ball of mud starts spilling out. Team becomes dissatisfied anyway because they have a mess, they're stressed, management are barking at them to sort it out, but have no idea how to - because they are juniors.
They are thinking only about their task, not the whole ecosystem.
If the juniors are impatient to work on bigger things, that's their problem, not yours.
The way they get to work on bigger things is to prove they can ace the easy things, repeatedly. A good lead will know what the juniors limitations are and assign work accordingly.
TLDR: tell the CEO what you think. Why attempt to torpedo a top performing team and sabotage yourself if you think it's going well?
finicu@reddit
So you have an expert architect with exceptional people skills who you're paying only as a senior?
morswinb@reddit
If any of the Juniors grows to be a Senior himself, then they will need to pay even more :)
cballowe@reddit
The difference between junior/intermediate/senior/staff/principal/etc are expanding scopes of responsibility/influence. A junior has scope at roughly the task level, and also is expected to need some oversight. "Here's the design, go implement it, and I expect that I'll need to help a bit" is the expectation. Intermediate is roughly the same scope but without the "i expect to need to mentor/help", senior usually has scope at around the size of project/system that is built and maintained by a single team of a few people. Staff is dealing with cross team coordination etc.
Ex: staff may be making decisions like "the backend system will provide this interface with these requirements" in the context of a number of client systems, etc. The senior will break that down to the work that actually needs to be done, decide on any internal architecture, etc and assign those to people in the team / drive the process of delivering. The staff+ person doing the higher level stuff will be reaching out to the various teams to get feedback, requirements, expectations before locking things in so that the other teams can start moving independently until there's enough done to start integration work.
I'd expect the senior to also have some expectations around developing junior devs toward senior. Finding work that lets them demonstrate higher level thinking, asking them to work through a subsection of the design/collaborate/etc. Sometimes "get it done as fast as possible" is a higher priority, or "get ahead of schedule so we can build in some buffer time to work on things together without risking falling behind" (have 2 weeks to lock down the design before falling behind is a very different point to work from than "we're behind and trying to catch up).
It sounds like, in your case, they're executing extremely well. If you want to shift things, start asking "is anybody ready for more? Why not/what can we do to help prepare them?" Or similar questions and ensure that they're accountable for making those things happen.
kur4nes@reddit
Are the juniors learning good coding practices and why he suggests solutions? Are they discussing solution or are expected to blindly follow orders?
The big question is what happens if he leaves, gets sick or is on vacation? Would the remaining devs be able to maintain and extend what was built? If the answer is no, you have a knowledge silo. One senior developer does not scale. Good junior devs will leave eventually, because they don't have a chance to grow and take on responsibility. Best bet would be to suggest to the senior dev to let the junior devs come up with solutions, discuss them and give feedback. Then watch how he reacts to the feedback and how he treats the junior devs afterwards.
Bethgurl@reddit
If it ain’t broke don’t fix it. Leave the man alone and let everyone learn from him.
Lyraele@reddit
You and your juniors are foolish and should listen more, whine less.
lphartley@reddit
"All that is left is someone to type it out"
Try to do this: design everything beforehand in such a way that it is actionable by juniors. It's hard and will take a lot of time. Most seniors are unable to do this.
Seems he is really empowering the team.
Krom2040@reddit
There’s a bit of an obsession with “learning the hard way” in software engineering that I think is taken way too far to an extreme. Yes, there’s no real substitute for getting hands-on, BUT it’s extremely clear that the fastest, most robust way to learn is to listen to what the experts are saying. You don’t have to agree with all of it, but understanding the field is critical. For example, I can’t count the number of times I muddled through something only to realize that I would have saved myself days, weeks, or months of heartburn just by taking the time to comprehensively read the docs and understand the larger environment rather than trying to “figure it out” organically.
I have a sense that software development for most rank-and-file devs should be following a proportion of something like 60/40 or even 70/30 time spent reading up on docs, specs, and best practices, vs. doing the actual work. This is admittedly not how I end up spending my own time in practice, because workplaces are chaos, but no doubt the entire industry would be better off if devs spent more time understanding the field and less coming up with janky solutions of their own devising where there are perfectly normal, accepted solutions and patterns already out there.
All of this to say, yes, it should be the case that juniors are largely getting recommendations from seniors.
Cryptographer-Bubbly@reddit
I had a similar experience to this and I tell you that short improved my abilities as a dev 1000 times more efficiently than my previous experience of being left to come up with 1 of 1000 wrong ways to do something and then somewhat learn what was wrong with my specific approach but not necessarily generalisably first principled intuition for the right way.
Sometimes it’s useful to have someone quite dogmatic as long as they explain the motivations for their thinking. Over time the juniors can leverage their learnings and work more independently. But they need to learn what is good first.
Fidodo@reddit
I think the only thing that needs to change is for him to invite other devs into his design process more. He sounds very talented so it's ok for him to be a leader, but they should be doing more communication earlier and inviting feedback on his software design.
SmellyButtHammer@reddit
Sounds like you know exactly what to say.
Lfaruqui@reddit
This is what an architect is and what a pm wishes they could be
NotNormo@reddit
This person sounds like a tech lead / architect. Is that his role, or is he overstepping? Someone should be doing the type of planning he's doing for these junior devs. Over time they should absorb some of the good practices he's laid out for them. Those juniors are very lucky. Most don't get this type of resource early in their careers.
But if the idea is to accelerate that learning, maybe his manager should require him to have the junior dev sit in with him during these planning sessions. He's still the one making the decisions but it can be more of a collaborative discussion and/or learning opportunity.
If it's expected to be a small or simple architecture, then he can delegate it to a junior dev, and then critique it afterward so they can grow their skills. Because at some point they must become mid-level devs who should require a bit less detail in their assignments. They'll have to start coming up with these solutions on their own, to some degree.
That is, in fact, the point of hiring junior devs. You don't do it mainly because they're cheap to hire, you do it because you want to eventually have mid-level devs who have been taught the knowledge you want them to have. It's not the tech lead's job to think of that future. It's management's job to do that, and to direct the tech lead accordingly.
marx-was-right-@reddit
The key way to handling someone like this is making sure the team does not become paralyzed if they ever go on PTO. Ive seen it happen too many times that product or juniors dont know how to operate without the superstar who always helps them around.
Xia_Nightshade@reddit
I’ll swap jobs. I’ll follow his lead, I’ll learn from his guidance. Most junior devs kill for this. Let them swap. Damn nowadays I’ll move to the other side of the world for this…..
It’s not micro management. Do they understand what they are being told. And why? If not, can they ask questions? If they can, do they want to ask questions? Cause honestly if you’re not hyped by having people around you, you can learn from in IT. And you’re not teaching. Well, time to look for some grass and find something fun to do ^^
morbidmerve@reddit
This is not micromanagement. He is simply setting the tone for how the work should be done. They will learn more from this than from diddling with their own approaches
Rich-Hovercraft-1655@reddit
They are juniors, not architects. They dont get to decide how its implemented
palmfacer@reddit
I had a similar lead in my current org. When I started, with 2 other team members, he would detail out what exactly needs to be implemented in ticket with exact class names, leaving no room for doubt what needs to be done. Having said all that, we new developers were in complete opposite timezone(IST) than his(CST), so he had to be efficient about completing these tasks through us. But, he also ensure we got the high level understanding of the task with whatever details we need.
I honestly felt I was being spoon fed, so I started doing my own research, like going through feature brief, searching different slack channels for more context, or maybe if it is a library or something a standard on open web(which is the case most of the times in AdTech), I would come up with my own research and try to point out where things don't align with the ticket details. And bring up more contradictory or alternate approaches to his solution. The other two engineers didn't do that. I was moved to other projects to do new POCs, presented ideas conflicting to the same lead in presence of CTO and made strides and now lead a parallel team.
So, suggestion to you would be to find a guy under him who has a different thought and is knowledgable and opinionated and not blindly follow whatever he says. You need the others to follow him blindly so that the mundane tasks are taken care of, you can not force them to think if they are not doing it themselves.
dlevac@reddit
Juniors: learn by copy, do what you are told. Intermediate: ask questions and offer suggestions. Senior: make the decisions, coach juniors and intermediates.
And that ain't even specific to software, it's how crafts have been passed down since ancient times...
Your juniors are being entitled and value doing "interesting" things over the company's interests. You should have a chat with them to set expectations straight.
AthleteMaterial6539@reddit
Given what you can do with vibe coding, this guy can probably vibe code the whole thing it sounds like. He also doesn’t sound like the ideal dev to collaborate well, so maybe he should just be put on his own with cursor. He sounds like the epitome of a successful vibe coder.
imamonkeyface@reddit
They’re juniors, it’s scaffolding. As you build them up to mid-level, you can have the junior submit their first attempt at architecture for the task they’re assigned, then have the senior do what they’ve been doing (submitting their own architecture), and spend 20 minutes discussing why it’s better, trade off the decisions made, and the systems design patterns in place. Juniors should be working on learning systems design through reading or courses and applying it in these sessions with their senior. This is how you build a team of engineers as good as this guy in a couple of years. The guy is running a tuition free course.
HotDribblingDewDew@reddit
I would've gone into debt to be able to have someone like this when I was a junior engineer. It took me 3 companies and 3 years to find a place that cared to teach the ropes and have available mentorship from smart people who weren't too burned out to do the exact thing you're describing here.
Juniors think they know more than they do, and it becomes a matter of effective communication. This senior can start explaining more in the tickets the thought process or word it in a way that's a suggestion or a proposal with justification to explain it. Eventually he can taper off and simply make suggestions and less explicit directions.
Trust is everything.
shan23@reddit
That is a dream for the management
Your juniors are getting trained by a professional- they should LEARN from the experience
Once they do, they may even propose new changes that aligns with the proven design goals of the 10x guy. That is how you learn.
Honestly this is a great environment for your juniors - workplace is not meant to be a training program where you get to practice all your design mistakes, do it in your own time
zukos_destiny@reddit
You people really always find SOMETHING to complain about. Hats off to you.
Simple-Quarter-5477@reddit
As they get familiar with his style of work and processes, they should propose solutions on their own afterwards and then have him correct it.
shozzlez@reddit
This isn’t a problem, it’s a best-case scenario.
labab99@reddit
You need to get rid of this guy asap. Then send me his LinkedIn so I can make sure he gets a good talking to any time between 9am and 5pm central time.
Dismal-Club-3966@reddit
Half these comments are people saying this senior is the best person ever and doing their job perfectly, the other half are saying junior devs need more room to grow.
I think you need a balance. If someone just joined the team yesterday or a specific story really needs to be done perfectly the first time or the timeline is looking really tight, the senior should do exactly what he is doing. However, if this senior is really this talented and all the code they write is perfect, they won’t stay on this team forever. Will the junior devs have the skills to continue producing good work in that scenario? What happens right now if this person takes a well deserved vacation?
You don’t need to be a month ahead of schedule, so it sounds like there’s some room to give some devs on the team some low risk stories or time boxed spikes so they can practice this type of thinking on their own. It’s short-sighted to not try to grow your own people.
PoisonMinion@reddit
This is the ideal setup for most software companies, especially when you have a technically complex product.
jigsaw11@reddit
Id just add that when juniors start coding professionally they have a whole lot of new things to learn, like how to code in a team, use git in many cases, write test cases, follow a style guide. This approach works extremely well to get them able to master these fundamental skills without having to waste time going around in circles on design.
I agree once a junior has shown they can execute well on these tasks, then they should be given more freedom and challenge, but without more context I don’t see anything wrong with the approach the senior is taking and they are delivering value to the business and the team.
FTeachMeYourWays@reddit
Showing people the correct way to complete a task is not micro managment, constantly asking if they have completed there time sheet is.
supercoach@reddit
This behaviour is fine as long as the next step is having them think for themselves and gradually handing decision making over to the junior devs.
It worked for me. When I started I was spoon fed simple tasks until I was ready to take stuff on by myself.
SenderShredder@reddit
LET HIM COOK
Varun77777@reddit
He's good. The people who are complaining should become good enough to add on to his solutions and suggest something better.
Material-Smile7398@reddit
I would suggest to the juniors that they could ask him to take a task on and design it themselves given what they have learned from him. Then it could be reviewed by the senior and gradually they could grow in experience.
The way it’s set up now is good for organised bug free code, but the juniors need to be pushing out of their comfort zones and growing as well.
bwainfweeze@reddit
Once I realized I was the bottleneck, I got better at splitting out the tickets that needed to be right the first time and the ones that were reversible, so that other people could work on them to expand their skills.
You can still keep your bug severity low but give people more autonomy. Running the project the way he is results in few surprises, good or bad. And even the most clever lead cannot think of everything, so you need pleasant surprises sometimes.
behusbwj@reddit
You have a strong leader that doubled productivity. That’s how any CEO should see this lol.
It’s not abnormal for seniors to handle architecture and for juniors to handle execution. I find it odd that you don’t have middle engineers and that may be part of the issue. The key is that juniors, after learning how the senior designs, are allowed to ask for opportunities to do it themselves and receive constructive feedback from the senior. If he never delegates despite being asked by managers and juniors then that’s when you’ve got a problem.
But also keep in mind that there may be more you can’t see. There have been times where Ive had to take the wheel from less experienced people if the team was in an existential crisis or things had gone too off track and i lost trust.
garfvynneve@reddit
Llewelyn Falco’s Strong Style Pairing is a good fit for these skill gap situations- allows the junior to contribute, the senior to coach and the code review is built into the process.
Impossible_Way7017@reddit
stupid_cat_face@reddit
Juniors should learn from this person.
lllama@reddit
When your software architect is an actual software architect.
tr14l@reddit
You have described someone doing their job. The only critique is that he should probably be using a socratic method to have THEM come up with an appropriate design at least occasionally. Not if he's busy, he's busy. So the junior needs to take initiative and try to design it blind and compare against his and figure out why he made the choices he did, and now you have an one on one discussion.
Or just take the order, put the fries in the bag and move the ticket to done. I guess it just depends on what kind of person you are.
kittysempai-meowmeow@reddit
I see it as giving the junior some tools for their toolkit, and yes, socratic method can really help here. Once the junior has implemented a pattern that they've been shown once or twice before, it's reasonable to ask them for the next time "which patterns that we've used before make sense to use here". They shouldn't be expected to come up with designs from scratch without having some tools in the box to choose from and that's what providing design guidance does.
I have a junior on my team who started as an intern and got hired on. When I first started working with him we'd have very detailed conversations on how to do things and I'd have him work iteratively til it was right. Over time, when there were similar tasks I didn't have to give him quite as much guidance on the "how" as much as the particular details that were important to know for the next feature because he had patterns to follow that we put in place that he'd become more familiar with.
Hopefully as time goes on the juniors on OP's team will have more and more tools in their toolbox and will require less detailed guidance, but overall I'm on team "better too much than too little guidance" when it comes to juniors. I struggle more with people who aren't supposed to be juniors (they often have a senior title), but who come up with flat-out bad designs on their own. They probably don't like the level of guidance I give, but it's necessary to avoid them digging holes that will take a long time to get out of.
I find I have to tailor the amount of guidance I provide to the individual. I have two people on my team who I can just give a germ of an idea and the constraints and know they'll come up with a good design on their own. There are others who will make a huge mess if I don't give them much more detailed guidance. It's a balancing act.
lazoras@reddit
you don't have a senior dev. you have a hands-on architect.
share the vision together and improve the product together. the next step is to do build out an architecture team
FudFomo@reddit
As a senior who works at a shop full of cowboys with zero qa staff and no code reviews or pre-code guidance, I can attest that the alternative is worse. Those complaining about micro-management are cowboys who just want to indulge themselves.
dablya@reddit
So… just explain the issue to him… “We need productivity back down where it was, regressions need to come back up and we need to be behind or at the very least back on schedule. All so that the junior staff feels like they’re contributing to the overall success of the team”
cran@reddit
That’s what they’re supposed to do.
Cahnis@reddit
Damn, you should give him a raise.
NocteOra@reddit
For me it's not micro managing ? it's just a lead/technical manager writing technical specifications because for some projets it's required and/or really needed.
For certain important or complex functions, someone with more experience needs to write technical specifications for the developers. For example, the precise way in which an import must work in order to be efficient enough for the volume of items to be processed.
ProjectInfinity@reddit
This is a dream situation. Businesses are not designed for inexperienced developers to figure things out on their own. They should be guided which sounds exactly like what your guy is doing. He's giving them the solution, it's up to them to implement it but this way they won't be heading down the wrong track and creating technical debt in the process.
poolpog@reddit
It sounds like you are describing the platonic ideal of senior developer tbh.
agumonkey@reddit
Maybe there should be some time allocated for a bit of freeform exploratory work of juniors, and team/pair between them so they can upskill on their own a bit.
Ohmycosh@reddit
Sounds like the key part that's missing is bringing in the juniors to the design process. I imagine I'd struggle to feel any ownership in that situation, but maybe either getting your senior to pair or bringing in a design review process would help? Anything that helps the juniors feel closer to the decision making process.
gomihako_@reddit
This is not a bad thing for the business, obviously.
The juniors that complain about this, you need to be very skeptical of them. I've worked with plenty of know-it-all juniors who didn't know they actually sucked by wanted to create n layers of stupid abstractions over
toString
. Those juniors need to have a "come to Jesus" talk very quickly.This is not micromanagement.
A good junior with the correct growth mindset would beg for the opportunity to be mentored by such a senior, especially in the current industry.
However, the thin line with the type of senior+ engineer that spoonfeeds the correct solution is that, IMO, it takes away the opportunity for juniors to learn how to fine-tune their decision making process. If their whole career is Senior Engineer Bob that just tells them what to do (with some explanation why), those juniors will not grow into competent senior engineers themselves that can improve an optimal solution no matter what domain in which they occur a problem.
cat_lost_their_hat@reddit
The senior needs to be encouraged to coach the juniors to help them grow, not do all the architecture for them. At places I've worked that's been an explicit part of the senior's job, even when not a tech lead or similar.
Having those discussions and agreeing an approach before someone goes away and programs it is sensible - but the juniors should be being given tasks where they are working out implementation plans themselves (of an appropriate size, not high level plans for the whole system) and then having them reviewed rather than never getting the chance to do that part of the work. Otherwise they'll stay juniors forever, or just leave.
You can frame this as training the juniors better, with a bit of slowdown now for training and payoff as they get better (and thus the senior takes less time with them and more on other things).
gomihako_@reddit
Your juniors sound like the worst type of juniors.
tjyone@reddit
There is nothing wrong with this, as long as they understand that success in their role is not just about the team's output and quality, but balancing that against single points of failure. It's also entirely possible for this approach to start to stifle innovative thinking as juniors learn if not closely managed and the level of prescriptive direction actively reduced.
In other words, their success should be measured on how little or much team performance regresses when they are not directly involved, and managing the wider team's development to the point where this gap is effectively zero. A primary goal of senior folks is to create a situation where they are redundant, giving both them and members of the team an opportunity to step up.
NoleMercy05@reddit
You either you get it or you don't. Next...
Choperello@reddit
Have any of the others actually complained? So far your comments are projecting your opinions on their behalf. Don't underestimate the amount of learning someone junior can do simply by being exposed to someone who does things right.
Eastern_Interest_908@reddit
I do the same thing. Not always because of time constraints but I always try to explain why we need that feature and why I think certain approach is the best. I don't really see an issue with that.
Total-Skirt8531@reddit
having a verry good senior give me a solution is one of the best situations i've ever worked with.
their solution takes away all the guesswork and i learn something about how a good programmer writes code.
yes i'm typing things out, but i'm also learning LOADS of information - it's like being in graduate school.
If the juniors are complaining, ask one to give you their solution and see if it's better quality - you've got all this extra time on your hands, see if they can beat him.
Another approach - put one of his people on a training project, on their own, to teach them how to manage a project. Something small, maintenance or refactoring or something. Or have them add a small feature to whatever project this senior is on. When their code sucks, help them fix it. Repeat with the other juniors. That will at least build their abilities and give them something to do while not screwing with the efficiency of the group.
XenonBG@reddit
If you do this, make sure the junior has as much information about the problem space as the superstar senior does.
But I think it's better to figure out what are the juniors complaining about exactly and fix the root cause. I can absolutely imagine the juniors don't feel they are growing in this environment. But it really depends on bust how junior they are.
Sweaty_Confidence732@reddit
The Junior could have more information than the senior and the senior would still be miles better just because of all the experience the senior has, all the problems and pitfalls the senior has seen, and the senior will make very good assumptions and fill in missing information automatically.
XenonBG@reddit
A downvote? Really?
A good senior knows when it's reasonably safe to make (temporary) assumptions and when it is not. One of many important things the juniors in the OP's story will never get to learn from the superstar senior.
SoggyGrayDuck@reddit
You need him to start doing a weekly explanation of why he's making these decisions. Then as people get a feel for it have them submit the diagram or whatever but only after you or the senior says they get it. Definitely teach them why though and make sure they're not just using the specs and actually understanding them. This is a big opportunity
JLaurus@reddit
The senior developers obligation is to the business to deliver. That is exactly what they are doing.
In fact, this person sounds like they need to be promoted. An engineering manager has responsibilities to give devs opportunity to grow, not a senior. A seniors job is to effectively deliver complex tasks for the business from start to finish.
I’m sorry, but I’ve been a junior and the reality is we know nothing.
My only advice would be getting the juniors to ask “why do we want to do it that way” and hopefully the senior is on board with responding and coaching that way.
karthie_a@reddit
the senior is doing right by laying out path for juniors. You can learn a lot by just watching the task and solutions provided. At some point you will be able to do your own solutions based on your observations. When the senior explains the approach try to use the time to ask your queries and learn from him the choices and compromises made. If the senior person is genuinely trying to coach or mentor juniors will spend time and explain choices and compromises made in solution, if they follow dictator path they will ignore your queries with a political answer. This can show you the true intention(to answer your CEO on feedback about the senior).
dogo_fren@reddit
Tell the complainers to stop complaining and “watch and learn”.
Imaginary_Maybe_1687@reddit
Watch and learn is not quite a thing. You learn a whole lot more by doing sadly.
jesus_chen@reddit
What should you do? Learn from him.
michaelbelgium@reddit
This is a "engineer" vs "developer"
The senior is an engineer, the junior the developer. The junior just executes, no thinking.
10mo3@reddit
Hmmm while I personally prefer allowing junior engineers think more for experience but I don't think this approach is bad. While architecturally it have been laid out, clean coding still have to be done. Like following coding conventions, making readable and maintainable code is still something that junior programmers need to experience and learn
DootyBusta@reddit
When I was a jr I wish I could have had someone like this.
birdparty44@reddit
I think you need to break down barriers in your mind as to what you think juniors are to be doing.
It’s not a research lab / sandbox. It’s a business that stays competitive by getting work done efficiently so they can move on to future tasks.
The senior got to that point with experience and by handing the tasks over in that way ensures that there is an architect and tech lead of sorts, and the juniors can learn from his style.
It seems you would ask a patient how you think it should heal itself.
In time the juniors may propose different solution paths, showing they have leveled up. But until then, as you say: the senior here is a super performer and is leading a team. If the juniors are “under him” as you say, then it goes to reason that he’s going to want to steer them in the right direction from the start. The right direction is one where there’s consistency in approaches and that happens when there’s somebody who understands how all the pieces fit together.
At least that’s the way I see it; this is a discussion thread after all, so I’d love to hear some feedback on that.
_GoldenRule@reddit
This sounds great right now but overall this wont scale. What happens if you expand operations and you have more juniors?
Also consider what happens if senior guy leaves. Now you have a team of juniors that wont be able to think for themselves.
I think that you can still leverage this though, have new senior guy pair program and skill up the juniors. This could also be a good opportunity for mob programming.
tetryds@reddit
I have been that developer and understand how this can become a bad thing if they are the only person who can do it all.
My recommendation is to incentivize them to do knowledge transfer sessions with the team and delegate a few of these tasks to other developers. Over time the team should grow and be able to handle this themselves.
I have done that, the team of juniors and mid levels all developed up to seniors, then they fired me lol.
rednoodles@reddit
A lot of places have system and software architects. I think you can focus on the positives while addressing the negatives.
For instance, if they're not practicing this, they'll have stunted growth and he becomes the hidden bottleneck/gatekeeper. If he's sick or burns out your team will have to do this stuff on their own.
I'm not exactly sure on what you mean by letting them type it out and how involved that is, but you could have him draft this stuff and assign juniors to critique, expand, and present it for review. It might seem a little bit slower to him but they still need design practice.
starquakegamma@reddit
I think the best action is to talk to him - explain that the juniors need to get experience figuring out problems for themselves. He can still be involved reviewing their solutions.
smutje187@reddit
The easiest way to cure micromanaging in my experience is to give people more work - either they learn to delegate or they fall behind schedule and open an opportunity to upskill.