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.

Away day

862 views

Published on

Netto (nettofarah@gmail.com) and Vini's (vgomes@thoughtworks.com) presentation for the ThoughtWorks Brasil away day 2012.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Away day

  1. 1. Stop amazing.Start working.
  2. 2. why?
  3. 3. l iver
  4. 4. we
  5. 5. the resources
  6. 6. the mission
  7. 7. find . -type f ( -name *.css -o -name *.js -o -name *.java -o -name *.jsp -o -name *.html )-print0 | xargs -0 cat | wc -l
  8. 8. find . -type f ( -name *.css -o -name *.js -o -name *.java -o -name *.jsp -o -name *.html )-print0 | xargs -0 cat | wc -l 558982 lines of code
  9. 9. grep -R ‘<bean’ . | wc -l
  10. 10. grep -R ‘<bean’ . | wc -l 684 spring beans
  11. 11. grep -R ‘class’ . | wc -l
  12. 12. grep -R ‘class’ . | wc -l 3096 java classes
  13. 13. grep -R ‘@Test’ . | wc -l
  14. 14. grep -R ‘@Test’ . | wc -l 1774 junit4 tests
  15. 15. grep -R ‘public void test’ . | wc -l
  16. 16. grep -R ‘public void test’ . | wc -l 1603 junit3 tests
  17. 17. our nice tech stack
  18. 18. integration40 queues 157 fields 20 schemas 20 cores ~ 30 offline jobs 5 webservices
  19. 19. 104integration points!
  20. 20. ~le tests
  21. 21. ~le tests• 2777 junit tests
  22. 22. ~le tests• 2777 junit tests• 360 functional tests
  23. 23. ~le tests• 2777 junit tests• 360 functional tests• ruby 1.8.6 (no bundler!)
  24. 24. ~le tests• 2777 junit tests• 360 functional tests• ruby 1.8.6 (no bundler!)• windows xp
  25. 25. ~le tests• 2777 junit tests• 360 functional tests• ruby 1.8.6 (no bundler!)• windows xp• monkeypatches for IE/windows
  26. 26. ~le tests• 2777 junit tests• 360 functional tests• ruby 1.8.6 (no bundler!)• windows xp• monkeypatches for IE/windows• 4 hours build
  27. 27. teams
  28. 28. 4 teams35 devs
  29. 29. 6 engineers
  30. 30. 6 managers
  31. 31. pigeons!
  32. 32. many of them
  33. 33. first storyproduct feed import
  34. 34. IHateYouForeverImpl• 2272 lines• 32 dependencies• getItemStatus (3 setters)
  35. 35. IHateYouServiceImplTest 78 lines of test setup
  36. 36. loadAllProducts.xml 26 pages
  37. 37. ProductDTO.java• 86 attributes• + getters / + setters• equals() => 400 lines
  38. 38. let’s throw it all awayand start from scratch!
  39. 39. ok!let’s AMAZE this codebase
  40. 40. pague o aluguel!
  41. 41. massive cleanup• intensive refactoring• pair programming• rant! whining! crying!
  42. 42. 6 weeks later...
  43. 43. zoom++
  44. 44. fuuuu• silly refactoring (speculative)• bugs in prod
  45. 45. todos ‘chora’
  46. 46. todos ‘chora’• little trust on the offshore team
  47. 47. todos ‘chora’• little trust on the offshore team• the project almost gets cancelled
  48. 48. todos ‘chora’• little trust on the offshore team• the project almost gets cancelled• IM leaves
  49. 49. todos ‘chora’• little trust on the offshore team• the project almost gets cancelled• IM leaves• tech lead leaves
  50. 50. we were alone :’(
  51. 51. new approach
  52. 52. foca no trabalho!
  53. 53. purism must stop
  54. 54. right software >software right
  55. 55. is it worth refactoring?• does it block another story?• does it block delivery?
  56. 56. speculation“this is going to impact on story #125 of the next iteration” facts x speculation software is inherently fuzzy
  57. 57. legacy code is working code http://favim.com/image/467371/
  58. 58. sweep it under the carpetfaçadesparallel class hierarchy
  59. 59. tolerate heresy
  60. 60. reduce the feedback cycleis there anyone using it?
  61. 61. tools
  62. 62. featurelevel MVPs
  63. 63. avoid theformal sign-off
  64. 64. fantasyarchitecture
  65. 65. what do they wanna hear?
  66. 66. is it possible not to test?
  67. 67. divide and conquer
  68. 68. technical debt factories
  69. 69. in the end...
  70. 70. the client
  71. 71. is this success aconsequence of the initial effort?
  72. 72. simmas não
  73. 73. here’s my number nettofarah@gmail.com @nettofarah vgomes@thoughtworks.com @vvgomesso call me, maybe
  74. 74. thank you!

×