tags:

views:

219

answers:

8

I have been a developer for a majority of my career in both business intelligence and pure software development environments. Over the past 3 years I've taken on a manager role and now manage a team of 30+ managers, technical consultants and architects (a handful of these are direct reports).

I try to do some self-study, side projects, and lots of reading to keep myself sharp technically, but it gets harder and harder as time passes.

I'm interested in what others who are faced with this situation do?

+6  A: 

Great question - I struggle with this one myself. The best advice I have is try to always keep up with the code. Make sure you have the same tools as your development team. Also ensure that you can understand the code/technology and even fill in for one if necessary.

Never stop learning. Just because you are in management does not mean you can't get the latest book on a specific topic to keep your brain working.

It is hard, but I believe there is a large market for someone who can balance the management/technical skill set.

rifferte
I agree, in my experience, there are far too few managers who actually get into the weeds enough to effectively manage and lead their teams when times get rough.
jn29098
+7  A: 

I was a manager several times in my career (most recently "uber tech lead" for almost 4 years at Google, before switching to senior staff engineer, still for Google -- now in business intelligence too, funny coincidence;-)... but never for 30+ direct reports (indirect ones soak up less of your time and energy...): at those levels, people managing (and other managerial tasks such as budgets, coordination with your peers, etc etc) will suck you dry, I have no idea where one would find the time and energy to keep up serious technical contribution (the only real way to "keep your skills sharp", in the end).

Google has a guideline of no more than two dozen direct reports -- and, that's assuming that not all managers (esp. at VP level and above) necessarily need to keep at the top of their tech game, that engineers (especially highly senior ones) and other highly professional figures are almost "self-managing", etc, etc. (Given that we also want to keep our hierarchy very flat, the guideline isn't always followed, but there's always a serious attempt to move towards it).

Within those more reasonable boundaries, I've managed to keep my tech skills quite reasonably fresh and well-honed (as proven by having successfully switched to very senior IC last year;-). I have some presentations on the subject floating around, e.g. here (summary and link to an audio stream) and here (PDF with slides for a slight variation on that talk) -- unfortunately it looks like no video of my presentations is online, except maybe one I gave in Italian (at Pycon Italia) -- but I can't locate its .torrent now (and bittorrent was the only way it was distributed).

It's hard to summarize many hours of presentations (and many years of experience;-) in a few words, but, let me try: point one is that being technically involved and contributing (in the right ways) is crucial to doing a great job in technical management, for many reasons, so it's a TOP priority, well worth dropping a few lesser ones for; managing your time and your priorities carefully can free you up just enough to achieve this goal; the best approach is to "use yourself as a jolly" for those situations where you desperately need an extra pair of skillful, experienced "hands" to fight fires in one or another of your projects.

Rands, of "Rands in Repose" and Managing Humans fame, puts it well, as usual:

“That not coding pitch of mine? Wrong. Yeah. Start programming again. Start with Python or Ruby. Yeah. I mean it. Your career depends on it.”

Python is my main gig, so I sympathize with the recommendation, but I must admit that (if you're also entirely comfy with C++, gdb, RPCs, etc, etc) it also works to keep hacking away at such not-so-entirely-nice technologies you know and love... as long as they're crucial to your projects (doing it as a "side endeavor" doesn't work nearly as well).

I know, because all of those (though not as intensely as Python) have been and are part of my daily fare -- "Python where you can, C++ where you must" has long been my motto, and it fits well with Google's general attitudes in both cluster management SW and business intelligence (some other parts of the company are more Java-y, and I'm a bit rusty in that, though I plan to catch up and refresh when I get a good opportunity to;-).

I hope these reflections and links prove of some use... in any case, best of luck!!!

Alex Martelli
Agreed. With that level of commitment, it's almost like coding should now become a hobby on your own time for your own projects, rather than trying to directly understand the code of the team. Otherwise, if it were me, I could easily see myself becoming a serious micromanager just to get that thrill of bug squashing back.
mmr
@mmr, eep -- micromanagement is just too not-me... if anything, I've been guilty of the reverse in the past (trusting and delegating TOO much, to somebody who was in fact not worthy of all of that trust and confidence).
Alex Martelli
+1  A: 

As you say, self-study and side projects are key. Code reviews are also an important part of keeping yourself mentally fit. However, with 30+ direct reports, I am sure you dont have enough days in the month to participate! One way to stay in the game and utilize the extents of your knowledge is to work out on SO.

edit: as is always stated in these sorts of posts: as it is best to learn a language by trying it out, it is best to keep skills up to date by testing them from time to time.

akf
I guess i should clarify, there are not 30 direct reports, but indirectly more than 30 people on my staff. On the one hand it frees me up to experiment, but on the other hand all of the issues and challenges of the staff eventually become mine. My managers and leads are EXCELLENT though, and I believe another key is to pick people for those roles that you can rely on (and who are smarter than you!).
jn29098
@jn29098 isnt it always the case, they are smarter than you. but isnt that what you pay them for!
akf
Alex Martelli
+1  A: 

SO actually helps me a lot. I grab a few questions and code up a solution. I get beaten to the answer by Jon or Marc all the time, but I just finish my solution to satisfy myself. Also, for me, videos are a great resource. How do I videos are short and sweet, on demand web casts are very good and PDC sessions keep me busy. Instead of watching TV, I will watch an hour on Azure or Workflow or whatever. :)

JP Alioto
A: 

how to stay sharp while working with non-tech guys:

  1. read stackoverflow
  2. read slashdot
  3. read techmeme
  4. keep doing some pet projects if time permits
  5. repeat

Cheers!

Here Be Wolves
A: 

Grab a copy of Software Abstractions and you will stay sharp for years!

A: 

You don't.

Given that you have now taken over the role of 'pointy haired boss', just concentrate on delegating to the right person and staying out of the way :) !

I would say, if you want to stay sharp techincally, get yourself a technical role.

Alterlife
Oomph... that hurts! I do believe you need to understand what you your people are doing and at time be able to do it yourself to effectively manage situations. My group is a professional services group so i find myself helping out with hairy client situations all the time and actually knowing the details has won me many a battle... That being said, I do respect your opinion of the pointy haired boss - luckily i can still sense if I'm acting that way!
jn29098
A: 

Do supervisor level code reviews. At least it keeps your eyes and mind on code, even if you aren't writing it every day.

JohnFx