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.

The Art of Software Gardening

1,391 views

Published on

This is the slides of the talk I gave @DevTernity 2015 in Riga , Latvia

Published in: Software
  • Be the first to comment

The Art of Software Gardening

  1. 1. DevTernity 2015 - @softwaregarden The Art of Software Gardening Patroklos Papapetrou @softwaregarden Riga, December 2015, @Devternity
  2. 2. DevTernity 2015 - @softwaregarden A talk presented by Patroklos Papapetrou, a Software Gardener and Code Quality Maniac...
  3. 3. DevTernity 2015 - @softwaregarden … and my little friends who can do/be everything just like us, the developers!
  4. 4. DevTernity 2015 - @softwaregarden “One of the most inspiring talks I’ve ever heard. I think I will change my title to software gardener right away!”
  5. 5. DevTernity 2015 - @softwaregarden “Might damage the reputation of software engineers. I might make the same parallel with for instance a cleaner, child carer or factory worker”
  6. 6. DevTernity 2015 - @softwaregarden “You are not a Software Engineer. You do not build skyscrapers. You do not build bridges. You grow gardens. You are a Software Gardener.” Chris Aithcison, 2011 http://www.chrisaitchison.com/2011/05/03/you-are-not-a-software-engineer/
  7. 7. DevTernity 2015 - @softwaregarden Software Engineering has been used to describe "building of software systems which are so large or so complex that they are built by a team or teams of engineers" Fundamentals of Software Engineering http://www.prenhall.com/ghezzi/
  8. 8. DevTernity 2015 - @softwaregarden Software Engineering has been used to describe "building of software systems which are so large or so complex that they are built by a team or teams of engineers" Fundamentals of Software Engineering http://www.prenhall.com/ghezzi/
  9. 9. DevTernity 2015 - @softwaregarden Software engineering means applying the principles of engineering to the software development field. IEEE Definition
  10. 10. DevTernity 2015 - @softwaregarden
  11. 11. DevTernity 2015 - @softwaregarden Software Engineer is the most inaccurate job description ever #EpicFail
  12. 12. DevTernity 2015 - @softwaregarden What is the most- used term in software development? BUG
  13. 13. DevTernity 2015 - @softwaregarden Let me tell you a story about a happy developer (me) a long time ago...
  14. 14. DevTernity 2015 - @softwaregarden Suddenly my whole world collapsed when a 'senior' developer looked at my code
  15. 15. DevTernity 2015 - @softwaregarden What was wrong with me? I didn't care...
  16. 16. DevTernity 2015 - @softwaregarden Software Gardening A reality or (why) another useless analogy?
  17. 17. DevTernity 2015 - @softwaregarden http://softwaregarden.io/manifesto The manifesto
  18. 18. DevTernity 2015 - @softwaregarden We treat software systems as gardens and code as flowers. We constantly mentor young developers and we share our knowledge at every opportunity We treat customers as the people who will walk in our garden… …..
  19. 19. DevTernity 2015 - @softwaregarden What about Agile? Is software gardening something else?
  20. 20. DevTernity 2015 - @softwaregarden What about software as a craft? Craft is about creating objects Software is “alive”, organic You have to be prepared to interact with to improve all the time.
  21. 21. DevTernity 2015 - @softwaregarden Why THIS analogy?
  22. 22. DevTernity 2015 - @softwaregarden Evolving design ◦ ◦ You don’t just plant some flower seeds today and expect to see them blossom the next day
  23. 23. DevTernity 2015 - @softwaregarden Continuous Re-factoring Gardeners just uproot anything that’s blocking their design or doesn’t fit in the garden. Do the same with your code!
  24. 24. DevTernity 2015 - @softwaregarden Continuous Re-factoring Throw away any code that’s not needed (withered flowers) any more or is causing too much troubles (unwanted plants).
  25. 25. DevTernity 2015 - @softwaregarden Treat code as it's the last flower in the earth
  26. 26. DevTernity 2015 - @softwaregarden There's nothing permanent except change (Τα πάντα ρει – Panta rhei) Be ready to change and adapt on unwanted external environment changes (rain/wind/cold) Heraclitus – Greek Philosopher
  27. 27. DevTernity 2015 - @softwaregarden Fault tolerance Software systems (like gardens) expected to be perfect. Small errors (bugs) can be disastrous for a whole company
  28. 28. DevTernity 2015 - @softwaregarden Find the (business) value Deliver a bug-free (no- disease), fully-covered by tests (protected by future diseases), and well-designed (correctly irrigated) feature (flower)
  29. 29. DevTernity 2015 - @softwaregarden Software gardening is not just a practice, an attitude, a skill or a special knowledge. It’s all of them plus the passion you have for software development.
  30. 30. DevTernity 2015 - @softwaregarden And this passion you should show it continuously, day by day, every moment in every single line of code you write.
  31. 31. DevTernity 2015 - @softwaregarden What do I need to become a software gardener?
  32. 32. DevTernity 2015 - @softwaregarden SKILLS
  33. 33. DevTernity 2015 - @softwaregarden ATTITUDE
  34. 34. DevTernity 2015 - @softwaregarden BEST PRACTICES
  35. 35. DevTernity 2015 - @softwaregarden TOOLS
  36. 36. DevTernity 2015 - @softwaregarden Software gardening is not just a practice, an attitude, a skill or a special knowledge. It’s all of them plus the passion you have for software development.
  37. 37. DevTernity 2015 - @softwaregarden Shameless slide https://leanpub.com/art_software_gardening The Art of Software Gardening A practical guide to learn how to treat software systems as gardens
  38. 38. DevTernity 2015 - @softwaregarden Thank you! Happy to take questions

×