Without proper management, any project is likely to become infinite, get stretched for months and even years, run out of budget without getting done.
I've taken part in projects with zero project management.
It was always like an endless rush when you take some tasks, then suddenly get overtaken by another one and forget to do a couple more. Always without any feel of progress because finished tasks are not tracked and new tasks appear faster than anything is done. Huge waterfall that one day you jump from.
I've taken part in projects with a project manager, infected with Agile methodologies.
Ill with scrum, kanban and a mix of both. While 99% of time workflow looked like a cargo cult ritual: playing scrum poker, meaningfully staring at burndown chart, etc.
A week before deadline the whole project management process was always blown away by developers' burning asses.
I've taken part in projects where every participant managed his own work.
It worked amazingly when everyone managed tasks, related to his part of work and initiated "sync up" with other team members to push the project forward.
In that case, project manager could have just a helicopter view of the process and join the game only in cases of emergency, when some tasks were starting to get out of due dates.
Unfortunately, it's still common to blindly pull "methodologies" on teams and treat them as silver bullets against fucked up deadlines.
Once I've seen how two Agile Coaches were arguing what was "true" Kanban and Scrum and what was not. The correct outcome of their debates should have been: "it just doesn't matter".
The existence of Agile Coaches is already enough for me to believe that these methodologies are overestimated.
Or is it coaches who are really overestimated?
Anyway, it's not the problem of methodologies themselves. It's more about how we treat and apply them. Paying too much attention to non-essential things like naming instead of really essential.
Pareto's project management principle
I've come up with the following idea of rational project management.
There are basic things that can be done for the management of a project and that will give the most impact comparing to zero management.
Most of the further tunings and improvements are team and project specific that are likely to give much less impact. Similar to Pareto's 20/80.
Rather obvious, but all tasks should be stored somewhere. Otherwise some of them are guaranteed to be forgotten and lost.
Tasks must be estimated.
Some estimations (for routine tasks) will be more or less accurate, some will be not. But even the least accurate estimation is better than no estimation.
Estimation of tasks allows to understand what can be done during the considered period of time. Plan it!
Apply all your imagination to improve the process as you are the master of methodology!
Leave more buffer space for estimation errors if needed. If planning period seems too long, cut it and vice versa. Decide what to do with outstanding tasks you failed to do in time.
- Which Japanese term you pick for your work flow
- Was your workflow applied on any of Japanese factories, or not
I never start doing new tasks immediately and put them in backlog first. So any task's life-cycle is always: backlog -> scheduled -> in-progress/cancelled -> done
If I estimate the task to be more than 8 hours, I decompose it into smaller tasks.
If the task is super huge (a kind of tasks you don't know how to approach) I create a "plan milestones" task first.
Yeah, I plan to plan tasks sometimes🤦♂️
Furthermore, I should say that my estimations are often more accurate than I expect them to be.
Week seems to be an optimal planning timespan for me.
I usually plan for the whole week on Sunday, giving my week plan some extra time buffer for unexpected circumstances and estimation errors. And I try not to make any changes to what is planned.
Outstanding tasks are re-scheduled for the next week if they are still relevant.
I track how many tasks were done in time before the due date. A also check how "loaded" my timetable is.
Occasionally, I adjust the load by tuning the overall amount of scheduled tasks hours for the week.
It can be scaled rather straightforwardly if every team member keeps up to the flow described above.
Make estimations and arrange due dates. Sync up with other team members, planning tasks in a way to avoid blocking each other. That's it. Easy breezy.