It’s Kataday – ATM machine

This week, Emmanuel Valverde has set us a new kata to work through.  Using the knowledge of Test-Driven Development (TDD), that you have been working through recently and he has set a kata to really get you thinking.

We have been developing an ATM machine that has both bills (notes) and coins in it.

In the first phase or iteration, your job, as the developer is to take the amount of money that the person wants to withdraw and work out which notes and coins are needed to dispense it.

For the second phase or iteration, the ATM is limited in just how much it has of each bill / note and coins.  

In real life, you are often asked to code a particular solution, then a few months later, after the software is embedded and used, the client comes back and wants to refine it.  Whilst a new solution isn't needed, it's not a straight forward rewrite.  This is where TDD comes in as a way to create solutions that build on the foundations of previous ones.

Getting set up can be the roadblock to starting a kata. In our screenkatas you can join our Software Craftspeople and let them show you how to set up your repositories for JavaPHPPython and Typescript. For other languages, check out our guide on GitHub.

Love our #kataday challenges?  Then find them all here and don't forget that our Katalyst portal is filled with programming problems to expand and sharpen your coding skills.