Transitioning From Developer To Management? 541
An anonymous reader writes "After 15+ years as a code monkey, mostly doing back-end systems design / development, I was surprised by recent developments at my workplace that have resulted in my being transitioned into a dual architect / managerial role within the next few weeks. While I am somewhat confident at this point in my career in my experience and training for an architect-type position, I have serious concerns about being able to properly fulfill the role as manager. Aside from 'Become a manager in 2 days' type books, what resources would you recommend I look to for guidance in this transition?"
Look into certs (Score:5, Interesting)
I just recently became a lead and know from the projects I've worked on, that I would be a better manager. So I'm finally doing something about it and pursuing the project management path. I just picked up the All-in-One CAPM/PMP exam guide and the recommended study path for the CAPM is a month. As with most jobs you'll learn the bulk from doing it, but the cert won't hurt and may give you the jump start and mind set to help you get started.
some folks love certs and some hate them, but I've never had issue with getting them and I've always learned a few things along the way no matter how well I thought I knew a particular topic.
Re:BEWARE (Score:3, Interesting)
At least with a cliff, the pain is short-lived and they can replace you quickly.
Project Management - esp. PMBOK (Score:2, Interesting)
I finished an MBA at a reputable university a few years ago, and the thing that really stuck was project management. Of the various project management approaches I'd particularly recommend PMBOK (project management body of knowledge.)
This really is "MBA in a box." You will get a good smattering of budgeting, communications, human resources, timing,quality etc, and a way to hold all this stuff together.
Good luck!
Read "The First 90 Days" (Score:1, Interesting)
You're starting a completely different job, which means success will depend on COMPLETELY DIFFERENT SKILLS. Relying on the ones that got you there will not necessarily assure success in the new context. Read "The First 90 Days", by Michael Watkins, published by the Harvard Business School Press.
Here's the BN link:
http://search.barnesandnoble.com/booksearch/isbnI
Re:Scott Adams' "serious" books FTW. (Score:2, Interesting)
Actually, philosophically we have debated at c2 why RAM and disk has to be different from the application's perspective. I've concluded that it doesn't (except where there are specific hardware constraints/requirements). The reason it is currently treated different is largely historical habit, not necessarily sound logic. The judge is partially on to something.
Re:Scott Adams' "serious" books FTW. (Score:2, Interesting)
Rands and Joel (Score:4, Interesting)
Rands on Management: http://www.randsinrepose.com/cat_management.html [randsinrepose.com]
Rands's Book: http://managinghumans.com/ [managinghumans.com] (Direct to Amazon: http://www.amazon.com/Managing-Humans-Humorous-So
Joel on Software: http://www.joelonsoftware.com/ [joelonsoftware.com]
Good luck! It's great to hear about people who care enough to want to do it right.
Re:Recommend (Score:5, Interesting)
I also agree with the "good manager = good buffer" statement, but I'd even take it a step further. Great managers have requirements analysts, support personnel, etc. get the information from the customer. Then they form a plan and assign tasks to their development team. In my experience, this works rather well.
I'm totally going off on a tangent... back to your original question. Karl Wiegers' Software Requirements and More About Software Requirements are both geared towards requirements analysis, but have a lot of info that anybody in IT (and especially project managers) would find pretty useful... Both are worth checking out. I've also heard lots of praise for The Mythical Man-Month, but I've never gotten a chance to read it. Besides those, I would skip books on general management techniques and go straight for anything on software engineering or project management. The R.S. Pressman [rspa.com] website probably has even more recommendations.
Judges have an ego issue (Score:3, Interesting)
They can't stand to be told that they are wrong. When they are told that they cite you for contempt.
You have to understand that the courtroom is the last vestige of unfettered "aristocratic" power in America. They are Kings
And contempt orders really are not appealable.
The judge, even if they are wrong, can fuck you over any way they want with a contempt order. The classic (and it has been a long time since I read it) case on contempt orders was Martin Luther King. Judge ruled wrongly on Issue X. Cited King for contempt, as part of that. The appealed running was
You really can't go back and sue the judge for damages under that either. They have judicial immunity. The most you can do is try to get them not elected next time and if they are Federal judges they have life tenure.
You get used to that power. You get used to everyone acting in an sycophantic manner towards you. You get used to a world, where people are not allowed to say "No" to you. Then you become unable to handle criticism, however justified however politely worded.
And of course, if the judge wants to act improperly or say something nasty, they just ask the court reporter to stop recording. You, on the other hand, don't have that luxury.
Also, remember when you have an issue with a judge who do you take it up with? Another judge. No conflict of interest there.
So, yeah. The judge is an idiot. Because they have the power to be an idiot and get away with it.
Re:Recommend (Score:5, Interesting)
All this is sort of avoiding the primary, fundamental issue: when you are a manager you have the power (and responsibility) to fire someone.
This is the real rub. Can you do it?
In my case, I came to a decision that I needed to fire a developer who was completely inadequate to the position. Only this: she was one of the sweetest, kindest people I have ever met. Additionally, if I were to let her go, she would be sent back to India - forcing her husband to also go back. It would have been devastating to them.
So what to do? She was not able to perform her job function and it was costing the company revenue. On the other hand, I wouldn't have been surprised to see Bambi walk up and eat out of her hand whilst blue jays perched on her shoulder (this is how kind hearted and sweet the girl was).
And I had to fire her.
So I tried.
And failed.
I came to find out this about myself: when confronted with a tearful employee who says she'll do anything, including work for half the salary if only I won't fire her - I cave.
This turned out, in the long run, to be one of the worst management decisions I've ever made. I agreed to keep her on at a reduced salary. She continued to perform inadequately but over time she had been with the company long enough that dismissing her wasn't an option.
Everything she wrote ended up having to be completely rewritten and she wasn't learning from experience or coaching. Even though she was working at a reduced salary, she ended up costing the company a high multiple of her salary in lost productivity, alienated clients and rework costs.
So what was the "right" thing to do in that situation? On the one hand, I felt a moral imperative to help this kind, tender and wonderful person. On the other, I had a commitment and moral responsibility to the company I worked for.
Finally, I reached the correct solution: I resigned my position as manager of the team.
As I'm sure you've noticed, I am personally not suited for management. I will never put myself in that situation again.
Just because I'm a talented developer, doesn't mean that I have the ability to make tough managerial decisions when they are called for. Those are two different skill sets, and one of the reasons that I tend to not resent my managers. Firing someone is brutal, and unless you are comfortable with those types of decisions and _sticking_with_them_ I strongly recommend that you avoid the managerial gig and stay in development.
-Clay
Re:Recommend (Score:2, Interesting)
And I mean hard as choosing one of 2 options:
And the bad thing is that making a decision based on prejudice is the possibly worst mistake a manager could ever do.
All this is sort of avoiding the primary, fundamental issue: when you are a manager you have the power (and responsibility) to fire someone.
This is the real rub. Can you do it?
In my case, I came to a decision that I needed to fire a developer who was completely inadequate to the position. Only this: she was one of the sweetest, kindest people I have ever met. Additionally, if I were to let her go, she would be sent back to India - forcing her husband to also go back. It would have been devastating to them.
So what to do? She was not able to perform her job function and it was costing the company revenue. On the other hand, I wouldn't have been surprised to see Bambi walk up and eat out of her hand whilst blue jays perched on her shoulder (this is how kind hearted and sweet the girl was).
And I had to fire her.
So I tried.
And failed.
I came to find out this about myself: when confronted with a tearful employee who says she'll do anything, including work for half the salary if only I won't fire her - I cave.
This turned out, in the long run, to be one of the worst management decisions I've ever made. I agreed to keep her on at a reduced salary. She continued to perform inadequately but over time she had been with the company long enough that dismissing her wasn't an option.
Everything she wrote ended up having to be completely rewritten and she wasn't learning from experience or coaching. Even though she was working at a reduced salary, she ended up costing the company a high multiple of her salary in lost productivity, alienated clients and rework costs.
So what was the "right" thing to do in that situation? On the one hand, I felt a moral imperative to help this kind, tender and wonderful person. On the other, I had a commitment and moral responsibility to the company I worked for.
Finally, I reached the correct solution: I resigned my position as manager of the team.
As I'm sure you've noticed, I am personally not suited for management. I will never put myself in that situation again.
Just because I'm a talented developer, doesn't mean that I have the ability to make tough managerial decisions when they are called for. Those are two different skill sets, and one of the reasons that I tend to not resent my managers. Firing someone is brutal, and unless you are comfortable with those types of decisions and _sticking_with_them_ I strongly recommend that you avoid the managerial gig and stay in development.
-Clay
Re:Recommend (Score:4, Interesting)
Mythical Man Month is a good read, I highly recommend it. Sure, it is full of things that you'll say "no duh" when you get done reading it, but you'll have read it and you'll know for certain not to make those mistakes. Plus you can whip it out when other managers ask you about software stuff and you'll look impressive because they haven't read it.
I would say this: be lazy. Try to avoid doing anything that makes more work for you and your team than is necessary. That doesn't mean that you should avoid work... it just means that you need to apply yourself and your team in the most efficient way possible.
I would also say this, don't be afraid to be certain of something and never be afraid to be proven wrong. If someone proves you wrong, concede the point and move on. Don't get stuck following a bad decision with justifications. Get back on track and move on.
Good luck too!
Re:Recommend (Score:3, Interesting)
This guy, "Hacker X," signed on to do a bunch of stuff, and just flat-out didn't do it. He was working from a remote location much of the time, which made it harder to realize what was going on, but once we caught on, and he didn't improve after remonstrating with him, we knew he had to go.
The catch was, how do we fire him? By email? By phone? This seemed a little cold since, well, he was a friend. Heck, it would be cold even if he wasn't a friend.
It just so happened that I was going to a conference I knew he'd also attend, and the plan was to fire him there. Once there, however, I was torn -- fire him at the start, and have him upset through the conference, or wait until the end (but personally be sweating it out through the whole conference). My gf at the time was there, and I talked it through with her a couple of times and decided to wait to the end.
So, just before lunch on the final day I pull "Hacker X" aside and tell him he's fired. If anything, he's relieved -- he'd known he'd been a useless drag, and felt terrible about it. I get him to sign some paperwork, and he tries to refuse his severance. I get him to take it anyhow.
I get back to the cluster of people waiting for lunch, and my gf is there, and asks me how it went. "Better than expected." Other folks ask what's going on, and I explain -- "I just had to fire a friend, Hacker X. Never had to fire anyone, much less a friend. I was pretty freaked out, but he took it well." Another guy in the group who'd made the transition from techie to manager a couple years before me says "yeah, been there before, done that." "What, you had to fire a friend?" "No, I had to fire Hacker X..."
Re:Scott Adams' "serious" books FTW. (Score:3, Interesting)
Re:Recommend (Score:2, Interesting)
All this is sort of avoiding the primary, fundamental issue: when you are a manager you have the power (and responsibility) to fire someone. This is the real rub. Can you do it?
This is only one of the uncomfortable things you will do as a manager, but definitely one of the most difficult, especially the first time, and especially if you personally know the person. Case in point: a couple of years ago I was in the difficult position of having to discipline my best friend. At the time I had known this man for well over ten years, thought for certain I knew his character. I gave him the initial talking to, and gave him three months to shape up, but it did no good. I gave him first level notice, and three more months to shape up, but it did no good. Second level notice, three more months, no good. The third level notice came, and I finally fired him. I sent him eight thousand miles back home, with his family in tow. He tried to crucify me during his appeals process, that I was a micro-manager, that I wouldn't allow him to do his job. He tried to put me through the wringer, and make me take the fall, when the fault was all his. I gave him every chance; management wanted me to dismiss him after the first notice, but I insisted on following the process. In the end, I couldn't keep him around for the sake of friendship because his poor performance would ultimately affect how well I do my own job. Sorry, I have a family to provide for. If it's down to them or me, it's going to be me who survives.
Believe me, I lost plenty of sleep over it. I still think about it. But, I would do it all over again. Rules are made to be followed.
Re:Recommend (Score:3, Interesting)
People who are genuinely trying, but just aren't up to snuff - I can't do it.
People who CAN do the work, but refuse to, I'll fire those guys. No problem.