Fog Creek Software
Discussion Board

Rule Number Four: Great People Can Manage Themselv

I was reading an article on Fast Company about Google:

In Rule Number Four (about 3/4th down the page), the article mentions that Google's philosophy is to allow developers to manage themselves:

In the beginning, "'[they] had management in engineering.  And the structure was tending to tell people, No, you can't do that.' So Google got rid of the managers. Now most engineers work in teams of three, with project leadership rotating among team members. If something isn't right, even if it's in a product that has already gone public, teams fix it without asking anyone."

I think that this is great advice for anyone starting a tech company.  Of course, the title does have a restriction where this methodology would work.  The people managing themselves has to be "great people."

So if you're able to attract the best and the brightest then let them do what they do best without all of the red tape that managment brings.  Of course, if you aren't able to hire people that can get things done on their own without someone watching over them then you're basically going to need babysitters (aka project managers).  [Sorry to all the PMs out there, but I'm sure that's what it feels like and what's left over when you boil everything away.]

Which begs the question:  How many of you feel that you could probably do your job without management overlooking every move you make and checking up on you every five seconds?  Be honest.  Imagine yourself going to work and your boss was sick and out for the day.  Would you get anything done?

I myself can't say that I will always get a productive day's worth of work out :), but I do try to be as focused and goal oriented as possible when I'm not slacking off or procrastinating.

Monday, March 24, 2003

I'm guessing most of us have managed ourselves at one time or another. I think its very difficult.  I'd much rather have 1 project to work on, and just be able to code like hell on it until its done.  Having to design your own stuff, QA it, prioritize, decide which features to cut, thats pretty difficult stuff.  Its not easy, but i'm very glad everytime I get a chance to do it.  Most can't do it well. I can't.  I'm hoping someday i'll be able to.  Being able to manage yourself, in my opinion, is the most important aspect of joel's "Gets things done" requirement for developers.

Vincent Marquez
Tuesday, March 25, 2003

Managers can be useful in some instances for transmitting a big picture view of business needs and transforming that view into direction on deliverables. That would be a proper role of management in most companies.

But, generally, managements become full of themselves as the sole repository of wisdom in companies. Management culture is dynastic and self perpetuating, similar to politicians' livelihoods - and programmers and anyone that implements or *knows* anything is compartmentalized in the management mindset as a sometimes useful fool whose opinion is not "really" important.

Programmers occupy an uncomfortable place in most organizations. What we often know is a superset of that which executives and managers believe that *they* know about the effectiveness of the business. But due to politics and role, we are disregarded on an ad hominem level as "grunts" with no ability to see at the lofty and noble self sacrificing level of those who play golf with each other.

I guess what I'm saying is - why does it really matter whether a great person can manage themselves? Most companies are run and managed by egotistical wankers on an ego trip to prove that they're better, wiser and more holy than the non management "grunts". A person managing themselves is generally seen to be either midguided or insubordinate.

The only  way to avoid this is to run your own company, preferably with your own product or a turnkey service.

Bored Bystander
Tuesday, March 25, 2003

I'm not sure about self-management etc., but I think that Google is a special case. They seem to run the R&D as an intellectual playground, which may be fine in their company, but wouldn't work in mine, or any I've ever worked for.

Tuesday, March 25, 2003

Anyone who requires supervision probably shouldn't be working in this industry.

Dennis Atkins
Tuesday, March 25, 2003

To clarify, if I found we had an employee who required supervision, we would get rid of that employee. That hasn't happened. I can only assume that most developers do not require supervision. This isn't McDonalds.

Dennis Atkins
Tuesday, March 25, 2003

And now a word from the PM :)

Where I work teams pretty much decide everything about their projects themselves, including scheduling, design, what features get in, etc.

Except that we sell shrink-wrapped software which has to meet real clients' needs, so we have a strategy group which decides which big features make sense in the long term for the products.

And we have project managers, who are supposed to make all the bureacratic and communication stuff go away, so the techies can get on with the stuff they want to do. So I make sure that the communication between teams who are working on the same big project works. I make sure that the dependencies between the different teams fall into place. And I keep "management" and clients off the techies backs.

