the art of software gardening

38
DevTernity 2015 - @softwaregarden The Art of Software Gardening Patroklos Papapetrou @softwaregarden Riga, December 2015, @Devternity

Upload: latcraft

Post on 21-Feb-2017

257 views

Category:

Software


0 download

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

DevTernity 2015 - @softwaregarden

Software Engineer is the most inaccurate job description ever

#EpicFail

DevTernity 2015 - @softwaregarden

What is the most-used term in software development?

BUG

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

What was wrong with me?

I didn't care...

DevTernity 2015 - @softwaregarden

Software Gardening

A reality or (why) another useless analogy?

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 Agile?

Is software gardening something else?

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

Why THIS analogy?

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

Treat code as it's the last flower in

the earth

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

What do I need to become a software gardener?

DevTernity 2015 - @softwaregarden

SKILLS

DevTernity 2015 - @softwaregarden

ATTITUDE

DevTernity 2015 - @softwaregarden

BEST PRACTICES

DevTernity 2015 - @softwaregarden

TOOLS

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

DevTernity 2015 - @softwaregarden

Thank you!

Happy to take questions