the art of software gardening
TRANSCRIPT
DevTernity 2015 - @softwaregarden
The Art of Software Gardening
Patroklos Papapetrou@softwaregarden
Riga, December 2015, @Devternity
DevTernity 2015 - @softwaregarden
A talk presented by Patroklos Papapetrou, a Software Gardener and Code Quality Maniac...
DevTernity 2015 - @softwaregarden
… and my little friends who can do/be everything just like us, the developers!
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!”
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”
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, 2011http://www.chrisaitchison.com/2011/05/03/you-are-not-a-software-engineer/
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/
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/
DevTernity 2015 - @softwaregarden
Software engineering means applying the principles of engineering to the software development field.
IEEE Definition
DevTernity 2015 - @softwaregarden
Software Engineer is the most inaccurate job description ever
#EpicFail
DevTernity 2015 - @softwaregarden
Let me tell you a story about a happy developer (me) a long time ago...
DevTernity 2015 - @softwaregarden
Suddenly my whole world
collapsed when a 'senior' developer
looked at my code
DevTernity 2015 - @softwaregarden
http://softwaregarden.io/manifesto
The manifesto
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…
…..
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.
DevTernity 2015 - @softwaregarden
Evolving design◦◦ You don’t just plant
some flower seeds today and expect to see them blossom the next day
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!
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).
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
DevTernity 2015 - @softwaregarden
Fault tolerance
Software systems (like gardens) expected to be perfect. Small errors (bugs) can be disastrous for a whole company
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)
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.
DevTernity 2015 - @softwaregarden
And this passion you should show it
continuously, day by day, every moment in every single line of code you
write.
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.
DevTernity 2015 - @softwaregarden
Shameless slidehttps://leanpub.com/art_software_gardening
The Art of Software Gardening
A practical guide to learn how to treat software systems as
gardens