I agree wholeheartedly that great people can manage themselves and should be given the authority to do so. But they should have the support of (for lack of a better word) "managers" who make sure they can do that effectively. Otherwise the great people end up spending all their time doing the wrong stuff :(

Tuesday, March 25, 2003

Read this interesting article, also from fastcompany:

    Engines of Democracy:

Is there a reliable certification/licencing counterpart in the software industry, as the FAA licence?

Thomas Eyde
Tuesday, March 25, 2003

Most people... not just the great ones, seem to manage themselves quite nicely outside a work environment.  I think it is primarily a manager opinion that they cannot do so at work.

I found a good book... "the flight of the buffalo", that deals some with self-managed teams.  Neat ideas.

Joe AA
Tuesday, March 25, 2003

Our software development group (10 engineers) is completely self-managing.  Our manager, one of the founders, often gone for weeks at a time, selling stuff on the road - most recently Korea.

Each engineer is a technical lead within their area of expertise.  We hire contractors to help with bottlenecks at specific times, and the engineer assigned to them has to organize and delegate their work effectively.

This is how effective engineering happens.  Our architecture discussions are completely open.  If you have something to contribute to a specific area, you are always invited to join in.  Some call this 'Democratic' - well, its not.  Quite simply its Technocratic.  It doesn't matter what you think - there is no 'one person, one vote' methodology in place.  Its how good your ideas are.  The best ideas build concensus and enthusiasm.

Nat Ersoz
Tuesday, March 25, 2003

Good observations here.

Let's look at the opposite axis now - the anti-Googles. Usually found in backward non Silicon Valley type redneck areas.

To everything said already,  I'd like to remark on the attributes of companies that believe that programmers (as well as other mature grown professional adults) should be restrained, checkpointed, monitored, hassled, reported-from, and reined in - "managed". I've contracted at a few in the last couple of years.

- Management is despotic about firing people that don't measure up, sometimes cruelly and accusationally so.
- Employees are penalized for doing or learning outside the box that management has defined. It's actually a liability to learn something on your own outside work and to let your management know that you've been looking into it.
-  Programmers that have very narrow skill sets and repertoires tend to be hired. The effective ones and the ones with imagination are selected out (actually, find the hiring practices of these places a repulsive bad joke.)
- No innovation occurs. If a novel situation occurs or if the technology shifts, the workers in such places are paralyzed by fear but are also conditioned to fear the process of learning.

I could go on for pages. But fascist type companies that fit the profile above are fairly common in my part of the midwest. And the track record of decline in technology businesses in places like Dayton, Indianapolis, Detroit, etc speaks for itself. The smart people got the hell out of dodge. All that is left are shitty little sweatshops hanging onto a thread run by egomaniacal jerks that flatter themselves thinking they're running a smalltown Netscape.

If you suggested to a manager or biz owner in my region that the "right" techies could manage themselves - they wouldn't know what the hell you were talking about and would parochially take the message as intended for "granola eaters out west."

Bottom line - I haven't found a technology business in my region that is worth a shit. You guys that work in tech belts are blessed, believe me. You don't have such a strong moron factor to deal with.

Bored Bystander
Tuesday, March 25, 2003

Here's a book that describes a very successful manufacturing company in Brazil that takes this approach to an extreme:  employees manage everything about their work.  They even set their own salaries.  A good, interesting read:

another PM
Tuesday, March 25, 2003

I think that there is a useful distinction bettween:

o Managers: in the sense of supervising workers.

o Project Managers: in the sense of, well, managing the project.

I've found that Managers, in the first sense, are unfortunately more of a problem than a solution (and I assume that this is what the article about Google was talking about).

But I've found that having a good project manager, as a separate and equal role to the technical lead, can be very useful.

Bill Tomlinson
Tuesday, March 25, 2003

>But I've found that having a good project manager, as a separate and equal role to the technical lead, can be very useful.

Yes, I very much agree with this. I can manage myself and all the parts of the project that I'm responsible for. The PM, whom I work very closely with, keeps all the red tape from touching me and deals with the parts of the project that don't concern development. I find this extremely useful, and lets me get on with my part uninterrupted... which in turn makes me more productive.

Tuesday, March 25, 2003

Good developers do not need supervision and they are in the minority. 

I understand this is going to hurt many people's feelings and for that I am sorry.  However, if you look for the approval of others before working, you are probably not as good as you think.  If you work "best alone" you are probably ineffective.  If you know better than these "old farts" or "youngsters" you are probably dangerous.  If you have never managed a large project, with multiple phases, and developers your understanding of project management is off base.  If you have never coded a large project, your concept of development is off base.

If you are a PM, in title or role, your sole purpose is that of the snowplow.  You are clearing the road for the rest of the team.  If it is a glamorous job, you are probably not doing it well.    It is dealing with a million and one details, unexpected changes which must not impact scope or cost, and developers who promise "it's easy."  without any relative scope.  It is ensuring the developer gets the credit and you get the blame.

If you are a developer, your sole purpose is to get the job done according to specifications.  At the same time looking to improve the outcome by recognizing areas of savings.  You are reworking "foo"  and knowing that "bar" is out there, you pull it and do it at the same time.  Cutting the timeline by 40% for that item. You know this is going to be a high maintenance area after the project, so you build in ease of maintenance.  You don't promise an unspecified item without running it by the PM, unless you plan to do it on "your time."

As for the "if you are forced to hire…"  I always wonder about this.  Why will a company hire three mediocre developers rather than two really good ones?  Look for this as a separate item here…

Mike Gamerland
Tuesday, March 25, 2003

---"The people managing themselves has to be "great people.""------

While I am writing this my cleaner is cleaning the apartment. He is doing this quite unsupervised as has any other cleaner I have ever had.

Does this mean I always hire "Great Cleaners"?

Anyway I must log off for a minute; he's just brewed some fresh coffee (withut my asking).

Stephen Jones
Wednesday, March 26, 2003

Managing != hovering.

I presume that merely by living in the house that's being cleaned, you're managing the cleaning by ensuring that you get a clean house. :)

Brad (
Wednesday, March 26, 2003

And by being around to look at the results the software manager will ensure he gets a working product.

Or are programmers dumber than cleaners?

Stephen Jones
Wednesday, March 26, 2003

Most of us clean our own houses.

Nat Ersoz
Wednesday, March 26, 2003

You're missing the point Nat. What I'm attacking is the idea that only a limited number of exceptional people can manage themselves.

In my experience most people, whatever their job, are quite capable of doing it, and function much better if  allowed to do so.

It seems to me you've been saying the same thing in this and another thread.

Stephen Jones
Wednesday, March 26, 2003

Steven, sorry.  Just taking random pot shots.  Agreed :)

Nat Ersoz
Thursday, March 27, 2003

I don't nat. My missus does.

Oh dear, what have I said?

To be fair, I would do it eventually, but she always gets around to it first. Self management in action!

Thursday, March 27, 2003

*  Recent Topics

*  Fog Creek Home