Niko Heikkilä

August 9, 2021

Craftsman's Log - 2021.08.09

Hello, reader! đź‘‹

For the last few weeks, I've been recovering from surgery. Fortunately, it hasn't limited my daily life that much. The operation itself was short and affordable because my employer's health insurance entirely covered it. Healthcare is what matters most should I feel the need to relocate to some other country. As is the case, I don't feel like leaving this socialist Nordic utopia where companies take care of their staff.

Here's another desperate reminder that regular expressions are still problematic. So first, always ask yourself if regular expressions are the right solution to your filtering problem. Then, be ready to write hundreds, no thousands, of string tests.

You can't live long as a software engineer without inheriting code written by someone else. Suddenly, a big muddy lump of untested and undocumented code that seems to work by miracle is thrown at you. That's not a bad thing; we can survive that. The problems arise when we need to change the code. One solution to cope with the pain and get a job done is to proceed carefully through small commits adding tests granularly using the Golden Master and Sampling techniques.

Did you once try BDD and gave up? It's no wonder. Specifying behavioural scenarios in a declarative syntax is not taught for computer science students at universities (is anything testing related taught nowadays?). Here's a good resource filled with appropriate examples on how to write Gherkin in an understandable way for developers and business people.

While we discuss (A)TDD, BDD, SDD, and friends, there's a significant risk we stray towards arguing about definitions instead of practising. I like the term example-guided development as it succinctly wraps all of the above.

Have you noticed that your favourite application has become worse during the last iterations? According to the author, it's a pattern that is caused by officious product managers coming up with bold user experience renovations without actually gathering feedback from users early enough. I agree that Apple used to be great, but somehow they have managed to repeatedly reinvent their wheels and break them during the last few years.

About Niko Heikkilä

Software Craftsman and Extreme Programmer. Currently shipping quality code at Futurice. Building proprietary software for a living and loving it as much as free and open-source software. Linux, Windows, and macOS user. Follow this blog for insights on TDD, BDD, DDD, mob programming, technical agility, lean software development, continuous integration, and delivery.

For shorter posts, check my account on Mastodon.