This weeks I successfully attended a training course from Clinton Keith to become a Certified Scrum Product Owner. Two years ago I attended a course from him to receive my ScrumMaster certificate which I renewed with the latest course.

Even though I’m practicing Agile software development for many years now, I always learn something new in Clint’s courses and receive new impulses. One of my key insights from last week I want to explain in this post, the importance of agile development practices.

The Importance of
Agile Development Practices

Agile development practices like Extreme Programming (XP), Test-Driven Development (TDD), Behavior-Driven Development (BDD) etc. are very helpful tools. However many software developers think they look great on paper but don’t consider to apply them in their daily life. As a result it is often difficult to implement them in organizations. Many teams adopt agile management practices but they do not apply agile development practices. Martin Fowler calls this “Flaccid Scrum”.

I am a big fan of agile development practices, but I am often struggling to implement them in my teams, especially with veteran software developers that are not used to apply them. Even though their importance is emphasized in every book or course about agile software development it was not until Clint’s course last week that I fully understood the difference between agile management and agile development, how they relate to each other and why it is so difficult to introduce the latter to an organization.

When teams adopt agile management practices but do not apply agile development practices the velocity of development will eventually slow down because of technical debt. Technical debt reflects the cost of additional work that is caused by unfinished solutions. Like monetary debt, if technical debt is not repaid it accumulates interest. Unfortunately this will only become visible over time and software developers tend to ignore agile development practices like continuous testing because of their upfront cost.

Continuous testing is more expensive at first because it creates additional overhead but it pays off in the long run. I guess that’s one of the major reasons why many software developers hesitate to apply it at first.

Cost of Change, based on “Agile Game Development” by Clinton Keith (2021), p. 256

In my opinion this graph illustrates perfectly why agile development practices are so important, but it also shows that there are situations where they may not pay off. This is especially the case in game development where we often develop prototypes that might be thrown away. In such cases the solution will not live long enough to pay back the investment of agile development practices.

Clinton Keith highlighted another practice called Definition of Done (DoD) that can help to manage technical debt. The introduction of different levels of Done helps to define the level of completeness a feature has to meet.

Prototype
(D)
Internal Demo
(C)
External Demo
(B)
Release
(A)
DesignStoryboard, Blocked out levelFirst passCore mechanics, ShippableFull story playable
Art / UIConcept art,
Mockups
Stand-in assets, WireframesShippable animations & textures, UI flow finalFinal assets
CodeThrow awayProduction, Unit testsProduction, Unit testsProduction,
Unit tests
BuildManual, PCAutomated, PC, 60+ FPS, No CrashesAutomated, Target Device, 90+ FPS, No CrashesAutomated, Target Device, 120+ FPS, No Crashes
Levels of Done, based on “Agile Game Development” by Clinton Keith (2021), p. 141

In the example of a prototype, level “D” would be added to the acceptance criteria of the user story. For this level unit test are not required. Every other level of Done however requires unit tests. The different levels of Done can be adjusted based on the requirements of an organization.

Agile Game Development

What I really like about Clint’s courses is the way he introduces agile practices by applying them to challenges that are unique to the computer game industry. I highly recommend the second release of his book “Agile Game Development”. It includes all the practices I discussed in this post and many more.