Tracking Dynamic Completion Dates in Development?
cronostitan asks: "We are a small software development department inside a big print media corporation. As in most departments nowadays, we have very few people but a high workload. We are currently working on a code rewrite of an in-house CRM application. Beside this big project, there are always a number of urgent, smaller projects coming in with a timeframe of 1-3 days that we do 'in between.' There is no way to delay these small things, as these are always of the highest priority." What's needed here is a time tracking system that automatically adjusts completion dates based on the current workload. Read on for more details of cronostitan's situation.
"The problem is that if we set a completion date for the CRM project it is always delayed by these smaller projects. Since I am doing the project management, I am a little desperate, since I can never tell my superiors WHEN the real completion date will be. My idea was to find software where you have your usual project management function (with GANTT charts, etc.) to preview the managed project(s), but also have some type of individual time-tracking for 'in between' projects and daily works. Whenever time is spent on any of these urgent projects, the completion date of the CRM project should be shifted dynamically into the future. This would require a login into this imaginary tool so that developers can track what amount of time is spent on specific projects, so that an accurate timeline can be kept. Does something like this exist, preferably as OSS? Do we have to invent the wheel again, or are we going down the wrong path?"
Each day you spend working on something else, move your 'Project Completion Date' magnet one day forward. Be careful though - if you do something else on Friday, be sure to move the magnet to Monday, not Saturday.
Some recommended reading on the topic of scheduling: Painless Software Schedules
Just a thought:
Is the various project and task info currently recorded in software? Maybe the CRM project in MS Project or whatever, and the day to day stuff in RequestTracker, etc?
Instead of reinventing the wheel it might be possible to write a program to extract the day to day and short-but-hipri task info from the ticket tracking system and then have it update the dates in the project management system accordingly. Might have to introduce a new custom field in the ticket tracking system to point to the relevant tasks in the project system, etc.
Call Center, Bug Tracking and Project Management Tools for Linux
http://linas.org/linux/pm.html
Well, actually a subtle blend of old favorites. Let me consult my reference document on "the 25 reasons projects fail".
Well, this is mostly #11, "plan over-estimates resource" and #14 "responsibilities unclear". Your actual question, of course, reveals that you are also suffering from #7, "Planning tools are unwieldy" since you are asking for a tool to fix your problem for you, instead of fixing it. Project managers always over-rely on their tools.
What you need to do is to have proper negotiations between the two critical players, the Project Manager and the Line Manager. This should be both easy and hard, since it sounds like you are both of these people.
Definition: Project Manager is in charge of the project, and the Line Manager "owns" the resources the PM needs to do the project. What must happen is a negotiationbetween PM and LM where LM agrees to give a certain ammount of the resource to the PM. This has to be stuck to - although it can be hard.
So, you as LM have to say to you as PM, "I can give you three days a week of my boys. I can't giv e you 5 days, sorry, because all these small urgent projects pop up all the time." As LM, you have worked out how much time on average you need your boys for the firefighting.
Then, you as PM, can use you planning tools and work out how long it is going to take, given that you have only 3 days resource a week.
~~~~~ BigLig2? You mean there's another one of me?
It sounds like you are not so much interested in the effect on the schedule, but in finding a way to prove something to your superiors.
If they are like other managers, the reality of the situation is irrelevant. They will make unreasonable demands and you will be held responsible when the demands are not met. To them, all the graphs, charts, timelines and other stuff is just part of your whining.
In fact, it is in their interest to make you fail so that they look good in comparison and then they are more likely to get a raise/promotion/whatever.
I'm in the same boat and I know you just can't predict the future in this scenario but...
If your people are keeping track of their time spent accurately and you know their skills well enough: Do your project planning strictly in hours required and set clear milestones. Then try to establish an average of daily/weekly time spent on the rolling project and adjust your completion date accordingly - with a little padding for coffee breaks.
i welcome the flames that may ensue from this comment, just make sure you're PMP certified.
Figure how many requests have come in, or what time. Assume that this trend will continue. Assume that your team will continue to spend x% of their time on the project.
Do make sure you account for time getting back into the code after the urgent project though.
Better hurry up, the new test is coming out in a few months.
Yeah, right.
These gantt charts and complex packages never work. They just give you the illusion of control! They make you think that if you stuff all your data into the computer, somehow your project will guide itself.
That just ain't how it works.
I could give you a big lecture here, but here's all you need to know as a project manager: how to say "NO".
Once you master that, projects suddenly start meeting deadlines.
Personally the most complicated software package I use is basecamp, which is basically a bulletin board with milestones.
... any of the Agile project management methods? I am using Scrum and it works perfectly for this kind of situations.
5. - If your CEO is like mine, the completion date is when you tell him it is - rolling or otherwise.
6. - If your CEO is like yours, you're probably too miserable to give a shit.
7. - If your too miserable to give a shit, your probably right where you belong - nestled in the bosom of Corporate Pulp Culture.
I wish it could do a better job of managing bugs as well as features/releases/products, and the UI isn't quite there, but all-in-all it's a solid product.
warning: epoll_wait is not implemented and will always fail
This isn't hard. You don't need a complicated tool. In fact, all you need is a bag of Gummy Bears. Take the features you have left to do, and divide them up into small tasks -- 3 days each, say, of uninterrupted time. Make each task equal to 1 gummy bear. Count out gummy bears totalling the number of tasks left to do. Put them all in a bowl. When a developer finishes a task, remove a gummy bear. Enjoy. Any time you want to know how much time is left, count out the remaining gummy bears and multiply by 3, or however long your standard task length is, and that's how many (uninterrupted) workdays until you are done. After a couple of weeks of checking the numbers daily, you will be able to get a trend. A simple Excel spreadsheet will be able to determine, based on the ratio of tasks completed to actual days, how many gummy bears/week your team is completing, and how many more weeks/days, based on that trend, until final delivery.
Apparently (IANAPM) line items show up in the timesheets, people update the timesheets with estimated time-to-completion and hours worked, and the schedule automatically adjusts in Project.
It's probably only good if you're a Windows shop, though. The Tenrox system has the worst of both worlds, web-based, but uses ActiveX controls, so you need IE [sigh]. I also don't know how well it works.
Do some reading on Ward's Wiki:
...specifically "Velocity":
t y ...and maybe take a look at X-Planner type software.
http://www.c2.com/cgi/wiki?WelcomeVisitors
http://www.c2.com/cgi/wiki?MeasuringProjectVeloci
http://www.xplanner.org/screenshots.html
I'm also a fan of the gummy-bear model, and regular, working customer demonstrations. Provide value as early in the process as possible, not as late as possible. If you don't have your deliverables specified, you'll never know when you're done. Thus, Nail down your deliverables, break them into equal sized chunks, complete them and demo them to your customer, and determine your project's velocity after 2-3 iterations of doing the above.
--Robert
http://www.dovico.com/
You won't find anything better for reporting on projects, ETCs, and Actual vs Estimate times.
I lead a team that has development and maintenance responsiblities. For scheduling new tasks, I use each team member's average non-maintenance time. If someone usually spends half their time handling emergencies, then they count as 1/2 a person. Then I usually add 50% to the total time because things always go worse than I think they will.
And your answer has nothing to do with the question.
But Herr Heisenberg, how does the electron know when I'm looking?
Seriously a customer(user) is given your deadline, then you constantly move it back to adjust for other work. That is what gives IT a bad reputation.
What you are talking about is a task perfectly suited for Microsoft Project. Easy to set up, easy to maintain. Runs under WINE if you don't have a Win box available.