Thursday 31 December 2020

The year that was, 2020

Well, shit. I'm writing this on the last day of 2020 and thank goodness this year is over. There are plenty of reasons I am very pleased to see the back of this horrible year (COVID being the obvious one) but this isn't the place to write about that. This annual post is traditionally about reviewing my new years resolutions and reminding myself of all the creative things I've managed to do. It has, after all, not all been Division and ... err ... Division 2.

  • 18 posts on this blog (19 including this one) - sixth consecutive year of a post per month
  • regular posts reflecting on life in lockdown
  • did some writing (and GMing) for a MUD
  • continued running a weekly exercise class in the park in Bath
  • another year of the Year in Pictures site - this is the sixth year and we're up to 29 photographers
  • started a Rails project linking Humble Choice to Steam tags, re-learning a load of good developer craft skills
  • rebuilt my server from scratch
  • learned about Github Actions
  • built a pihole for my home
  • renovated the home network at my parents' house (and made them a pihole too)
  • upgraded all my live projects to use a modern version of Ruby and etc
  • 298 contributions to various projects on github (well up on last year)
  • learned the basics of wood turning (and made two bowls)
  • extensive instagramming
  • loads of photos on my flickr stream

Resolution count - 6/10. Nice.

Frankly, I'm astounded that this year of all years I've managed this much. I also achieved one of my stretch goals (of five but that's not the point). This is testimony to my own levels of awesome. Or, more accurately, this is testimony to a lot of effort to not just disappear into work during lockdown.

Speaking of work, I deliberately don't reflect much on work int this post but there is something worth remembering. This year I made some decisions and moved out of London and back to Bath properly. While it has been in the middle of a pandemic, so hardly the homecoming I anticipated, it still has been fantastic to stop the commute and live in one place again.

Next year... well. I've been writing this review post for seven years now, starting way back in 2014. In the last few years each year I've written some variant of "this year has been all about work - something to change next year". Then I've utterly failed to actually follow through. With lockdowns and COVID, work and life are blurring which makes stepping away all the more difficult so this year I'm going to have to work much harder at building a non-work life. However, I've been making some progress recently with picking up programming again and as long as coffee shops reopen before too long I hope to carry this on and build on it.

Nobody knows what 2021 is going to bring. Normally, I write about wanting to do things and learn things and so on. But the world isn't set up for that at the moment. I have my normal hopes, but more importantly next year is about the people. Life is exceptionally dark at the moment, so what can I do to bring a little light?

2021. Here we go.

Monday 21 December 2020

A first look at Github Actions with Rails and Postgres

In my last post, I mentioned that while upgrading my Heroku tech stack I noticed Codeship was experiencing some kind of outage. This seemed to stop anything appearing in the "checks" part of a pull request (including any kind of error message, which was a long way from helpful) and I decided to investigate Github Actions for my CI/CD needs.

I've been thinking about using Github Actions for a little while, for two reasons. First, I wanted to run my linting in my CI pipeline and I know of a rather good tutorial for getting started doing this using Actions (thanks Dean!). Second, this should move my CI config to the project repository (keeping it together and putting it under version control) and remove a dependency on a third party SaaS product. I can't help feeling that the recent Codeship outage (which I only noticed because the check was missing in my PR, and could easily have missed this) vindicates this last point.

As a side note, Codeship now seems to be fully working again.

Anyway, the Rubocop implementation is actually pretty straightforward, but it took me forever to get the tests running because of a few tricks and gotchas which I thought I'd record for posterity.

Bundler

Let's start with a timesaver. I read a lot of examples while setting this up, and some had extensive Bundler config in them. However, if you're using the ruby/setup-ruby@v1 action for setting up Ruby (code here) and you put in:

  with:
    bundler-cache: true

It will just handle everything bundle-related with no more configuration. Hurrah!

Migrating Capybara driver to Apparition

I have no idea if anyone else is still using Capybara Webkit to drive their Capybara tests but I was. It has recently become a pain to install because the underlying library (QtWebKit) has been deprecated. I found this out after quite a while of trying to get the QtWebKit libraries accessible in my Action. That didn't work.

It seems Thoughtbot, the authors, agree with me and have deprecated the thing and recommend a move to Selenium or Apparition. I chose the latter because of claims of backwards compatibility and it was very easy to switch when I finally realised that this was a more sensible way forward. The changes can be seen in this commit along with the inclusion of an Action setting up the Chrome driver in my test workflow.

Configuring the database to work in a containerised world

Good grief this took me forever.

In theory, this is really easy - configure a Postgres database as a service, when the tests run connect it up, and bam. In practice it is also really easy, requiring minimal config to get it working. However, it requires getting a load of options to line up and since it's all running on Github servers, the feedback loop is annoyingly slow so painstakingly iterating through a million tiny variations to get to that simple working config took an eternity.

In the end, there were only two things to note.

First, when configuring the Postgres service one HAS to specify a port (despite it being the default port).

Second, remember to update the test database config in database.yml to accept some environment variables (and also default to allowing the tests to run locally). It's really easy to do when you actually remember to do it...

It's highly like these are more down to my own incompetence than anything hidden or surprising.

And done

And lo, it works. While it took a while to figure all the details out, the results are actually really simple and easy to duplicate for other Rails projects.

The whole change for implementing Github Actions and implementing the other updates can be seen in this PR.

Saturday 19 December 2020

Upgrading to the Heroku-20 buildpack and Bundler 2

I figured it's about time to start moving my various running applications and kit to Ubuntu 20, now there is a new LTS version and well before v18 totally dies. I know I'm late to this party, but I've been busy.

Today I updated an application hosted on Heroku and since it wasn't 100% smooth thought I'd capture my steps, both for myself in future and anyone else who finds it useful.

The tech

  • Ruby on Rails application
  • Ruby 2.5.1 (Ubuntu 18 default version)
  • Bundler 1.17.3
  • Heroku on buildpack 18
  • Codeship for automated testing and deployment

The process

On Heroku, go to the app page then its settings. On this page you can change the stack via the big red "upgrade" button. This requires a redeploy of the application.

Back at the app, I updated by ruby version (.ruby-version file for me), installed bundler and ran bundle update --bundler to upgrade from Bundler to Bundler2. This provoked some other minor config changes, all in this diff.

Then Codeship broke. As in, it was totally down. Sigh. When this came back, the build was not working, giving me a deadlock error when running bundle install. This gotcha took a while to fix (hence writing this post). In the end, all I had to do was add gem update --system to the build setup commands before gem install bundler.

And voila, we're in the modern world and everything works.

Saturday 14 November 2020

After thirty four weeks

It has now been around thirty four weeks of lockdown and the pandemic. After a period of the country beginning to open up, the rising number of cases and the increase in the R number has forced a return of a full England-wide lockdown.

To state the blindingly obvious, this has been a very difficult year and despite some signs that maybe the world is getting better (not least some promising news about a COVID-19 vaccine) a dip back into full lockdown, while undoubtedly the right thing to do, is a very hard pill to swallow. I deliberately stopped writing these weekly posts because, frankly, I ran out of ways to say “this week I worked hard and spent some time walking in the dark” but after a break I think I need to collect my thoughts on how I’m going to work through the next few weeks.

For me, the approaching winter combined with the loss of places to gather (ie coffee shops) means hugely increased isolation. I can no longer go somewhere to be around humans, which, as someone living alone, is very important to generate that low-level social contact. It also means I can no longer go places to do things. Outside of work, I normally take myself out of my flat to write (words or code) to put myself in a different environment which helps me think and focus. Now everything I do, whether it’s work or sleep or work or relax or write or work is all in these four walls and it makes it very hard to compartmentalise each area. That is making it hard to shut off work (especially at the end of the day), or “get things done” at the weekend.

So, with that recognised, what am I doing?

Firstly, running on low power, I’m going to make sure I set myself appropriately straightforward goals. I’m going to keep todo lists, but make them very achievable which should help motivate me to do them and give me small feelings of satisfaction if I do. I’m going to aim to do less, but aim to do it well.

Secondly, I’m going to make more of an effort to put things in my diary. Generally, I prefer a slightly more ad hoc approach to life since in work my time is dictated by the tyranny of my diary. However at the moment I think I need specific things to look forward to, and specific commitments to motivate me to get moving.

Thirdly, I’m going to pick up a new(ish) hobby. While people have been learning languages and so on, I don’t have the mental capacity to take on something completely new. However I’ve been doing a lot of photography over the years and I’ve found myself taking many pictures of the architecture here in Bath in the dark. I think I’m going to focus on this through lockdown and write a post about the pictures towards the end. It’s a mini-project that will give me some focus.

Fourthly, I need to contain my working hours. There is a lot going on at work at the moment and given my “office” is a few paces from where I’m sitting right now, it’s far too easy to still be sorting out that last thing at 8pm every night. Then a walk, then food, then the evening is more or less done. Done continuously, this way of working has a significant negative impact on those around me and it is very unhealthy for me too. So I’m doing what I can to make sure I am done by at the latest 18.30 every day. That is still a long day against my contracted hours, but it’s a positive step towards putting work in a sensible box.

So that’s four concrete steps I am going to take through lockdown 2. Let’s see how it goes.




This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Sunday 18 October 2020

Losing Chrome URLs

 This is going to be a short one, mostly so I've got a reference for the future.

It seems Chrome as of v86 (latest at time of writing - at least on Linux) is hiding the full URL unless it is selected, instead showing only the domain. This is to highlight fraudulent websites for people who can tell the difference between www.google.com and www.google.evilsite.com but get confused when there is a huge set of valid-looking path and parameters after it. It seems that's about 60% of the web using population.

Anyway, if you're in the 40% and you find seeing the whole URL quite useful thankyouverymuch and don't want to have to select the bar to see the information, then you can disable this new feature.

Put this into the task bar: 

chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains

Then search for and disable:

omnibox-ui-hide-steady-state-url-path-query-and-ref-on-interaction

Restart Chrome and lo, the URLs are back where they should be.

For me, I was surprised by this and I was wondering why The Internet had decided to embrace loading pages into frames with javascript, before I realise the browser was doing this not the site.

Sunday 27 September 2020

What do I want from a job?

I've been asked a few times recently what I would actually like from a job. What motivates me, what excites me, and so on. This is a question I ask my own line reports regularly so it's with some sense of my own hypocrisy that I've stumbled through my answers. It's probably a good idea to actually think about it.

This post is for me to collect my thoughts. It isn't about the most perfect job ever. It is a collection of thoughts about how my working life could evolve in the nearish future.

Important things

Being things I think are very important to me.

Problem solving

Most important to me is problem solving - and the space to be able to explore different solutions to problems. I was a mathematician at university, so I see the world as a series of problems to take apart, analyse and solve. For most of my career the medium I've used for this is technology but that's not as important as the problem itself. Basically, if I've not got a problem to solve and some space to solve it I'm not going to be happy or engaged. These days that probably means any role needs a strong strategic element.

As a Completer-Finisher, I suspect I won't be entirely happy if I don't have some hand in delivering the solution however so far I've not been able to test that theory.

People

One of the main reasons I do the job I do now is to be able to improve the lives of the people who work with me. I've written many posts along these lines on this blog and if I'm in any senior role, this is pretty much non-negotiable (I'm an INFJ / Advocate personality type). I need to be able to help those around me, and not just in a "soft" way through mentoring and the like. I want to be able to move people around so they can learn and grow, have the authority to sort out their pay when there is a problem, be able to make changes when people are upset, negotiate leave when they have life events, and so on.

This is important enough to me that the only real alternative is to go completely the other way and be absolutely clear that nobody is my responsibility at all. I'm not sure that would actually make me happy and would require some careful thought.

Technology

I've worked with (web based) technology throughout my career and this is where my core "technical" skillset lies. I'd like to remain fairly close to technology - it creates important opportunities for change in organisations, society and life in general and yet it (and particularly its limitations and ongoing maintenance requirements) is very poorly understood by those who often are making decisions about it.

This doesn't mean hands-on, of course (aside from recent strange times I haven't written production code in a long while) but I have a wealth of experience in this field, both hands-on and in communicating it and it's important to me to stay enough in the space to stay current.

Social good

I need a reason to get up in the morning, and "to make a rich person richer" isn't a good one. There are industries I know I will avoid (promoting gambling being an obvious one) and in general I want to know that I'm doing something to make the world a better place somehow.

Scope and support

While this doesn't make me excited, per se, I have been through long periods in my career where I've been expected to deliver and manage and support a huge number of things with no real support at all. That doesn't mean emotional support from colleagues and management (although that's always nice!) but, depending on the role, proper channels of delegation and people who can take on appropriate problems and tasks to take them off my plate - especially when the thinking is sorted and they are routine.

