You may have questions to ask
Please note them, and put your
I’ll follow up with you at a later stage
Or discuss here if time permits
Please place into the box at the front here
Individuals and interactions over
processes and tools
Working software over
Customer collaboration over
Responding to change over
following a plan
We adoptedAgile and now things will be OK
… and the AgileTransformation Era began.
… people, interactions, team building, the
Process and Interactions became more important
than technical practices
Many Agile projects are now, steadily and
iteratively, producing shit crap mediocre
We want to get things done...
… but we are under pressure
But what is to be Agile anyway?
We are uncovering better ways of developing software by doing
it and helping others do it. Through this work we have come to
Individuals and interactions over processes and
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
As aspiring Software Craftsmen we are raising the bar of professional
software development by practising it and helping others learn the craft.
Through this work we have come to value:
Not only working software,
but also well-crafted software
Not only responding to change,
but also steadily adding value
Not only individuals and interactions,
but also a community of professionals
Not only customer collaboration,
but also productive partnerships
Software Craftsmanship is all about putting
responsibility, professionalism, pragmatism
and pride back into software development
How do we know we are building
the right thing?
How do we know we are building
the thing right?
Seniority is subjective and
The attitude towards
Why would we want to be better
… a church, trying to convert all developers
It's about leading by example and showing how we
can be better
… about beautiful code
It's about continuously delivering value not writing
… being miserable and negative
… spreading your frustrations
The only way to have people buying into
what you believe is if they see you happy.
Craftsmanship is not enough to guarantee
the success of a project but the lack of it
can be the main cause of its failure
Agile and Craftsmanship complement each other
and both are necessary.
Agile processes assume technical excellence and a
SoftwareCraftsmanship takes technical excellence
and professionalism to a whole new level.
Single Responsibility Principal
No need for comments
1. Write clearly -- don't be too clever.
2. Say what you mean, simply and
3. Write clearly -- don't sacrifice clarity
4. Replace repetitive expressions by calls
to common functions.
5. Parenthesize to avoid ambiguity.
6. Choose variable names that won't be
7. Write first in easy-to-understand
pseudo language; then translate into
whatever language you have to use.
8. Modularize. Use procedures and
9. Don't patch bad code -- rewrite it.
10. Write and test a big program in small
11. Check some answers by hand
11. Make it right before you make it faster.
12. Make it fail-safe before you make it
13. Make it clear before you make it faster.
14. Don't sacrifice clarity for small gains in
15. Don't strain to re-use code; reorganize
16. Make sure special cases are truly
17. Keep it simple to make it faster.
18. Don't just echo the code with
comments -- make every comment
19. Don't comment bad code -- rewrite it.
20. Use variable names that mean
21. Format a program to help the reader
22. Don't over-comment.
Ebook on Lean Pub
Written by the London
Robert “Uncle Bob”
Changes your thought
Also Clean Coders –
More about your
with Legacy Code
Today @ 3pm
In ad hoc room (next to lunch room)
LearnTDD / BDD Principles without code
Open to all