James Mead by James Mead

Week 352

We did the usual 4:1 split of days between Smart Answers and GFR, spending Monday and Tuesday at Aviation House and Wednesday, Thursday & Friday at GFRHQ.

Smart Answers

Business as usual

This week, in the absence of Tadas, we had to spend quite a bit of time making & deploying “business-as-usual” changes as new requests & fact-checking responses came in from the departments:

It was particularly good to finally get that last one merged, because it had been hanging around for ages.

I also spent quite a bit of time working on a bug fix for calculate-statutory-sick-pay. The code for this seems way more complicated than the logic of the policy would suggest, so as I gradually understand it more and more, I hope I can improve the code.

While it was good to support the Content Team in making these changes, it was also a bit frustrating that it took our time away from our main goal of making Smart Answers more maintainable.

Anyway, towards the end of the week Tadas’ replacement, Erik Eide, started work at GDS. Welcome, Erik! It’s useful to have a fresh pair of eyes on the project and it prompted us to write some documentation.

Converting Smartdown flows

You may remember from a couple of weeks ago that Chris converted the last Smartdown flow, pay-leave-for-parents, to use only a single question per page. This week he made further significant progress on converting the last Smartdown flow to a Ruby Smart Answer flow by removing unused code from the flow and finishing generating regression tests for it.

Now that this flow only used one question per page, Chris also renamed the question pages to match their underlying question, which will make it easier to convert to a Ruby Smart Answer.

Flow visualisation

As a follow-up to supporting visualisation of flows that use next_node with a block, Chris went through the flows explicitly specifying permitted next nodes where necessary, so that the graph visualisation now works for all of them.

Question options

I spent some time simplifying the way the app looks up the content for question options.

In the past we’ve been bitten quite a few times by the way the code was silently falling back to (often unhelpful/inappropriate) content when none was explicitly specified.

So I’ve made a change which forces all content for question options to be explicitly specified.

To make this change easier, I prepared the ground with a bit of tidying up. Unfortunately, some things I’d inadvertently broken only came to light when the full suite of regression tests ran and some when the change was deployed to production.

Tidying up

It’s so easy to keep putting off obvious simplifications or removal of unused code, so it’s good to see that we’re still ticking off some of these things:


As I mentioned earlier, having Erik start has been a useful driver to improve the state of the documentation. I’m sure there’ll be more to follow:


On Wednesday we held our monthly Show & Tell event. We spent Friday doing the usual company admin tasks, replying to emails, etc. Chris penned the week notes and I wrote up notes on the Show & Tell. As an incentive/reward, we had lunch and a beer at the Strongroom Bar & Kitchen. In the afternoon, we had a productive session going through our company Trello board - this is something we keep forgetting to do, so it was was great to have a bit of a sort out.

Anyway, until next time!

– James

If you have any feedback on this article, please get in touch!

Historical comments can be found here.