Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software Development is Upside Down

3,607 views

Published on

5 management assumptions which are reversed when you develop software.
Keynote at Agile Tour Lille, October 2016.

Published in: Leadership & Management
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Software Development is Upside Down

  1. 1. Allan Kelly @allankellynet allan@allankelly.net http://www.allankelly.net October 2016 is upside down SoftwareDevelopment
  2. 2. Mental models
  3. 3. Mental models
  4. 4. “Agile Allan” Kelly… Agile Training & Consulting for Agile, adopting Agile, getting better Organizing teams Author – Little Book of Requirements & User Stories https://leanpub.com/userstories – Xanpan: Team Centric Agile Software Development https://leanpub.com/xanpan – Business Patterns for Software Developers – Changing Software Development: Learning to be Agile allan@allankelly.net http://www.allankelly.net @allankellynet (Twitter)
  5. 5. Upsidedown 1. Diseconomies of Scale 2. Higher quality is faster 3. Quickest way to learn is to do 4. Do it right, then do the right thing 5. Worse is better
  6. 6. Diseconomies of Scale
  7. 7. Software development… • Does NOT have economies of Scale • Development has DISECONOMIES of scale
  8. 8. Milk is cheapest in BIG cartons Software is cheapest in lots of small cartons And small cartons of software reduce risk
  9. 9. Consider a large project Against several small projects Project A: Risk = 30% Value at risk = £1m Therefore risk weighted value = £300,000 Prj B: Risk = 15% Value @ risk = £½m Therefore … = £75,000 Prj C: Risk = 15% Value @risk = £½m Therefore … = £75,000 E: Risk = 6% @risk = £200k Therefore = £12k F: Risk = 6% @risk = £200k Therefore = £12k G: Risk = 6% @risk = £200k Therefore = £12k H: Risk = 6% @risk = £200k Therefore = £12k I: Risk = 6% @risk = £200k Therefore = £12k
  10. 10. Software development… • Does NOT have economies of Scale • Development has DISECONOMIES of scale Therefore • Stop thinking BIG • Start thinking SMALL
  11. 11. Higher quality is faster
  12. 12. Quality… makes all things possible Philip Crosby "Quality has much in common with sex. • Everyone is for it. (Under certain conditions of, course) • Everyone feels they understand it. (Even though they wouldn't want to explain it) • Everyone thinks execution is only a matter of following natural inclinations. (After all, we do get along somehow) And, of course, most people feel that all problems in these areas are caused by other people."
  13. 13. public class RecentlyUsedList { private List<string> list; public RecentlyUsedList() { list = new List<string>(); } public string this[int index] { get { int position = 0; foreach (string value in list) { if (position == index) return value; ++position; } throw new ArgOutOfRngExcpt(); } public int Count { get { int size = list.Count; return size; } } public void Add(string newItem) { if (list.Contains(newItem)) { int position = list.IndexOf(newItem); string existingItem = list[position]; list.RemoveAt(position); list.Insert(0, existingItem); } else { list.Insert(0, newItem); } } } }
  14. 14. public class RecentlyUsedList { private List<string> list = new List<string>(); public void Add(string newItem) { list.Remove(newItem); list.Add(newItem); } public int Count { get { return list.Count; } } public string this[int index] { get { return list[Count - index - 1]; } } } Code & refactoring from Kevlin Henney – www.curbralan.com
  15. 15. Quality -> Quicker Capers Jones, 2008 Applied Software Measurement Projects with low defect potentials and high defect removal efficiency also have the shortest schedules, lowest costs and best customer satisfaction levels
  16. 16. Low Quality High Quality Faster!
  17. 17. Low Quality High Quality Faster!
  18. 18. How do you improve quality? T D D A T D D B D D
  19. 19. John Cage Defects are not free. Somebody makes them, and gets paid for making them
  20. 20. Quickest way to learn is to do "The world you perceive is drastically simplified model of the real world. ” Herbert A. Simon
  21. 21. Planning is learning Planning is valuable But…
  22. 22. Time to estimate & plan 2 minutes of work? Average time to estimate: 6⅓ minutes Average planning (inc. estimates): 11 minutes (total) Mean average (median slightly less) Data from 31 teams over 2 years
  23. 23. IBM 360 IBM 360 at Computer History Museum Dave Ross: CCL license via WikiMedia
  24. 24. 46 years … 1970 OS/360 model 195 • 10,000 KIPS (10 MIPS) • 4096kb (4Mb) • COBOL on OS/360 • IMS database • Monthly rental $250,000 (Approx. $1.25m in 2016 prices) 2016 Raspberry Pi 2 • 4,744 MIPS • 1 Gb • Linux • Python, Scala, Ruby, … • SQL, NoSQL • Buy $35 CPU cycles €€€-> Planning is cheap CPU cycles €€€ -> Planning is expensive
  25. 25. Valueofplanning Time Planning has rapidly diminishing returns
  26. 26. Planning is learning Planning is valuable But… Planning has rapidly diminishing returns
  27. 27. If you want to finish sooner Then Start building sooner
  28. 28. Do it right, then do the right thing
  29. 29. Humphrey's Law “Users do not know what they want until they see working software” Watts Humphrey
  30. 30. The Alignment Trap Less Effective More Effective Highly aligned Less aligned ‘Alignment trap’ 11% companies +13% IT spending -14% 3 year sales growth ‘Maintenance zone’ 74% companies Avg IT spending -2% 3 year sales growth ‘IT Enabled growth’ 7% companies -6% IT spending +35% 3 year sales growth ‘Well-oiled IT’ 8% companies -15% IT spending +11% 3 year sales growth Source:Shpilberg,Berez,Puryear,Shah: MITSloanReview,Fall2007 1 2 Doingtherightthings Doing things right
  31. 31. He who learns fastest wins “We understand that the only competitive advantage the company of the future will have is its managers’ ability to learn faster than then their competitors.” Arie de Geus, The Living Company 1988
  32. 32. 1) Do it right Build a machine which can iterate A learning machine 2) Do the right thing Iterate your way to the right thing
  33. 33. Worse is better
  34. 34. Worse is better in software making (and perhaps in other arenas as well) it is better to start with a minimal creation and grow it as needed Richard “Dick” Gabriel, 1989 https://www.dreamsongs.com/WorseIsBetter.html Piecemeal growth
  35. 35. Less is more
  36. 36. A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system. Gall’s law John Gall 1975 As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications. Dave Parnas
  37. 37. Start small, grow… • Software • Teams • Processes • Organization (Don’t forget Conway’s Law!)
  38. 38. Worse is better mode #2 Sometimestheupsidedownis upsidedown Sometimes the upside down is upside down
  39. 39. Complexity
  40. 40. In software development we are constantly battling complexity
  41. 41. Upsidedownthinkingmakesitall morecomplex
  42. 42. Upside down thinking makes it all more complicated
  43. 43. Today’s lesson: Think the other way around to make the world simpler 1. Diseconomies of Scale 2. Higher quality is faster 3. Quickest way to learn is to do 4. Do it right, then do the right thing 5. Worse is better
  44. 44. Questions? allan kelly allan@allankelly.net www.softwarestrategy.co.uk Twitter: @allankellynet Xanpan - Amazon or LeanPub https://leanpub.com/xanpan ½ price discount code: Lille Little Book https://leanpub.com/userstories

×