• Cognizant 20-20 InsightsFlexibility in Software DevelopmentMethodologies: Needs and Benefits   Executive Summary        ...
Progress on the project can be easily monitored                       This set of requirements in the backlog is frozenby ...
Functionality contained in the algorithm is based          tion-level user interface, thus allowing erroron government reg...
stage. The estimation formulation and review          a portion of its non-work hours to brainstorming           were comp...
A Hybrid Development Framework           The implementation was done as a                The implementation was done in sp...
Upcoming SlideShare
Loading in...5

Flexibility in Software Development Methodologies: Needs and Benefits


Published on

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.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Transcript of "Flexibility in Software Development Methodologies: Needs and Benefits"

  1. 1. • Cognizant 20-20 InsightsFlexibility in Software DevelopmentMethodologies: 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. 2. Progress on the project can be easily monitored This set of requirements in the backlog is frozenby 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 potentiallycustomer involvement is required during the deliverable product increment. At the end of therequirements specification, design and testing sprint, the product owner and the customersphases, while remaining phases do not require review the deliverable and provide feedback onsignificant input from the customer. One major the build. This feedback could take the form ofdrawback associated with the Waterfall model is bugs, changes in functionality, etc., which couldthat it can be too late in the development cycle significantly alter the product backlog and theto discover business critical defects, as business work done in the next sprint.testing only begins after the development phase. Although the Scrum methodology often requiresScrum Development Process Overview significant customer involvement throughoutScrum 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 thean adaptive, iterative and incremental approach time required to release quality software to thetoward software and product development. customer — when it is used to solve the rightScrum is ideally suited for projects with changing problems, by capable teams and with supportiverequirements. In order to operate in such an management.environment, Scrum relies on a self-organizing, Project Descriptionself-managing, cross-functional Scrum team thatis 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 maintainsof the users and customers and is responsible for respirator evaluations for 40,000 workers aroundcreating a prioritized wish list of product features, the world in a Fortune 100 product manufacturingcalled 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 awhich 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 toto 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 RetrospectiveFigure 1 cognizant 20-20 insights 2
  3. 3. Functionality contained in the algorithm is based tion-level user interface, thus allowing erroron government regulations and helps the client detection and bug fixing before completingcreate 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 ofrisks associated with corporate liability, while delivering incomplete software at the end ofembracing its role as a responsible corporate development.citizen. • Requirements pertaining to the presenta- tion layer were going to be developed as theThe project has been developed as a three-tiered project progressed.Web application on the Java Enterprise Editionplatform, consisting of presentation, business and • Clients aimed to lessen the burden of datadata layers. The application supports five different collection on workers and needed to seeactors and contains 22 screens, with functional- working prototypes of several user interfaceity 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 Businessfor a worker formed the core of the business and Data Layersfunctionality and accounted for nine of the 26 test Besides the stability of client requirements, thecases. Since the algorithm was based on regula- success of a project or module executed by ations that had not changed for a number of years, global team using the Waterfall model dependsrequirements 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. Tokicked off. ensure all stakeholders were on the same page, a Cognizant We decidedThe remaining 17 test cases dealt mostly with thepresentation layer and covered complex func- associate was assigned to the businesstionalities involving the actors and user interface work on-site at the client functionality would location as a business and ITscreens. The requirements for these 17 test cases analyst. be best executedwere initially undefined by the client and were tobe elaborated on as the project progressed. under the Waterfall The primary responsibility of the analyst was to work closely model, while theProject Implementation with client business users to Scrum modelAs project requirements and use cases were develop and refine use cases was best for theanalyzed, we decided that software develop- for the business module. Thisment of the business functionality would be best activity was scheduled to be presentation layer.executed under a traditional Waterfall model, completed in three weeks. Thewhile using the Scrum model for the presentation use cases were loaded into Rational RequisiteProlayer 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-levelWaterfall 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. 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 theFor 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 modulesenvironment 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. 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 SprintFigure 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, WaterfallConclusion or any other software development methodologyWe successfully developed and tested the presen- should be based on which model best reducestation and business modules within six months, risk, increases productivity and improves qualityas 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 softwareDeployment was scheduled after completion of architects, analysts or developers to tailor theUAT and a few final bug fixes. The client considered software development process according tothe deployment a great success, and we heard business needs and project characteristics is aa lot of positive feedback from the RMAS user crucial factor in successful project completion. cognizant 20-20 insights 5
  6. 6. Referenceshttp://shannonxj.blogspot.com/2008/01/waterfall-model.htmlhttp://idimension.wordpress.com/tag/the-scrum-master/http://java.sun.com/javaee/http://www-01.ibm.com/software/awdtools/reqpro/www.mountaingoatsoftware.com/topics/scrumAbout the AuthorSiddharth Sharad Chandak is a Project Manager at Cognizant. He manages a number of critical projectsthat Cognizant is currently executing for a key customer in the manufacturing and logistics vertical.He holds a Master of Science degree in Computer Science from Kansas State University. His interestsinclude architecting and designing enterprise software applications, software performance tuning andproject management. He can be reached at siddharth.chandak@cognizant.com.Vishnu Rangarajan is a Senior Associate at Cognizant. He manages and supports multiple projects forkey clients for Cognizant in the manufacturing and logistics vertical. He holds a Bachelor of Engineer-ing degree in Electrical and Electronics from SRM Engineering College in India. His interests includedatabase administration and project management. He can be reached at varadhavishnu.rangarajan@cognizant.com.About CognizantCognizant (NASDAQ: CTSH) is a leading provider of information technology, consulting, and business process out-sourcing services, dedicated to helping the world’s leading companies build stronger businesses. Headquartered inTeaneck, New Jersey (U.S.), Cognizant combines a passion for client satisfaction, technology innovation, deep industryand business process expertise, and a global, collaborative workforce that embodies the future of work. With over 50delivery centers worldwide and approximately 130,000 employees as of September 30, 2011, Cognizant is a member ofthe NASDAQ-100, the S&P 500, the Forbes Global 2000, and the Fortune 500 and is ranked among the top performingand fastest growing companies in the world. Visit us online at www.cognizant.com or follow us on Twitter: Cognizant. World Headquarters European Headquarters India Operations Headquarters 500 Frank W. Burr Blvd. 1 Kingdom Street #5/535, Old Mahabalipuram Road Teaneck, NJ 07666 USA Paddington Central Okkiyam Pettai, Thoraipakkam Phone: +1 201 801 0233 London W2 6BD Chennai, 600 096 India Fax: +1 201 801 0243 Phone: +44 (0) 20 7297 7600 Phone: +91 (0) 44 4209 6000 Toll Free: +1 888 937 3277 Fax: +44 (0) 20 7121 0102 Fax: +91 (0) 44 4209 6060 Email: inquiry@cognizant.com Email: infouk@cognizant.com Email: inquiryindia@cognizant.com© Copyright 2011, Cognizant. All rights reserved. No part of this document may be reproduced, stored in a retrieval system, transmitted in any form or by anymeans, electronic, mechanical, photocopying, recording, or otherwise, without the express written permission from Cognizant. The information contained herein issubject to change without notice. All other trademarks mentioned herein are the property of their respective owners.