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.

Twenty Startups A Year Without Going Crazy


Published on

The presentation was done by Christopher Marsh, Technical Architect at AKQA, at Ciklum Java Saturday on April 21, 2012.

Published in: Technology, Business
  • Be the first to comment

Twenty Startups A Year Without Going Crazy

  1. 1. Twenty start-ups a yearWithout going crazy Christopher Marsh Technical Architect, AKQA
  2. 2. Twenty start-ups a yearWithout going crazy Christopher Marsh Technical Architect, AKQA
  3. 3. Effort to completion
  4. 4. Pain to completion
  5. 5. Effort to completion
  6. 6. Effort to completion
  7. 7. Predictability!
  8. 8. Predictability! Lean philosophy
  9. 9. Predictability! Culture ofcode craftsmanship Lean philosophy
  10. 10. Continuous delivery Predictability! Culture ofcode craftsmanship Lean philosophy
  11. 11. Lean philosophy“Lean Startup isnt about being cheap [but is about] being less wasteful and still doing things that are big.” -- Eric Ries
  12. 12. Focus on producing outputLet software engineers engineerLet project managers manage
  13. 13. Morning stand-upWho’s it really for?
  14. 14. Meeting invitationsAuto-reject the unknown
  15. 15. “Can you spare me 5 minutes?”...takes a minimum of an hour
  16. 16. Create design through doingThings always change beforeyou’re finished anyway
  17. 17. Understand architecture vs designRefactoring architecture is hard “Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change.” -- Grady Booch
  18. 18. Prototype responsiblyDestroy when done
  19. 19. Don’t build frameworksReusable code emerges naturally
  20. 20. Minimise documentation effortMost documentation is aliability, not an asset
  21. 21. Create architecture documentsDon’t create design documents
  22. 22. Write self documenting codeSelf maintaining documentationrequires zero extra effort
  23. 23. Optimise communication efficiencyCreate knowledge sharing tools
  24. 24. Culture of code craftsmanship “You can’t take pride and honour in something that you can’t be held accountable for.” -- Robert “Uncle Bob” Martin
  25. 25. Develop a green build mentalityNo excuses, if you’re red - you’re dead
  26. 26. Don’t worry about itForce a build, it willpass next time
  27. 27. I didn’t break itSo I don’t need to fix it
  28. 28. That’s always brokenI can’t remember thelast time the codebasewas updated
  29. 29. I’m looking at it nowBut it looks like it’sgoing to take awhile to fix
  30. 30. The rules Never commit on a broken build Fix broken build within 10 minutes The team is responsible for the build
  31. 31. Seek constant peer reviewYou work with smart people,so help them to help you
  32. 32. Target collaboration effortEliminate coder’s block bypair programming
  33. 33. Shout when you need helpIt’s not a sign of weakness
  34. 34. Perform code reviewsAutomate as much as possible
  35. 35. Create information radiatorsIncreasing technical debt is difficultwhen no one wants togive you credit
  36. 36. Look further than technologyRespect your colleagues
  37. 37. Reduce complexityCommunicate simply
  38. 38. Reduce complexityCommunicate simply
  39. 39. Use an existing toolOr mix and match
  40. 40. Continuous Delivery“Reduce [..] the time it takes from deciding tomake a change [..] to having it available to users.”-- Jez Humble/David Farley
  41. 41. Create deployment pipelinesMake every commit a potentialrelease candidate.
  42. 42. Example pipeline
  43. 43. Example pipeline
  44. 44. Example pipeline
  45. 45. Example pipeline
  46. 46. Example pipeline
  47. 47. Example pipeline
  48. 48. Example pipeline
  49. 49. Number of testsA sanity check Manual tests Integration tests Capacity tests Acceptance tests Unit tests
  50. 50. Pipeline dashboardThoughtWorks Go
  51. 51. Maintain infrastructure as codeConsistency means that no serveris a snowflake
  52. 52. “Production-like” starts earlyConfigure development workstationsautomatically
  53. 53. Include all infrastructureNot just web and application servers
  54. 54. Look at Cloud optionsBuilt-in configuration optionsmake things easier
  55. 55. Put deployments in the right handsDeployments are business motivated,but technology led
  56. 56. What the business has...
  57. 57. What the business needs... Deploy me!
  58. 58. What the business (really) needs... Deploy me! Deploy me! Deploy me! Capacity Deploy me! Build Production QA
  59. 59. Script everythingSeparate what changesfrom what doesn’t
  60. 60. “Production-like” all the wayEven if this means less efficiencyin the pipeline
  61. 61. And finally... “Theory is splendid butuntil put into practice , it is valueless.” -- James Cash Penney
  62. 62. Discuss!