News for hackers. Stuff that matters.
Re:Engineering management lessons (2014) by alexchamberlain on Saturday May 20, 2017 @03:42AM (#14381426)
Strongly disagree that an engineering manager shouldn't code; that is the shortest way to lose the respect of the team. Don't get me wrong; you need not be the "best" or the expert in all areas, but you do need to stay on top of technical developments both within and outside your organisation.
Re:Engineering management lessons (2014) by endymi0n on Saturday May 20, 2017 @04:00AM (#14381468)
There's an easy way to accomplish this: Commit yourself to 95% reading of code and 5% writing. Through great code reviews, spread your knowledge through the company and make others as good as you. Has the added benefit of making the stack more homogenous. (I still code review 50% of all commits relating to the data model - SQL & API interfaces myself)

Then about the 5% - this is high prio, high visibility fixes where you bring in your extraordinary expertise in some domain. Believe me, that's enough to stay respected. Your time is much better spent at sparring systems architecture & high level design, hiring and building well-oiled teams and discussing the business needs with the rest of the company.

Isn't as fun, Doesn't feel as good, but it helps most the long run. The alternative is a high performance coding monkey that gets a tiny area of the company right - and the rest of IT goes wild and rewrites core APIs in the latest three hype language because "we needed to get rid of technical debt".

The 44 lessons of the OP are distilled gold from years of experience, I rehearse them every year and can recommend them to any aspiring tech lead.

Re:Engineering management lessons (2014) by watwut on Saturday May 20, 2017 @06:38AM (#14381758)
Code reviews by a dude who codes only a little and has formal power are pure hell. It is tricky when he is wrong, he can force you to do things that cause trouble and so on and so forth - all that because writing and reviewing code are much different and he is gradually out of touch.
Re:Engineering management lessons (2014) by sanderjd on Saturday May 20, 2017 @11:31AM (#14382826)
It sounds like you've run into some bad apples, likely due to "promoted too early" syndrome, which is unfortunately pretty common. In my experience, code review by senior engineers is extremely valuable whether or not they're currently writing much code.
Re:Engineering management lessons (2014) by Spooky23 on Saturday May 20, 2017 @01:35PM (#14383432)
That's why coding managers is dumb.

The army figured it out. The Officers are in charge, but the sergeants get shit done. In engineering, your leads/supervisors are the sergeants.

Officer quality varies between complete shitbird and Julius Ceasar. Either way, the army marches.

Re:Engineering management lessons (2014) by dismantlethesun on Saturday May 20, 2017 @02:26PM (#14383615)
Sound like tech leads are sergeants and project managers are officers.
Re:Engineering management lessons (2014) by Spooky23 on Saturday May 20, 2017 @02:36PM (#14383659)
That's where the analogy breaks a bit. Where I work, PMs don't "own" people, just deliverables.

Their main weapon is pestering you.

Re:Engineering management lessons (2014) by pkaye on Saturday May 20, 2017 @11:31AM (#14382828)
The bigger problem is other reviewers assume that if the manager approves the review then there is no need for them to do as thorough a review.
Re:Engineering management lessons (2014) by valuearb on Saturday May 20, 2017 @11:02AM (#14382679)
Why did you code it that way?

How hard is it to answer that question?

Re:Engineering management lessons (2014) by NortySpock on Saturday May 20, 2017 @11:19AM (#14382749)
"It will cause performance problems if you don't" , with only a gut feeling to back it up, and no actual testing.

I just ran into this response yesterday, and I ended up going over his head (unfortunately) and asked our DBAs for a recommendation. DBA solution worked faster than either of the previous two solutions. I still need to apologise for that one.

Re:Engineering management lessons (2014) by mncharity on Sunday May 21, 2017 @12:48AM (#14385739)
> I still need to apologise for that one.

Curious. Running an idea by people to get their thoughts, because it's currently leaving you short on warm fuzzies... is something to apologize for?

The initial solution was low on warm fuzzies for him. Your second solution was low on warm fuzzies for you. So you explored further. Where's the problem?

Re:Engineering management lessons (2014) by Avalyst on Saturday May 20, 2017 @07:29AM (#14381909)
Programming is a skill just like management. I would argue that if you spend 5% writing and 95% reading you won't be maintaining that skill.

If you come from a strong technical background when first promoted (Being the go-to expert on the team or similar) then you can probably keep the respect of the team for a while but eventually others will rise to fill the gap (After all there is 95% of a rockstar programmer's time missing in the team). At that point your comments on code reviews will mostly be seen as micro management.

I would say that there are two ways to go about it, either fully trust your developers and let them develop and review their own code or stay as an active member of the team, doing as much coding as you can fit into your schedule. Which route you pick of course depends on the workload of managerial duties.

Re:Engineering management lessons (2014) by sanderjd on Saturday May 20, 2017 @11:43AM (#14382891)
This doesn't mesh with my experience. The skill of programming is not in writing code, it is in constructing solutions using code. For someone who has already written software for a long time, I believe critical reading and discussion of code keeps the skill just as sharp.

Reading lots of code also gives a broader perspective than writing lots of code, which requires a sort of tunnel vision. Both the deep and the broad perspective are useful on a team.

Re:Engineering management lessons (2014) by BeetleB on Saturday May 20, 2017 @07:37PM (#14384957)
>I would argue that if you spend 5% writing and 95% reading you won't be maintaining that skill.

The amount a developer (not manager) should code varies from domain to domain. In my work, 5% may be on the low side. But I'd argue in most domains, if you're spending more than 20-30% of your time coding, you're overdoing it and creating too much technical debt.

I'm not a manager, but if I were, I'd promote the folks who find (good) reasons not to code than to code. Some problems need software to solve a problem. But writing software should be a last resort.

Of course, if you're writing throwaway code on a code base that won't last more than a year or two, code away. Technical debt is not a big concern.

Re:Engineering management lessons (2014) by didibus on Saturday May 20, 2017 @05:20AM (#14381597)
I'd rather a manager who seems to care about me. Someone who is fair to the team, and shields us from the executive pressure. Someone that gives me challenging work which I could fail at, and recognises that I can fail and that it's ok if I do. Most of all, someone who dispays real appreciation for the value I add to the team.

I honestly don't care if they code or not.

Re:Engineering management lessons (2014) by freekh on Saturday May 20, 2017 @07:02AM (#14381832)
Second this a lot. In fact I am gonna steel exactly this and feed it back to my org
Re:Engineering management lessons (2014) by kayoone on Saturday May 20, 2017 @05:34AM (#14381616)
Engineering managers that also code a lot usually fall short on the managing part, at least in my experience. Imo it's better if they focus on building a great team, guiding the team in the right direction by doing code reviews and making the hard decisions and be somewhat of a shield between the devs and other internal or external stake holders. Sounds boring, but provides more value as a whole imo. It's also why i opted to not be a manager right now so that i can still code full time.

This does not apply if you are a <10 people company though.

Re:Engineering management lessons (2014) by kochthesecond on Saturday May 20, 2017 @06:56AM (#14381814)
I recently quit a job where I was in practice the tech lead. I did probably 60% code reviews, and made sure the architecture as a whole kept moving towards a coherent view and quality. But it was boring as I don't particularly enjoy teaching new developers basics of coding production ready systems every few months, especially when tied down as a consultant for a government organization. I ultimately had very little to say in what tech we could deploy. I therefore decided to go somewhere I might get more freedom to build quality with a bit less politics.
Re:Engineering management lessons (2014) by TH3R3LL1K on Saturday May 20, 2017 @10:37AM (#14382555)
I'm currently working for a company where the our manager holds a tight grip against the code we write, but he doesn't seem to guide us in the correct direction.
Re:Engineering management lessons (2014) by pjmlp on Saturday May 20, 2017 @06:41AM (#14381769)
I have about 30 years coding experience, never had a manager that was still writing code after earning the position, other than a few Office macros.

It was never an issue to us and they were always respected by the team, except for the few ones that never should have been managers to start with.

Any manager that wants respect from the team needs to support them, specially against stupid decisions from upper layers. Have good social skills and specially important, how to raise morale in darker times.

Knowing to code is irrelevant.

Re:Engineering management lessons (2014) by kochthesecond on Saturday May 20, 2017 @06:47AM (#14381787)
I agree, having good social skills and being good at moving things forward (often in a political landscape) is more important than coding skills.
Re:Engineering management lessons (2014) by hoschicz on Saturday May 20, 2017 @12:13PM (#14383044)
Where have you worked during your 30 years of experience? Big/small companies? What sector?
Re:Engineering management lessons (2014) by pjmlp on Saturday May 20, 2017 @12:42PM (#14383170)
Education, Research (CERN), Shipping (Harbour IT), Telecommunications (CRM, Mobile Operators, OEMs), Life Sciences, Manufacturing.

Mostly enterprise size companies.

Re:Engineering management lessons (2014) by samlittlewood on Saturday May 20, 2017 @05:48AM (#14381636)
A recipe for disaster is for a manager's code to wind up on the critical path, then become a blocker - bad code & bad management.

A possibly better approach is for managers to have a few side proejcts, scouting out potential risk reducing things, at a higher temperature, away from the main project. Great if one of them lands - no added problems if not. Also, if they land in the project, they are no longer the responsibility of the manager.

Re:Engineering management lessons (2014) by xborns on Saturday May 20, 2017 @09:50AM (#14382356)
Actually I somewhat disagree with that. I think they should code to some extent, but it doesn't scale in my experience. I lean to say #7 is a good point.

If the manager is required to complete the feature their "free" time is't the same as an engineer - read meetings/discussions. I manage two teams and when I first became a manager my instinct was to take tickets along with the team. Yet my other responsibilities came in play and made it harder for me to finish tickets I assigned to myself and others on the team waited.

I still code review and partake in high level design and some scripts here or there etc. but not mainline code that another engineer will depend on to be completed by xyz date.

The goal of a manager is to ensure the work pipeline and project trajectory are on path with the company needs while still taking time to learn new tech and skill-sets of the team. Of course most importantly protecting their time from distractions.

To move from manager upwards, building a great team that trusts each other and follows and ensures the team standards is crucial. If I am required for every decision or code review, then I become the bottleneck. Empowering other people and trusting their judgement was one of the harder leanings growing from manager upward.

Re:Engineering management lessons (2014) by ransom1538 on Saturday May 20, 2017 @10:05AM (#14382411)
Couldn't agree more. Engineering managers that have removed themselves from the ability to contribute will also lose touch with: design, build systems, architecture, qa, etc. At that point they are just a bad PM.

When I was a vp eng. what helped me the most was having ONE feature that I owned. I was forced to use the build system, go through qa, fight with design. It was never something massive, or hindered other groups, but if someone on the team bitched: "this framework sucks because.." -- I was able to jump in.

Re:Engineering management lessons (2014) by curun1r on Saturday May 20, 2017 @12:06PM (#14383014)
It's not that you don't code...you need to code to stay relevant. It's that you shouldn't code serious production features/issues. As a manager, you're context switching constantly and it's very difficult to achieve the necessary quality. You'll never get the uninterrupted time necessary to do anything big. 5-10 min fixes are good targets for a manager, as are projects that would otherwise distract the team, like spikes on potential new technology. You should use your coding to further your overall goal of keeping your team focused and you should limit your coding so that all the major accomplishments of the team belong to the team members and not the manager.
Re:Engineering management lessons (2014) by tootie on Saturday May 20, 2017 @09:39AM (#14382309)
I'm currently managing projects on tech stacks I have no experience with. It's definitely a handicap but I can still do 90% of my job pretty effectively. I just felt on my team more.

One big thing I've learned is the manager should never take on big pieces of development. The other demands on your time mean that every task will take longer and you'll end up being a bottleneck.

Re:Engineering management lessons (2014) by watwut on Saturday May 20, 2017 @06:42AM (#14381774)
I had great managers who did not coded and had respect. They managed politics out of department, managed to find good trade off between autonomy and controll, made decisions where the team could not.
Re:Engineering management lessons (2014) by manojlds on Saturday May 20, 2017 @03:49AM (#14381442)
Where does it tell to not code?
Re:Engineering management lessons (2014) by mpweiher on Saturday May 20, 2017 @06:07AM (#14381673)
In fact: "You have to write code to remain an effective tiebreaker, but that’s where your coding responsibilities end."

Just not "Personally fix bugs and ship features."