Presentation for ICCA Boston on October 29, 2008.
Abstract:
The facts are all stacked against us as consultants: 30+% requirements churn for projects, with 50+% of projects completing late or failing entirely and a market mindset of instant gratification. How do small consulting companies compete in today’s environment without having to take incredible risks along the way? This is the key question facing leaders of small firms. Clients are getting harder to find in an economic climate that is eroding so we have to make every client count! To do this effectively is going to require changing the way we do business. One potential solution is use of agile practices and principles to drive an agile process.
This presentation will explore the principles and practices that drive the agile process. In particular it will look at how using an agile approach can help mitigate risk for small consulting businesses. It will also explain the potential client benefits from using an agile approach. When the vendor is providing exceptional value to the client a long-term relationship can be established which benefits both parties. From the perspective of a small consulting company these relationships are the most valuable not just from a revenue perspective, but also as references and for word-of-mouth lead generation. This presentation will describe how having an agile approach in your toolbox may be enable you to unlock additional opportunities.
2. Before We Start Cell phones, pagers, PDA’s, etc. to silent If you have a question, please ask it. Don’t wait! It is better to answer the question while we are still in the same area than to go back. Your Client Wants What? 2
4. Bob Hartman (Agile Bob) 30+ years of software industry experience Certified Scrum Practitioner Bachelor and Masters degrees in Computer Science Roles included Tester, Developer, Dev Manager, QA Manager, Product Manager, Project Manager, VP… Started with agile in 1999 bob.hartman@agileforall.com 303-766-0970 Your Client Wants What? 4
5. Who are you? Type of consultants we have here Agile experience AboutMe Your Client Wants What? 5
19. We could find better clients Your Client Wants What? 19 Know what they want Can pay for the changes Yeah, riiiiight!
20. We could change our mindset Your Client Wants What? 20 Not knowing everything is ok Just charge more to make up for it Your bid will stand out Unfortunately
21. Or… we could change our process Your Client Wants What? 21 Should encourage feedback and allow changes!
29. Work from a ranked feature list Your Client Wants What? 29 Highest priority items first! Less time spent on junk
30. Changes the status quo Your Client Wants What? 30 Question: What percentage of software features are NEVER used?
31. Meet customer expectations When does the customer know what they really want in a product? How can we help them know earlier? Exactly! Work in iterations to allow this. Demo working software every iteration Re-rank work after every iteration Use a retrospective each iteration for improvement You MAY be able to deliver less functionality at an earlier point in time and save a lot of work! Your Client Wants What? 31
32. Build slices of functionality not layers All work in each iteration should slice all the way through every layer of the feature. It is less expensive to refactor than it is to overbuild! Your Client Wants What? 32
33. Layers vs. slices Your Client Wants What? 33 Slices = less work to do Layers = All work done Which is easier to change?
35. Common myths about agile You will release more software faster You will release the highest value software as quickly as possible More code will NOT be written in less time, but when you are continuously releasing high value software it APPEARS that you are going faster Agile doesn’t need any documentation The phrase to keep in mind is “just enough, just in time” and this applies to most agile myths The developers run the show in agile The developers follow the rule of finding the highest priority task to work on and doing that The Product Champion role defines the priorities, not the development team Your Client Wants What? 35
37. VersionOne Survey Results (2008) Survey asked people: Please try to estimate SPECIFIC IMPROVEMENTS you have actually realized from implementing Agile practices. Source: VersionOne 2008 State of Agile Development Survey NOTE: All 2008 data is within 2% of 2007 data implying these numbers are not one-time anomalies Biggest causes of company-wide agile failure: Company philosophy or culture could not be overcome – 23% Lack of experience with agile – 21% Your Client Wants What? 37
38. Agile is a Proven ApproachSome Agile Companies (there are MANY more) Your Client Wants What? 38
40. #1 cause of agile failure A dysfunctional Product Champion! (poor prioritization) Your Client Wants What? 40
41. We need to avoid this! The Customer wanted a swing… The Customer got a swing Your Client Wants What? 41
42. #2 cause of agile failure Lack of automatedtesting! Your Client Wants What? 42
43. Lack of automation causes delays… Vicious Cycle: Testing is overloaded with work Result: Testing occurs long after coding Result: Developers don’t get immediate feedback Result: Developers create more defects Result: Testing has more work. Systems have more defects. Result: Feedback to developers is delayed further. Repeat cycle. Regression Deficit Disorder Technical Debt Quality suffers “Release it now!”
44. Practices for high quality Automated testing Nightly build If the build breaks team commits to fix it first Continuously generating tests Developers using test-driven development Code is not done until it passes unit tests and acceptance tests Tests are written FIRST, then the code!!! Have tests live with the requirements so everything stays in sync through changes Your Client Wants What? 44
45. #3 cause of agile failure Not giving it enough time to succeed! Don’t fall into this trap! Your Client Wants What? 45
46. What is enough time? Requires at least 3 iterations 1st iteration is usually very rough 2nd iteration will be much better 3rd iteration gets to near the new norm Process is self-correcting – use that to your advantage Make decisions and correct them the next day if it becomes necessary Try something in the process and correct through retrospection if necessary Learn from history – don’t commit to more work than was completed in prior iteration Your Client Wants What? 46
48. The problem Consultant asked to bid on a project with time, scope and quality fixed for the project Consultant paid 33% up front, the rest upon delivery of the software, but in stages All companies were bidding on basically how much it would cost them for resources during the project, plus profit (sunk cost + profit) No advantage for being more creative No advantage for higher quality This particular consultant usually charged higher prices because they were creative Your Client Wants What? 48
49. The big question… Your Client Wants What? 49 Given this consultant’s model of charging more for their creativity, how do they make money on this one? (don’t just say “be agile” give some specifics)
50. Their solution They asked the client if there was any advantage to delivering an earlier revision of the software with primary features all working It turned out there was! Client’s customers could effectively use (and would pay for) a partial release as long as certain features were present Client willing to pay more for an earlier delivery of part of the software, plus they were willing to pay part of it on delivery of the earlier release Consultant investment is less because of early payment (which allows a lower bid to win the business!) Overall profit is higher because the client was willing to pay more in order to receive early orders Let’s look at this graphically… Your Client Wants What? 50
51. Initial investment model Your Client Wants What? 51 Paid at final delivery of product Software delivered Finally start making some money! Cost Time Start with money in the bank (33% paid up front) Cost of development
52. Actual investment model Your Client Wants What? 52 First software delivery Paid at final delivery of product Final software delivered Make profit Cost Time Start with money in the bank (33% paid up front) Cost of development
53. Comparison Your Client Wants What? 53 Original total investment (sunk cost) New total Investment Cost Time Cost of development
56. Message groups Yahoo! Groups scrumdevelopment leandevelopment agileprojectmanagement everydayAgile leanagilescrum pmiagile Also many LinkedIn groups Agilistas, Scrum Practitioners, Agile Alliance, … Your Client Wants What? 56