Presentation by anjali mogre
Transcript of Presentation by anjali mogre
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
1
Mantra for Entrepreneurial Project Management
Anjali Mogre
Group Manager
Atos
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
Title of Paper
Effective CMMi Implementation in Agile environment with fresh team
Authors
Anjali Mogre, AtoS India, Sujata Salunkhe, AtoS India
[email protected], [email protected]
Theme:
Mantra for Entrepreneurial Project Management
Keyword:
Customized Agile Methodology, CMMi for Agile, Agile with Fresh team
Abstract
By design, Agile manifesto advocates flexibility, high customer involvement and mature team, while CMMi
helps to lay down a structured process centric approach, which is flexible in the initiation phase, however
becomes specific in the implementation phase. In CMMi, the customer involvement could be minimal and
the process addresses the team maturity and skill issues to ensure the project performance is not
impacted, while Agile expects high customer involvement with matured team.
The spirit in which both the systems are evolved are same; both are designed to deliver software that
meets customer requirements leading to customer delight; however it is perceived that both the
methodologies cannot go hand in hand. CMMi model and Agile Manifesto; both has examples of
successes as well as failures. Some failures could be due to misinterpretation and misuse of the
approach. The objective of this paper is to demonstrate a practical method that uses the best of both
models to address the challenges of the dynamics of software developments; this approach is used in a
software development for a finance vertical having a large team size.
The paper elaborates the method used along with templates, guidelines published with supporting data,
trends and analysis. Agile approach helped us to improve the efficiency, while CMMi principles helped us
to institutionalize the process, scale up deployment and make the success repeatable and predictable.
The quick wins are; Happy customer, less pressure on the team, Improved Quality, Maintainable code
and Repeat business.
2
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
Contents
Title of Paper............................................................................................................................................... 1
Authors................................................................................................................................................... 1
Theme:.................................................................................................................................................... 1
Keyword:................................................................................................................................................ 1
Abstract....................................................................................................................................................... 1
Introduction.................................................................................................................................................. 3
Need of blending Agile and CMMi...............................................................................................................3
About the project.......................................................................................................................................... 3
Challenges in Agile Implementation.............................................................................................................4
Customization in the Agile Methodology to blend Agile & CMMI.................................................................5
Customized Estimation process:.................................................................................................................5
Agile with distributed team:.......................................................................................................................... 6
The results: Improvements in KPI’s after Agile implementation...................................................................8
Team Feedback........................................................................................................................................... 9
Conclusion................................................................................................................................................. 11
References................................................................................................................................................ 12
3
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
Introduction
The waterfall method of software development is ingrained in our minds;therefore it is not easy to adopt a
different methodology. Software development team feel that adopting different methodology is a risk, as
the new methodology may hamper the confidence of meeting the project KPI’s.
In Atos, the management has decided to take the risk of adopting Agile methodology in place of
traditional waterfall methodology, considering the advantages thatAgile methodology offers. Although on
paper there are numerous advantages of using the Agile methodology, implementing Agile
methodology;and really feel the difference and reap benefits of the Agile methodology is not easy,
especially with large projects and fresh teams.
Every software methodology has its own benefits and pitfalls. The optimized approach is to customize the
methodology that best suits the project environment.In Atos, we have customized the Agile methodology
for a large project in finance vertical. The challenge is to use Agile methodology with geographically
distributed team with significant portion of fresh debuts.
Need of blending Agile and CMMi
An organization with CMMi certification MUST sustain the CMMi processes to reap the benefits of CMMi
implementation. But in certain scenario’s the implementation of Agile methodology becomes essential.
Sometimes client mandates to use Agile methodology or for some new technologies like mobile
computing – Agile approach is best approach. Product development, especially when there is a High Risk
of evolving requirements Agile methodology is more suitable
Once it is agreed that there is a need to implement Agile and sustain CMMi, the organization need to
blend both the approaches so that the project can derive optimum benefits of bot the methodologies
About the project
The project where we have started using Agile is a Payment &e-Commerce solution based on SOA
architecture, which aims to provide 11 different services (functional & technical) with user friendly
graphical user interface. The project is to build a customized online shopping portal and its administration.
The technology used is JAVA with Business Logic (BL). The GUI projects are comparatively more
complex that the non GUI projects as there are multiple options to present the same information.
Objectives of Adopting Agile methodology
To focus on delivering the highest business value in the shortest time
To rapidly and repeatedly inspect actual working software (typically every three weeks)
4
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
To take a Go, No-Go decision at the end of each sprint
Before Implementation Agile
Typical challenges that we faced in the project before implementation of Agile are
Quality: Unanticipated Issues
Delays
Integration issues
Customer anxiety
In waterfall model, we had faced situation where unanticipated, unforeseen issues occurred in systems
testing and / or user acceptance phase resulting in a lot of rework. These issues at the end of the project
have burnt a lot of weekend and increased time pressure in the team. For example, when we are
expected to extend certain services, in the initial phase the service seems extendable, however as we are
actually trying to extend the service, we have realized that certain variable, links that are required are not
present, making extension of service unfeasible.
With the Agile implementation it is possible to anticipate these issues beforehand and make appropriate
design change to avoid further catastrophes.
Before Agile Implementation
The project is in the finance vertical and is expected to interface with various other applications. In
waterfall model, we have faced huge costs at the time of integration. The customer has given different
applications to different teams, and the modules get developed in silos resulting in integration issues,
which could result in a lot of additional work and frustration in team and obviously customer
dissatisfaction.
In waterfall model, although the requirements are written, reviewed and approved by the customer. There
is no intermediate method to validate whether the requirements are correctly understood by the
developer. There were some instances where the developer has misinterpreted the requirements, which
is not necessarily the developers fault. Frequent deliveries in Agile ensure that the requirements are
correctly understood by the development team.
Challenges in Agile Implementation
Implementation of Agile methodology threw the following challenges:
Sustain CMMi and simultaneously implement Agile
Junior / Fresh Team
Distributed Team
5
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
Attrition
Quality and Integration Issues
Standardization
Estimation Process
Meet and exceed customer expectations
Customization in the Agile Methodology to blend Agile & CMMI
Agile methodology is based on two main assumptions that team is co-located and mature enough to
execute the project in Agile mode.
In India, projects are executed in onsite – offshore model, where a team geographically together is a
remote possibility. There is also a pressure to provide cost effective solution, which puts constraints on
the experience of the team members. We are forced to include junior members as well as debuts in the
team.
We have customized the following in Agile methodology, and adopted Atos specific approach for Agile
implementation.
Developed an estimation model
Appointed 2 Scrum masters for one sprint
Special attention of Documentation and test plan preparation
Automated testing
Mandatory pair programming on one debut and one experience programmer
Customized Estimation process:
Estimation model for Agile projects has been developed based upon the historical data for the projects
where Agile methodology is used for more than 6 months and have delivered at least 300 MD of work
using Agile methodology.
For each of the user stories in scope of a Sprint, project team needs to be determining the complexity in
terms of story points. The story point is a relative measure that can be used for Agile estimation of size.
The team decides the size of each story as per Fibonacci series;by assigning one of the following
numbers to each story: 1,2,3,5,8 or 13. The numbers are in Fibonacci sequence.
The efforts are estimated as 3,6,9,12,27,36 Hours based on historical data.
Once the team has decided the size of the story in step 1 above, the effort required to complete all the
backlog items in the scope of a Sprint can be determined using the mapping below
6
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
Story
Point(s)
Efforts
(Hrs)
1 3
2 6
3 9
5 12
8 27
13 36
The efforts in the table above include the efforts for Coding, Unit Testing and Peer Review
The PM efforts [standard: 10% of the efforts derived from step 2. Can be configured as per project needs]
are added to the estimation above
Agile with distributed team:
Agile manifesto suggest the co-located team of the project. In the Indian context, the teams cannot be
co-located. As per Agile methodology we have tried with 1 scrum master, howeverstarted facing
communication issues because of the split team. To handle communication issues, wehave increased the
sprint duration from 2 weeks to 3 weeks, but still problem could not be resolved.We conducted a
brainstorming session within the team and decided to divide the team into two parts Part A and Part B.
Part A sits in one city and Part B sits in other city.
Principally, there should be one scrum master for each sprint. To address the issue of distributed team,
we have divided team into two parts and appointed two scrum masters for each sprint. User stories are be
logically divided into 2 parts. One part is handled by Part A and other is handled by Part B. Two scrum
mastershelpedto bridge the communication gap. Integration of Part A and Part B functionalities isdone
before the demo on the same server. Before the each delivery, the two part of the same sprint are
integrated on the same server ensuring that the customer gets the same experience as he/she will get
with co-located teams.
7
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
Implementation of tools Jira / Grasshopper / Sonar Dashboards have largely helped us to address the
challenges of fresh and distributed teams.
Documentation
Although Agile methodology do not expect us to maintain the detailed documentation, we so invest effort in
maintaining the scope details, test plans and definition on ‘done’. Detailed documentation helps us to address the
issue of Distributed teams, debuts in the team, and attrition. Retrospective documentation containing Lessons
learnt are discussed with customer as well as team and is preserved. Appropriate actions are taken based on lesson
learnt in the consecutive sprint.
Automated testing
Automated testing approach has been adopted to ensure the product is thoroughly tested.
Pair programming
As mentioned earlier, mandatory pair programming with one debut and one experienced resource has been
implemented. Although it looks easy to say that implement mandatory pair programming, the implementation
itself has its own challenges, which we had overcome with disciplined approach. Pair programming has helped us
to groom debuts faster and to make them productivity within a month.
Gains made in ecommerce project:
Apart from the benefits that Agile offers, we also felt the following additional benefits.
Self-organizing team
Each team member carries a lot of responsibility. A new team member can be groomed very quickly
Completely developed and tested features in short iterations
Simplicity of the process
Improved communication and complete transparency between development team and customer
A high level of visibility to the client
After Agile Implementation
Implementation of Agile methodology has helped us to address most of the challenges we have faced in
the traditional waterfall methodology.
Frequent deliveries in the Agile methodology have helped us ensure that customer and developers are
moving in the same direction. The customer is very well aware of the product that is getting developed.
8
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
We had scheduled 1 demonstration to customer every 3 weeks to demonstrate the progress of the
project. These frequent deliveries ensured that
The developer has correctly understood the requirement
Issues (if any) for integrating the product with other applications surfaced well in advance to take
appropriate action
The team could focus on packaging the working version by continuous integration of the different
elements resulting in almost zero integration issues.
Because of small work packages, we could adopt the approach« fail quickly but re-orient faster «,
which resulted in early detection and correction of defects resulting faster and smoother project
delivery.
The development team could focus on value-add rather than on the technical improvement
The team could adopt a proactive approach rather than working in the reactive mode, which was
very well appreciated by the customer.
The results: Improvements in KPI’s after Agile implementation
The conscious effort on customization of Agile methodology has reflected in the project KPI’s. We could
see improvement in almost all KPI’s. A few examples are given below.
The Quality of deliverables has significantly improved. As described in the following table the number of
defects and the % rework has significantly reduced.
Efforts
(Person
Days)
No. Of
Defects
Rework Effort
(Person Days) Defect Density
%
Rework
Before Agile
Implementation 1200 145 216 0.121 18%
After Agile
Implementation 250 10 8 0.040 3%
Productivity Improvement
The productivity of the team has demonstrated improvement. The productivityin terms of hours per simple
screens has improved to 13.26 hours / screen as compared to 14.11 hours / screen before Agile
9
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
implementation. As the Agileimplementation gets stabilized, we anticipate significant improvement in
productivity. Be
fore
Agi
le Im
plem
et...
After
Agi
le Im
plem
eta.
..
1010.5
1111.5
1212.5
1313.5
1414.5 14.11
13.26 Productivity - Hours / Simple Screen
Because of reduced rework, the projects schedule variance has reduced, improving the customer
satisfaction as well as team motivation.
With the Agile implementation, the teams get self organized, each team member carries a lot of
responsibility and a new team member can be groomed quickly. The process has become simple.
Improved communication and transparency between development team and customer have taken the
customer as well as team on a higher level of maturity.
Team Feedback
To understand what are the benefits that the team has realized while implementation of agile, a survey
has been conducted, where the team has been asked to rate the feedback on 5 point scale.
▶ Positive Feedback
▶ Improvement in the Communication
▶ Encouraging collaborative approach
▶ Provides early warning of the problems
▶ Customer is happy
▶ Productivity has improved
10
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
▶ Negative Feedback
▶ Increased in time pressure frequent deliveries
▶ Less time spent in design could result in rework.
▶ Rework has increased - as customer is not very clear about the ideas
▶ Work can’t be managed with less experienced team
Results of the Survey
11
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
Conclusion
In IT industry, Agile implementation has resulted in mixed result. The cautious customized Agile
methodology implementation approach adopted in Atos; adhering to CMMi model, provides a tailor made
process that suits the project needs.
Agile and CMMi should co-exist. The project will gain a lot of value over long term when Agile and CMMI
synergies.
The customized approach has not only resulted in improved project KPI’s and customer satisfaction but
also helped the team to address challenge of using distributed team with debuts.
The feedback from the team confirms that the customized Agile methodology helped the team to perform
better even though the team has significant number of debuts and is geographically distributed
The blended approach of Implementation of Agile and CMMi is now published as a Global Process in
Atos. Any team following the Global Agile process will automatically gets benefits of both; CMMi & Agile
approaches.
12
Effective CMMI Implementation in Agile Environment with Fresh Team – Atos, India
References
Liz Hines ([email protected]), Program Director, IBM
Scott Baldwin ([email protected]), ScrumMaster and Software Engineer, IBM
Mark Giles ([email protected]), Development Manager, IBM
Juan Peralta ([email protected]), Development Project Manager, IBM
Management challenges to implementing Agile process in traditional development organization
Barry Boehm: University of Southern California
RuchardTurner : Systems and software consortium
Biography of authors
Anjali Mogre:Anjali is currently heading the Operational Excellence team Atos India. She is primarily responsible for data analysis, identification of area for process improvement and Productivity Measurement. Anjali has Master degree in Statistics along with CSQA, PMI, Six Sigma certifications. She has experience in project delivery, quality processes and design of e-learning systems. She is especially interested in carrying out process improvement experiments and implementation on wider scale. Prior to Atos, Anjali has worked at Tata Institute of Fundamental research, Tata Consultancy Services, Silverline, Aptech and Syntel.
Sujata SalunkheSujata is currently leading Atos Worldline (AWL) projects of Atos India. She is working as a Sr. Manager for AWL since past 4 years.Sujata has done her engineering along with BCA degree. She is Scrum certified.She has proactively contributed to key global/organization level initiatives (CMMi and PCMM) and acted as an ATM member for CMMi level 3 ‘SCAMPI A’ assessment. She has total 22 years experience in the areas of Service Delivery Management, Project Management, Project & Test Plan Review, Client Relationship Management, Application Support, and Hardware Engineer etc.Sujata has worked earlier in Syntel India ltd and TechMahindra
13