Skip to content

Why Managing Small Projects is Harder

April 17, 2008 by JurgenAppelo

DedicatedserverSome people think that managing small projects is easier than managing big projects. They are right, unless the economies of scale require you to manage a number of those small projects at the same time. In that case, managing small projects is a lot harder than managing a big project!

Dedicated servers vs. shared servers

Many web sites are too small to run on their own dedicated servers. I know, I've built a lot of those sites. They usually run on shared servers (together with other web applications for different customers). As many system administrators know, management of a shared server is a lot more work than management of a dedicated server. On a shared server, the applications are fighting for the same resources (memory, drive space, database connections). And we must try to make sure that, when something goes wrong in one application, it doesn't bring down all the others too. Unfortunately, this does happen occasionally. One time it might be because of a Denial-of-Service attack against one particular site, another time it's simply because I screwed up again with one of my infamous infinite error loops. Customers often complain when problems with another site causes a failure on theirs. We then kindly suggest that they open up their purse and get themselves a dedicated server. Or, as a bus driver might say, "If you can afford yourself a taxi, sir, then why take a bus?"

Dedicated teams vs. shared teams

I see the same problems with software development teams. I have worked in a number of organizations where projects where too small to form dedicated teams. These organizations usually work with shared teams. The resources in a shared team have to be shared among different projects. The customers simply don't pay enough to give them the full attention of one entire team. Management of such a shared team is a lot more work than management of a dedicated team. The projects are fighting for the same resources, and you must try to make sure that, when something goes wrong in one project, it doesn't take down the other ones. But again, this does happen every now and then. Customers complain about it, for sure. We then kindly suggest that they buy themselves a dedicated team, which they never do. They prefer complaining over paying twice the fee. Just like ordinary bus passengers.

Agile methods assume a taxi, not a bus

There are many shared teams in the world, and not just in software development. Many hair dressers, car mechanics, accountants and lawyers work in shared teams. Such a team doesn't serve just one customer at a time. (Except for teams of lawyers with a customer the size of Enron.) Each team member usually serves a different customer, and resource planning can be cumbersome, because of the many cross-customer interdependencies. Unfortunately, every agile method assumes that customers have bought themselves the privilege of working with a dedicated team. It's as if they assume that people always take a taxi, and nobody takes a bus. It's a pity, because managing a bus is a lot harder than managing a taxi.

Can agile principles help a shared team?

Yes, I've seen that it is possible, but it takes a lot more effort. First of all, it takes one very strong project manager (or Scrum Master) to negotiate alotted time with many different customers (or Product Owners). Second, you have to translate all best practices for dedicated teams to the shared sitation. (Stand-up meetings are slightly different. Backlogs are treated differently. Iterations are very different. Pair-programming works in some cases, but not all. Etc.) Third, you have to educate anyone who thinks that you're "only doing simple projects". Because, when you can manage a number of small agile projects simultaneously, then you are able to manage anything!

Any bus driver can drive a taxi. But few taxi drivers can drive a bus...

Comments

Renting computing service for own servers?

April 17, 2008 by Tote (not verified), 1 year 42 weeks ago
Comment id: 1510

Might not be too close to topic, but small teams might wish to consider renting computing/storage capacity, like the one from Amazon (http://www.amazon.com/gp/browse.html?node=201590011). This kind of service would give them the freedom of maintaining separate server(s) per project. And although it's not free of charge, might be at bearable level.

How does self organization work in this context

June 24, 2008 by Jeff Santini (not verified), 1 year 32 weeks ago
Comment id: 1605

I would be interested in hearing about your experiences on how the Self Organizing team can operate in an environment where they are responsible or partially responsible(?) for multiple projects.

I am used to forming teams to solve problems, which would mean one team to tackle each problem, but it sounds like your teams are formed on different principles. I would like to hear about the basis you use to form a team.

By doing it the other way around

June 24, 2008 by JurgenAppelo, 1 year 32 weeks ago
Comment id: 1608

Jeff, In our case the projects are too small to keep constructing new teams. Most would be 1- and 2-persons "teams" that would exist for only a couple of weeks. The trick is to organize it the other way around. We form teams of people who like working with each other, and who get used to each other's way of building products. Then we assign the (mini-)projects to the most appropriate teams. In short, we do it the other way around: we assign a project to a team, not a team to a project.

@Jeff Santini

June 24, 2008 by Artem, 1 year 32 weeks ago
Comment id: 1612

@Jeff Santini
> I would be interested in hearing about your experiences on how the Self Organizing team can
> operate in an environment where they are responsible or partially responsible(?) for multiple
> projects.

Jeff, if you happen to come to agile 2008, I'll be presenting a paper on "Scrum in multiproject environment" there. Long story short: it's tough and makes either mess or somebody has to figure out the explicit priorities for the projects (i.e. make them not that much simultaneous).

Agile 2008

June 25, 2008 by Jeff Santini (not verified), 1 year 32 weeks ago
Comment id: 1614

It is a bit far afield for me at the moment, but if your presentation makes it online, I will check it out. The friction between the value of maintaining teams over time versus the value of teams existing to solve a problem has always been of interest to me.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <i> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br> <blockquote>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters (without spaces) shown in the image.

Best of AgileSoftwareDevelopment.com