Team breakfast this morning is a little different. As we all went out on Tuesday night, I foolishly suggested that we should meet for a fry up at a local cafe, thinking that Aidan might consent to us starting a bit later. He loved the idea but said we should be there for 8:45. Sunil and Jordi have already said they are not making it.
The hangover isn’t great. I haven’t had a drink for a few weeks but yesterday I started at 4pm after the investor’s meeting and I’m trying to work out if cycling in is going to make me feel better or worse right now. The alternative is bus, but then I’ll miss the breakfast. I rule out the tube; I don’t want to vomit down a stranger’s back in a cramped container.
Turns out, cycling makes me feel better. After 30 minutes of exercise in the morning sun and a full English breakfast, I’m actually feeling capable of a day’s work. We take our time eating so we’re not into the office until 10, where we have a late standup and organise ourselves for the day.
I have a couple of backend issues I need to finish off from the day before; Laura is still worried about her workload, so I sit down to help with that. One of her responsibilities was meant to be the test plan but we give that to Will who says he has some time to help. There is also an issue around caching viewings in the renter app which Tom on the other team is looking at but Laura has some work which is dependent upon it. We discuss a couple of options for managing that work with Tom and eventually we decide that we don’t really need that button anyway – how many people are going to book a viewing without looking at the property first? We can add it in later, the important thing is getting the feature out and we need a build ready for the bug hunt at 3.
As I sit down to start work, Amy asks what we agreed with Tom, and I relay the conversation. She’s a little concerned about some other implications of Tom’s work – is the transition going to be right, are we going to confuse the user by pulling them backwards when they should be going forwards? We have limited options due to the nature of the router; I leave Tom and Amy to work it out between them as this is one thing where I don’t need to take responsibility.
The hangover is starting to come back and my brain isn’t really working. I need a coffee. I forget my wallet. It’s 10.49 by the time I get started on development.
I take 10 minutes to go through my to-do list. There were 4 items on it at standup but now I can think of a couple more. The first item of business is to finish the code from yesterday. There should be an event handler that ensures that existing bookings are claimed by an agent when they book. Halfway through doing this Adrian comes to ask me about some tests in the push notification service that look half finished. There’s a lot of stuff commented out. I’m not sure why this is the case, but it’s clear that they should be sorted out, so while I am waiting for a set of tests to run on the main API I start fixing the tests on the push notification service.
This turns out to be a little more complex than I thought, and it takes me a good 40 minutes to fix. I get it done though and the build goes green, unblocking Adrian from finishing off the work he’s doing to transfer the old push notifications to the new service.
Laura then reminds me of a couple of fixes that I had meant to get in earlier; one to stop creating chats for all viewings, only those with chat-enabled agents, and another from our conversation this morning to remove the book viewing button on the property suggestion message because the handler is not ready. I quickly apply both fixes and the return to the work I was initially trying to do.
We move the bug hunt to 4pm. It was scheduled for 3pm as Tom wanted some time to fix things before going on holiday the next day, but Amy convinces him that it’s not his sole responsibility to fix the bugs and there are other perfectly capable people who could do that. It’s more important that we have a working build and an extra hour is going to allow him to do that.
At 13:30 I need to leave to get some physio on my knee at a place in Camden which is around 20 minutes cycle away. I’m back at 14:50. I’ve managed to get very little done in the last 24 hours – with the investor meeting, breakfast and physio appointment – but tonight is a late kickoff in my 5-a-side so I’m planning to stay later anyway and I think I can make up the time.
Moving the bug hunt later has given me a bit more time to write some tests for the claim viewing work I was doing earlier.
I finish writing the tests for the claim viewing code and then push the API around 15:30. I also try and help with a bug related to chat in the app – Laura and Jordi are struggling to separate the badges for chats and viewings. This is related to the issue we were discussing with Simon the previous morning and it’s turned into quite a tricky one to handle. I’m not sure how much help I can be as I don’t know this code very well but I ask enough dumb questions that Jordi seems to hit on an answer, so I leave them to it.
I d0n’t have anything more to do before the bug hunt, so I schedule in some planning and a retro for Friday so that we can sort out what we’re planning to do the following week. We tend to try and get a technical planning session done on the Thursday before a sprint and then a sprint planning on the Monday the sprint starts, but next week several of us are on holiday so we should discuss how we are going to handle that before the event.
Then I head down to the Coop to get an armful of sweets, biscuits and juices with which we can entice people to the picnic table to hunt bugs for us.
The bug hunt doesn’t actually start until 16:30 as there are a couple of last minute issues getting a build out to Test Flight and preparing one for Android. When it does start, it starts badly, as one of the ‘quick fixes’ I pushed out before lunch is actually preventing people from starting chats and I need to patch it quickly so that people can carry on testing. It takes me about 10 minutes to change the code, build locally and then manually patch a new version of the library to our test server, circumventing our Teamcity build which would take a lot longer on account of running all of the tests.
My first patch fixes the issue for renters but not for agents; second time round it seems to work. Once this is resolved the bug hunt goes fairly smoothly. Halfway through I need to stop and answer some questions from Nicola and Andrew relating to the agent dashboard – this is a feature which shows statistics on negotiator usage of the app at their branch, but it currently isn’t very intuitive and we’re double counting some things on account of us generated a lead per agent for each viewing request and mapping the outcomes of the leads rather than of the viewings. I assure them that we’re planning a revamp of the dashboard after Easter, but there’s not much I can do about it now.
Back to the bug hunt and we’ve raised about 30 issues. Many of them are minor; just copy changes, styling and a couple of ‘suggestions’. There are some cases where button handlers aren’t working as well, which are more serious, but easy to fix. The ones I’m most concerned about are the duplicate events and missing notifications. We’ve incurred a lot of technical debt in the back end around viewings and properties and a lot of the function around allowing agents to book a viewing directly for a renter (rather than the renter request it first) was kind of bolted on to the side. It may be time to consider a refactor of that because there are clearly some peculiarities around the way it’s behaving; it’s a bit late in the sprint to be considering ripping out and rewriting two complex endpoints though.
I’ll take a look at that later, though. For now, aside from the issue list, there is a more general question about usability which Amy raises; the new flow seems confusing because now that we have a many viewings to a single chat relationship the discoverability and navigation in and out of those chats/viewings feels unintuitive. Do we need to do something about this?
We discuss with Will. He listens to the concerns but his gut feeling is that this isn’t something we need to worry about. Have we made anything worse? Probably not. Is the new feature a bit raw? Probably yes. But rather than spend another couple of weeks trying to get it out, we should get it out there and see how people interact with it. We’re much more likely to get it right once we know how people react to it in the field. Our testing sessions are a little artificial in that we are putting high volumes through the app without really caring very much about any individual transaction, whereas renters and agents are much more invested in a single transaction and will take more time over their interactions. As such, it is difficult for us to second guess whether the feature is actually as confusing as it may appear in testing.
I wonder if there is some way we can get around this with a more defined kind of role play, but I keep the thoughts to myself for now. It’s late in the day and we want to get a resolution on this. Ultimately, we decide that we should continue but monitor the interaction closely once it is released and try and get some early feedback on what we could improve.
People start to file out for the day but I’m not planning to leave until 8.30pm (kickoff is at 9pm). Still, I’m exhausted – definitely should have taken it a little easier the previous evening. I have a backlog of blog writing to do, and I’d much rather face that than the bug list, so I decide that the fixes can wait until the morning.