I had the chance to join my mentor for some coaching sessions at a clients site for three days. It was good getting out of our office and be in a completely different environment for a few days. Not that I don’t like our office… but still.
The client uses Java, and even though it’s been a while since I used Java in a professional environment the last time, coming back to it wasn’t as hard as I thought it would be. Admittedly, I practiced some Katas before we went there, just so that I get more familiar with the language again.
During the days we were there, I paired with one of the developers there on a very focused/isolated problem. Which was good, because I’m not fully aware of all the moving parts of their architecture. And Java architectures can be intimidating.
However, being able to focus on a relatively narrow problem helped to concentrate on the problem itself, without worrying too much about the environment it will be used later on. It was also helpful so I could help the developer explain general OO and testing practices and not have the need to bring in too much framework dependencies.
For the first two days we spent most of the time developing a few small classes that have limited responsibilities, but therefore were easy to test.
While writing the acceptance criteria for the complete feature we realised we missed one detail in the implementation of one class. So we paused the acceptance test definition, wrote another unit test, made it green and went back to the acceptance test again.
Then, when we had all the little parts ready, we put them together and our final acceptance test was green without the need to “fix” any implementation.
Seeing it coming all together at the end and just work never gets old.