AnIntroduction to Agile Adrian Smith @adrianlsmith Engineering Innovation.
State of the IT IndustrySuccessful means on-time, on-budget, and with all features and functions asdeﬁned in the initial scopeChallenged means late, over budget, and/or with less features and functions thandeﬁned in the initial scopeFailed means cancelled prior to completion, or delivered but never used.Source: 2009 Chaos Report - Standish Group http:// www.agileengineeringdesign.co Engineering Innovation.
Inﬂuencing Factors Success Factors Failure Factors1. User Involvement 1. Incomplete Requirements2. Executive Management Support 2. Lack of User Involvement3. Clear Statement of Requirements 3. Lack of Resources4. Proper Planning 4. Unrealistic Expectations5. Realistic Expectations 5. Lack of Management Support6. Smaller Project Milestones 6. Changing Requirements7. Competent Staff 7. Lack of Planning8. Ownership 8. Didn’t Need It Any Longer9. Clear Vision & Objectives 9. Lack of IT Management10. Hard-Working, Focused Staff 10. Technology IlliteracySource: 2009 Chaos Report - Standish Group http:// www.agileengineeringdesign.co Engineering Innovation.
Nature of Software Development Software development and implementation is a Complex Process as distinct from a Deﬁned Process. Deﬁned Process Complex Process Repeatable Sensitive to Input Predictable Variation Low Noise Levels Not Repeatable Non Linear Feedback Example: Baking a cake Example: Driving a car http:// www.agileengineeringdesign.co Engineering Innovation.
Traditional Methods• Waterfall Methodology• Traditional (waterfall) development methodologies rely on signiﬁcant up-front planning that ideally captures and understands all requirements in detail.• Require a deﬁned Process• Difﬁcult to include change• Deliver beneﬁts at end of process http:// www.agileengineeringdesign.co Engineering Innovation.
Traditional Traditional vs Agile Plan Analysis Design Develop Test Deploy Operate Beneﬁt Return Investment Cost Late ROI Analysis Analysis Analysis Develop Develop Develop Deploy Deploy Deploy Design Design Design Plan Plan Plan Test Test Test OperateAgile Beneﬁt Return Investment Cost Early ROI Engineering Innovation.
Agile MethodsAgile is an umbrella term for a set of values,principles and practices. Management! Practices! Technical! Social/Team! Practices! Practices! Increase Value Values &! Principles! Reduce Risk Manage Complexity Empirical control, Continuous monitoring, Heuristics Engineering Innovation.
Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: TextIndividuals and interactions over processes and toolsWorking software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. http:// www.agileengineeringdesign.co Engineering Innovation.
Agile Foundation AGILE TECHNICALAGILE TEAM PRACTICESPRACTICES Test-Driven Development Continuous IntegrationColocation Automated DeploymentDaily Stand Ups Incremental Design and ArchitectureIteration Planning Acceptance Test-Driven DevelopmentCustomer Showcase RefactoringRetrospective Technical SpikesAdaptive Release Plan Exploratory TestingCross-Functional Team Collective Code OwnershipRequirements as Stories Deﬁnition of DonePlanning/Story Wall Ubiquitous LanguageInformative Workspace PRACTICESBurn Up/Down ChartsParking Lot DiagramsSuccess SlidersPlanning Poker AGILE PRINCIPLES Simplicity PRINCIPLES Transparency Frequent Delivery Customer Involvement Technical Excellence Team Work AGILE VALUES VALUES Self Organisation Emergent Design Working Deliverables Continuous Improvement Human Interactions Sustainable Pace Customer Collaboration Responding to Change Engineering Innovation.
Agile Delivery ApproachAssess Plan Deliver Deploy ITERATION ITERATION Assess Plan and ITERATION technical reﬁne the Deploymentfeasibility and proposed idea Iterative development of working Go Go Go and delivery of high business No-Go and prepare for No-Go No-Go software into value of development quality working production proposed software environments idea 5% 10% 80% 5% Engineering Innovation.
Release Agile Delivery Layers Release Planning Iteration 1 Iteration 2 Iteration 3 ... Iteration n ReleaseIteration Iteration Planning Daily Work Daily Work Daily Work ... Daily Work Customer Showcase Team RetrospectiveDay Stand Up Team Task Team Task Team Task ... Team Task Update Progress
Does Agile Work? Co-Located Projects of Equivalent Team Size (Average project size 500,000 lines of new and existing code) Data based on Industry Average Agile Average Difference the comparison Project Value (million) $3.5 $2.2 $1.3 of 7,500 projects Schedule (months) 12.6 7.8 4.8 completed Defects during QA 242 121 50% worldwide Stafﬁng 35 35 0 Distributed Projects of Equivalent Value (Average project size 700,000 lines of new and existing code) Industry Average Agile Average Difference Project Value $5.5 $5.2 $0.3 (million) Schedule 15 6.3 8.7 (months) Defects during QA 713 635 11% Stafﬁng 40 92 52Source: Michael Mah - Cutter Consortium http:// www.agileengineeringdesign.co Engineering Innovation.
Requirements as Stories FRONTA story is a multi-purpose Points User Story:artefact used to collaterequirements and facilitate As a... user ( of the system)planning and tracking of the I want... (a particular facility)project So that... (I receive some beneﬁt)Story is written fromperspective of the user in BACKsimple language Acceptance Criteria:Acceptance criteria ensures Given... (a particular scenario)clear deﬁnition of done When... (I perform some action) Then... (I expect some outcome)Additional details may becaptured in electronic system http:// www.agileengineeringdesign.co Engineering Innovation.
Iteration Planning Backlog To Do Doing Done 2 2 Prioritised by Value User Story User Story 4 4 User Story User Story 8 8 User Story User StoryPrioritised by Value 1 1 User Story User Story 4 4 User Story User Story 2 User Story User Story ? Iteration planning is the process of agreeing and ? planning work for the coming iteration User Story User Story ? Amount of work planned is based on evidence of past iterations http:// www.agileengineeringdesign.co Engineering Innovation.
Daily Stand Up MeetingsStand up meetingsencouragecommunication,collaboration andearly identiﬁcation ofrisks within the teamParticipants discuss: 1. Work completed 2. Work planned 3. Issues and risks Meetings are held near planning wall and updates are typically made during the meetingMeetings are to create shared understandingtypically daily andinvolve the wholeteam http:// www.agileengineeringdesign.co Engineering Innovation.
Planning Wall / Workspace Backlog To Do Doing Done 2 2 2 2 Prioritised by Value User Story User Story User Story User Story 4 4 4 4 User Story User Story User Story User Story 8 8 8 8 User Story User Story User Story User StoryPrioritised by Value 1 1 1 User Story User Story User Story 4 4 User Story User Story 2 User Story User Story ? Planning walls create an informative workspace ? and demonstrate progress of work User Story User Story ? Progress of work through iteration is measured to provide feedback http:// www.agileengineeringdesign.co Engineering Innovation.
Customer Showcase Iteration Update Progress Update What Next?• What did we achieve • How far are we thru the • Focus for next iteration• Demo / show work work / project based on customer completed • What is the path to feedback• What issues did we face completion • Key milestones http:// www.agileengineeringdesign.co Engineering Innovation.
Retrospectives Worked Could Work Questions/ Well Better Issues/Risks Determine root cause and create actions Celebrate Clarify or addressRetrospectives are Actions forthe basis for Improvement Incorporate actionscontinuous in next iterationimprovement http:// www.agileengineeringdesign.co Engineering Innovation.
Agile AdoptionPeople Learn in a 3-Stage Progression Shu - Follow Learn and practice the techniques Ha - Break Away Collect additional techniques Ri - Fluent Blend and develop new techniques Engineering Innovation.
Agile Adoption Risks1. Agile methods are easily misunderstoodAgile practices are like any other practices; they’re learned through example,application, and training. However, if the practices are disconnected from theprinciples and values they just won’t work.2. Organisational change is hardAdopting Agile within a team or organisation requires change that is receiveddifferently by different people. Some are early adopters, the majority are reluctantand some are resistant.3. Agile methods make value visibleUnlike the complex, bureaucratic waterfall organisation, which is opaque, if someonein an Agile team/project is not contributing, the fact will become obvious—and fast. Engineering Innovation.
Common Smells New FunctionalityUnacceptable Takes Too Long Quality Us vs Them Features Not Used by What Customer? Customer Post-Development Hardening Required Development Costs Are Too High Lack of Visibility Large Number Resources Dedicated of Defects to Multiple Projects Engineering Innovation.
Fixing Smells Smell Agile Practice Test-driven Development, Continuous Integration, Refactoring,Unacceptable quality Simple DesignNew functionality take Simple Design, Refactoring, Test-driven development,too long to implement Continuous integrationFeatures not used by Customer Collaboration, Requirements as StoriescustomerDevelopment costs Simple Design, Refactoring, Collective Code Ownership, Test-are too high Driven DevelopmentUs verse Them Customer Collaboration, Requirements as StoriesCustomers ask for Customer collaboration, Requirements as Storieseverything http:// www.agileengineeringdesign.co Engineering Innovation.
Beneﬁts of Agile1. Improve DeliveryCreates consistent and predictable deliveryof work based on evidence 2. Reduce Costs Eliminate wasteful and inefﬁcient processes that add complexity and cost3. Continuous ImprovementFocus of technical excellence and regular inspectionand improvement of practices 4. Competitive Advantage Capitalise of market changes and opportunities by being able to rapidly respond to change5. Great Place to WorkA focus of social and team centric practicesimprove the working environment Engineering Innovation.
Agile as a Strategy Principles! Strategies!Respond to Change! Engage Customers!Early and Frequent Delivery! Timely Delivery! Goal! MaximizeHuman/Team Centric Market Methods! Motivated Team! Opportunities and Revenue"Technical Excellence! Valuable! Features!Process Innovation! Process Innovation! Engineering Innovation.
Insanity: Doing thesame thing over andover again andexpecting differentresults
Thank YouAn Introductionto Agile Dr Adrian Smith @adrianlsmith Engineering Innovation.