Software Craftsmanship Agile 2008 we value craftsmanship over



























- Slides: 27
Software Craftsmanship
Agile 2008 “we value craftsmanship over crap”
Ignaz Semmelweis
The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: • Individuals and interactions over Processes and tools • 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.
'In the early days of the agile virus, the dominant strain was Extreme Programming, which has a lot to say about technical practices. Now the dominant agile strains are Scrum and Lean, which don't care very much about programming - and thus those people who primarily self-identify as programmers feel a large part of their life is no longer important in the agile world. ’ - Martin Fowler
The Manifesto for Software Craftsmanship As aspiring Software Craftsmen we are raising the bar of professional software development by practicing 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. That is, in pursuit of the items on the left, we have found the items on the right to be indispensable.
First, Do No Harm. • No harm to function. • No harm to structure.
Know Your Field. • Many of the ideas of the last 50 years are still relevant.
Continue Learning • A lot just to keep up. • Learn new languages. • Read books, blogs, tweets. • Go to user groups.
Your Career Is Your Responsibility. • The employer that gives you time for training, conferences etc is doing you a favour. • 20 hours per week.
Deliberate Practice. • Professionals practice. • Your daily job is performance. • Coding Dojos and Kata.
Collaborate • Work with and learn from others. • Program together, practice together, design and plan together. • Not 100% of the time, but a lot.
Know Your Domain. • It is every programmers responsibility to understand the domain of the solution they are programming.
Identify With Your Employer or Customer. • Your employers problems are your problems. • Avoid us vs them at all costs
Humility. • Never ridicule or demean others for making mistakes because you may be nest to fail.
Say NO. • What does it mean when you say you’ll try? • You have more to give? • Are you going to change your plans. • Were your original plans wrong? • Or worse - are you going to drop your disciplines?
When saying yes: • Say it, mean it, do it!
Mentor. • The best way to learn is to teach. • The best way to bring people into the organisation is to sit with them and show them the ropes. • Take responsibility for juniors.
Apprenticeships & Mastery
The Apprentice • No tasks of their own. • Works side by side with a Journeyman. • Learning values and disciplines. • Inwardly focused.
The Journeyman. • Learning to work well in a team and become leaders. • Knowledgable about technology but lack experience with many divers systems. • Typically one language/platform but are learning more. • Supervised by masters or more senior journeymen.
The Master Craftsman. • Lead multiple significant software projects. • Typically 10+ years. • Worked on several platforms, languages. • Can lead and coordinate teams. • Proficient designers, architects and can code circles around others without breaking a sweat.
Craftsmanship. • Skill and quality. • Experience and competence. • Works quickly, but without rushing. • Provides reasonable estimates and meets commitments. • Knows when to say no, but tries hard to say yes.
The End.
Further Reading. The Manifesto for Software Craftsmanship http: //manifesto. softwarecraftsmanship. org Books The Clean Coder: A Code of Conduct for Professional Programmers. Robert C Martin Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. Dave Hoover & Adewale Oshineye Free Online: http: //chimera. labs. oreilly. com/books/1234000001813/index. html Articles The True Corruption of Agile: http: //blog. 8 thlight. com/uncle-bob/2014/03/28/The-Corruption-of-Agile. html Flacid. Scrum. Martin Fowler: http: //martinfowler. com/bliki/Flaccid. Scrum. html Practitioners 8 th Light: http: //www. 8 thlight. com http: //blog. 8 thlight. com Etsy: https: //codeascraft. com