Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Background:

I'm currently part of a team of four: 1 manager, 1 senior developer and 2 developers. We do a range of bespoke in-house systems / projects (e.g. 6-8 weeks) for an organisation of around 3500 staff, as well as all the maintenance and support required from the systems that have been created before. There is not enough of us to do all the work that is potentially coming our way - we're understaffed. Management acknowledge this, but budget restraints limit our ability to recruit additional members to the team (even if we make the salary back in savings).

The Change

This leaves us where we are now. Our manager is due to leave his role for pastures new, leaving a vacancy in the team. Management are using this opportunity to restructure our team which would see the team manager role replaced by another developer and another senior developer. Their logic being that we need more developers, so here's a way of funding it (one of the roles is partially funded from another vacant post).

The team would have no direct line manager and the roles and responsibilities would be divided up between the seniors and the (relatively new to post) service manager (a non-technical role with little-to-no development knowledge/experience whose focus is shared amongst a number of other teams and individuals) - who would be our next actual manager up the food chain.

I guess the final question is:

Is it possible to run a development team without an manager? Have you had experience of this? And what things could go wrong / could be of benefit to us?

I'd ideally like to "see the light" and the benefits of doing things this way, or come up with some points for argument against it.

share|improve this question
20  
If no one is the manager, then effectively everyone is the manager. Recipe for disaster. –  JohnFx Jun 2 '12 at 17:56
13  
Google self managed or self directed teams. There's anecdotal evidence that it can work really well under some situations. Does it fit the people and the culture is the real question IMO. –  Guy Sirton Jun 2 '12 at 19:00
    
Similarly: programmers.stackexchange.com/q/64394/1996 –  Jim G. Jun 10 '12 at 2:37
    
@Guy Sirton: Do any of those articles apply to programmers? I doubt it. –  Jim G. Jun 10 '12 at 3:56
    
@Guy Sirton: See JohnFx's comment. He's 100% correct. –  Jim G. Jun 10 '12 at 3:57

15 Answers 15

up vote 42 down vote accepted

The greater the risks, the more you need "air cover". This is what a manager is really supposed to provide. While the team does the work, the manager is supposed to ensure that there is nothing that will keep the team from achieving team goals. Whether it's tweaking the schedule, running interference between the team and the sales staff, or simply making sure the team are paid on time and that the coffee machine remains in working order. A really great manager allows the team to function almost as if the manager isn't there.

The reality of course is that most managers utterly fail at this. They either micromanage, or they are rendered obsolete so that the upper echelons of the company can control things more directly, and the truly great managers are a rare bird indeed. As far as a software team is concerned, there are some pros and cons both ways when it comes to having a hierarchical or flat team structure. If the team is very small, and the work done requires very little overlap (and by that I mean everyone has an independent project), then it's been my experience that a flat (aka unmanaged) team structure can work very well if all of the team members are disciplined. It's also been my experience however that where there is a great deal of overlap in the work that the team members do, where there are two or more relatively strong personalities, or where there is a relatively stressful working environment with a busy workload, then having a team leader or a manager with clearly defined responsibilities is generally essential.

There are a lot of factors involved, however it really boils down to the personalities involved, their individual motivations and career objectives, and the example and guidance provided by upper management that will determine how necessary a manager or team leader position is. Generally, if there is any chaos, and when the team is asking for it, then the team clearly needs leadership. If things generally tick along ok without management input, then perhaps the team can manage within a non-hierarchical structure for a time... at least until the workload and schedule becomes too difficult to manage.

share|improve this answer
9  
+1 for "air cover" being what managers really need to be doing in this sort of situation (different situation if they're specifically project managers). –  jcmeloni Jun 2 '12 at 17:30
5  
+1 for first paragraph - -1 for the next, +1 for the last. Dissing managers may be fun, but it wears a bit thin on these forums....... –  mattnz Jun 2 '12 at 22:36
6  
+1: "While the team does the work, the manager is supposed to ensure that there is nothing that will keep the team from achieving team goals.": Not all managers are like this, but I have had the fortune of having such a manager. I can normally work without direction, but having a manager that prevents disturbing events or information from reaching me during my work is really great and boosts my productivity! –  Giorgio Jun 3 '12 at 18:03

Someone needs to be the manager, but in your team's case, I don't think this is a full-time position. Hire another sr. dev and make one of them the manager. Ideally, the one who best fits being a manager and not necessarily the best programmer.

The manager needs to have the final decision where there is no concensus, so the person should be technically qualified. Evaluating the other programmers, the meetings, and fending off senior management is part of the job.

Suggested Reading: The Year Without Pants. Even a large software project (WordPress), can go without direct managers, but there are some tasks (no one wants to do/are very hard) or require integrating a large number of devs for the same task, can be very difficult without some central control.

share|improve this answer
    
I have never had a direct manager who does not write code just as the team does. –  Vorac Jan 28 at 17:04
    
@Vorac - just curious, what is the largest dev team you've ever been on? –  JeffO Jan 28 at 18:31
    
10 persons total :) –  Vorac Jan 29 at 8:54

