quality not-speed-for-distrobution
TRANSCRIPT
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
I use agile software development techniques because:• I can’t afford to waste time writing the
wrong software• I can’t afford to waste time on sub
standard software
Why do you want to waste time on.. •Writing user stories• Release planning • Sprint planning• Installing a continuous integration server•Writing unit tests• Peer code reviews• Automating functional tests• Training
User stories and the backlog are all about writing the software that must be written and nothing else.
Release planning is the most efficient way I know to get a high level plan everyone on the team buys into
Installing a continuous integration server
If one manual release to staging takes 1hr over the course of a 3 month project with a release to staging every 2 days +releases to dev several times a day.. = 40 to 80 hrs of deployments = 10 days wasted+ the time wasted getting it wrong+ is this bug a failed deployment or a real bug
Writing unit tests and TDDCatch as many bugs before they leave the
developer as you can. The longer a problem goes undetected the more its costs to fix.
Prevent developers over engineering solutions
Peer code reviews• Bus level redundancy - Share knowledge
around the team• Catch poor quality code and lazy hacks early• Have two people sign the commit and be
responsible for the code.
Automating functional testsA single manual test run takes 2-3hrs. We
need to test every day over a 60 day project = 22 days of testing. And we can’t fix any issues until the tests are run. Even if we spend 15 days creating tests we have still saved time. Plus the value delivered to the project is higher.
High quality projects complete quicker
Low quality projects never stop eating your resources: • Post live fixes• Additional work to appease client
dissatisfaction• Additional releases for free