12.07.2015 Views

Knowledge Management in Agile Projects - Cognizant

Knowledge Management in Agile Projects - Cognizant

Knowledge Management in Agile Projects - Cognizant

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• <strong>Cognizant</strong> 20-20 Insights<strong>Knowledge</strong> <strong>Management</strong><strong>in</strong> <strong>Agile</strong> <strong>Projects</strong>Executive SummarySoftware development is knowledge-<strong>in</strong>tensivework and the ma<strong>in</strong> challenge is how to managethis knowledge. The <strong>Agile</strong> manifesto advocates“<strong>in</strong>dividuals and <strong>in</strong>teraction over process andtools,” and hence it requires even more attentionto manage knowledge <strong>in</strong> <strong>Agile</strong> projects.This paper demarcates the types of knowledge<strong>in</strong>volved <strong>in</strong> the lifecycle of software projects anddescribes the mechanisms to effectively managethem <strong>in</strong> <strong>Agile</strong> software development. It thenargues for the need to scale <strong>Agile</strong> developmentstrategies <strong>in</strong> knowledge management to addressthe full delivery process.<strong>Knowledge</strong> <strong>Management</strong> <strong>in</strong>Software Development<strong>Knowledge</strong> management is “a method thatsimplifies the process of shar<strong>in</strong>g, distribut<strong>in</strong>g,creat<strong>in</strong>g, captur<strong>in</strong>g and understand<strong>in</strong>g thecompany knowledge.” 1 <strong>Knowledge</strong> itself “is a fluidmix of framed experience, values, contextual<strong>in</strong>formation and expert <strong>in</strong>sight that provide aframework for evaluation and <strong>in</strong>corporat<strong>in</strong>g newexperience and new <strong>in</strong>formation.” 2 Furthermore,“knowledge passes through different modes ofconversion, which makes the knowledge moreref<strong>in</strong>ed and spreads it across different layers <strong>in</strong>an organization.” 3The ma<strong>in</strong> assets of software development are notmanufactur<strong>in</strong>g plants, build<strong>in</strong>gs and mach<strong>in</strong>esbut the knowledge held by the employees andthe development culture of an organization.Companies develop<strong>in</strong>g <strong>in</strong>formation systemshave failed to learn effective means for problemsolv<strong>in</strong>g to such an extent that they havelearned to fail. The key drivers for companiesto manage knowledge effectively <strong>in</strong> softwaredevelopment are:• Reduc<strong>in</strong>g the effort spent <strong>in</strong> acquir<strong>in</strong>grequired knowledge for project execution.• Improv<strong>in</strong>g reusability (i.e., avoid<strong>in</strong>gre<strong>in</strong>vention).• Reduc<strong>in</strong>g dependency on <strong>in</strong>dividuals forproject success.• Improv<strong>in</strong>g the overall team’s productivity.<strong>Knowledge</strong> TypesTypically, knowledge can be classified <strong>in</strong>to twotypes, explicit and tacit.Explicit knowledge is knowledge that is articulableand transmittable <strong>in</strong> formal, systematic language.This can <strong>in</strong>clude grammatical statements, mathematicalexpressions, specifications, manualsand so forth. Such knowledge can be transmittedformally among <strong>in</strong>dividuals with ease.Tacit knowledge is personal and context-specific,and is therefore difficult to formalize and communicate.It is embedded <strong>in</strong> <strong>in</strong>dividual experience and<strong>in</strong>volves <strong>in</strong>tangible factors such as personal belief,perspectives and value systems. Tacit knowledgecognizant 20-20 <strong>in</strong>sights | january 2012


