Agile Project Management - AltexSoft

Transcription

Agile Project Management: Best Practices and MethodologiesWHITEPAPERAgile ProjectManagement:Best Practices andMethodologies

Agile Project Management: Best Practices and Methodologies1. The Art of Project Management1.1 Project Management Phases2. Traditional Project Management Methodologies3. Agile Project Management Methodology4. Agile Frameworks5. Scrum: roles, sprints and artifacts5.1 Sprints and artifacts5.2 Scrum meetings5.3 When to use Scrum6. Kanban: Comprehensive Solution to Handling Work in Progress6.1 When to use Kanban7. Hybrid: Blend of Waterfall and Agile (Flexible Development and Thorough Project Planning)7.1 When to use Hybrid8. Bimodal: traditional Waterfall combined with Agile8.1 When to use Lean9. Lean: Eliminating Waste in Software Engineering9.1 When to use Hybrid10. Extreme Programming: Engineering Practices For Writing A Good Code10.1 When to use XPConclusionReferences2

Agile Project Management: Best Practices and MethodologiesThe Art of Project ManagementAs defined by Gartner, project managementis “the application of knowledge, skills, toolsand techniques to project activities to meetthe project requirements”.Project Management PhasesRegardless of the scope, any project shouldfollow a sequence of actions to be controlledand managed. According to the ProjectBeing an integral part of software engineeringManagement Institute, a typical projectprocesses along with the business analysis andmanagement process includes the followingrequirement specification, design, programmingphases:and testing, the project management has beena topic of considerable debate for years. Eventoday, when company project managementpractices are becoming more mature, onlyabout half of them (54%), according to surveyresults by the Project Management Institute(PMI), are fully aware of the importance andvalue of these practices.1. Initiation;2. Planning;3. Execution;4. Performance/Monitoring;5. Project close.Used as a roadmap to accomplish specific tasks,these phases define the project managementlifecycle.Regardless of industry, project management hasYet, this structure is too general. A projectproven to be a crucial element of a company’susually has a number of internal stages withinefficiency and its eventual success. In fact, theeach phase. They can vary greatly depending onorganizations using proven project managementthe scope of work, the team, the industry andpractices waste 28 less money and implementthe project itself.projects that are 2.5 times more successful.In attempts to find a universal approach toProject management professionals concludethat the definition of a successful project is onethat is not only completed on time and withinmanaging any project, humanity has developeda significant number of PM techniques andmethodologies.budget, but one that also delivers expectedbenefits.3

Agile Project Management: Best Practices and MethodologiesTraditional Project Management MethodologiesBased on the above-described classicKnown as a waterfall model, it has been aframework, traditional methodologies take adominant software development methodologystep-by-step approach to the project execution.since the early 1970s, when formally describedThus, the project goes through the initiation,by Winston W. Royce:planning, execution, monitoring straight to itsclosure in consecutive stages.There are two essential steps common to all computerOften called linear, this approach includes aprogram developments, regardless of size or complexity.number of internal phases which are sequentialThere is first an analysis step, followed second by a codingand executed in a chronological order.Applied most commonly to the constructionstep . This sort of very simple implementation concept isor manufacturing industry, where little or noin fact all that is required if the effort is sufficiently smallchanges are required at every stage, traditionaland if the final product is to be operated by those whoproject management has found its application inthe software engineering as well.built it - as is typically done with computer programs forinternal use.4

Agile Project Management: Best Practices and MethodologiesWaterfall ModelWaterfall model has a strong emphasis ona tight control over the development process.planning and specifications development:In theory, this should lead to on-time, on-budgetit is considered to take up to 40% of the projectdelivery, low project risks, and predictable finaltime and budget. Another basic principle of thisresults.approach is a strict order of the project phases.A new project stage does not begin until theHowever, when applied to the actual softwareprevious one is finished.engineering process, waterfall method tendsto be slow, costly and inflexible due to theThe method works well for clearly definednumerous restrictions. In many cases, itsprojects with a single deliverable and fixedinability to adjust the product to the evolvingdeadline. Waterfall approach requires thoroughmarket requirements often results in a hugeplanning, extensive project documentation andwaste of resources and eventual project failure.5

