Feature: Software Development Skills
Scenario: Fluffy Qafoo Training
Given: “Tobias Schlitt” and “Benjamin Eberlei” give a training
When: 9 InnoGames Backend Developers attend
Then everybody had fun.
And everybody learned about DDD.
And everybody learned about BDD.
And everybody learned about refactoring.
1 scenario (1 passed)
5 steps (5 passed)
Once again we had visitors at InnoGames from Qafoo GmbH: Tobias Schlitt, and Benjamin Eberlei gave a three-day training for nine programmers from the backend department.
The very first training, which took place about a year ago, has really paid off for our team. The contents were OOP (Object Oriented Programming), Programming Patterns, STUPID, SOLID, TDD (Test Driven Development) and Software Metrics. With fresh ideas and new perspectives we got back to work to improve our legacy code and to build “SOLID” new code with an expanded awareness and ideally in a test-driven manner.
The most recent training was based on the first one. The training began with the theory of DDD (Domain Driven Design  ). Following interesting discussions a domain from our payment has been developed Domain Driven in a live hacking. Exercises such as the elaboration of a concept map of the components of DDD and the recording of contexts that exist in our projects have rounded off the subject. DDD was omnipresent during the three days in the other topics.
Contents of the second day were particularly BDD (Behavior Driven Development) . The focus was on acceptance tests with Behat, a BDD testing framework for PHP inspired by Ruby’s Cucumber and Gherkin, a DSL (Domain Specific Language) used to describe the acceptance criteria. In an exercise, we have seen how much fun it is to write acceptance tests that test the front-end of our web applications with Mink .
Everywhere there is legacy code that needs to be maintained and expanded. The third day was devoted to refactoring. We have learned what parts of our code should undergo a refactoring, that one proceeds best in small steps (baby steps), and that preserving the functionality is best assured by a “fluffy test mix” (quote from Tobias). In another live hacking Benjamin demonstrated how the theory can be applied practically.
With many impressions, new info to process and a beer we said goodbye to Tobias and Benjamin. Again we have all taken a lot of knowledge out of the training that has influenced our work already. Finally, it remains to be said that Tobias and Benjamin showed no fear of our critical questions – they always had good answers. It was obviously most important to both of them that all participants fully understand the content and leave the training satisfied ready to change stuff.
We look forward to a next Training with Qafoo!