agile workshop: releasing quality software

22
SPRITLE Software (P) Limited SPRITLE Software (P) Limited Your partner in Distributed Agile http://www.spritle.com [email protected] Releasing Quality Software Releasing Quality Software By Balaji D Loganathan Agile Java Architect and Co-Founder, Spritle Chennai Agile Workshop 20 th March 2009

Upload: siddhi

Post on 17-May-2015

977 views

Category:

Business


0 download

TRANSCRIPT

Page 1: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Releasing Quality SoftwareReleasing Quality SoftwareBy

Balaji D LoganathanAgile Java Architect and Co-Founder, Spritle

Chennai Agile Workshop20th March 2009

Page 2: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

About the SpeakerAbout 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

Page 3: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Agile Quality 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 ?

Page 4: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

What is ‘Quality Software’ ?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 ”

Page 5: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Quality in Agile – What ?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.

Page 6: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Quality in Agile – How ?Quality in Agile – How ?

Incremental deliveryContinuous Quality Assurance

Test Driven DevelopmentRefactoring

Continuous Integration

Page 7: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Incremental Delivery - IIncremental Delivery - I

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

Page 8: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Incremental Delivery - IIIncremental 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

Page 9: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Incremental Delivery - IIIIncremental Delivery - III

Scope of ‘Done’ changes

Source: Kent’s Presentation

Page 10: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Incremental Delivery - BenefitsIncremental Delivery - Benefits

Faster ROI from deployment of more valuable softwareFrequent releases helps understand

requirements better and implement valuable piece of the product

Lower cost of qualityThe earlier we catch bugs, the less they

cost to fix

Page 11: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Test Driven Development - ITest Driven Development - I

Design

TEST TEST

ImplementImplement

Design

Page 12: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Test Driven Development - IITest Driven Development - II

Page 13: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Test Driven Development - IIITest 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 smellsDuplicated CodeLong MethodLong LoopExtract Method

Page 14: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Test Driven Development - BenefitsTest Driven Development - Benefits

StabilityAccountabilityImprovement in code qualityEase of maintenanceReduced bugsEase of upgradeReduces production ‘surprises’Higher developer confidenceSeparated Concerns

Page 15: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Continuous Integration - IContinuous 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”

Page 16: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Continuous Integration - IIContinuous Integration - II

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

Page 17: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Continuous Integration - IIIContinuous Integration - III

Page 18: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Continuous Integration - BenefitsContinuous Integration - Benefits

Early detection of errorsReducing 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

Page 19: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

What can affect Quality in Agile ?What can affect Quality in Agile ?

Overtime and WeekendsCut Testing (unit, acceptance,

performance)Cut review (design, code)Don’t follow standardsNo refactoring

Page 20: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Agile Quality - ImplicationsAgile 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

Page 21: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Agile Quality - AreasAgile Quality - Areas

PhasesRelease Cycles Iteration CyclesDevelopment Cycles

Types: Engineering Testing (Unit and Integration) User Functionality Testing Acceptance Testing Regression Testing Exploratory Testing Performance and Scalability Testing

Page 22: Agile Workshop: Releasing Quality Software

SPRITLE Software (P) LimitedSPRITLE Software (P) LimitedYour partner in Distributed Agile

http://www.spritle.com

[email protected]

Thank YouThank You

Question ?

Balaji D Loganathan, Spritle [email protected]