The Programmer's Path To Management
snydeq writes: The transition from command line to line-of-command requires a new mind-set — and a thick skin, writes InfoWorld's Paul Heltzel in a tips-based article aimed at programmers interested in breaking into management. "Talented engineers may see managing a team as the next step to growing their careers. So if you're moving in this direction, what tools do you need to make the transition? We'll look at some possible approaches, common pitfalls — and offer solutions."
At least in America if you don't move into management you're dead meat by 40, 50 tops (unless you're some sort of genetic freak). Around that time it becomes impossible to put in the 50+ hour work weeks at a moments notice let alone compete with cheap H-1b labor. It's not even age discrimination. They don't care that you're old, they care that you either can't or won't put in tons of overtime they don't pay you for.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
As someone who transitioned from Jockey to ShitMover I can assure you the move isn't worth the headaches. I used to work with a great bunch of like minded people who where interested in creation. Now i work with a bunch of egotistical idiots who just want to push stuff they know is garbage over the line just so they can get ticks against their name and get out before it blows up.
The stories about jobs and careers are getting so tiresome. I realize Dice bought Slashdot to datamine the comments (free focus group!), but it seems like half the stories are a variation on the same these days.
A manager need to learn about the psychology of people at work and in groups. That not all people work the same. Some are inherently more efficient and productive working in one manner while others are more efficient and productive when working in a different manner. Some can get by with headphones in a noisy open environment, others require a quiet office to themselves. Some do well bouncing around from one part of a program to another, a breadth first sort of traversal of the code. Others do well drilling down into more and more detail in a single part of the program, a depth first sort of traversal of the code. In short, they need to learn that there are no universal answers. No universal manner in which to measure productivity. No shortcut for managers, that management is hard and you have to put in a lot of work to do it right. A manager also needs to develop an increasingly better understanding of other departments in a company or organization. How do the accountants look at this project? How do the marketing people look at it? How do the executives think it fits (or doesn't fit) into their objectives? Are any of the preceding or other interests in the company failing to properly understand a project and it value? How do I persuade them? Well the first step in persuading them is to understand their perspective and concerns. Then you can address these concerns in a manner that they understand, from perspective they have. Management is hard, you not only need to possess a deep understand of the specialty of the people you directly manage but you need to have a working understanding of the specialties of other people in unrelated departments. Again, there is no shortcut. Its hard work.
... but now you can better understand and communicate with other people in the company or organization. You can be more effective and persuasive at representing the perspective and interests of your specialty. You are a geek that can communicate effectively with an executive if need be.
On recurring theme in all the case studies of real businesses and project that you will study, regardless of area or topic (engineering, marketing, managements, etc) is that most failure are human in nature. That people were in the wrong position, used in the wrong way or were just plain unfairly treated. People both inside and outside a team, and inside and outside a company. A lot of this came from the arrogance and overconfidence of a manager. Hint at what not to do.
So where does one learn more about the psychology of leadership, the psychology of people at work and in organizations, how to motivate, how to persuade, etc. Well that is what MBA programs teach. MBA programs are not about bean counting, finance and accounting. MBA programs are about taking a person with deep understanding of one part of an organization and providing them with a working overview of all the other classic parts and functions of an organization.
Yeah, I said it, an MBA. MBAs are not like other Master's degrees where you delve deeper into a specific topic in your field of expertise. It is an overview of a complete organization. Statistics, organizational behavior (a bit of the psychology stuff I mentioned), marketing and sales, consumer behavior, product development, accounting and finance, management, strategy, operations, information technology, business law, negotiations (which is not limited to contracts, convincing others to see your perspective, to persuade them is a negotiation), etc. Basically you leave an MBA program the same as you entered. If you were a scientist before you are still a scientist, an engineer still an engineer,
Roughly 1/3 of my MBA class were scientists and engineers. Less than a quarter accounting and finance people. The classes I took were often very interesting. Personally I was constantly amused at how misinformed I had been. I had the classic engineer's disdain for anything business and marketing, thought marketing was just snake oil and misinformation for example. I was pleasantly su
Yeah - sorry dice - dressing pretty to become a boss just shows how stupid people who want to be bosses are.
And that's why competent people hate them.
Clothing does not reflect ability. I'm quite sure I can code far better naked than someone who thinks spend two or three grand on an Armani overhaul can.
_ _ _ Go for the eyes Boo! GO FOR THE EYES!
I have been a programmer for all of my career, and had management roles in the past 10 years to varying degrees. Over this period, I have also mentored other technical team members in transitioning to management roles. The toughest part of that process is in learning the ability to delegate. This is especially tough for talented programmers.
You often feel that it is easier for you to do a particular task yourself rather than delegating. It may be true that you might finish the work in tenth of the time it takes someone else to do, and you may be spending more time in explaining it to others. But at some point you have to stop doing it, start trusting others to deliver, and don't meddle with their work too often. Once you learn how to do it, you are well on your way to becoming a successful manager.
The stories about jobs and careers are getting so tiresome. I realize Dice bought Slashdot to datamine the comments (free focus group!), but it seems like half the stories are a variation on the same these days.
It's the non-engineers.
They have this misconception that people used to dealing with the intricate semantics of programming languages are going to be unaware of the intricate semantics of English. Therefore, if they ask a question once, and do not get an answer they like, they will repeatedly ask the same question in different guises, hoping to obtain the answer they wanted to hear.
This really comes down to who is more patient than whom.
I usually attempt to buffer my answers in order to soften the blow, but you can ask the same question as many ways as you want, and the answer will likely not change, so long as it is fundamentally the same question. And I usually have the patience of Job. However, there was one incident where I was up against a deadline, and was being asked to "just cobble together something that works, and we'll (read: you'll) fix it (read: in a binary compatible way) later. Which was an impossibility (I was working on some very complex database code written in C++ which did subschema definitional enforcement on an upper level database schema, and the semantics had to be correct for the data stored in the binary backing store to be usable going forward, when we did the next update). The code had to be *right*, as opposed to *right now*, and the time difference was important.
We had a UI person who was in a management position, and they brought her over to argue their case that immediate was better than correct (correct would fit under the deadline, but only if everyone left me alone to finish the code). The UI person was constantly revising the UI in each release, and each release was practically a full rewrite. And she did not understand why I could not write my code the same way she wrote hers. Finally having had enough, I explained "It's OK if your code is crap; you are going to rewrite it in the next release anyway. My code has to work now, and it has to continue to work going forward, and therefore it needs to be correct. I understand that you are feeling the approaching deadline. So am I. However, while your code can be crap, mine can't be because I have to maintain it going forward. Now if you will get the hell out of my office, I will be able to finish the code by the deadline."
Needless to say, there were some ruffled feathers. The director of engineering sided with me. I completed the (correct, rather than expedient) code by the deadline, and the product didn't turn into unmaintainable crap vis-a-vis the update process going forward.
What's the moral to this story?
Well, with specific regard to DICE:
(1) Repeatedly asking the same question in different ways is not going to get them a different answer, if the first answer was correct. Any other answer than that answer would be incorrect, for the question asked.
With specific regard to the current topic:
(2) Engineers who actually reliably, repeatedly, and consistently deliver what they are asked to deliver, within the timeframe that was agreed upon, can, and often do, wield more authority than the managers nominally set above them in the food chain, so it's not like going into management is going to give you any more real authority than you already have by way of your relationship with the team, and their trust of your judgement.
A management path can be a good idea if:
(A) You want more perks (stock options, etc.), although in a good company, if you are a great engineer, you will get those anyway
(B) You are tired of doing engineering for a living (which probably means you didn't qualify as "great engineer" under option 'A' anyway)
(C) You feel you would be more useful and/or happier in such a position (but if your happiness is based on power, don't expect it will necessarily follow)
(D) You
In order to be a successful manager of a development or I.T team, you need to have an outstanding track record of making the right decision, foreseeing when other decisions will cause problems down the road, be a good judge of character, and have the ability to work with (or deal with) personalities that normally would drive you crazy. These are things that you can't really accomplish in a few years. Just like auto-dealerships should never promote their best salesman to management, software companies should never promote their best developers to management. Most of them will be miserable anyways. There's a certain type of developer that makes a great manager. But they are few and far between. Also, the few very talented developers make more than their managers do anyways.
Most of us get sucked into management, like a poor Millenium Falcon into the Death Star's tractor beam. More useful would be an article about how to refuse such offers, keep getting raises and offers for programming jobs as we grow older, and so on.
You will get promoted to management, at least to team lead, just by not sucking.
And in my own experience at least, in the healthcare industry, there are plenty of gray-haired technical people. And when I was helping to hire another programmer, I was hoping for a graybeard, not because of agism, but experiencism.
programmers interested in breaking into management
DON'T DO IT!
Just...don't.
It's incredibly taxing to see the number of senior programmers/engineers/researchers/etc. get moved into management who completely lack the appropriate skill set. Definitely agree though that food service and retail management experiences generally give people the correct skill set. For a variety of reasons, those industries better train and prepare management as well as filter the crap. White collar offices tend to lack effective management training and let's not even get into the whole university MBA factories where management vocabulary trumps actual management ability.