Agile Project Management: Best Practices and MethodologiesAgile Project Management MethodologyAs opposed to the traditional methodologies,Aimed at “uncovering better ways of developingagile approach has been introduced as ansoftware”, the Manifesto clearly specifies theattempt to make software engineering flexiblefundamental principles of the new approach:and efficient. With 94% of the organizationspracticing agile in 2015, it has become a standardof project management.Through this work we have come to value:Individuals and interactions over processes and toolsThe history of agile can be traced back to 1957:at that time Bernie Dimsdale, John von Neumann,Working software over comprehensive documentationHerb Jacobs, and Gerald Weinberg were usingCustomer collaboration over contract negotiationincremental development techniques (which areResponding to change over following a plan.now known as Agile), building software for IBMand Motorola. Although, not knowing how toclassify the approach they were practicing, theyComplemented with the Twelve Principles ofall realized clearly that it was different from theAgile Software, the philosophy has come to beWaterfall in many ways.a universal and efficient new way to manageprojects.However, the modern-day agile approach wasofficially introduced in 2001, when a group ofAgile methodologies take an iterative approach to17 software development professionals metsoftware development. Unlike a straightforwardto discuss alternative project managementlinear waterfall model, agile projects consist of amethodologies. Having a clear vision of thenumber of smaller cycles - sprints. Each one offlexible, lightweight and team-oriented softwarethem is a project in miniature: it has a backlogdevelopment approach, they mapped it out in theand consists of design, implementation, testingManifesto for Agile Software Development.and deployment stages within the pre-definedscope of work.6

Agile Project Management: Best Practices and UCTNAgile Development CycleFINALPRODUCTEApotentially failed product are significantly lower.Let’s summarize the main Agile aspects:Flexibility: The scope of work may changeaccording to new requirements.Work breakdown: The project consists of smallcycles (known as Sprints in Scrum).Value of teamwork: The team members workclosely together and have a clear vision about theirresponsibilities.TLin the development, the chances of delivering aREgrowth. With the features being validated earlyENMGINproduct, which results in the gradual projectTevery iteration new features are added to thePproduct increment is delivered. Thus, withOAt the end of each Sprint, a potentially shippableDEVETE LSSESPRINTIterative improvements: There is frequentreassessment of the work done within a cycle tomake the final product better.Cooperation with a client: A customer is closelyengaged in the development and can change therequirements or accept the team’s suggestions.Prioritizing flexibility and rapid turnaround, theAgile approach offers the following benefits,according to the recent research: Ability to manage the changing priorities (88%) Increased team productivity through daily taskallocation (83%) Better project visibility due to the simpleplanning system (83%)7

Agile Project Management: Best Practices and MethodologiesAgile FrameworksAgile is an umbrella term for a vast variety of frameworks and techniques, sharing the principles andvalues described above. Each of them has its own areas of use and distinctive features. The mostpopular frameworks are Scrum, Kanban, Hybrid, Lean, Bimodal, and XP. Before discussing theseframeworks in more detail, let’s look at their key features.Scrum: Roles, Sprints, and ArtifactsScrum is a dominant agile framework. It’s usedIn 1995, Ken Schwaber and Jeff Sutherland, theexclusively by 58 percent of organizations whileauthors of The Scrum Guide, presented it atanother 18 percent of the companies combinethe OOPSLA conference. The presentation wasit with other techniques. First described in 1986based on the knowledge they acquired as theyby Hirotaka Takeuchi and Ikujiro Nonaka in theapplied the method during the previous fewNew Product Development Game, it was formu-years. While, Scrum was introduced far beforelated almost a decade after.the Agile Manifesto, it relies on Agile principlesand is consistent with the values stated in thatdocument.8

