agile workshop: releasing quality software

Post on 17-May-2015

977 Views

Category:

Business

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

http://www.spritle.com

info@spritle.com

Releasing Quality SoftwareReleasing Quality SoftwareBy

Balaji D LoganathanAgile Java Architect and Co-Founder, Spritle

Chennai Agile Workshop20th March 2009

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

http://www.spritle.com

info@spritle.com

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

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

http://www.spritle.com

info@spritle.com

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 ?

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

http://www.spritle.com

info@spritle.com

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 ”

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

http://www.spritle.com

info@spritle.com

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.

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

http://www.spritle.com

info@spritle.com

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

Incremental deliveryContinuous Quality Assurance

Test Driven DevelopmentRefactoring

Continuous Integration

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

http://www.spritle.com

info@spritle.com

Incremental Delivery - IIncremental Delivery - I

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

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

http://www.spritle.com

info@spritle.com

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

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

http://www.spritle.com

info@spritle.com

Incremental Delivery - IIIIncremental Delivery - III

Scope of ‘Done’ changes

Source: Kent’s Presentation

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

http://www.spritle.com

info@spritle.com

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

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

http://www.spritle.com

info@spritle.com

Test Driven Development - ITest Driven Development - I

Design

TEST TEST

ImplementImplement

Design

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

http://www.spritle.com

info@spritle.com

Test Driven Development - IITest Driven Development - II

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

http://www.spritle.com

info@spritle.com

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

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

http://www.spritle.com

info@spritle.com

Test Driven Development - BenefitsTest Driven Development - Benefits

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

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

http://www.spritle.com

info@spritle.com

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”

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

http://www.spritle.com

info@spritle.com

Continuous Integration - IIContinuous Integration - II

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

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

http://www.spritle.com

info@spritle.com

Continuous Integration - IIIContinuous Integration - III

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

http://www.spritle.com

info@spritle.com

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

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

http://www.spritle.com

info@spritle.com

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

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

http://www.spritle.com

info@spritle.com

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

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

http://www.spritle.com

info@spritle.com

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

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

http://www.spritle.com

info@spritle.com

Thank YouThank You

Question ?

Balaji D Loganathan, Spritle Softwarebloganathan@spritle.com

top related