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.

Say you have 5 customers, you develop 2 or 3 different projects for each. Each project has Xi tasks.

Each project takes from 2 to 10 man weeks.

Given that there are few resources, it is desired to minimize the management overhead.

Two questions in this scenario:

  1. What tools would you use to prioritize the tasks and track their completion, while tending to minimize the overhead?
  2. What criteria would you take into consideration to determine which task to assign to the next available resource given that the primary objective is to increase throughput (more projects finished per time unit, this objective conflicts with starting one project and finishing it and then moving on to the next)?

Ideas, management techniques, algorithms are welcome

share|improve this question
add comment

4 Answers

Sounds like the company has taken on more work than it can handle and it's trying to dig itself out of a hole.

Give your salespeople a vacation, pick the projects that have the higest profit ratios, finish them and postpone the rest until they can be worked on.

Or get more people to work on the projects that you can't handle (it's not a mythical man-month scenario if there is no-one to work on them).

share|improve this answer
    
It seems that I exaggerated the scenario a bit. I was trying to emphasize the idea of minimizing overhead, but I overdid that. I'll edit the question. Say that there are now enough resources to assign to each project. How do you minimize the overhead of planning and tracking tasks for different projects running in parallel? –  Vinko Vrsalovic Oct 20 '10 at 21:58
add comment

Kanban allows you to track tasks in workflows. They show areas in the workflow that are experiencing backlogs so you can dedicate more effort to clearing them, as well as begin to isolate what's causing them.

There are several nice references on the techniques.

Read them all. Yes. Read them again until nothing seems to contradict your "learned" experience. Then take out some post-its and try to teach someone else what kanban is. Then read them again so you see what you didn't understand as well as you thought.

share|improve this answer
add comment

Given your scenario, I would ask the customer's to prioritize the projects that you are working on for them. I would not choose these projects by those with "the highest profit ratios" as your sending your customer the message that all you are interested in is their money. You want your customer to know that you're interested in helping them solve their software problems.

Then the process of determining what you work on next is a conversation between you and them, where you explain what resources you have available to devote to their project(s) and which they would prioritize first.

They may not be thrilled that you are telling them that you can't do everything they want, but they'll appreciate that your putting them in charge of what they consider important.

Another side effect of this process is that you can manage the customer's expectation better.

share|improve this answer
add comment

Microsoft OneNote is the best tool I've seen for tracking multiple projects at various stages.

Unfortunately with many software companies, priorities are set based on the old saying "The squeaky wheel gets the grease." Whichever clients will complain loudest will get their projects completed first.

In the cases where you have projects that will affect more than one client, it may be easier to prioritize, by asking yourself which items would affect the most customers.

I am always interested in learning new and better ways to prioritize development projects, but there doesn't seem to be any perfect way that would reach across different organizations.

share|improve this answer
add comment

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.