Agile Project Management: Best Practices and MethodologiesFrameworkScrumPlanned Mitigation The entire scope of work is broken down into short developmentcycles — Sprints. The Sprint’s duration is from one to four weeks. The team should strictly follow a work plan for each Sprint. People involved in a project have predefined roles.Kanban Development is built on workflow visualization. The current work (work in progress or WIP) is prioritized. There are no timeboxed development cycles. The team can change the work plan at any time.Hybrid Agile and Waterfall complement each other. Agile software development is held under Waterfall conditions(fixed deadline, forecasted budget, and thorough risk assessment).BimodalLeanXP There are two separate modes of work — traditional (Mode 1) andAgile (Mode 2). Two separate teams are working on projects with two differentgoals. The Mode 1 team maintains IT system infrastructure. The Mode 2 team delivers innovative applications. Cross-team collaboration is important The framework promotes fast software development with lesseffort, time, and cost. The development cycle is as short as possible. The product delivered early is being continuously improved. The team is independent and has a wider range of responsibilitiesthan those in Scrum, Bimodal, and Hybrid. Developers can also formulate the product’s concept The focus is on technical aspects of software development. XP introduces engineering practices aimed at helping developerswrite a clear code. Product development includes consistent stages: core writing,testing, analyzing, designing, and continuous integration of code. Face-to-face communication within the team and customerinvolvement in development are crucial9

Agile Project Management: Best Practices and MethodologiesScrum is aimed at sustaining strong collabora- Product Owner, usually a customer ortion between people working on complex prod-other stakeholder, is actively involved through-ucts, and details are being changed or added.out the project, conveying the global vision ofIt is based upon the systematic interactionsthe product and providing timely feedback onbetween the three major roles: Scrum Master,the job done after every Sprint.Product Owner, and the Team. Scrum Master is a central figure Scrum Team is a cross-functional andself-organizing group of people that is respon-within a project. His principal responsibility is tosible for the product implementation. It shouldeliminate all the obstacles that might preventconsist of up to seven team members, in orderthe team from working efficiently.to stay flexible and productive.10

Agile Project Management: Best Practices and MethodologiesSprints and artifactsA basic unit of work in scrum – Sprint – is aproduct items to deliver and define a plan onhow to do so.short development cycle that is needed to pro-The Sprint Burndown Chart is an illustration ofduce a shippable product increment. A Sprintthe work remaining in a Sprint. It helps both theusually is between one and four weeks long:team and the Scrum Master as it shows progressMore lengthy iterations lack the predictabilityon a day-to-day basis and can predict whetherand flexibility that are Scrum’s fundamental ben-the Sprint goal will be achieved on schedule.efits. Having no standard duration (as long as itis less than four weeks), all the sprints within aScrum meetingsproject should have a fixed length. This makes itThe process is formalized through a numbereasier to plan and track progress.of recurring meetings, like the Daily ScrumScrum relies on three main artifacts whichare used to manage the requirements andtrack progress – the Product Backlog, theSprint Backlog, the Sprint Burndown Chart.The process is formalized through a numberof recurring meetings, like the Daily Scrum(Standup), the Sprint Planning, the Review andRetrospective meetings.(Standup), the Sprint Planning, the Review,and Retrospective meetings (the SprintRetrospective).The Daily Scrum is a timeboxed meeting,during which a Development Team coordinatesits work and sets a plan for the next 24 hours.The event lasts 15 minutes and should be helddaily at the same place and time.The Product Backlog is an ordered list offeature items that might be needed in theThe work to be completed is planned at theproject’s final product. It is a single source ofSprint Planning. Everyone involved in therequirements. The product Backlog updates asSprint (a Product Owner, a Scrum Master, and anew requirements, fixes, features, and detailsDevelopment Team) participates in this event.are being changed or added.They answer two key questions: which work canThe Sprint Backlog is a list of tasks the teammust complete to deliver an increment offunctional software at the end of each Sprint.In other words, team members agree on whichbe done and how this work will be done. TheSprint Planning lasts no longer than eight hoursfor a one-month Sprint. For shorter Sprints, themeeting usually takes less time.11

