Software Craftsmanship
During 2 days you will practice the "software craftsmanship" approach (mostly eXtreme Programming practices) and learn how they can help you deliver high quality software.
Why Software Craftsmanship?
Software craftsmanship is an approach to software development that emphasizes the coding skills of the software developers themselves.
Since at Agile Partner we believe that the Software Craftsmanship Manifesto extends and challenges the assumptions of the Agile Manifesto, we think it is important to propose a training on the technical aspects of our industry.
Learning objectives
- Understand what it means for a team to be agile
- Define what is a craftsman and the associated practices
- Understand the strong relationship between software craftsmanship and agile methodologies
- Identify, explain and illustrate the main elements that are the foundation of the “Software Craftsmanship Manifesto”
- Understand what is “Clean code” and “Clean architecture” and why we need to use them
- Define what is a good code, a good test and how to write them
- Understand the role of a delivery team, its interactions and why it must be a full spectrum team
- Understand why we must continuously improve ourselves as a team (continuous improvement, continuous learning)
- Understand the impact of iterative development on our practices (Continuous integration, branching strategy, Continuous deployment)

How does it work?
This training is built as a mix of theory and practice. Attendees will experiment “learning by doing”, thanks different activities, code exercises (code katas, coding dojos) and serious games.
Content
Day 1:
- Dev team role in an agile world
- What is a software craftsman?
- Clean Code
- Clean Architecture
Day 2:
- Test Driven Development (TDD)
- Secure coding introduction
- Boost your knowledge sharing
- Boost your continuous improvement
- Boost your learning
Day 3 (Optional):
We can add an additional 3rd day that will deep dive more into additional topics:
- Boost your knowledge sharing (Effective code review, Community of practice)
- Deep dive- Test Driven Development (TDD)
- Specification by example
- DevOps
- How to refactor legacy code
- Introduction to Domain Driven Design (DDD)