Archive for the ‘Waterfall’ Category

Agile Delivery still Waterfall methodology for OOM (ADW-OOM)

Sunday, April 13th, 2008

Home Page

Thank you very much for your response on my first blog. Here is my next blog -

I am sure you might be thinking how OOM and Agile methodology is related. Let me clarify this. OOM is not Object Oriented technology but is Onsite-Offshore Model (OOM). In today’s competitive world, where cost cutting is of utmost importance, many large scale & Fortune 500 companies have adopted OOM model for product/application/enhancement development considering all the benefits it brings on the table.

Agile in short means that implement SDLC life cycle (requirements to QA testing) in multiple iterations instead of traditional waterfall method (single iteration). Believe me, experience of being a project manager for an onsite (no virtual team) team is different from being a project manager for onsite-offshore model. In onsite-offshore model, you are not only answerable to the client but also responsible for your offshore code which is developed by your virtual team where you don’t have any direct control and communication & the trust are the two key important factors which develop your confidence. I am in this role for quite a few years and have faced many on the fly challenges. This is not the white paper to talk about challenges but I would like to present one methodology which is a mixture of Agile & waterfall. It uses an Agile methodology for deliverables but still from client perspective it’s a waterfall method as onsite Project Manager delivers one delivery to client. Let me explain how this works with an example of enhancement project –

Enhancements are a part of normal application life cycle. After production deployment, as industry grows, business requirements change & business provides funds to support enhancements. As per PMI definition, enhancement is a project as it has a start date and definite end date. So we can apply all the Project Management methodologies for enhancement.

Basic condition to use this methodology in any project is that business requirements should be very clear and signed-off by business sponsor. Any change after this phase should be handled as CR (change request).

Let’s say client has asked for 22 enhancements in the release and as per project plan, development team is supposed to develop and unit test the code in 6 weeks.

What is the Traditional approach?
A Project manager with the help of offshore team develops the estimation & submits it to client for approval. Once approved by client IT management, project manager starts developing WBS (with the help of team members) and sends the project plan to offshore to execute. Great!

Note: Assuming that team with required skill-set is already in place & has undergone some training to get domain knowledge, if required.

One of the advantage of onsite-offshore model is that client facing manager can pass the execution responsibility to a capable offshore manager and s/he can participate in other business activities at onsite. This makes sense also, as offshore managers are really at par with onsite managers. But here, onsite manager loses the control on the delivery. Offshore delivers the code to onsite team exactly on the day it was promised to the client and the issue starts. Many times client raise issues like code quality, missed business requirements, defects etc. At this time, onsite project manager does not have any opportunity to react and gets chopped by the client. This can be avoided using ADW. Let’s see how?

How ADW methodology helps?
ADW methodology is simply an extension of PMBOK simple principal. All WBS should not be more than 8 hrs likewise any offshore delivery should not be more than “few” enhancements. “Few” is based on many factors like scope, complexity & schedule.

In ADW methodology, project manager defines multiple delivery milestones in the project plan and expects offshore team to deliver the same. With reference to above example, project manager can expect 3 deliveries (2 intermediate + 1 final) consisting of 8, 7 & 7 defects considering every iteration of 2 weeks. Breaking up the deliverables this way, not only helps onsite Project Manager to gain full control but also offshore manager & team to focus on minimized scope for that duration. Onsite manager with the help of onsite team (1 or 2 resources), can deploy the code, review the code; match the deliveries with the requirements traceability matrix; send the identified defects to offshore for fixing etc. This gives an opportunity for onsite Project manager to react and take necessary corrective actions. It helps to build the client relation & to gain client confidence as onsite manager delivers a high quality code to client.

As an example, see the delivery chart in traditional & ADW methodology.

Duration Traditional Approach ADW methodology
Week 1
Week 2 1st Code Delivery (Iteration1)
Week 3
Week 4 2nd Code Delivery + Defect fixes, if any (Iteration 2)
Week 5
Week 6 Final Code delivery 3rd & Final code delivery + Defect fixes, if any

As you can observe, from client perspective , it’s still one delivery but internally project manager uses iteration approaches.

Advantages –
1. Build the confidence & gain client confidence delivering high quality code.
2. Team is much focused and highly motivated.
3. Onsite team can identify the issues upfront & as a team (onshore-offshore) work together to achieve common goal to deliver high quality code.
4. Project Manager can act proactively instead of reacting to an action.
5. Iterative approach is only applied for development phase.

Disadvantages –
1. Offshore team has to spend some extra amount of time for code deployment and delivery. Considering the positive outcome, this can be overcome by including deployment effort in the estimation phase.
2. In worst case scenario, if in the first iteration, team finds many defects then team focus gets diverted to fix the defects.

Please let me know your views.