No manager = No accountability=Mess on the long run at least. Every one will do things as he/she likes and middle management will run around not sure whom to talk to or who is right and who is wrong for a given problem or request. Unless the tasks are so segregated and have little or no relationships, having many 'small mangers' does not work in development because there are so many ways to do any given task and because management requires expertise a busy developer may not always have acquired. There is a need for someone to see the full picture. The suggested style may work for teams providing support of legacy or current applications but not in development. To be optimistic, it will take your organization and some trials and failures before this works out reasonably well.

share|improve this answer
    
This may very well be true for groups of developers with little discipline, but it is not as true with a well-motivated, self-organizing team. If the team is as poorly-disciplined as your answer suggests, the problem is in HR moreso than management. –  Dan Lyons Jun 11 '12 at 18:38
    
@DanLyons, thanks for your comment. When higher management needs to know when a product will be delivered, or how much more money do we still have to pay or why is this report is not working, ...etc. there has to be a at least one reliable answer. In my opinion, any group with more than 1 person, must assign a manager. After all there has to be one person to fire at the end of every IT project :) –  Emmad Kareem Jun 11 '12 at 20:08
1  
The company that builds WordPress seems to be able to do it. –  JeffO Jan 28 at 18:33
    
That is news to me. Good point. –  Emmad Kareem Jan 28 at 20:26

I'm currently working on a small team without a manager. Small company. It works well.

Your mileage may vary.

share|improve this answer

You need a technical lead and a manager, yes. I personally think the technical lead is much more important, though. (If you're not sure what that is, it's basically the person that hands out the work and makes sure everyone's doing what they should be.)

share|improve this answer
1  
Agree. Given the description of the "Service Manager" role in the question, the complement is a Technical Lead on the team. –  MSalters Jun 4 '12 at 9:56

I concur the answers above, but there's an important consideration.

A "manager" is a position, but think in terms of roles, a manager is someone who has certain responsibilities. Regardless of what these responsibilities are, negotiations with CxO, writing up reports, managing vacations, or even filling up a coffee machine - your team needs someone responsible for this.

Pro's — It can be one of you, and this could become a great boost to his/her career. The rest of team will get someone who is not "assigned from above", but someone who deeply understands the team's needs.
Of course, don't forget to negotiate how much time she would spend for managerial tasks, and what remains for what she used to do before.

Con's — It is also possible none of you would wish to be a manager. There's nothing bad in this. Many developers would rather enjoy with keyboard and other developers, than "wasting time" with reports, diagrams, and meetings. Trust me, five minutes with screaming boss every morning is extremely demotivating! :)

So, I would re-word you question like this:
Is it possible to run a development team without a dedicated manager?Yes.
Is your team ready for that change? — I can't say.
Try it. It just worth trying.

share|improve this answer
    
-1: Worth trying? When? On a project that doesn't matter? –  Jim G. Jun 10 '12 at 4:04
    
@Jim: ...unless there is a manager who only cares about his/her opportunity to patronize people by preventing their growth, of course. ;-) –  bytebuster Jun 10 '12 at 7:50

I would suggest it depends on the battles that need to be fought for the team in the organisation. If there are problems preventing you doing your jobs then the manager should be sorting those out.

That may be things such as ensuring priorities are being controlled and set in a sensible way, ensuring you have the equipment, software etc you need to do your jobs. They should be the team's advocate in the organisation.

How do you engage with the business, how do you determine what you should work on, who determines when you are 'done'. If the organisation deals with these things without your manager having to do much, then great. But then there may be changes outside your team and perhaps if one or two key people in the business change roles you may find yourselves in a difficult situation.

Perhaps you could pick a strong leader in the organisation who can be your advocate, but doesn't need to participate in your day to day management, approach them and see if they would be willing to put your team under them. (Perhaps you already did that with your 'service manager' that you mention.)

share|improve this answer

short answer: yes it can.

Long answer: but it depends on the team personalities. Obviously, someone has to decide what you're doing and so you need someone to report to - this may not need to be the manager of your team, but someone has to give you work to do. Within the team, you may need someone to decide priorities and/or technical issues, but that can easily be done by a team lead.

Maybe you need to merge your dev team with another one, do you have a test team> would it be better to use the same manager for both, while keeping the dev team semi-autonomous?

It seems to me the service manager can quite happily provide you with the work you need to perform and also check it fits the necessary quality, and he doesn't need any development experience to do this task - software is a business tool, it either fits requirements or it doesn't, and usually the best people to determine that is the users. The service manager will act as a liaison between you and them, and hopefully keep you working right. I'd just worry that he didn't have enough control over your team's responsibilities, as if things started to go awry, you'll end up in an unhappy state until management did make him (or, worse, someone else) responsible for you.

share|improve this answer

The simple answer to your question is yes as other folks have indicated.

A more complete but more complex answer to your question is to address:

"Management acknowledge this, but budget restraints limit our ability to recruit additional members to the team"

Management saying "yes we acknowledge that, we recognize that" is just "words" to make you feel better. They don't consider it critical to the organization's success, or they would really support actually getting someone!