Similarly, the role should have a clear scope. What is it responsible for? How will I be judged a success (or not)? Importantly, what is NOT its responsibility?

This a long-winded way of saying that the role should be appropriately scoped and resourced.

Fairly important things

Being things I like, but are more "nice to have"s.

Management

Given what I wrote about People, it seems odd to put this here and in some ways my goals in People and the mechanisms provided by Management are inextricably linked. However, if there is a way to do the things in People without having to be a line manager then I'd be happy not having to do performance reviews and so on. I've done a lot of this, across a lot of people and I'm not scared of it and a strong culture of good formal line management is really important to keeping a strong foundation under a department. I've put it in "nice to have" because while I'm keen to do it, it's not a deal-breaker for me (with the caveats above).

Technical delivery

I like making things. I like seeing the things I've made make a difference to people's lives. I also get a bit of a kick out of seeing a big positive next to one of my projects (happier people, money saved, increased uptime, etc). So I think I'd like to be somewhere near delivery - if I'm not making a thing, I'd like to feel I'm directly responsible for a thing being made in some way. This is harder these days, and I'm experimenting with redefining "delivery" in my head - hence it being a nice to have.

Budget control

Part of implementing solutions to problems involves spending money. Sometimes that means making tough prioritisation decisions. I'm not a stranger to these things, but I have also found myself in situations where I don't control a budget so the first step of every buying or hiring (no matter how small) is an extended negotiation. If the budget holder has no stake in delivery (and this has often been the case when it comes to pay, but that's another problem) then this can be extremely draining.

The budget itself isn't as important as "the ability to spend money", although to be fair to the organisation I'd have thought those should come hand in hand.


Monday 31 August 2020

After twenty three weeks

It has now been around twenty three weeks of lockdown and the world has changed. The restrictions continue to ease, although the number of new cases per day is on the rise. Many decisions are being made about the future of the country, however I’m not going to write about those.

What I do want to write about is the weird message we are seeing in the papers about getting back to work. Setting aside the utter lack of empathy being shown - people are frightened - I want to take a quick look at the underlying assumptions in the message.

Firstly, there is an assumption that people aren’t working now. Because we aren’t in the office, we are slacking off or not working at all. Now clearly there are some jobs for which location is important (you can’t build a house remotely) but the modern office is perfectly capable of working remotely. Indeed, during this period I’ve seen my colleagues work harder than ever - putting in more hours, remaining better focused on delivering solutions. I myself went through a long stretch of working around 3 days worth of hours for every 2 calendar days, including over the weekends. And yet we’re hearing about “bone idle workers” staying at home and not helping the country recover. This narrative is simply not true and does a great disservice to the many workers around the country who have done everything they can to keep things going during a time of international crisis.

Secondly, there is an underlying assumption that returning to normal (ie as things were a year ago) is the ideal. For me, this is a long way from true. A year ago, I was travelling an awful lot and basically doing nothing but working. I was looking to change this before the pandemic hit, but now I’m certain. I have been stuck in one place for pushing six months now and that has been lovely. I haven’t had to get on the train, I haven’t had to run from location to location looking for the next person to meet. I’ve been at home - the place I’ve worked for and which is full of my stuff - and it has been great. Now I’m not certain I want to remain a remote worker, but I do know that the minimal commute (bed to sofa via shower) has been wonderful compared to getting on the tube every day for half an hour or more.

Not that I want things to be as they are right now. I would like to go to more than three locations and I would definitely like to be able to pick up new things and meet new people. However, I feel like my current life is a good starting point and I’d like to be able to add to it - not reset to the madness of my old life and work from there. I know a lot of people who feel this way, which makes the ongoing call to return to the bustle and noise of before hard to hear.

Underpinning the “back to the office” narrative is a push to get the economy running again. Of course, one would be forgiven for thinking the London economy is entirely shaped by sandwich shops. Maybe this is modern city life? Working hard so you can buy sandwiches from someone else, while the city around you slowly prices all service industry people out of living there?

Myself, I see a different story. It’s about control. Get back into the office quick - before you realise you actually have some options. Don’t start making any decisions for yourself because you might notice that this unique event has stopped The Machine long enough to take a look at the world and think that maybe this isn’t what you want. Maybe we don’t want to all be running around all the time like ants.

Control is in the micro - we only trust you’re working because you’re in the office where we can see you - and the macro. The current economic system doesn’t benefit many. I am fortunately enough to be in the ranks of people who are doing ok, but there are many people who are chewed up and spat out by society. And there are a very few who benefit from the status quo - the queen ants in the analogy above. The same people who seem very keen for us all to be back in the office where they can see us...

There isn't a conclusion to this post. Like all of these lockdown posts, I’m recording my feelings and the way I’m thinking. At the moment I’m using this time to think about what I really want from my life, what I’m worth (both in the market and in a general existential way) and what this means for my future. What I want is definitely different from what I had.




This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Sunday 19 July 2020

After seventeen weeks

It has been seventeen weeks of lockdown. I’ve taken a few weeks off writing these posts because, frankly, I lost all enthusiasm. Lockdown has been a long, dark time and that’s before getting to the things that have happened during this time and I took a bit of time to work through how I’m feeling.

The answer is: rough.

I’ve been staring at the same four walls for seventeen long weeks. In that time, I’ve had almost no human contact outside of the supermarket and phone calls. I’m a solitary person most of the time anyway, but that is by choice. This enforced isolation has eroded my patience and sanity and I’m definitely ready for a change.

More significant though is the way life is on pause. I, like many others, have had an enforced change of pace and life patterns and that has caused me to reflect on what I do with my time and what I want to be doing. Where I’m spending my time and energy and where long-term change is needed. I’ve come up with a lot of ideas for things to change, and I’m ready to do them, but I’m just not allowed. That was a problem for a while, but now my patience has snapped and I’m getting increasingly twitchy.

There are lots of factors contributing to how I feel which I can’t write about here, but the upshot is I’m finding myself pacing like a caged lion.

However. However. All times pass. This lockdown is easing (as I write this I’m in a coffee shop - something I’ve missed more than I realised over the last nearly 4 months) and things are going to change again. I’ve made some life choices, I face some new challenges, and while some parts of my life are still a long way from where I want them, finally I’m starting to feel something I’ve not felt in a long while. Hope.

Time to face life properly again.



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Sunday 7 June 2020

After eleven weeks

It has been eleven weeks of lockdown.

More importantly, it has been two weeks since the murder of George Floyd and last week particularly has seen a vast increase in the Black Lives Matter protests and demonstrations around the world. 

As a white person who has grown up in safety and prosperity, I have nothing insightful to add to this international outcry of pain and anger. The best I can do here is voice my support and use my platform (such as it is) to encourage those who read this blog to engage with what is going on.

I’d like to recommend everyone listen to this song - Black by Dave, performed at this year’s Brit awards. Listen closely to the lyrics then reflect.

   

 If you’d like to do something and you’re not sure what, you can find places to donate and other things here: https://blacklivesmatters.carrd.co/



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Wednesday 3 June 2020

After ten weeks

Ten weeks down. I assume Other People still exist physically as well as in this little box of lights.

So this week I finished a small repair project - I fixed a broken multi-plug adaptor. This has taken about 5 years (because I dismantled it then forgot about it) and about £25 of screws but I finally have a working adaptor that I don't really need (because I replaced it years ago) which is worth about £13, as well as close to 1500 tiny screws which I'm sure I'll use someday.

This is my life now.

Fixed gangway



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Monday 25 May 2020

After nine weeks

Nine weeks down, and I skipped eight for Reasons.

After nine weeks of very heavy work, I am now facing a whole week off. Much of the time is going to be spent resting and recovering as I am definitely exhausted and need some proper recuperation. However I don’t intend to be asleep all week, so I need a few things in mind to fill the time and this brings me to one of the favoured topics from the early days of lockdown - self-improvement. Back in the beginning, a very common way for people to face the lockdown was with the idea of learning something new - languages were a very common suggestion - and I remember looking on these suggestions with envy as I completed my tenth 12 hour working day on the trot. However, now I have some time so it is worth having a bit of a think about what it means to me these days. Then I can ignore my thinking and spend the time being kind to myself.

In the before time, I used the act of leaving my home as a trigger for shifting my mental state. I wanted to write something, so I went out to sit in a coffee shop and put digital pen to paper. It gave me a good separation between rest and doing things and in the current climate of no coffee shops and staying indoors, it’s something I’ve noticed. I need to build a new way to get going mentally - ideally without relying on caffeine.

There are three things I think I need to look at in the world of self-improvement and I hope to be able to kickstart all three this week. The first is programming. This has taken a significant backseat over the last year or so, and doubly-so since lockdown started. The division between work and life has always been thin for me, and lockdown has hit that very hard so avoiding even vaguely work-related things has been a must for the last few months. However programming is something I enjoy and I’ve got a few things I want to get done, so I need to figure this out.

Next up is exercise. I’ve been far too physically idle since lockdown began and I need to fix this. No great insights here. I’ve got a skipping rope and a nearby park. I’ll start there.

Finally, I think I will pick up on my reading. I used to read extensively on the train and the tube, back when I travelled around on those things. But now I don’t and I haven’t really found a good gap to get back to books. I also need to pick up something edifying - too much of my time at the moment is spent pondering pointless or unhelpful things so something something meaning of life would be a far better use of my brain cycles as well as enhancing my pretentious nerd credibility.

So this week is: do some programming, do some exercise and do some reading. Today I slept most of the day after a night’s insomnia. Great start!



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Monday 11 May 2020

After seven weeks

Seven weeks down, more to go and I’m struggling to write anything this week.

Everyone is having a difficult time during lockdown. Some folk are carrying problems in their life. Some are trying to keep sane in a small space with children climbing over them. Some are entirely alone. There are people who have it much, much worse than any of this.

It feels churlish for me to complain. I have too much to do for sure. But I'm not in financial difficulty. I'm physically healthy. I’m in no more physical danger than the majority of people. However, this week has been the week things have hit me pretty hard.

I didn't come into the lockdown period fresh. I was exhausted - counting the things I needed to do before I could take a proper holiday from work. Get some time back and spend some time breathing. During this time I've been on the front line, working through all manner of things to do my job effectively and that has included long hours and weekends without break. I'm far from the heaviest affected but that doesn’t mean all is well or anything is sustainable. I'm certainly not getting a rest.

I'm keeping this short this week. I was going to talk about ethics in modern software engineering, but I don't think I can face it at the moment. I'm going to be a bit kinder to myself today and take some time doing the things I want to do because I need to give myself some space right now. No clever insights or anything, but that's not the point of these posts at the moment. This is a weekly(ish) diary of my experiences during the coronavirus and the UK lockdown. This week I am low.



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Sunday 3 May 2020

After six weeks

Six weeks down (and yes, I skipped week five). Today is the forty-third day of lockdown - a month and a half with extremely limited human contact. At this point I have come to believe that people are actually faces in boxes who come with a mute button.

Isolation aside, I want to write something about finishing things, prompted by this cartoon from The Oatmeal. When is something good enough? We are under a lot of pressure at the moment, which means whatever needs doing, needs doing quickly. Whether it's writing code, or writing papers I've seen (and experienced myself) paralysis around completion scuppering good work time and again in my career and this seems more prevalent the more senior I become.

Perfect is the enemy of good, as the saying goes (both Voltaire and Confucius had things to say on this). Trying to make something perfect can stop it being put out. Just as with a software project (or indeed any project), if it hasn’t been released it doesn’t have value*. Agile preaches to release early to start gathering feedback and realising value and it seems to me that this should hold true for written documentation, writing briefs, and so on.

I can think of a few reasons why this doesn't work in the same way. A digital project is reaching potentially thousands of people, and each will have a different experience. A written paper will be reaching a handful of people. It's unlikely these people will re-read your paper after some corrections, so iteration doesn't really work in this context. Each  "transaction" has a greater value, and that value is to you personally rather than to the company and nobody wants to risk looking like a fool.

This line of thinking goes to an interesting place. Why does writing something take time? Because it’s frightening. Why? Because it is personal, and makes us vulnerable. However, speaking for myself, I'd rather receive information earlier and less polished. My threshold for "good enough" is lower than those who report to me. I suspect that is true for those I report to as well.

As I turn this over in my mind, I find it keeps coming back to the same point - corporate culture and safety. I hope I create an environment where people feel ok to make themselves vulnerable. Regardless of my success (or otherwise) in this, I know plenty of people at different levels who do not. It seems to me that accidentally creating a culture of fear is detrimental both oneself and others for very practical reasons, as well as it being a crappy thing to do.

Muse over. In the meantime, the route around this is to learn to write and have confidence in one's ability to string words together. It's an important skill and why I write this blog.

* Gross oversimplification, of course, ignoring learning and so on, but even an investigation has a "done" state which is analogous here



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Tuesday 21 April 2020

After four weeks

Four weeks down. Another three (or more?) to go.

The last few weeks I’ve been writing about work. That has been interesting, but if I’m facing the better part of two months (or more?) without any direct human contact I need to think more about my own mental health and look at my own reactions.

I have been working long hours and weekends since the outbreak began, and in a way I’m grateful for this. It has kept me focused and given me purpose, which has meant time has passed rather than dragged, or worse. However, I came into this period exhausted and there is only so much a change is as good as a rest. Unfortunately the nature of my current work makes taking time off extremely difficult, so now I’m feeling pretty trapped.

Fortunately, this very problem (and a few large mugs of coffee) has been a catalyst for some significant changes in our approach. Why can’t I take time off? Because we’re nowhere near a business as usual position. This is a problem for many reasons beyond my own need to take some time off so solving it should be very valuable for all kinds of reasons. So how do I solve this wider problem?

Thus begins the journey to re-craft the project into something that looks like a more conventional programme. Once I'd opened that box, it's amazing how many other related things started falling out - governance, technical decision making, staffing questions, etc etc. Lots of the leadership team are grappling with some tricky situations and I have a hope that pushing through these questions will put us on track to finally resolve some core issues and give us a framework for discussing the rest. Then maybe I can take a break.

The details here are something for another time. For now I'm returning to something I wrote about years ago - asking (and answering) the simple question can lead to some very interesting results. I really wish I could remember my own advice more clearly sometimes.

Oh, I was supposed to be writing about myself rather than work. Well, I guess I'm fine. How are you?



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Thursday 16 April 2020

After three weeks

Three weeks of lockdown complete. Last week we were trying to bring some sense of order out of the maelstrom. This week, it has been pleasing to see some success. We definitely have clearer lines of communication, and we have far fewer conflicting priorities and while this week has still been rough, it has lost the frantic and desperate edge. I’m taking that as a success.

The work this week has been about reaching out and having a clearer voice in the narrative. I’ve written before about the problems with prioritisation. After analysis, it seems our key problem is that of our four workstreams (feature development, technical debt, bugfixes, onboarding) only one is being discussed upstream. Predictably, this is feature development. Then it reaches the operational team and the other three streams are brought in and prioritised with insufficient visibility and it looks like we are delivering slowly, which is totally unfair.

This week I had enough clear air to write out exactly where this work is coming from and the impact of it being prioritised (or not). It’s a first step, but we are slowly working towards a world where the impact and consequences of prioritisation decisions are being felt by the people who are making them, not by the poor folk downstream who have to implement them. Still work in progress, but I feel hopeful.

I’d like to push this a lot further. Rather than constant demands, I’d like us to be making clear statements of intent for our delivery (ie a roadmap) and then we can very clearly articulate the problems caused by changes in priority. It is, of course, fine for other areas to have different priorities and to roll things out their schedule but often, if these groups are upstream in the project it means their priorities are de-facto our priorities as we have to react. By having a voice in the narrative we can make clear the impact of their decisions on the delivery of the whole service.

The next step for this is for there to be a clear project roadmap, which will start to map dependencies on any given change, make it less likely we’ll get ambushed by a connected group doing something unexpected, and enable us to plan rather than just react.

I’m using the word "clear" a lot. It’s almost like "how do I bring clarity?" is the key underlying question here.

Anyway, work isn’t going away and more on this next week no doubt. How am I doing? It’s Easter weekend - a four day bank holiday - and I’ve had a really hard time relaxing. I know there are people working over the weekend while I’m having a rest, and I know everyone is doing a different job so it’s not comparable. I’m also aware that I’ve been feeling physical symptoms of stress and anxiety (shortness of breath, tightness in the chest making eating difficult - it’s a barrel of laughs) which has been an interesting and new experience. I know I’ve more than done my part, including working through other weekends and a ridiculous number of hours in-week. Despite all this I feel very guilty at having been resting this weekend when others have been working.



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Tuesday 7 April 2020

After two weeks

Well, I have survived the second week of lockdown. It seems my life is now work and sleep, and I'm starting to come to terms with that. Time for a few reflections of life alone in a flat.

The last week of work was manic, but looking back I think we did a lot of things right. The current project is of critical importance, which means it's getting a lot of attention from right at the top and that means lots of conflicting requirements coming in from lots of directions. For the first week, the work was very reactionary - trying to triage incoming requests to the engineering team in as sensible a way as possible, with the project leads constantly on calls working out priorities and detailed requirements and trying to find more humans. Last week we made a conscious decision to shift from this maelstrom to something that looks like an actual project structure and through significant effort we are starting to see positive results.

We've focused on closing down communications channels to stop priorities coming from every direction. One of the biggest problems we've found with successful triage is simply not knowing which “top priority” is actually the one we have to do first and not having a forum where people who aren't us can fight over that question. Now we're getting feature priorities from one place, which saves everyone time and sanity. It also gives us a place to push back with technical (non-functional) requirements which will help the service and also enable faster development in the future if only we can get them sorted. Go slower now to go faster in the future.

We've had to look very closely at our onboarding strategy. Bringing in people takes time, which we don't have, and some of the technical debt and security restrictions we have in the system make directly scaling the team very difficult. This brings us back to the point above - we need to address this technical work quickly, however defending the time to address technical debt is next to impossible at the moment, so the next step is to have another look at how we're articulating the consequences of any decision to de-prioritise this work.

Taking a step back, this work is actually very interesting. We're doing rapid scaling in an environment in no way suited to doing that and I'm learning some very interesting things. More importantly, this work is essential to protect the engineers from constantly shifting priorities and being under heavy pressure to work unreasonable hours which makes it very worthwhile to me.

Outside of work, I suppose I need to think carefully about my sanity. My weekend was mostly spent curled up mostly asleep watching things on Netflix. Clearly a reaction to being exhausted mentally and emotionally, but it's not exactly a good sign. This week I'm aiming to put things in my diary for some of the evenings to make sure I'm signed off at a sensible time and I have a four day weekend over Easter, unless I have to work. My aim is to be awake for some of it.

It's not all bad. I'm currently wearing a hoodie that I got at university. It kinda fits for the first time in years.



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Tuesday 31 March 2020

After one week

Lots of things I could be writing about from March, but let’s be honest the lockdown of Britain is the thing in everyone’s head right now. It’s one week into the formal lockdown (announced Monday 23rd March). How are things going? I’m going to try and write something each week during this period to capture how I’m feeling through the lockdown. One day I hope to look back and this will help me remember what is a very strange time.

I’ve actually been working from home for two weeks now. I’m in my home city rather than London, which is a big plus. Work is very full-on at the moment, resulting in some very overworked people and some heroics to keep things going forward. It’s stressful, but interesting work and I’ve enjoyed going through a whole variety of roles from high-level strategic lead, to technical delivery manager, to technical architect. I even wrote some code the other day. It’s a thought for another day, but it has given me a series of windows into different futures - at some point I need to process this and work out what I actually want to be doing with myself.

One of the perils of home working is letting your job consume you and that is certainly happening to me. To an extent, I’m ok with this as it’s keeping me busy while I can’t go outside and I’m doing important and urgent work. On the other hand, working 12 hour days 11 of the last 13 days isn’t going to do me any favours. Fortunately, I’m in a position to at least try to bring some order to the chaos so maybe I can help out.

Outside of work? Well, there isn’t much outside at the moment. I’m getting my government allowed walk each day, usually around dusk. The town and parks are very quiet as you’d expect. I’m eating fine, although not really doing enough exercise. The biggest problem is the isolation. I live alone so all human contact is now over the phone, which is a weird experience. It means that I’m timing my walks for dusk so I can see the bats and talk to them. Bats are great at social distancing.

Joking aside, I am a bit concerned about going a bit strange when life is mostly work and sleep, with some phone calls in between. I’m trying to meet people digitally, but with the late working I’m finding that quite hard to do. It seems most people want to gather early in the evening and that isn’t working for me. I’m also concerned with the amount of time I’m spending staring at screens. I try to avoid it normally, but now I’m intensely staring at a laptop through most of the day then stepping away only to fire up a desktop for the evening. Hmm.

More soon.



This post is from a series of shorter posts, written roughly once a week while the country is on lockdown to capture my feelings and reactions as we go. They are all tagged with coronavirus.

Sunday 23 February 2020

Turn the year off and on again?

A month ago I wrote a post about time vanishing and it suddenly being the end of the month. I decided I was going to do things differently and looked forward to the rest of 2020. How has that worked out?

Well, I find myself writing the same post but this time a week BEFORE the end of the month. I'm not sure this is real progress but since I don't have a lot to write about again, perhaps it's time to unpick this differently. Am I solving the right problem?

My question here is: why don't I have anything to write about? Last month I focused on prioritisation to lessen my cognitive load. That was actually quite successful. Beyond what I wrote, I have addressed some real sources of worry and anxiety and reset some relationships (mostly at work) which have helped clear my head. I'm feeling less anxious than a month ago, which is a real blessing, and I intend to continue this for the next month. This has and will continue to help.

However that still leaves me approaching the end of the month on the back foot with nothing to write about. My posts are normally about something I've been turning over in my mind, some interesting challenge or something I've experienced or learned during the month and often I've got them mostly written in my head before I sit down to write anything. So while I'm feeling better, and while I've done a few more things this month, I still haven't cleared enough headspace to be able to think ahead and around anything. Given my job is strategic in nature, this is ... suboptimal.

One thing I have learnt over the years is that "clearing headspace" doesn't necessarily mean "doing less". Anxiety seems to be like a gas - it will expand to fill the available space. For me, that often means that rather than doing less and less until I feel better (which has a habit of triggering mild depression, especially when I can't actually clear enough - yay thanks brain) I instead need to use something positive as a focus to drive out the worry.