Agile Project Management: Best Practices and MethodologiesThe work to be completed is planned at theSprint Planning. Everyone involved in the Sprint(a Product Owner, a Scrum Master, and aDevelopment Team) participates in this event.They answer two key questions: which work canbe done and how this work will be done. TheSprint Planning lasts no longer than eight hoursfor a one-month Sprint. For shorter Sprints, theduration is three hours for one-month Sprints.When to use ScrumScrum works well for long-term, complexprojects that require stakeholder feedback,which may greatly affect project requirements.So, when the exact amount of work can’t beestimated, and the release date is not fixed,Scrum may be the best choice.meeting usually takes less time.By setting customer needs and on-time/onAt the end of each Sprint, the team and thebudget delivery as the highest priority, Scrumproduct owner meet at the Sprint Review.has gained the trust of 89 percent of AgileDuring this informal meeting, the team showsusers. Thus, the list of companies using thisthe work completed and answers questionsapproach is impressive. In fact, there is a publicabout the product increment. All participantsspreadsheet with such organizations, includingcollaborate on what to do next to increase theMicrosoft, IBM, Yahoo, and Google.product’s value. The Sprint Review is a four-hourtimeboxed meeting for one-month Sprints.The latest research by the Scrum AllianceThe whole team goes to Retrospectiveworking in the fields of finance, consulting, andMeetings to reflect on their work during theSprint. Participants discuss what went well orwrong, find ways to improve, and plan how toimplement these positive changes. The SprintRetrospective is held after the Review andbefore the next Sprint Planning. The event’s12suggests that Scrum goes beyond IT. Companiesentertainment choose this approach to organizetheir work processes and enhance cooperationwith customers. In 2016, the majority of Stateof Scrum Report respondents (98 percent) saidthey are going to use this framework to moveforward.

Agile Project Management: Best Practices and MethodologiesKanban: Comprehensive Solution to Handling Work inAnother common project managementKanban focuses on the visualization of theframework is Kanban. Forty three percent ofworkflow and prioritizes the work in progresscompanies have stated that they use Kanban(WIP), limiting its scope to match it effectivelyas one of the project management frameworks.to the team’s capacity. As soon as a task isOriginating from a visual system of cardscompleted, the team can take the next itemused in Toyota manufacturing as a productionfrom the pipeline. Thus, the developmentcontrol method, Kanban is simple, yet powerful,process offers more flexibility in planning, fasterapproach to developing software products.turnaround, clear objectives, and transparency.Translated as visual signal from Japanese,Kanban BoardBACKLOGIN PROGRESSCOMPLETED13

Agile Project Management: Best Practices and MethodologiesNo standard procedures within the process, as well as the fixed iterations, are requiredin Kanban, as opposed to Scrum. The project development is based on the workflow visualizationthrough a Kanban board, usually represented by sticky notes and whiteboards, or online tools likeTrello.Trello automates and digitalizes Kanban. Duemore details.to the succinct information about a work itemTeams using Kanban tools work in a cooperativeeach Kanban card contains, everyone in the teammanner. The ability to track progress helpsknows who is responsible for the item, what eachcoworkers understand everyone’s personal inputperson’s task is, when it’s supposed to be finished,in achieving the common goal, resulting in a focusetc. Team members can also leave comments,on completing the task well and on time.attach screenshots, documents, or links to provide14

Agile Project Management: Best Practices and MethodologiesWhen to use KanbanUsing Kanban, teams can do small releases and adapt to changing priorities. Unlike Scrum, there areno sprints with their predefined goals. Kanban is focused on doing small pieces of work as they comeup. For example, if testers find errors in the product, developers try to fix them right away. Kanban, forinstance, works well after the main release of the product.Companies like Spotify and Wooga (leading mobile games development company) have been usingthis approach successfully over the years. Yet, 8 percent of organizations combine Scrum with Kanbantechniques, using so-called Scrumban rather than the original frameworks.Hybrid: Blend of Waterfall and Agile (Flexible Developmentand Thorough Project Planning)Agile and Waterfall are two different visionsof software development management. Theformer is about iterative development andbeing flexible, while the latter, promoteingstep-by-step development, requires carefulplanning, and rejects making changes alongthe way.Twenty-three percent of companies realizedthat using principles of both approachescan be more beneficial than choosing one ofthe two. The combination of the traditionalWaterfall project management approach andAgile is called Hybrid.Specialists use advantages of the Agilephilosophy for software development.When it comes to budgeting, planning, andhardware set up, Waterfall works well. On theother hand, by embedding Agile practicesinto a traditional Waterfall work process,companies can increase chances of realizingsuccessful projects. For example, projectplanning can be done in sprints, testingcan be incorporated in development, andfeedback can be gathered regularly. Otherways of modifying the Waterfall modelinclude using Kanban boards and organizingretrospectives.It should be noted that the choice of hybridframework’s features may depend on theproject. The hybrid frameworks not onlyimply using both approaches, depending onthe project phase, but also include optionsto inject Agile practices into a Waterfallprocess.15

