Companies can benefit from introducing flexibility into their software development methodologies, including incorporation of the Waterfall and Scrum models in different software modules of the same project and utilizing geographically distributed teams.
Unleash Your Potential - Namagunga Girls Coding Club
Flexibility in Software Development Methodologies: Needs and Benefits
1. • Cognizant 20-20 Insights
Flexibility in Software Development
Methodologies: Needs and Benefits
Executive Summary different software modules of the same project,
while utilizing geographically distributed teams.
As a leading IT services organization, we have
This allowed us to harness the benefits of both
had several opportunities to design and develop
models while mitigating the risks associated with
software for Fortune 500 companies at the
either of them.
client site. Almost all the clients we worked with
have used formal and mature procedures and
Waterfall Model Overview
tools for the development and deployment of
software. These processes are normally oriented The Waterfall model is a highly structured,
toward either sequential software development sequential software development process that
processes, such as the Waterfall model, or Agile progresses through various software design and
software development processes, such as the development phases in linear order. An ordered
Scrum model. list of the phases in the Waterfall process includes
the following:
With rapid advances in communication and infor-
mation technology, global development teams 1. Requirements specification
have become the norm, allowing organizations 2. Design
to deliver high-quality software and solutions at
3. Construction (implementation or coding)
low cost. Leading software services companies
have increasingly used a global software delivery 4. Integration
model to provide custom information technology, 5. Testing and debugging (validation)
consulting and business process outsourcing
6. Installation
services to their various customers. For most
software services companies, not having a global 7. Maintenance
delivery strategy would put them at a serious
competitive disadvantage. The model recommends total and correct
completion and documentation of each phase
This whitepaper conveys how companies can before moving on to the next. As such, it
benefit from introducing flexibility into their emphasizes that requirements are frozen and the
software development methodologies. It provides design phase is complete before proceeding to
an overview of our experience in executing a the coding phase. This saves time and effort in
mid-size software development project for a large the construction, integration and testing phases
multinational corporation using a hybridized of the software development process and reduces
development framework. This framework incor- the risk of schedule slippage and cost overruns.
porated the Waterfall and Scrum models for
cognizant 20-20 insights | november 2011
2. Progress on the project can be easily monitored This set of requirements in the backlog is frozen
by interested stakeholders because each phase for the duration of the sprint. During each sprint,
has a defined start and end point. Significant the Scrum team works on creating a potentially
customer involvement is required during the deliverable product increment. At the end of the
requirements specification, design and testing sprint, the product owner and the customers
phases, while remaining phases do not require review the deliverable and provide feedback on
significant input from the customer. One major the build. This feedback could take the form of
drawback associated with the Waterfall model is bugs, changes in functionality, etc., which could
that it can be too late in the development cycle significantly alter the product backlog and the
to discover business critical defects, as business work done in the next sprint.
testing only begins after the development phase.
Although the Scrum methodology often requires
Scrum Development Process Overview significant customer involvement throughout
Scrum has proved to be a highly successful the software development process, it can sig-
framework for project management that takes nificantly increase productivity and reduce the
an adaptive, iterative and incremental approach time required to release quality software to the
toward software and product development. customer — when it is used to solve the right
Scrum is ideally suited for projects with changing problems, by capable teams and with supportive
requirements. In order to operate in such an management.
environment, Scrum relies on a self-organizing,
Project Description
self-managing, cross-functional Scrum team that
is supported by a Scrum Master and a product Respirator Medical Analysis Software (RMAS)
owner. The product owner represents the voice is an application that generates and maintains
of the users and customers and is responsible for respirator evaluations for 40,000 workers around
creating a prioritized wish list of product features, the world in a Fortune 100 product manufacturing
called a product backlog. conglomerate. It collects exhaustive health-relat-
ed information from workers assigned to manu-
Scrum projects advance via a series of sprints, facturing facilities and stores this information in a
which are typically two to four weeks long. At database. Based on responses from the workers,
the start of the sprint, team members commit the application uses a complex algorithm to
to completing a portion of the product backlog. approve the right respirator for the workers.
Scrum Process Overview
Scrum Master
Input from End-Users, Product Daily Scrum
Customers, Team and Backlog
Other Stakeholders Meeting and
Refinement Artifacts Update
Sprint
1-4 Weeks
Product Owner Team
1
Review
2 Team Selects
3 How Much to
ks
Commit to do Tas
4
5
res by Sprint’s End
6
atu es Potentially
7
8
Feeatur
F
No Changes Shippable Product
9
Sprint Planning Sprint in Duration or Goal Increment
10 Meeting Backlog
11 (Parts 1 and 2)
12
13
Product
Backlog Retrospective
Figure 1
cognizant 20-20 insights 2
3. Functionality contained in the algorithm is based tion-level user interface, thus allowing error
on government regulations and helps the client detection and bug fixing before completing
create a safe working environment in its manu- the development of the presentation layer.
facturing plants. It allows the client to manage This flexibility somewhat mitigated the risk of
risks associated with corporate liability, while delivering incomplete software at the end of
embracing its role as a responsible corporate development.
citizen.
• Requirements pertaining to the presenta-
tion layer were going to be developed as the
The project has been developed as a three-tiered
project progressed.
Web application on the Java Enterprise Edition
platform, consisting of presentation, business and • Clients aimed to lessen the burden of data
data layers. The application supports five different collection on workers and needed to see
actors and contains 22 screens, with functional- working prototypes of several user interface
ity that is based on requirements contained in 26 options before deciding on the most user-
use cases. friendly and least time-consuming option.
The algorithm to evaluate the correct respirator Implementation of the Business
for a worker formed the core of the business and Data Layers
functionality and accounted for nine of the 26 test
Besides the stability of client requirements, the
cases. Since the algorithm was based on regula-
success of a project or module executed by a
tions that had not changed for a number of years,
global team using the Waterfall model depends
requirements for the business tier were very
on the offshore development team’s understand-
well defined and fairly stable when the project
ing of the requirements. To
kicked off.
ensure all stakeholders were
on the same page, a Cognizant
We decided
The remaining 17 test cases dealt mostly with the
presentation layer and covered complex func- associate was assigned to the business
tionalities involving the actors and user interface work on-site at the client functionality would
location as a business and IT
screens. The requirements for these 17 test cases
analyst.
be best executed
were initially undefined by the client and were to
be elaborated on as the project progressed.
under the Waterfall
The primary responsibility of
the analyst was to work closely
model, while the
Project Implementation
with client business users to Scrum model
As project requirements and use cases were develop and refine use cases was best for the
analyzed, we decided that software develop- for the business module. This
ment of the business functionality would be best activity was scheduled to be
presentation layer.
executed under a traditional Waterfall model, completed in three weeks. The
while using the Scrum model for the presentation use cases were loaded into Rational RequisitePro
layer would allow us to rapidly develop against to ease management and versioning. The relation-
emerging user interface requirements. A hybrid ships between the use cases and the high-level
Waterfall and Scrum approach seemed to be requirements were maintained through a require-
a feasible and sensible option for a number of ments traceability matrix (RTM).
reasons:
Once the high-level requirements were framed
• Requirements of the business and data func- and the use cases were written, the use cases
tionality were stable and clearly defined. were sent to the development team for analysis,
• Clients saw greater business benefits in clarification and validation. Although it was
validating and testing the algorithm in its estimated to be a weeklong activity, clarifications
entirety, as opposed to validating incremental were sought until design and estimates were
iterations of business functionality. complete.
• Software design and development of the As a next step, the effort to develop the core
algorithm needed to be precisely documented business functionality was analyzed and the
and delivered to the client. estimates were created using the Use Case Point
• It was possible to deliver the business func- Estimation methodology. Both the development
tionality to the client independent of a produc- team and the IT analyst were involved at this
cognizant 20-20 insights 3
4. stage. The estimation formulation and review a portion of its non-work hours to brainstorming
were completed in two weeks. The estimates were and consulting with each other as needed. We
reviewed with clients, and client approval was also provided team members with virtual private
obtained. Once the estimates were approved, the network (VPN) and remote desktop access so they
requirements were frozen. could connect to their work machines without
needing to be in the office. Phone and videocon-
Following approvals, the analyst then worked with ferencing facilities were provided to enable inter-
the offshore team lead and senior developers to active dialogue and the perception of nonverbal
develop the software design. The design phase communication signals.
included both the database design, as well as
the architecture design. The design specifica- For the purposes of UI development, the onsite
tions and design diagrams were documented in a analyst assumed the role of product owner. Given
Software Architecture Document (SAD) template his proximity to client management and his
and were reviewed by the IT analyst. It was then involvement in use case and requirements devel-
reviewed by a client architect, and the design was opment, this was a logical choice. The offshore
approved. The design process team was made up of the Scrum Master and the
For aScrum project was completed in three weeks. actual development team.
to succeed, it is
Based on the final approved The requirements that were generated in the
crucial to foster design, the development team backlog were developed across different sprints.
a collaborative, started to develop the business Each sprint had a timeline of one month, with two
module. The application devel- sprints executed by two different Scrum teams in
self-organizing
opment was completed in 2.5 parallel. The sprints executed in parallel consisted
and self-managing months, including unit testing of requirements that were independent modules
environment within of different pieces of the and hence did not require integration at the end
functionality and peer testing of the month. The UI module was completed in
the team.
within the team. a two-month timeframe, utilizing four different
sprints.
The business module was then delivered for
quality assurance to the testing team. Testing, Each sprint was executed in the following
including bug fixing, was completed in two weeks, manner:
and the final build was delivered to the client for
user acceptance testing and business scenario
• To ensure that project business requirements
were clearly communicated and understood by
testing. Any changes to the functionality or
the offshore team, the product owner and the
requirements were logged and implemented,
offshore team worked together on converting
using the complete Waterfall model template in a
the business requirements of the prioritized
new, smaller iteration.
product backlog into IT requirements.
Implementation of Scrum • The first four days after the sprint planning
meeting within every month-long sprint was
For a Scrum project to succeed, it is crucial to
devoted to this process, enabling the offshore
foster a collaborative, self-organizing and self-
team and the onsite analyst to be on the same
managing environment within the team. Develop-
page.
ment of trust between team members is a primary
ingredient for the creation of such an environ- • In addition to brainstorming sessions, daily
ment. It is, therefore, essential for teammates 20-minute standup video/teleconference calls
to communicate as openly and regularly as were scheduled to discuss what work was
required. completed, what remained and to discuss any
potential problems, as well as provide clarifica-
In a geographically distributed team, it is often tions on requirements and requested features.
necessary to spend time collaborating with team An important tool was the creation of meeting
members outside of core work hours in order minutes.
to bridge the time difference between onsite
and offshore locations. We, therefore, set team
• A shared Excel spreadsheet was used to
exchange queries and clarifications on
member expectations accordingly before the start requirements in the backlog between the
of the project and were fortunate to have a highly Scrum team and Scrum product owner. While
skilled and enthusiastic team willing to dedicate
cognizant 20-20 insights 4
5. A Hybrid Development Framework
The implementation was done as a The implementation was done in sprints of two per
single flow for four months. month with a feedback phase and at the end of each sprint.
Sprint Sprint Review and Feedback Sprint
Waterfall Sprint
Implementation
Sprint Review and Feedback
Sprint Sprint
Figure 2
it can be argued that Agile development is base and the client project manager. Thus, the
less about creating documentation and more hybridized software development approach was a
about development of working software, it is novel and highly effective solution, used to guide
important in a global context to document and a challenging project to an extremely favorable
validate the understanding of the entire team. outcome.
During development, pair programming was
used to effectively share responsibilities in the Having a focused and expert IT team that was
project. Instead of assigning delivery and unit comfortable with different software development
testing of an entire requirement to one team models — as well as taking an open and flexible
member, the responsibility is shared by two approach toward the software development
team members, with development and unit process — were the key ingredients to speeding
testing occurring in tandem. up development time and minimizing risks. At the
same time, the global software development team
• The last week of each sprint was devoted to allowed us to keep costs low and helped our client
peer testing and bug fixing. meet budget targets.
• A sprint review meeting was held after each
sprint to gather feedback from the product While a hybrid software development process
owner and the clients. Any changes suggested may not be a silver bullet for all software devel-
during this meeting were added to the product opment problems, it could be detrimental for
backlog and prioritized by the product owner large organizations to be biased toward a single
for the next sprint. software development methodology to execute
all projects. The choice between Agile, Waterfall
Conclusion or any other software development methodology
We successfully developed and tested the presen- should be based on which model best reduces
tation and business modules within six months, risk, increases productivity and improves quality
as per client requirements, and delivered an while achieving the goals of the project.
integrated application for user acceptance testing.
We believe that the freedom afforded to software
Deployment was scheduled after completion of
architects, analysts or developers to tailor the
UAT and a few final bug fixes. The client considered
software development process according to
the deployment a great success, and we heard
business needs and project characteristics is a
a lot of positive feedback from the RMAS user
crucial factor in successful project completion.
cognizant 20-20 insights 5