is difficult to communicate and share <strong>in</strong> an organizationand thus must be converted <strong>in</strong>to words orother forms of explicit knowledge.The <strong>Knowledge</strong> Lifecycle <strong>in</strong>Software <strong>Projects</strong>The knowledge life cycle <strong>in</strong> software projects canbe described <strong>in</strong> five steps.1. Gather available explicit knowledge.Generally, this happens dur<strong>in</strong>g the start ofthe project whereby available knowledge iscaptured and made available <strong>in</strong> knowledgebases, market<strong>in</strong>g, different departments, etc.2. Personalize explicit knowledge. The gathered<strong>in</strong>formation/knowledge needs to be convertedby the <strong>in</strong>dividuals <strong>in</strong>volved <strong>in</strong> the projects <strong>in</strong>totacit knowledge.3. Application of the acquired knowledge.Converted tacit knowledge will be applied tothe project execution.4. Learn<strong>in</strong>g from the project. There could besome learn<strong>in</strong>g, <strong>in</strong>novations or new methods ortechniques uncovered dur<strong>in</strong>g the execution ofthe project which will be <strong>in</strong> the form of tacitknowledge.5. Convert to explicit knowledge. The learn<strong>in</strong>gneeds to be converted <strong>in</strong>to explicit knowledgeand added to the repository for futurereference.There are many questions related to knowledgemanagement, especially <strong>in</strong> <strong>Agile</strong> projects: Howdifferent is it to manage knowledge <strong>in</strong> <strong>Agile</strong>The <strong>Knowledge</strong> CircleFigure 15Convert theLearn<strong>in</strong>g toExplicit<strong>Knowledge</strong>for FutureReference1AvailableExplicit<strong>Knowledge</strong>Learn<strong>in</strong>g fromPersonalize thethe Project <strong>in</strong> theExplicit <strong>Knowledge</strong>Form of Taciti.e., Convert to<strong>Knowledge</strong>Tacit <strong>Knowledge</strong>Applicationof Acquired<strong>Knowledge</strong> to4 Project Execution32projects? What should be the relative levels offocus on explicit knowledge vs. tacit knowledge?This paper will address these queries.<strong>Knowledge</strong> <strong>Management</strong> <strong>in</strong> TraditionalSoftware DevelopmentTraditional software development approachesorganize the required knowledge shar<strong>in</strong>g basedon different roles follow<strong>in</strong>g a Tayloristic 4 m<strong>in</strong>d-set:people <strong>in</strong>volved <strong>in</strong> the development process areassigned specific roles (e.g., bus<strong>in</strong>ess analyst,software architect, lead designer, programmer,tester, etc.) that are associated with specificstages <strong>in</strong> the development process (requirementsanalysis, high-level design, low-level design,cod<strong>in</strong>g, test<strong>in</strong>g, etc.).Limitations<strong>Knowledge</strong> shar<strong>in</strong>g between each of the stagesis primarily document based (i.e., through explicitknowledge). One role produces a document (e.g.,requirements specifications, design documents,source code, test plans, etc.) and hands it off tothe people responsible for the next stage <strong>in</strong> thedevelopment process.Assum<strong>in</strong>g merely 5% of relevant <strong>in</strong>formation islost <strong>in</strong> each transfer between the stages, nearlya quarter of the <strong>in</strong>formation does not reach thecoder (who has to encode the doma<strong>in</strong> knowledge<strong>in</strong>to software) <strong>in</strong> a Tayloristic developmentprocess. The results are even worse if more than5% is lost <strong>in</strong> each stage.Another problem result<strong>in</strong>g from the long communicationcha<strong>in</strong>s <strong>in</strong> Tayloristic software organizationsis a tendency to over-document. Informationis useful only when it is new to the receiver;provid<strong>in</strong>g a known fact to somebody is old, bor<strong>in</strong>gnews. In fact, such repetition makes it moredifficult to f<strong>in</strong>d the relevant “gems” of <strong>in</strong>formation<strong>in</strong> a document and hence <strong>in</strong>creases knowledgetransfer costs. People <strong>in</strong>volved <strong>in</strong> the early stagesof software development do not (and cannot)know what <strong>in</strong>formation is already known to thecoders. Relevance of <strong>in</strong>formation is completelysubjective <strong>in</strong> the sense that it depends on thecurrent knowledge of the <strong>in</strong>formation receiver.<strong>Knowledge</strong> <strong>Management</strong> <strong>in</strong><strong>Agile</strong> Software Development<strong>Agile</strong> software development relies on direct communication— i.e., synchronized and osmotic communicationsbetween customers and developersfor knowledge shar<strong>in</strong>g. This reduces the <strong>in</strong>formationloss due to long communication cha<strong>in</strong>s andcognizant 20-20 <strong>in</strong>sights 2


