Riding the Agile Wave
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
604
On Slideshare
597
From Embeds
7
Number of Embeds
2

Actions

Shares
Downloads
10
Comments
0
Likes
0

Embeds 7

https://twitter.com 6
http://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. RIDING THE AGILE WAVE SWARNALATHA 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 requirements Frequent 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 interactions over Process and tools Working software over Comprehensive documentation Customer collaboration over Contract negotiation Responding to change over Following 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/rooms vs Facilitators Collaborators Collocated Work rooms Directed Progress report vs Autonomous Event-based intimation Appraisal Seniority Training vs Reflection Competence Mentoring Trust is the central theme! © 2014 National University of Singapore. All Rights Reserved. 7
  • 8. TRADITIONAL VS AGILE - PROCESSES Rule-based Rigid Plans Scheduled vs Linear process Change management – a separate process Quality Assurance Linear testing Goal-based Iteration guide Time Boxed vs Iterative process Process designed for Change Management vs Peer Reviews Test-driven Development Quality is the central theme! © 2014 National University of Singapore. All Rights Reserved. 8
  • 9. TRADITIONAL VS AGILE – ARTIFACTS Customer requirements Deliverables vs Customer Needs Business Value Baseline Design Critical Path vs Evolving Design Prioritized list Value 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 reviews No 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  Scrum  Feature Driven Development (FDD)  Dynamic Systems Development Methodology (DSDM)  Others © 2014 National University of Singapore. All Rights Reserved. 14
  • 15. SCRUM – MANAGEMENT DRIVEN Requirements Management Release Management Monitoring © 2014 National University of Singapore. All Rights Reserved. Source: Scrum Primer 15
  • 16. FEATURE DRIVEN DEVELOPMENT – DERIVED FROM TRADITIONAL METHODS Management and Development focused Object oriented, unit testing, design sessions, code reviews Design first, upfront plan Source: http://www.skillresource.com © 2014 National University of Singapore. All Rights Reserved. 16
  • 17. DYNAMIC SYSTEM DEVELOPMENT METHOD – PROJECT MANAGEMENT AND DELIVERY Management 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 driven Short iterations Regular feedback loops People centric Customer focus Embrace Change Timeboxing Team activity Needed Documentation Does 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 Programming Stakeholders‟ support Well 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 Sutherland Leverage 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 Architecture Communicate with Stake Holders If required, dedicate a short iteration to prototype the architecture Models Keep it Simple Work with Developers Feedback Loop Refine the Architecture Incremental Evolution of Software Architecture Source: 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 Fowler Improve 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 pass Find code that smells Determine refactoring Ensure all tests still pass Refactor the code and/or design Test Driven Development (TDD) REFACTORING TECHNIQUES Should 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 developing Can 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 factor‟ Higher discipline in software engineering practices © 2014 National University of Singapore. All Rights Reserved. 27
  • 28. PAIR PROGRAMMING  Mistakes get caught upfront  shorter time-to-repair End 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. Integrate  Integrate Integrate Integrate Integrate Integrate Integrate Integrate Integration 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 Control Team Agreement & Commitment Automated Build Frequent 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 interactions  Agile Methods Working software  Agile SE practices Customer collaboration  Agile Methods Responding to change  Agile SE practices © 2014 National University of Singapore. All Rights Reserved. 31
  • 32. Agile Mindset CONCLUSION Happy 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 Management  Business Analysis  New Media  Intelligent Systems  Process & Quality Management  IT Project Management  Service Innovation  ► Advanced Software Design & Development IT Risk Management  Strategic IT Management Senior 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 Services ► Consulting Services 35 © 2014 National University of Singapore. All Rights Reserved.