Riding the Agile Wave

Download Riding the Agile Wave

Post on 06-May-2015

414 views

Category:

Technology

1 download

DESCRIPTION

Presented by Ms Swarnalatha Ashok at SCS TRENDS Seminar: Demystifying Myths of Agile Development on 10 Jan 2014

TRANSCRIPT

  • 1.RIDING THE AGILE WAVESWARNALATHA ASHOK (swarna@nus.edu.sg) Chief (Advanced Software Design and Development Practice) Institute of Systems Science National University of Singapore 10 January 2014 1 2014 National University of Singapore. All Rights Reserved.

2. OBJECTIVES Highlight the philosophy of Agile Software Development Importance of Agile Software Engineering practices TOPICS The Agile Philosophy The Agile Manifesto Agile Methods Ensuring quality Software Engineering practices 2014 National University of Singapore. All Rights Reserved.2 3. WHAT IS AGILITY? 2014 National University of Singapore. All Rights Reserved.3 4. THE AGILE PHILOSOPHY Response to unclear and changing requirementsFrequent customer interaction and collaboration Frequent delivery of quality products Iterative application of supporting processes Customer Satisfaction is the focus! 2014 National University of Singapore. All Rights Reserved.4 5. THE AGILE MANIFESTO Individuals and interactionsoverProcess and toolsWorking softwareoverComprehensive documentationCustomer collaborationoverContract negotiationResponding to changeoverFollowing a plan Source: www.agilemanifesto.org 2014 National University of Singapore. All Rights Reserved.5 6. Agile Mindset Happy Customer Quality software 2014 National University of Singapore. All Rights Reserved.6 7. TRADITIONAL VS AGILE - PEOPLE Managers Workers Cubicles/roomsvsFacilitators Collaborators Collocated Work roomsDirected Progress reportvsAutonomous Event-based intimationAppraisal Seniority TrainingvsReflection Competence MentoringTrust is the central theme! 2014 National University of Singapore. All Rights Reserved.7 8. TRADITIONAL VS AGILE - PROCESSES Rule-based Rigid Plans ScheduledvsLinear process Change management a separate process Quality Assurance Linear testingGoal-based Iteration guide Time BoxedvsIterative process Process designed for Change ManagementvsPeer Reviews Test-driven DevelopmentQuality is the central theme! 2014 National University of Singapore. All Rights Reserved.8 9. TRADITIONAL VS AGILE ARTIFACTSCustomer requirements DeliverablesvsCustomer Needs Business ValueBaseline Design Critical PathvsEvolving Design Prioritized listValue to the Customer is the central theme! 2014 National University of Singapore. All Rights Reserved.9 10. AGILE MISCONCEPTIONS No planning No tracking progress Planning is done for iterations and are flexible with the Goal in mind Event based reporting and frequent reviewsNo documentation Document only that has value 2014 National University of Singapore. All Rights Reserved.10 11. AGILE MISCONCEPTIONS No business analyst Business Analyst is the voice of the customer Involved throughout the project Easier for the customer Customer involvement is more frequent Customer collaboration is vital to the success 2014 National University of Singapore. All Rights Reserved.11 12. AGILE MISCONCEPTIONS No testers Developers and testers work together Test driven development Requirements are never baselined True! Process embraces change 2014 National University of Singapore. All Rights Reserved.12 13. Agile Mindset Happy Customer Quality software 2014 National University of Singapore. All Rights Reserved.13 14. AGILE SOFTWARE DEVELOPMENT FRAMEWORKS ScrumFeature Driven Development (FDD)Dynamic Systems Development Methodology (DSDM)Others 2014 National University of Singapore. All Rights Reserved.14 15. SCRUM MANAGEMENT DRIVENRequirements Management Release Management Monitoring 2014 National University of Singapore. All Rights Reserved.Source: Scrum Primer15 16. FEATURE DRIVEN DEVELOPMENT DERIVED FROM TRADITIONAL METHODSManagement and Development focused Object oriented, unit testing, design sessions, code reviews Design first, upfront planSource: http://www.skillresource.com 2014 National University of Singapore. All Rights Reserved.16 17. DYNAMIC SYSTEM DEVELOPMENT METHOD PROJECT MANAGEMENT AND DELIVERYManagement and Delivery Functional Model Iteration Design and Build iteration Source: http://www.dsdm.org 2014 National University of Singapore. All Rights Reserved.17 18. AGILE SOFTWARE DEVELOPMENT FRAMEWORKS COMMON CHARACTERISTICS Working software Quality drivenShort iterations Regular feedback loops People centricCustomer focus Embrace Change Timeboxing Team activityNeeded DocumentationDoes this mean quality is designed in? 2014 National University of Singapore. All Rights Reserved.18 19. Agile Mindset Happy Customer Quality software 2014 National University of Singapore. All Rights Reserved.19 20. ESSENTIAL AGILE ENGINEERING PRACTICES Essential Agile Software Engineering (SE) practices Agile Architecture & Use of Design patterns Refactoring techniques Test Driven Development Continuous Integration and Delivery Pair ProgrammingStakeholders supportWell disciplined team agile SE knowledge Organisation culture with quality sense 2014 National University of Singapore. All Rights Reserved.20 21. AGILE ARCHITECTURE & DESIGN PATTERNS An Architecture that supports change, end-user interaction, discovery, and ease of comprehension (of functionality) - Jeff SutherlandLeverage on Architectural and design patterns Complete reference models and frameworks Iterations dedicated to architecture is useful Document only that is needed (use diagrams, metaphors etc.) 2014 National University of Singapore. All Rights Reserved.21 22. AGILE ARCHITECTURE & DESIGN PATTERNS Develop Initial Software ArchitectureCommunicate with Stake HoldersIf required, dedicate a short iteration to prototype the architectureModelsKeep it SimpleWork with DevelopersFeedback LoopRefine the ArchitectureIncremental Evolution of Software ArchitectureSource: Scott W Amber 2014 National University of Singapore. All Rights Reserved.22 23. REFACTORING TECHNIQUES "Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure." - Martin FowlerImprove the design and code Clean up the mess in the code Find bugs and Reduce debugging time Prevent design decay 2014 National University of Singapore. All Rights Reserved.23 24. Ensure all tests passFind code that smellsDetermine refactoringEnsure all tests still passRefactor the code and/or designTest Driven Development (TDD)REFACTORING TECHNIQUESShould be done in conjunction with: Test Driven Development Continuous Integration Pair-Programming Dedicate a small duration every day/beginning of an iteration 2014 National University of Singapore. All Rights Reserved.24 25. TEST DRIVEN DEVELOPMENT Goal of Test Driven Development (TDD) is to produce clean code that works TDD = Refactoring + Test First Development (TFD) i.e write the tests first before developingCan be done at Unit Test level and also Acceptance Test level 2014 National University of Singapore. All Rights Reserved.25 26. TEST DRIVEN DEVELOPMENT In conjunction with Continuous Integration Pair Programming Tools and Unit testing frameworks Test cases are written first and according to what is actually expected Estimation should includes efforts for TDD 2014 National University of Singapore. All Rights Reserved.26 27. PAIR PROGRAMMING The goals of pair programming Ensures higher quality of code To facilitate knowledge transfer Eliminate the truck factorHigher discipline in software engineering practices 2014 National University of Singapore. All Rights Reserved.27 28. PAIR PROGRAMMING Mistakes get caught upfront shorter time-to-repairEnd defect content is statistically lower (~15-50% gains) Work in pairs for critical modules Challenges: Personalities of the developers Off-the track discussions Support from stakeholders 2014 National University of Singapore. All Rights Reserved.28 29. CONTINUOUS INTEGRATION Goal of Continuous Integration and Delivery is to produce working software Your software is broken until someone proves it works, usually at the integration state.IntegrateIntegrateIntegrateIntegrateIntegrateIntegrateIntegrateIntegrateIntegration proves it works, why not do it every time some change is made? 2014 National University of Singapore. All Rights Reserved.29 30. CONTINUOUS INTEGRATION Version ControlTeam Agreement & CommitmentAutomated BuildFrequent check-ins to Version Control system Including source code, test scripts etc. Automate TDD Automate Build 2014 National University of Singapore. All Rights Reserved.30 31. CONCLUSION Agile Mindset Individuals and interactionsAgile MethodsWorking softwareAgile SE practicesCustomer collaborationAgile MethodsResponding to changeAgile SE practices 2014 National University of Singapore. All Rights Reserved.31 32. Agile MindsetCONCLUSIONHappy Customer Quality software 2014 National University of Singapore. All Rights Reserved.32 33. The Institute of Systems Science (ISS) of the National University of Singapore (NUS) provides IT graduate education and professional development courses to develop infocomm leaders and drive business and organisation innovation. The institute is endorsed by leading international and local accreditation and certification bodies to deliver programmes that lead to recognised certifications and qualifications. OUR MISSION Developing Infocomm Leaders, driving Innovation.We Inspire and prepare infocomm leaders to innovate over the course of their professional careers.OUR VISION Providing Thought-Leadership in Innovation.33 2014 National University of Singapore. All Rights Reserved. 34. NICF Agile Courses (http://www.iss.nus.edu.sg/ProfessionalCourses/Agile.aspx 34 2014 National University of Singapore. All Rights Reserved. 35. Our Programmes and Services Management & Professional Programmes IT Service ManagementBusiness AnalysisNew MediaIntelligent SystemsProcess & Quality ManagementIT Project ManagementService InnovationAdvanced Software Design & DevelopmentIT Risk ManagementStrategic IT ManagementSenior Executive Programmes e-Government Leadership Programme (eGL)Graduate Programmes Graduate Diploma in Systems Analysis Masters of Technology (Software Engineering or Knowledge Engineering or Enterprise Business Analytics)Research ServicesConsulting Services 35 2014 National University of Singapore. All Rights Reserved.