team members who may not talk to each otherregularly. Team members learn whom to contactwhen they work on parts of the system that theyare unfamiliar with.To reduce the communication cost among thevarious roles that are <strong>in</strong>volved <strong>in</strong> software development— such as bus<strong>in</strong>ess analysts, developersand testers — <strong>Agile</strong> methods recommend the useof cross-functional teams <strong>in</strong>stead of role-basedteams. A role-based team conta<strong>in</strong>s only members<strong>in</strong> the same role. By contrast, a cross-functionalteam draws together <strong>in</strong>dividuals of alldef<strong>in</strong>ed roles. Experiences <strong>in</strong>dicate that crossfunctionalteams facilitate better collaborationand knowledge shar<strong>in</strong>g, which leads to reducedproduct development time.Cont<strong>in</strong>uous learn<strong>in</strong>g is supported by some <strong>Agile</strong>methods <strong>in</strong> the form of project retrospectives.Retrospectives are <strong>in</strong> essence post-mortemreviews on what happened dur<strong>in</strong>g development,except that they are conducted not only at theend of a project but also dur<strong>in</strong>g it. Retrospectivesfacilitate the identification of any successfactors and obstacles of the current managementand development process. In cases where teammembers face obstacles of the current process,such as lengthy stand-up meet<strong>in</strong>gs, retrospectivesprovide the opportunity for these issues tobe raised, discussed, and dealt with dur<strong>in</strong>g theproject rather than at the end of the project.LimitationsAlthough the concept of learn<strong>in</strong>g is embedded<strong>in</strong> various <strong>Agile</strong> software development practices,as shown above, these practices only addressknowledge shar<strong>in</strong>g with<strong>in</strong> a team. They do notaddress issues of knowledge shar<strong>in</strong>g across teamboundaries. In a large organization, there mayexist multiple teams that work on similar tasks,face common problems or have overlapp<strong>in</strong>g<strong>in</strong>terests <strong>in</strong> specific knowledge areas. In short,there is a lack of explicit support for organizationallearn<strong>in</strong>g. Also, there will be <strong>in</strong>stances where<strong>Agile</strong> teams are distributed due to the natureof bus<strong>in</strong>ess, which also makes tacit knowledgeshar<strong>in</strong>g difficult.To address this, we need to have lightweightmechanisms to convert tacit knowledge <strong>in</strong>toexplicit knowledge <strong>in</strong> <strong>Agile</strong> software development.Some of the mechanisms are as follows.<strong>Agile</strong> teams should make it a practice to capturelearns <strong>in</strong> a particular Spr<strong>in</strong>t as part of everyretrospective meet<strong>in</strong>g and ensure that this isconverted <strong>in</strong>to explicit knowledge (through documentation)and published <strong>in</strong> a common area thateveryone can access. The common area could bea lightweight collaboration Website like a Wikiwhich should act as a collaborative knowledgerepository for the team.The majority of the <strong>in</strong>formation captured <strong>in</strong> traditionalspecification documents, such as requirementsspecifications, architecture specificationsor design specifications, can be capturedas “executable specifications” <strong>in</strong> the form oftests. When you take a test-driven development(TDD) approach, you effectively write detailedspecifications on a just-<strong>in</strong>-time (JIT) basis. WithTDD, you write a test, either at the customer/acceptance level or the developer level, beforewrit<strong>in</strong>g sufficient code/functionality to fulfill thattest. The tests accomplish two purposes: theyspecify the requirements/architecture/design andthey validate your work. This is an example of thepractice of s<strong>in</strong>gle source <strong>in</strong>formation.Make it a practice to create needy documents —i.e., if and only if they fulfill a clear, important, andimmediate goal of overall project efforts. Don’tforget that this purpose may be short-term orlong-term; it may directly support software developmentefforts or it may not. Also, rememberthat each system has its own unique documentationneeds, that one size does not fit all. Theimplication is that you’re not go<strong>in</strong>g to be able tofollow a “repeatable process” and leverage thesame set of documentation templates on everyproject, at least not if you’re <strong>in</strong>terested <strong>in</strong> actuallybe<strong>in</strong>g effective.ConclusionTraditionally, software development teams followthe Tayloristic approach favor<strong>in</strong>g division of labor;hence, the use of role-based teams. Role-basedteams with handoffs between job functions havethe <strong>in</strong>herent problem of amplify<strong>in</strong>g the problemof miscommunication due to <strong>in</strong>direct and longcommunication paths (i.e., knowledge shar<strong>in</strong>gthrough explicit knowledge).<strong>Agile</strong> development teams address this problem byus<strong>in</strong>g cross-functional teams, which encouragesdirect communication through release anditeration plann<strong>in</strong>g, pair programm<strong>in</strong>g and pairrotation, and daily stand-ups and retrospectives— all of which reduces the likelihood of miscommunication.They rely on various practices whichemphasize approximate knowledge shar<strong>in</strong>g bycognizant 20-20 <strong>in</strong>sights 4


