15 March 2007

Is Project Manager the highest lifeform?

Back after a looonnng time

I haven't kept the sacred "blog at least once a month" pace since last December because of my move to Tokyo (And I still don't have internet at home, arghh). However, here's my comeback
with a classical post about the developer vs project manager divide. I decided that an interview would be a better form of post than a long monolog and I really enjoyed doing it (beside I don't have to be the one to be smart!). You can find many more posts on the subject, including this recent one that had lots of comments, even if it's more on the lines of "everything sucks".

But I have more posts coming up:
  • StrengthFinder 2.0
  • Pattern matching with Ruby
  • Net pearls
So stay tuned!

An interview for a change

I have had comments by Teki on my "Interesting software vs plumbing" post. Those comments brought us to the subject of programmer's evolution: starting from being a self-satisfied geek, why would you become a project manager?

Wanting to write a few lines on the subject, I preferred to go for an interview with one of the best software professionals I've came in touch with, my friend Olivier. [some of my comment are in brackets]

me> Olivier, it is sometimes said that a programmer should evolve to a manager position to get a satisfying job in terms of career (recognition, money, autonomy, employment), what do you think about that?

him> I don't agree! A good programmer doesn't necessarily make a good project manager. Becoming a project manager is not the only possible evolution. Technical expertise is also amongst the possibilities. It is true that most of the time, the management positions are the only ones recognized socially and financially. But It doesn't have to be that way. In my previous job, I encouraged the HR department to setup 2 different "ladders" in the company.

By the way, as a recruiter, I have a very, very bad feeling, when a programmer comes to me and says: "Hey, I want to be a project manager in 2 or 3 years". Programmer is a real job, not a transition.

me> Do you think that there could be more than one "expertise ladder"?

him> I don't know, this "ladder" thing is essentially a social and monetary issue. Most people need social recognition and it is often correlated to salary (at least in France).

me> Is it possible to be a good programmer as well as a good project manager?

him> I hope so! [me> Olivier is both ;-)]

me> Is it seldom to be good at both? Can it be learned?

him> I think it can be learned. The real difference between Mr. Universe and me is not the amount of muscle, but essentially the time spent training. Training sufficiently may not make me Mr. Universe but it may still build lots of muscles. The only question is: will I enjoy the training, am I willing to do all necessary efforts?

me> Is it possible to be a good manager without having been/being a programmer?

him> Yes, I think so. I've worked with a very good project manager, who was not a programmer at all. However, he had a real respect for my expertise and trusted my judgement. Respect is a key point in our field. It is also true for programmers who are sometimes capable of utter pretention: try a newbie message on the mailing list for instance,...
[me> I sometimes wonder if it is possible to really have a deep understanding of programmers and software without having being one yourself]

me> Will programmers take over the world :-) and be rewarded as they should? What should they do to achieve this?

him> I don't think that any "world movement" [me> or certification program,...] can achieve that. Local action is prevalent, relentless communication is my only tool. I try to communicate whenever possible: to programmers, QA, directors, sales, consultants. Communication has to be relentless to make people realize the value of programmers.

However, the recognition of the importance of programmers will continue to rise as the upper management realizes their creativity is needed and how much turnover affects the company.

me> Why is programmers perceived added value so low?

him> Their added value? Is it really so low? Yes, perceptions can be very far from reality: some people think that programming is an obscure task, reserved for some kind of mutants. Other ones (sometimes the same but at different moments!), think that programming is easy because they use Word everyday and find it intuitive, easy to use. Or, they have programmed a few Excel macros and feel it is not such a big deal. But how much complexity is hidden behind a good software? It is so hard to make it simple!

Anyway, this is unfortunately the reality for most engineers I know, from mechanical to electricians.

me> Do you think it is a Taylorist / scientist vs agile / lean issue ? What I mean is: do you think that a Taylorist view of software leads to a natural division of Commanders / Executers while an agile view of software makes it more like a collaborative / creative process ? How do you see the future to that respect?

him> Taylorism doesn't apply well to software programming. It is fundamentally a creative activity and an undeterministic process. The V-Cycle was such a big misunderstanding. It has unfortunately spread through most of development standards from administrations to banks. Driving a car is a much better analogy: you constantly have to adjust your direction, your speed and manage obstacles as they occur.

Anyway, I don't think that any agile / lean methodology will drastically change things. Whatever has been said on the subject, there are not enough total project failures. I have not seen one around me in my whole career. [me> Lucky guy, I have seen quite a few, from medium to big].

Still it is so common to expect obligation of results and not obligation of means. Can you write a best-seller in 3 months? Maybe you can write "something" in 3 months, maybe you can write a best-seller in some years, but it takes a genius to write a best-seller in 3 months. How many programming Mozarts can write a brilliant symphony for each project they start?

me> Is there a question that you would have liked to answer ;-) ?

him> The question you ask at the beginning leads us to: what does it take to be a good programmer, a good manager? Is there an universal definition of those 2 roles, or only local ones? Whatever the answer, having the 2 activities being in conflict is always a sign of a big underlying problem: lack of respect,...


teki said...

Welcome back, I thought you were lost in the Tokyo jungle :).

I really love to do programming and I have good communication skills. (which is a key skill if you are not working alone, but unfortunately I am not a native English speaker)

I had a talk with my friend who is used to work in the HR field. We talked about programmers and her point of view was that it doesn't really differ from other professions. You hire a man for a position and the money must match against to that position.

I think this is the point where it starts to fail. There are programmers who are enough good for a position and don't want more, but how would you separate these programmers from the ones who want to learn. If you don't do it, you will have to train a new person in every 6-12 months, as soon as they have more potential and the company doesn't need it, they have to move (actually they don't have to, but knowledge tend to behave like an investment, and it is that).

I'm doing a kind of job what I did ~4 years ago and quit. So right now I'm just working on the wrong place or position, but the company is in trouble to find any C++ programmers so maybe if I wait a few months it will change. I have other good reasons to wait so right now I am not in hurry, but I have everyday problems with the actual job what I am doing (is boring :). A guy who were hired on the same week as me is leaving this week.

I am continuously finding myself to thinking about projects what I can do in my spare time. But in the same time I don't really would like to spend my spare time in front of a monitor.

teki said...

It is true that most of the time, the management positions are the only ones recognized socially and financially. But It doesn't have to be that way.

Which means that I just have to find the right company to work for, which is hard, and time consuming.

It is so hard to make it simple!

It is like the life itself. That's why I love to do it (both :).

Anyway, I don't think that any agile / lean methodology will drastically change things.

I agree with this. It can improve the quality of the software and so the relationship with the client, but it doesn't change the position of the programmer.

Whatever the answer, having the 2 activities being in conflict is always a sign of a big underlying problem: lack of respect,...

Well said, but hard to solve. A manager can give the respect to the programmer (I like my current manager), but to give more interesting things to do when the company has got C++ programmer shortage ? And money alone can't make a programmer happy.