Agile Project Management: Best Practices and MethodologiesWhen to use HybridHybrid is an effective solution when product delivery relies on both hardware and software operations.But, there is another reason to choose Hybrid. The situation in which a customer is not satisfied withan unspecified timeframe and budget, as well as the lack of planning, is not rare. Such uncertainty istypical for Agile. In this case, planning, requirements specification, and an application design can beaccomplished in Waterfall. Agile is in place for software development and testing.Bimodal: traditional Waterfall combined with AgileThe Bimodal approach is quite popular: It isestimated that 16 percent of companies choose it.The term “Bimodal IT” was introduced by Gartnerin 2014. Bimodal is the practice of managingtwo separate but consistent styles of work: onefocused on predictability and the other on agility.Mode 1 is traditional; thus, it works perfectly inwell-understood and predictable areas. Accordingto Gartner, it focuses on exploiting what is knownwhile transforming the legacy environment into astate fit for a digital world.Mode 2 involves rapid application development.It is exploratory, nonlinear, and optimized forsolving new problems. Mode 2 is especially usefulfor working on projects that need to be finished asquickly as possible.Both modes require different skills, techniques,and tools. Therefore, two separate work groupsare needed. These teams have two distinct goals— ensuring stability while adopting innovations.Team members focus on projects that suit theirmode best.16The Mode 1 team develops and maintainsapplications and core systems to support longterm business needs. A company’s technologicalcapabilities depend directly on the work that’sdone by this team.The Mode 2 team frequently delivers innovativeapplications to engage new customers and meetshort-term business needs. This team may changethe product’s functionality after having receivedfeedback and analyzed the market.The teams use different delivery mechanisms andreport through different organizational structures.Nevertheless, they need to communicate witheach other to exchange ideas and share results.As Sandy Kemsley specifies, Mode 2 relies onthe information and services infrastructureprovided by Mode 1, while Mode 1 relies on Mode2 for testing both new product ideas and newdevelopment methods that may eventually berolled back into Mode 1.

Agile Project Management: Best Practices and MethodologiesWhen to use BimodalIf the company specializes in both long- and short-term projects that require different developmentand management approaches, Bimodal might be the right choice. This framework is about keepingthe balance between maintaining IT system infrastructure and driving innovations. When successfullyimplemented, Bimodal helps organizations quickly deliver solutions that users need to stay competitive.Lean: Eliminating Waste in Software EngineeringAccording to the latest estimates, 17 percentof organizations adopt Lean. Its popularitydecreased from 2015 to 2016. Nevertheless, thisframework remains one of the 5 most widelyused Agile frameworks.Having the same originsas Kanban, the approach started as a techniqueapplied to physical manufacturing. It stemmedfrom Toyota Production System as a managementapproach aimed at “making the vehicles ordered bycustomers in the quickest and most efficient way, inorder to deliver the vehicles as quickly as possible.”The application of Lean principles to softwaredevelopment was initially introduced by Mary andTom Poppendieck in their book Lean SoftwareDevelopment: An Agile Toolkit. It includes the 7basic principles: Eliminate waste Amplify learning and createknowledge Decide as late as possible Deliver as fast as possible Empower the team Build integrity/quality in See the wholeNow let’s have a closer look at these principles.Eliminating waste. In terms of a project, a term“waste” refers to anything that is not addingthe value to the project and thus should beeliminated. In software engineering, this can beidle time, unnecessary features, or defects.Amplify learning and create knowledge. InLean, software development is perceived asan ongoing learning process. Developers don’tusually write clear code on the first try. Afterhaving detected and fixed errors, they writean improved variation of the previous code.Engineers gain knowledge during development bysolving problems and producing code variations.So, the best way to improve the softwaredevelopment environment is to amplify learning.Decide as late as possible. Late decisions aremore informed ones because they are basedon facts. Keeping in mind that technologiesbecome obsolete increasingly faster, delayingan irreversible design decision is a wise move. Amajor strategy for making commitments late is toreserve the capacity for the change in the system.Deliver as fast as possible. The fourth principleis about the pros of fast software development.Short development cycles allow developers tolearn more by getting feedback.17