Other things to watch out for (since there's a lot of psychology in this) is when management tells you bad news, but mixes in some kinda joke, maybe mentioning the issue directly, maybe not, but which basically makes it impossible to question it (its a subtle and clever technique). Another one to watch for is a 3 hour meeting where you are presented with the the plan and at 2 hours 55 minutes in are asked your opinions.

Be leery of management that "says" the right thing as opposed to management that "does" the right thing.

share|improve this answer
2  
+1 for the last sentence. –  Joshua Smith Jun 11 '12 at 14:41

Self managed teams are not that out of the ordinary. They usually require clear performance metrics to create internally generated accountability. Your organization could have this, but if you can't generate additional headcount based on cost savings, then perhaps this won't work. The other challenge is your new boss doesn't sound like someone who would know how to reward talent.

For better or worse, it sounds like you need a player coach. Someone who can both manage the team, and perform in it. In a group of 4, this is certainly feasible. In a group of 8 or 10, it wouldn't be. The challenge is identifying who should be this player coach. The default is to make it your best programmer, but do you necessarily want to tie them up with admin? There's no hard and fast answer, other than to say high performing organizations find ways to not force all their best technicians into becoming managers.

share|improve this answer
    
-1 for the first paragraph. +1 for the second paragraph. –  Jim G. Jun 10 '12 at 4:02

A team of developers does not need a manager if each person is mature enough to work as a team and meet stakeholder expectations.

There are certain roles (say developers) which required to be focused on a problem that needs to be resolved and not worry about other environmental factors. That is where having a manager helps.

Having said that someone senior who can add value always helps. Even a CEO reports to a team of managers (board of directors).

My 2 cents...

share|improve this answer

Manager tend to be the missing link between the organisation and your dev team.

  • They make sure your work is relevant and meets the needs of the organisation.
  • Answer to upper management
  • Manage the schedule so that the project is on time
  • Make sure that your needs for the project are taken care off.

Smaller teams, with small responsibilities could function without a designated manager. But as the responsibilities become bigger, you'll need someone managing all those risks and problems.

And given your setup, someone on your team will end up doing the manager role even though they are not designated as such. Usually distributed responsibilities don't work well. Depends a lot on how it's distributed and the type of people involved.

share|improve this answer

I reckon Flat teams are always a problem unless you put one guy in charge to herd a group of same/similar grade engineers.

As mentioned by S.Robins, IF all the team-members are well disciplined then putting a manager can be a needless bottleneck here. A few of the small companies I have worked in have man-power constraints (due to budget constraints among other reasons) and hence they tend to put a group of few freshers / juniors into a flat team with one guy a rung above them managing them.

If the "1-level-higher" manager is not able to manage people, this will backfire. Freshers / juniors starting out their careers are going to hugely competitive - try to establish themselves firmly as early as possible in the team and someone needs to rein in people at times so that their competitiveness doesn't hurt co-operation.

The issue with having a flat team is that with the project scaling you will inevitably have to let one or two guys do a bit more, take a bit more responsibility. At this point you will have to create a well defined hierarchy and definitely put in place a proper Manager to take calls and manage people because very often when there are promotions from within the same group there is always an unhappy bunch.

The other bad idea I see in many smaller Cos is to just put the most senior guy in terms of designation or experience as the manager. Or the most technically adept guy in the group gets promoted to the role of a manager.I have never seen this work out.

I feel any team of more than 4 people will definitely need a Manager early in their time-line if the project has good scaling. Ideally a technical person with man management skills, good communication should be put in charge of certain decisions.

share|improve this answer

I work for a company where we embrace agile practices, in particular Scrum. It works great across the board: development teams, and executive management are all happy. They get what they want.

  1. All engineers report to Engineering Manager. Engineering Manager is an extremely technical and functional role, with the role requiring to get more business to the division. This role is equivalent to Product Owner.
  2. The project manager is a separate role, akin a scrum master, and is usually a contractor for a fixed time (12 months to 18 months, with no extensions to contract)
  3. The project manager--scrum master--is completely responsible for non-functional and non-engineering activities

This has worked wonderfully, as the development team focuses on the engineering aspects, business analysts/product owners focus on the business aspects. The project manager is responsible for task tracking, reporting and other typical Scrum Master duties.

The middle management is outsourced, and there is no growth path from middle management to top management. The growth opportunity is from development team or business analysts role to engineering manager, and not from supervisory roles.

Our company strongly believes that middle management is not a major value add to a company, and is best left to external consulting companies.

share|improve this answer

The benefits of having a manager depends on the role they are playing for your team. So, it really comes down to the role needed for the team:

  • Do you need someone who has the authority to resolve disputes between team members and keep the team focused on delivering good quality work on time?
  • Or do you need someone to provide air cover as mentioned in a top answer? Manage schedules, decide priorities, intervene between upper management and the team, etc.

So, do you need that? Can the people in the positions you noted do this for you? If so, then you're fine. If not, you're probably headed towards disaster.

Source: personal experience with group projects and managed and unmanaged teams.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.