Software Craftsmanship
”Working software is the primary measure of progress.” — The Agile Manifesto How well are you doing the following?
- Creating system level acceptance test cases that are readable by the PO, and executed automatically?
- Writing unit tests before writing implementation code, and using the unit tests to drive the design?
- Constantly refactoring your code for better readability and maintainability?
- Sharing knowledge about your system by working in pairs and rotating frequently?
- Using continuous deployment to automatically get the latest version of your system into the hands of real users?
These XP practices are habits of modern development, and are fundamental to succeeding with Agile software development over the long term. In Scrum, a team is allowed to choose whatever development process they like. In practice, it turns out that XP practices fill that hole very nicely. In fact, we rarely see teams succeed without them. Doing this, however, takes discipline and practice. A craftsmanship course will teach you those habits and place you in the in-crowd of today’s developers and testers. Software Craftsmanship is a large subject and we offer in-house versions tailored to your needs. Here are examples of what could be part of such training:
- Introduction to TDD
- (We have a YouTube series in Swedish if you like to know more)
- Introduction to Refactoring
- Refactoring, from daily to legacy system replacement.
- Mocking with test doubles
- Clean Code
- Test automation
- Team work as a developer
- Pair programming, mob programming
- Pull requests and code review
- Specification by Example
- Continuous integration
- Version management with Git