Agile Project Management: Best Practices and MethodologiesThey also allow a customer to delay making afinal decision about design until they know more.So, fast delivery helps eliminate waste.Empower the team. Developers should havethe right to make technical decisions as theyunderstand the details of their work like no oneelse. They can create a roadmap and follow it.any other Agile approach, the working productincrement is delivered at the early stages ofdevelopment. The further progress dependslargely on the product owner’s feedback.What differentiates Lean approach is thatthe team is not restricted to use any formalprocesses, such as recurring meetings orBuild in integrity/quality. The user’s perceptionof the software and its characteristics mustcoincide. If a customer thinks that software hasall the needed features and is easy to use, thatsystem has a perceived integrity. Conceptualintegrity means that the software has a coherentarchitecture, and scores high on usabilityand fitness of purpose. It can be maintained,adapted, and extended.See the whole. Engineers should take charge ofthe overall efficiency of the system, instead offocusing on their small portion. If experts adhereto this principle, they can create a system withintegrity.These fundamentals perfectly describe Leanphilosophy: its aim is to deliver more valuethrough less effort, investment and time.Lean software development is an iterativeand incremental framework. Therefore, as in18thorough task prioritization.When to use LeanLean allows companies to follow a minimumviable product (MVP) development technique.It includes a deployment of a product with aminimum, sufficient set of features to satisfyearly users. The idea of the MVP strategy isto gather and analyze customer feedback toknow if they like this product and want to buyit. Knowledge of a customers’ habits, tastes,and needs is the key to producing commerciallysuccessful products. Developers use feedback tocreate a roadmap for future development.Lean works well for small, short-term projectsdue to their short life cycles. This approach isalso appropriate if the customer can participatein a project realization as Lean requires ongoingfeedback. Another important condition to theadoption of Lean is the whole team should workin one office to enable communication.

Agile Project Management: Best Practices and MethodologiesLean works well for small, short-term projectsdue to their short life cycles. This approach isalso appropriate if the customer can participatein a project realization as Lean requires ongoingfeedback. Another important condition to theadoption of Lean is the whole team should workin one office to enable communication.Being effectively adopted by a vast number ofmanufacturing companies, like Nike, Ford andIntel, Lean principles are widely used in otherindustries. Startups and successful companies,e.g. Corbis, PatientKeeper, and Xerox, apply Leansoftware engineering practices to their processes.Extreme Programming: Engineering Practices For WritingExtreme Programming (XP) differs from theabove-mentioned frameworks by its focus ontechnical aspects of software development. XP isused at 9 percent of companies.It combines the most essential, providing agileteams with a number of tools to optimize theengineering process. Extreme Programming isa set of certain practices, applied to softwareengineering in order to improve its quality andability to adapt to the changing requirements.XP requires developers to perform a littlenumber of engineering practices on the highest,almost extreme level possible, hence the name.XP was introduced in the 1990s. Kent Beck, oneof the initial signatories of the Agile Manifesto,invented it while working on a ChryslerComprehensive Compensation System project.He aimed at finding ways of doing sophisticatedtasks as expeditiously as possible. In 1999, hedocumented XP practices in the book ExtremeProgramming Explained: Embrace Change. Themost commonly usedXP practices are: Test-Driven Development (TDD) Refactoring Continuous Integration Pair ProgrammingTest-Driven Development is an advancedengineering technique that uses automatedunit tests to propel software design process.As opposed to the regular development cycle,where the tests are written after the code (or notwritten at all), TDD has a test-first approach. Thismeans t

Agile Project Management: Best Practices and Methodologies 1. The Art of Project Management 1.1 Project Management Phases 2. Traditional Project Management Methodologies 3. Agile Project Management Methodology 4. Agile Frameworks 5. Scrum: roles, sprints and artifacts 5.1 Sprints