Lent is coming (already?!) and that is a time to change habits - either by giving up things, or adding something positive. In unrelated news, while I've been writing this I've also been doing some light development work and really enjoying it. Hmm. I seem to remember that working through a neatly atomised project with clearly defined goals has helped me in the past...

Thursday 30 January 2020

Rebooting the year

It's the start of a new year and I find myself on the back foot already. After a 2019 which can only be described as "a year that happened" I was hoping to launch into 2020 full of excitement and wonder with new hobbies and ... well, basically more fun.

Then I got the flu. Which always triggers depression in me.

Then I got back to work and had to catch up after having the flu while still getting through the depression cycle.

And now it's the last days of January and honestly I have no idea where the time has gone. I've just finished uploading the pictures from December to my Year in Pictures site, which is normally done mid-month. I've got a list as long as my arm of pretty basic things I needed to do this month and I seem to be running around attempting to get anything (let alone everything) done.

I could complain about this, but I think there is a more interesting question - what am I going to do about it? How do I get back on top of "stuff" without just pseudo-working through the weekend, and undoing the point of rest time?

Getting in front means working through my list and being in a better position to do / react / ignore as I choose. So, I suppose the question really is "how do I accelerate through this list?" Ok, this is a prioritisation question. I can do this.

First off, email. I find that since my working life has become all about managing my email inbox I have become very poor at my personal inbox. I can blitz this quickly though - mostly by deleting all the rubbish sent to me by LinkedIn and then raising the threshold required for a response from "probably should" to "must" and binning the rest. Coffee, typing, and it's down from about 40 to 9 which immediately makes me feel much much better. I practice inbox zero - poorly - and this is one of those little things that gives me a small boost. I really need to delete more email in the future.

With email dealt with, I've got a long list of actual Things that need doing ... or do they? I could take meter readings for gas and electricity, but the world will turn if I don't. I can ignore an estimated reading this month and correct next month. What else can I ignore? I need to vacuum, but honestly the world will keep turning if I skip this one... Most social engagements are not that interesting... Anything else that is not utterly essential can also go...

There is so much basic tedious admin generated by life that I find it too easy to get buried in the detail and forget what's important. For me, before the end of the month, it is important that I sort the pictures (done) and write a blog post (nearly over, don't worry). These matter to me and so are now sorted. I need to fill in an application form (nearly done after a REALLY boring afternoon). Everything else outside of work can take a distant backseat.

So the tedious answer to the tedious question is apparently simple. Delete everything. I'm rebooting the year.

But, after a rather dismal start to the year, I think it's important to look forward. This year I've got a new outlet for writing. I'm helping out gamesmastering on a MUD and it's the first time in a long while I've been genuinely excited by a new hobby. Part of my frustration right now is that I've got other stuff to churn through when I want to be getting on with that. More on this another month, I'm sure.

Welcome to 2020.