social <strong>in</strong>teraction and fast feedback loops <strong>in</strong>steadof structured (logical) representations (i.e.,knowledge shar<strong>in</strong>g through tacit knowledge).However, there are major <strong>in</strong>herent limitations tothe various knowledge-shar<strong>in</strong>g practices used by<strong>Agile</strong> teams <strong>in</strong> their orig<strong>in</strong>al forms. They do notfacilitate <strong>in</strong>ter-team learn<strong>in</strong>g and also do not workwell if the teams are distributed. To address this,<strong>Agile</strong> teams should not only rely on the knowledgeshar<strong>in</strong>g through tacit knowledge but should alsoemploy lightweight explicit knowledge shar<strong>in</strong>g liketest-driven development, needy documentation,usage of Wikis, and the discipl<strong>in</strong>e of captur<strong>in</strong>g thelearns through retrospectives.Footnotes1T.H.Davenprot, L.Prusak, “Work<strong>in</strong>g <strong>Knowledge</strong>: How Organizations Manage What They Know,”Harvard Bus<strong>in</strong>ess School Press, Boston, 1998.2Argyris C., “<strong>Knowledge</strong> for Action,” (1993), San Francisco, CA: Jossey-Bass.3I.Nonaka, H.Takeuchi, “The <strong>Knowledge</strong>-Creat<strong>in</strong>g Company,” Oxford University Press 1995.4Frederick W. Taylor was an American eng<strong>in</strong>eer who <strong>in</strong>troduced scientific factory management <strong>in</strong> the early19th century. His <strong>in</strong>novations <strong>in</strong> time and motion studies paid off <strong>in</strong> dramatic improvements <strong>in</strong> productivitywhich favors division of labor and, hence, the use of role-based teams.About the AuthorVadivelan Sivanantham is a Senior Manager <strong>in</strong> <strong>Cognizant</strong>’s Advanced Solutions Group. He is a full-time<strong>Agile</strong> Scrum Coach and has CSM certification from the Scrum Alliance. Vadivelan specializes <strong>in</strong> perform<strong>in</strong>g<strong>Agile</strong> assessments and coach<strong>in</strong>g Waterfall to <strong>Agile</strong> transitions. His software experience <strong>in</strong>cludes manyyears of handl<strong>in</strong>g projects <strong>in</strong> both <strong>Agile</strong> and traditional methodologies. Vadivelan received a bachelor’sdegree <strong>in</strong> eng<strong>in</strong>eer<strong>in</strong>g from Anna University located <strong>in</strong> Chennai, India and a master’s degree <strong>in</strong> <strong>in</strong>formationtechnology from Bharathidasan University located <strong>in</strong> Trichy, India. He can be reached at Vadivelan.Sivanantham@cognizant.com.About <strong>Cognizant</strong><strong>Cognizant</strong> (NASDAQ: CTSH) is a lead<strong>in</strong>g provider of <strong>in</strong>formation technology, consult<strong>in</strong>g, and bus<strong>in</strong>ess process outsourc<strong>in</strong>gservices, dedicated to help<strong>in</strong>g the world’s lead<strong>in</strong>g companies build stronger bus<strong>in</strong>esses. Headquartered <strong>in</strong>Teaneck, New Jersey (U.S.), <strong>Cognizant</strong> comb<strong>in</strong>es a passion for client satisfaction, technology <strong>in</strong>novation, deep <strong>in</strong>dustryand bus<strong>in</strong>ess 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, <strong>Cognizant</strong> is a member ofthe NASDAQ-100, the S&P 500, the Forbes Global 2000, and the Fortune 500 and is ranked among the top perform<strong>in</strong>gand fastest grow<strong>in</strong>g companies <strong>in</strong> the world. Visit us onl<strong>in</strong>e at www.cognizant.com or follow us on Twitter: <strong>Cognizant</strong>.World Headquarters500 Frank W. Burr Blvd.Teaneck, NJ 07666 USAPhone: +1 201 801 0233Fax: +1 201 801 0243Toll Free: +1 888 937 3277Email: <strong>in</strong>quiry@cognizant.comEuropean Headquarters1 K<strong>in</strong>gdom StreetPadd<strong>in</strong>gton CentralLondon W2 6BDPhone: +44 (0) 20 7297 7600Fax: +44 (0) 20 7121 0102Email: <strong>in</strong>fouk@cognizant.comIndia Operations Headquarters#5/535, Old Mahabalipuram RoadOkkiyam Pettai, ThoraipakkamChennai, 600 096 IndiaPhone: +91 (0) 44 4209 6000Fax: +91 (0) 44 4209 6060Email: <strong>in</strong>quiry<strong>in</strong>dia@cognizant.com© Copyright 2011, <strong>Cognizant</strong>. All rights reserved. No part of this document may be reproduced, stored <strong>in</strong> a retrieval system, transmitted <strong>in</strong> any form or by anymeans, electronic, mechanical, photocopy<strong>in</strong>g, record<strong>in</strong>g, or otherwise, without the express written permission from <strong>Cognizant</strong>. The <strong>in</strong>formation conta<strong>in</strong>ed here<strong>in</strong> issubject to change without notice. All other trademarks mentioned here<strong>in</strong> are the property of their respective owners.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!