Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

AgileNZ Quality Pays

No description
by

Scott Noakes

on 18 March 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of AgileNZ Quality Pays

Immediate Every Hour Every task Every story Every day Every Sprint Quality Pays Poor process costs Confusion
Poor coordination
Low quality product
Excessive complexity
Context switching
Gold plating
Waste Finding the right process can prevent these dysfunctions, deliver quality and reduce costs. Defining quality Delivering the customer a product that works as they expect,
as efficiently as possible. Measuring quality You get what you inspect, so build feedback into your process as deeply as possible. Physical Environment Co-location of cross functional teams
Environment belongs to the team
Pro-communication environment
Co-locating Sysop with team
Available Product Owner Pair Programming Improves clarity
Focuses work
Shares knowledge
Elevates commitment Feedback Test Driven Development Continuous Integration Commit early and often (we love GIT)
Continuous build system (Hudson)
Mocking of system dependencies
Early indication of code integration issues Integration Tests End to end automated system tests
Developed in parallel with functionality
Reduced but complete version of production environment
Every development machine can run these
Early indication of system integration issues Scrum boards & standup Story diagrams Story Kickoff Whole team present for kickoff meeting
Story discussion
Lead developer and lead tester for every story
Leads stay with story until completion
Branch opened Story Signoff Whole team present for Signoff meeting
Essentially a mini story review
Tests and release notes critiqued
Demo video reviewed
Branch merged Good Process Enables Adscale's Agile ROI Feedback within workflow Lead Do Measure Feature clarity
Emergent design
Testable code
Refactoring safety net
It's for the developers! Confusion
Poor coordination
Low quality product
Excessive complexity
Context switching
Gold plating
Waste Inspect and adapt Efficiency gains deliver cost benefits Company wide agility
Predictable software delivery
New features every sprint for 6 years
Doing 'only whats needed' to support development
Incremental improvement is now inevitable
Relaxed, calm, productive environment
Work becomes fun! Company wide cohesion
Efficient execution
High quality product
Managed complexity
Focus on the task at hand
Delivering just what's needed
Shipped functionality Thank you. The product is only as good as the process.
The process is as important as the product. Software is important... Your organisation relies on software
Without it your ability to deliver your business goals is limited However... Software has been an unreliable, costly and error-prone endeavour*
If it wasn't so important you would probably stop investing in it Forrester, April 11 2005:"Corporate Software Development Fails to Satisfy on Speed or Quality“

CHAOS Report - more than 50% of projects between 2002-2010 were either "challenged" or "failed" Agile is a proven solution Agile has increased success by 300% “The agile process [sic] is the universal remedy for software project failure. The secret is the trial and error and delivery of the iterative process.”
The Standish Group Yet, misinformation prevails Agile sold as
More for less
Going faster
Being able to change direction
These are benefits, however...
You have to first slow down in order to reap these benefits A focus on quality enables agility
and increases efficiency. W. Edwards Demming:
When organizations focus primarily on costs, costs tend to rise and quality declines over time.
When organizations focus primarily on quality, quality tends to increase and costs fall over time. Quality is paramount The cost of poor quality How can we respond if we don't know whether we are done?
Enemy = hidden undone work - we think we are done but we aren't.
Defects
Lack of automated build
Complex and coupled code
Lack of automated deployment
Lack of unit tests
Business Logic in the wrong places Agility Hidden undone uplifts
the work baseline Customers believe they can demand something and therefore it can be done.
With other option teams cut quality to support the belief.
Results include:
Developers and customers resent the profession
Failing products, failing companies, and hateful work Technical debt is a
crisis in our profession Develop less
Develop only what the customer wants
Develop it well for BAU support, maintenance, extension and retirement
Build done software To go faster you need to slow down Agility requires honesty and courage Agility without quality = epic fail Adscale Laboratories Ltd. Dev house for German online advertising marketplace
Dev team of 35 based in Christchurch
Some Stats:
45,000,000 internet users reached per month
300,000,000 ads placed per day
1 billion transactions per day
Passionate about
Agile methodologies
XP practices
Collaborative workplaces Assurity All about software quality
Testing and test automation
Agile & Lean education, consulting and mentoring
Agile engineering practices - how to reduce issues in the first place
Business analysis Quality is not negotiable Execution is everything Keeping the workshop clean Strategic freedom You can't have everything, so choose
The development team determines the effort
Transparency is painful, reality is confrontational
Sustainable development is a long term game The price of freedom Learning new practices is hard
Embedding quality will (initially) slow you down
Change will highlight dysfunction
Trust and collaboration are mandatory Warning: Discipline required Every three weeks the business team has complete freedom to change the strategic direction of the product 100% without any impediment from the development process 80-90% of product cost happens in BAU - i.e. AFTER go-live.
And the cost of fixing in BAU cannot be capitalised....
So shouldn’t we build for maintenance & support?
Optimising a sub-component sub-optimses the whole
We shouldn’t handover to Operations and cut ‘n run Total cost of ownership Lifetime product ROI variables Presence of valuable functionality
Absence of low value functionality (must be maintained and sustained regardless)
Quality code base to
predictably maintain and sustain
enhance without undue effort or risk
Ability to catch defects early & no later than at release
Predictability of schedules TCO - People TCO - Operations benefits Cost of technical debt: for every $1 saved, $4 to pay back Typical quality Good quality Quality Agility Scrum sprint feedback Sprint review
Sprint retrospective
Pre production testing
Deployment
Production issues
Customer feedback The goal is to embed feedback into your process as deeply as possible Scott Noakes & Edwin Dando Efficiency Operational costs 1/4 of the industry norm
Dramatically reduced support overheads
Two FTE Sysops to operate this system
Resilient system designed to fail gracefully
5 nines uptime
No 'big bang' integrations Engagement and ownership
Constantly challenging work
Colleagues with T shaped skills
Relaxed, calm, productive environment
Excellent staff retention
Built-in knowledge resiliency The State of Our Industry 2:00 7:00 12:00 22:00 27:00 32:00 37:00 42:00 Good quality Average quality Courtesy of Ken Schawber, 'Software in 30 Days'
Full transcript