The Way ofThe Software   Craftsman# Part One: The Beginning           2009, Vitaliy Kulikov
Interrupt. Ask questions. Disagree.
WHY I CARE
Usual Process
Beautiful System
Add a feature
Add a new feature
Change a feature
Time Passes
Look familiar
Add a new featureHow?
Crap Code
Constant Cleaning
„Clean code that works“        Ron Jeffries
Emergent Design
Add a feature
Clean It Up
Add a new feature
Clean It Up
Change a feature
Time Passes
Clean Architecture
Over Time
How do you do this?
USUALLY ...
ExtremeProgramming     (XP)
Development Techniques
Why don’t we do    them?
We don’t know how
How do you learn to      do it?
Emergent Design /Evolutionary Design
Over Time
Test-DrivenDevelopment    (TDD)
How do we learn?
Work != Practice
How do we practice?
Shu Ha RiShu ( 守 : "protect", "obey" ) - traditional wisdomHa ( 破 : "detach", "digress" ) - breaking with traditionRi ( 離 ...
“Hold, Break, Leave”First, follow all thepractices.Then, realize andchange them.Finally, you dontneed to think aboutthe ru...
Testing. Quality. Automation.
WHY I CARE (REDUX)
„Legacy code is code   without tests“     Michael Feathers
The Steps oftest-first design (TFD)
TDD = Refactoring + TFD
Testing via the xUnit Framework
Tests are  documentation„Every test is an executable example.“
Edit and Pray
✗   Carefully plan✗   Make the change✗   Start the application      and check the change✗   Poking around
Cover and Modify
✔   Write test✔   Make the change✔   Run all tests
Tests = Proof
If its worth building,   its worth testing.If its not worth testing,   why are you wastingyour time working on it?
●   Another tool for your toolbox   ●   Use as you need it   ●   Can be difficult for beginners   ●   Frameworks can helpT...
Tests guide the design„We see the code from the user‘s perspective“
Stop Writing Crap
THANK YOU            ?
✔   „Test Driven Development by Example“                                -Kent Beck✔   „Working Effectively with Legacy Cod...
The Way of The Software Craftsman # Part One: The Beginning
Upcoming SlideShare
Loading in...5
×

The Way of The Software Craftsman # Part One: The Beginning

694

Published on

“Hold, Break, Leave”

- First, follow all the practices.

- Then, realize and change them.

- Finally, you don't need to think about the rules anymore.

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
694
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "The Way of The Software Craftsman # Part One: The Beginning"

  1. 1. The Way ofThe Software Craftsman# Part One: The Beginning 2009, Vitaliy Kulikov
  2. 2. Interrupt. Ask questions. Disagree.
  3. 3. WHY I CARE
  4. 4. Usual Process
  5. 5. Beautiful System
  6. 6. Add a feature
  7. 7. Add a new feature
  8. 8. Change a feature
  9. 9. Time Passes
  10. 10. Look familiar
  11. 11. Add a new featureHow?
  12. 12. Crap Code
  13. 13. Constant Cleaning
  14. 14. „Clean code that works“ Ron Jeffries
  15. 15. Emergent Design
  16. 16. Add a feature
  17. 17. Clean It Up
  18. 18. Add a new feature
  19. 19. Clean It Up
  20. 20. Change a feature
  21. 21. Time Passes
  22. 22. Clean Architecture
  23. 23. Over Time
  24. 24. How do you do this?
  25. 25. USUALLY ...
  26. 26. ExtremeProgramming (XP)
  27. 27. Development Techniques
  28. 28. Why don’t we do them?
  29. 29. We don’t know how
  30. 30. How do you learn to do it?
  31. 31. Emergent Design /Evolutionary Design
  32. 32. Over Time
  33. 33. Test-DrivenDevelopment (TDD)
  34. 34. How do we learn?
  35. 35. Work != Practice
  36. 36. How do we practice?
  37. 37. Shu Ha RiShu ( 守 : "protect", "obey" ) - traditional wisdomHa ( 破 : "detach", "digress" ) - breaking with traditionRi ( 離 : "leave", "separate" ) - transcendence
  38. 38. “Hold, Break, Leave”First, follow all thepractices.Then, realize andchange them.Finally, you dontneed to think aboutthe rules anymore.
  39. 39. Testing. Quality. Automation.
  40. 40. WHY I CARE (REDUX)
  41. 41. „Legacy code is code without tests“ Michael Feathers
  42. 42. The Steps oftest-first design (TFD)
  43. 43. TDD = Refactoring + TFD
  44. 44. Testing via the xUnit Framework
  45. 45. Tests are documentation„Every test is an executable example.“
  46. 46. Edit and Pray
  47. 47. ✗ Carefully plan✗ Make the change✗ Start the application and check the change✗ Poking around
  48. 48. Cover and Modify
  49. 49. ✔ Write test✔ Make the change✔ Run all tests
  50. 50. Tests = Proof
  51. 51. If its worth building, its worth testing.If its not worth testing, why are you wastingyour time working on it?
  52. 52. ● Another tool for your toolbox ● Use as you need it ● Can be difficult for beginners ● Frameworks can helpTRY IT
  53. 53. Tests guide the design„We see the code from the user‘s perspective“
  54. 54. Stop Writing Crap
  55. 55. THANK YOU ?
  56. 56. ✔ „Test Driven Development by Example“ -Kent Beck✔ „Working Effectively with Legacy Code“ -Michael Feathers✔ „Clean Code: A Handbook of Agile Software Craftsmanship“ -Robert C. MartinRESOURCES

×