Agile Simplified

5,390 views

Published on

An introduction to Agile Software Development.

Published in: Technology

Agile Simplified

  1. 1. Software Development By: Walaa Mohamed Atef
  2. 2. Understand modern techniques of Software development  Learn the best practices implementing those techniques  Know how to manage software projects to deliver on time with best  quality.
  3. 3. Flexible / Agile…. 
  4. 4. Planning Analysis Requirements Definition Design Development Integration & Test Operation & Maintenance
  5. 5. Whole project planned up-front  Doesn’t handle change very well  Requirements specifications are an abstraction and can be interpreted  differently Business engagement is high at the start of the project but then tapers  off Insufficient testing during development  Late integration  QA is trailer-hitched, so quality isn’t baked in and testing gets crunched  at the end Progress measured by task % complete  Often don’t know until it’s too late 
  6. 6. An alternative way of managing software projects  With different values and principles to traditional development  Incremental, iterative and collaborative, rather than distinct stages 
  7. 7. Agile software development refers to a group of software development methodologies that are based on similar principles. Agile methodologies generally promote: A project management process that encourages frequent inspection and  adaptation. A leadership philosophy that encourages team work, self-organization  and accountability. A set of engineering best practices that allow for rapid delivery of high  quality software. A business approach that aligns development with customer needs and  company goals.
  8. 8. We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools  Working 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.
  9. 9. Working software is delivered frequently (weeks rather than months)  Customer satisfaction by rapid, continuous delivery of useful software  Working software is the principal measure of progress  Simplicity  Self-organizing / Cross-functional small teams  Regular adaptation to changing circumstances  Co-location (Face-to-face conversation is the best form of  communication) Close, daily cooperation between business people and developers  Projects are built around motivated individuals, who should be trusted  Continuous attention to technical excellence and good design 
  10. 10.  Vary Scope to deliver on time and on Budget.  Never Compromise on Quality
  11. 11. Whole project planned up-front  Doesn’t handle change very well  Requirements specifications are an abstraction and can be interpreted  differently Business engagement is high at the start of the project but then tapers  off Insufficient testing during development  Late integration  QA is trailer-hitched, so quality isn’t baked in and testing gets crunched  at the end Progress measured by task % complete  Often don’t know until it’s too late 
  12. 12. Incremental approach breaks complex projects down into simpler mini-  projects Accommodates change easily  Improves ROI through frequent and regular delivery of value to the  business Increased business involvement and satisfaction  Increased visibility (progress, obstacles, risks, etc)  Lower development risk, higher quality, less defects  Shorter cycles produce working software and incremental product  quickly Progress measured by running tested software  Early and regular process improvement driven by frequent inspection 
  13. 13. Extreme Programming (XP)  Crystal Clear  Adaptive Software Development (ASD)  Scrum  Feature Driven Development (FDD)  Dynamic Systems Dev Method (DSDM)  Test-driven Development  Lean  Custom 
  14. 14. “DONE” or “NOT DONE”  Avoids de 90% Syndrome  Code produced, commented, checked in and run against current version  in source control and meeting development standards Peer reviewed (or produced with pair programming)  Builds without errors  Unit tests written and passing (TDD)  Deployed to system test environment and passed system tests  Passed UAT (User Acceptance Testing)  Any build/deployment/configuration changes  implemented/documented/communicated Relevant documentation/diagrams produced and/or updated  Paranoid Compliant 
  15. 15. Revenue  Speed to market  Quality  Flexibility / agility  Right product  Visibility  Cost control  Customer satisfaction  Less risk  More motivating! 
  16. 16. Top 5 reasons why projects fail: Lack of end-user involvement / Poor Communication  Incomplete requirements and specifications  Lack of change management / Scope Issues  Inadequate testing  Integration 
  17. 17. The Customer is the King  Requirements Are Written As Acceptance Tests Before Any Code Is  Written... Nothing Is Carved In Stone, Except For The Delivery Date...  Tests Are Written Before Code Is Written And Testing Is Automated...  Early and frequent releases… 
  18. 18. Advices:  Collaborate Daily  Iterative Development  Daily Builds  Daily Stand-Ups  Frequent Releases Tips:  Make quick small decisions  Working code beats everything  Make it run, make it right, make it fast.
  19. 19. ?
  20. 20. Agile Software Development with Scrum by Ken Schwaber and Mike Beedle  Agile Project Management with Scrum by Ken Schwaber  Lean software development by Mary Poppendieck  Agile and Iterative Development: A Manager’s Guide by Craig Larman  Agile Estimating and Planning by Mike Cohn  Agile Retrospectives by Esther Derby and Diana Larsen  Scrum and The Enterprise by Ken Schwaber  Practices of an Agile Developer by Venkat Subramaniam and Andy Hunt  Test Driven Development by Example by Kent Back  Introduction to Agile and Scrum (presentation) by Simon Baker 
  21. 21. E-mail: walaaatef@hotmail.com  Blog: http://walaapoints.blogspot.com  Online profile: http://www.linkedin.com/in/walaa 

×