Your SlideShare is downloading. ×
Away day
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Away day

590
views

Published on

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

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

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
590
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • - find . -name '*.java' | grep -v 'generated' | xargs wc -l | sort\n
  • - find . -name '*Test.java' | grep -v 'generated' | xargs wc -l | sort\n
  • \n
  • \n
  • \n
  • - o sistema é gigante.\n- ultra complexo\n- reescrever significa fazer engenharia reversa\n- caso do netscape\n
  • \n
  • \n
  • - seguir a ideia do seu barriga\n - cobrar a dívida (no matter what)\n - atitude extrema\n
  • - refactoring como se não houvesse amanhã\n- pareamento o tempo todo, várias ideias e brainstorms sobre como melhorar o design\n- reclamação sobre o código o tempo todo\n
  • \n
  • - ainda estou dando uma prévia ali do futuro\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • - refatorar gerava satisfação para o time, mas não para o negócio\n - esforço x dano\n
  • \n
  • - o stalone é o único cara que com 60 anos derruba um helicóptero usando uma moto\n- assistam e vejam a piada do chuck norris\n- esqueçam os caras da esquerda.. os legados são os velhos aqui do lado direito\n
  • - não é pq todo o código relacionado a produtos está numa classe que você precisa continuar aumento o que acontece por lá.\n- tente criar uma classe paralela e resolver o problema por lá.\n- empacota tudo numa façade e toca o pau\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

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