Problem.
Agile is cool.
But Really Big Customers (RBCs) often want some mixed solution. They want to see clear picture of pricing model and simple (transparent) tools for development process tracking. As a result RBC tends to receive Gantt with milestones before project kick off.
From the other hand RBCs are big and inertial systems. So it's hard to receive comprehensive Requirements documentation for the project.
Here is the core problem. RBC enters to the project by Waterfall rules. But Requirements are raw and Development Team will fight with this by applying Agile rules.
Solution
Here is my receipt to resolve this problem. Probably there are smarter and simpler solutions. Any feedback is welcome.
I'll divide this solution in 2 parts:
- hints for creation of Estimation Gantt with milestones
- hints for interfacing Agile process with this Gantt during development
Estimation Gantt (EG) with milestones
a. Whiteboard. Modules list.
First step is drawing modules and their interactions on simple whiteboard. It's good to have some opponent for discussion here. Team Lead of future project is a good candicate for this role. This list will become the skeleton of your EG. Module names will be 1st level Task Groups.
b. Whiteboard. Development Items inside each Module.
The main rule is here to discuss as much details as possible. Customers like detalization in EG. In this way estimation tends to be more transparent. And more clean price of the project.
What kind of items we're talking about?
- UI pages
- Entities for Model
- Web Services for B2B
- Algorithms for complex Math or Stat calculations
- Architecture elements like Scheduler of tasks
- etc.
Those items will be Tasks inside Modules - Task Groups
Also don't forget to add QA tasks.
When estimating each Task you have to rely on historical data of real performance of your team in past on similar tasks. If task has no clear definition or needs investigation then you have to add some additional time to negotiate risk. It's good to have some opponent here too. You can discuss time estimation with someone like Team Lead or Senior Developer. And you can use Ganttzilla for collaboration around this.
c. Inception Phase.
We have to add Requirements refinement here. For example it can be 2 relatively long tasks:
- Designing wireframes
- Refining use cases
d. Deployment Phase.
This is some buffer space before going live. Main attention has to be paid for general Functional Testing, Load and Security testing of whole integrated product. Also it's place for optimization and scaling.
And you have got the Gantt at this point!
d. Milestones.
You have to find points of your Plan where clear deliverables to the customer can be placed. It can be Use Cases documentation, Finished Module with working UI etc.
Development
a. Real development timing behind set of milestones.
It's clear that EG can't be directly applied as development plan. Your work will be Agile. You will have a lot of business questions even after Inception Phase.
You have to create small plans for each iteration. But these plans have to include milestones from EG.
I've found 2 solutions to resolve this problem.
- If development went more quickly then planned by EG then you have to shift some tasks from future Task Groups to current Task Group.
- If development took longer then expected due to incorrect estimate then you have to add more developers. See next topic.
b. Back-up developers.
When you select team for this project you have to add one or two developers as hidden team. This is your resource for fighting against lagging from EG milestones.
Let's discuss those ideas.
Ganttzilla with us)
0 Comments