Agile Workshop: Releasing Quality Software

1,216 views

Published on

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,216
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
62
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Agile Workshop: Releasing Quality Software

  1. 1. Chennai Agile Workshop 20th March 2009 Releasing Quality Software By Balaji D Loganathan Agile Java Architect and Co-Founder, Spritle SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  2. 2. About the Speaker Agile Java Architect and Co-Founder,  Spritle Software –A recent Startup Around 10 years of experience in IT Field  6 years of experience in enterprise Java  5 years of service to United Nations, Swiss  B.E / India; Master’s in IT / Australia  Moderator at Javaranch  UNeDocs India Focal Point  Certified SCRUM Master and Agile  Practitioner SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  3. 3. Agile Quality Can Agile software development techniques and practices delivers quality software than the traditional software teams ? Can Agile helps me to cut cost spent on Quality checking ? SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  4. 4. What is ‘Quality Software’ ?  In the context of software engineering, software quality measures how well software is designed (quality of design), and how well the software conforms to that design (quality of conformance), although there are several different definitions. [Source: Wikipedia]  Steve McConnell’s Code Complete divides software as “Internal and External Quality Characteristics”  Dr. DeMarco says “a product’s quality is a function of how much it changes the world for the better – In other words User Satisfacation ” SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  5. 5. Quality in Agile – What ?  Agile Manifesto  Working software over comprehensive documentation  Agile Principles  Working software is the primary measure of progress.  Continuous attention to technical excellence and good design enhances agility.  The best architectures, requirements, and designs emerge from self-organizing teams. SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  6. 6. Quality in Agile – How ? Incremental delivery Continuous Quality Assurance Test Driven Development Refactoring Continuous Integration SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  7. 7. Incremental Delivery - I Picture taken from http://epf.eclipse.org/wikis/scrum/ SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  8. 8. Incremental Delivery - II Set Quality with ‘Definition of Done’  Code produced (all 'to do' items in code completed)  Code commented, checked in and run against current version in source control  Builds without errors  Unit tests written and passing  Deployed to system test environment and passed system tests  Passed UAT (User Acceptance Testing) and signed off as meeting requirements  Any build/deployment/configuration changes implemented/documented/communicated  Relevant documentation/diagrams produced and/or updated  Remaining hours for task set to zero and task closed SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  9. 9. Incremental Delivery - III Scope of ‘Done’ changes Source: Kent’s Presentation SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  10. 10. Incremental Delivery - Benefits Faster ROI from deployment of more valuable software Frequent releases helps understand requirements better and implement valuable piece of the product Lower cost of quality The earlier we catch bugs, the less they cost to fix SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  11. 11. Test Driven Development - I Design TEST TEST Implement SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  12. 12. Test Driven Development - II SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  13. 13. Test Driven Development - III Refactoring • “change to the internal structure of software to make it easier to understand and cheaper to change, WITHOUT changing the observable behaviour” (Martin Fowler, 1999) Code smells Duplicated Code Long Method Long Loop Extract Method SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  14. 14. Test Driven Development - Benefits  Stability  Accountability  Improvement in code quality  Ease of maintenance  Reduced bugs  Ease of upgrade  Reduces production ‘surprises’  Higher developer confidence  Separated Concerns SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  15. 15. Continuous Integration - I Automated Build and Test as Changes Occurs The CI Server sits on a clean, non- developer machine and rebuilds your project every time someone commits new changes May include “Agile Metrics” SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  16. 16. Continuous Integration - II Source http://blog.briandicroce.com/2008/03/ SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  17. 17. Continuous Integration - III SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  18. 18. Continuous Integration - Benefits  Early detection of errors  Reducing slipping of schedule caused by significant time losses  Reducing and oftentimes eliminating loss of productivity caused by code base breakage  Increasing team morale and helping to maintain capable engineers on board  Reducing development time and hitting the market before competitors SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  19. 19. What can affect Quality in Agile ? Overtime and Weekends Cut Testing (unit, acceptance, performance) Cut review (design, code) Don’t follow standards No refactoring SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  20. 20. Agile Quality - Implications  Greater quality implies less need for quality assurance activities  Evolving Artifacts  Multi-Skilled Team  Agile shifted our attention to small teams incrementally delivering quality software • Testing at the end is no longer applicable SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  21. 21. Agile Quality - Areas  Phases  Release Cycles  Iteration Cycles  Development Cycles  Types: Engineering Testing (Unit and Integration)  User Functionality Testing  Acceptance Testing  Regression Testing  Exploratory Testing  Performance and Scalability Testing  SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com
  22. 22. Thank You Question ? Balaji D Loganathan, Spritle Software bloganathan@spritle.com SPRITLE Software (P) Limited http://www.spritle.com Your partner in Distributed Agile info@spritle.com

×