Xp days ukraine 2012
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Xp days ukraine 2012

  • 598 views
Uploaded on

My slides from XP Days 2012 Ukraine

My slides from XP Days 2012 Ukraine

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
598
On Slideshare
374
From Embeds
224
Number of Embeds
1

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 224

http://xpdays.com.ua 224

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

Transcript

  • 1. Reversed Tests Pyramid Wiktor Żołnowski @streser http://www.agileszkolenia.pl http://codesprinters.com
  • 2. Agile Coach Troublemaker Who am I? Passionate
  • 3. Can you imagine perfect software?
  • 4. Tests pyramid End to End TestsFunctional/Integration Tests Unit Tests
  • 5. It would be perfect to work with perfectsoftware every day...
  • 6. But!
  • 7. Reality...
  • 8. Is...
  • 9. Different!
  • 10. Legacy Code
  • 11. How did we get to this point?
  • 12. Its all because of the money...
  • 13. Technical Debt
  • 14. Sometimes Technical Debt could beconsidered as something good...
  • 15. Unfortunately temptation of easymaking money is huge...
  • 16. People lives in illusion of continuous,fast and low cost development...
  • 17. Forgetting about the Quality...
  • 18. Success in Software Development is something which is notcontinuous...
  • 19. Success is state that you can achieve but also lose very fast if you cant respond to changes fast enough...
  • 20. So, is it possible to deal with legacy code?
  • 21. Reversed Tests PyramidEnd-to-End TestsFunctional/Integration TestsUnit Tests
  • 22. - What?!
  • 23. You cant do unit testing when there areno units in your software...
  • 24. You cant do integration tests whenthere is nothing to integrate...
  • 25. You need to refactor your code so itwould be testable...
  • 26. How to refactor without tests?!
  • 27. Now refactor... High level tests gives you courage to refactor your code...●
  • 28. Now you can refactor and introducesome units into your software...
  • 29. But.. There are few reasons why you shouldnt reverse tests pyramidEnd-To-End tests are too long...
  • 30. End-to-end tests are difficult to maintain...If we need end-to-end tests we are probably doing somethingwrong with our architecture...
  • 31. So its all about reversing back ourtests pyramid.
  • 32. Step by step we are introducing newarchitecture...
  • 33. Remember that creating reversed testspyramid and reversing it back will take some time...
  • 34. But you need to do this if you want topay your technical debt back!
  • 35. Few final thoughts...Keep your technical debt as low as possible and try topay it back every time you can. For example use your slack time for that!
  • 36. Remember - WHY we are doing this?
  • 37. “Leave the world better then you found it”
  • 38. Beware of refactoring just for refactoring! Few final thoughts...
  • 39. Few final thoughts...● Beware of refactoring just for refactoring!● Resist temptation to re-write from scratch – history is against you, such projects usually fail.● Remember to always remove your (duplicated) tests!● Software quality in many cases could be understood as ability to introduce changes into software!● Keep your technical debt as low as possible and try to pay it back every time you can. For example use your slack time for that! Resist temptation to re-write from scratch – history is against you, such projects usually fail.
  • 40. Few final thoughts...● Beware of refactoring just for refactoring!● Resist temptation to re-write from scratch – history is against you, such projects usually fail.● Remember to always remove your (duplicated) tests!● Remember to in many cases could your (duplicated) tests! Software quality always remove be understood as ability to introduce changes into software!● Keep your technical debt as low as possible and try to pay it back every time you can. For example use your slack time for that!
  • 41. False positive or false negative safetynet is even worst than lack of safetynet...
  • 42. ● Software quality in many cases could be understood as ability to introduce changes into software!
  • 43. Wiktor Żołnowski www.codesprinters.comQuestions?@streserhttp://www.agileszkolenia.plhttp://codesprinters.com