0
Chennai Agile Workshop
                   20th March 2009



Releasing Quality Software
                               By
...
About the Speaker
    Agile Java Architect and Co-Founder,


    Spritle Software –A recent Startup
    Around 10 years o...
Agile Quality
Can Agile software development
 techniques and practices delivers
 quality software than the traditional
 s...
What is ‘Quality Software’ ?
 In the context of software engineering, software quality
  measures how well software is de...
Quality in Agile – What ?
 Agile Manifesto

   Working software over comprehensive
    documentation

 Agile Principles...
Quality in Agile – How ?
Incremental delivery
  Continuous Quality Assurance


Test Driven Development
  Refactoring

...
Incremental Delivery - I




                                    Picture taken from http://epf.eclipse.org/wikis/scrum/


...
Incremental Delivery - II
 Set Quality with ‘Definition of Done’
 Code produced (all 'to do' items in code completed)
 ...
Incremental Delivery - III
Scope of ‘Done’ changes




                                                  Source: Kent’s P...
Incremental Delivery - Benefits

Faster ROI from deployment of more
 valuable software
  Frequent releases helps underst...
Test Driven Development - I

                 Design


TEST                                           TEST

              ...
Test Driven Development - II




       SPRITLE Software (P) Limited            http://www.spritle.com
           Your par...
Test Driven Development - III
Refactoring
    • “change to the internal structure of software
      to make it easier to ...
Test Driven Development - Benefits

 Stability
 Accountability
 Improvement in code quality
 Ease of maintenance
 Red...
Continuous Integration - I
Automated Build and Test as
 Changes Occurs
The CI Server sits on a clean, non-
 developer ma...
Continuous Integration - II




                                          Source http://blog.briandicroce.com/2008/03/


 ...
Continuous Integration - III




       SPRITLE Software (P) Limited            http://www.spritle.com
           Your par...
Continuous Integration - Benefits

 Early detection of errors
 Reducing slipping of schedule caused by
  significant tim...
What can affect Quality in Agile ?

Overtime and Weekends
Cut Testing (unit, acceptance,
 performance)
Cut review (desi...
Agile Quality - Implications
 Greater quality implies less need for
  quality assurance activities

 Evolving Artifacts
...
Agile Quality - Areas
 Phases
   Release Cycles
   Iteration Cycles
   Development Cycles
 Types:
      Engineering T...
Thank You



                Question ?




Balaji D Loganathan, Spritle Software
bloganathan@spritle.com
           SPRIT...
Upcoming SlideShare
Loading in...5
×

Agile Workshop: Releasing Quality Software

987

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
987
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
61
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×