An ode to legacy code

This right here is an ode

An ode to legacy code

If you didn’t write that blessèd script

With its comments, I guess, locked away in a crypt

The syntax makes no sense

Trying to understand it makes you feel tense

There is more than just its appearance that irks

Somehow, that code still works

It’s time to add a new feature or upgrade

A time to refresh, rebuild the foundations laid

Who will take on the code that no one present wrote?

Who will lose the democratic vote?

There is more than just its appearance that irks

Somehow, that code still works

Maintenance is something that one might try to avoid

Fixing issues with code that none of us deployed

What will happen if the compiler breaks

My sanity, for the ride, it takes?

There is more than just its appearance that irks

Somehow, that code still works

I’ve got the key, I’ve got the secret…..

…..I’ve got the key to another way.

Well maybe not quite,  but it’s good to approach problems positively, right?

Once upon a time (early 2014, to be a little more exact), I submitted an abstract to speak at a test conference. I had no experience in public speaking at test events, but had in other contexts. I thought that I had an interesting topic and I was interested in any feedback that I might have for any future submissions, should the paper not be accepted into the conference programme.

Inevitably, I had the paper declined and I did not do very much about it. Recently, I’ve been thinking about it, so I thought I’d share with you.

Here is the general gist to my submission.

I find inspiration through different experiences and relationships that I have had in my life, and continue to do so to this day. Where something is a success in one context, I like to imagine how that could work in a totally different context. Much like how a chef might one day have said to themself ‘hey, why not put apple sauce with some roasted pork?’ different food groups coming together that makes something delicious and satisfying.

In this instance, the recipe would take part of the inner workings of a growing and successful church and implementing those practices in a software development environment.

I volunteered in and was a member of a growing church in Nottingham for nine years. In that time I was part of a focused, motivated, well trained and empathetic community. We knew what we were doing, why we were doing it, how to do it, for whom we were doing it and together.

Does that not sound like something you would want in an everyday working environment?

In my experience (not always, I might add) R&D departments can be found to be places where cynicism and demotivation can often rear its ugly head. Perceived bad leadership, micromanaging, poor product, maintenance, technical debt, skill deficit or personality clashes, it can be any mixture of those things. Met with those conditions, I see three options.

  1. Put up with it, bury your head in the sand, turn up and do enough to get paid.
  2. Leave, find somewhere else that works for you.
  3. Do something about it, or at least try.

Maybe that’s simplistic, but I’ve certainly experienced points one and two before, but it is the third option on which I want to dwell. And that would be where I would look at what it was that I learnt in my church, that I could apply to my work environment.

Recruiting team members for your team at church was not an easy one, but one of the selling points was always the story behind what your team was there to do, from being a welcoming face to new people, to running car park security. The bigger picture was always outlined and the team were always publicly acknowledged and ran team building sessions, socials and training. Without that in, the focus of the team’s place, team members could quickly lose interest, become unreliable or never join up in the first place. Without the training, they wouldn’t be doing a good job, the thanks and acknowledgement could feel hollow or condescending.

I am motivated when I am working with people that I know, (hopefully) like, and definitely respect. It’s not easy to get to know people off-the-cuff, generally respect is something that is earned through actions and liking people is a tad subjective. Working within a team, socialising together and learning together, some perhaps even mentoring others, led to a fine team dynamic, it built a trust and in time, a respect for one another.

There is also a point here that I think is key, there were clear lines of accountability



I don’t know about you, but if I don’t know why I’m doing something, I will eventually question it (depending on either how distracted I am, or how enjoyable I’m finding it) and then probably cease to continue with it.

Within the church, there was always a reason, a purpose to what you were doing. It was emphasised regularly and anyone in that team, if questioned on the reason behind their team’s actions, would be able to give a solid answer.

I have worked in teams without clear goals, without a charter and without milestones.

How this can be articulated effectively can differ depending on the audience. But, for me, I find some sort of written or visual representation of mine and my own team’s raison d’être.

When I started my current job, I polled my peers and relevant stakeholders for how my team was viewed. What they saw as our responsibility. What they thought we did well, and not so well. What we could do to improve.

That feedback gave me a picture of where my team sat within the company. From that I created a mindmap of the responses (as my visual aid, which now sits on a white board next to my desk for all to see) and created a charter, or declaration of my team’s role. What we would commit to and what we would expect from others. Without this I would have likely been leading blindly, hoping that my previous experience would somehow mean that I would just know what I was doing.


This isn’t necessarily all that different from focus. Both are goal oriented. Where focus is knowing what you are aiming for, direction is almost more of a transition, a movement toward that goal. How will we get there? What’s the plan for guiding us?

In the church, taking the setup team as an example, they had a timebox in which they needed to get their job done. They knew what needed to be done (in this instance, setting out chairs for the congregation) and when they needed to get it done by (before the congregation arrived). There were also requirements that they needed to meet, the chairs needed to face the stage, in fact a kaizen event led to a curved seating arrangement where every chair would face a single focal point in the middle of the stage. There were health and safety compliances to consider, number of chairs away from an aisle you sit, width of the aisle etc.

So, we know our focus, but what are our requirements? Do we have any standards by which we need to comply? Is the plan flexible enough to adapt to any continuous improvement suggestions? When do we need to get the job by and who will approve our work?

It sounds simple, but the temptation is to always hit the ground running, learn as we go and make a plan on-the-fly. That can work sometimes. But, I would suggest that a well laid plan, with iterative milestones (hello agile..) is a really effective way to work. Without the focus and the knowledge of what we want to achieve, including any compliances, how can we make an effective and realistic plan?

Sometimes we work without requirements or specifications, it’s infuriating and easy to get lost. But, we can’t sit idly by, we need to seek these things out. What do our stakeholders want? What do our customers want? When? Will they review our plans?

That was just a bunch of questions really, but hopefully you understand where I’m coming from.


We have an end goal, we have a plan, but why would we want to spend our time working for something that we aren’t motivated to do?

I’ve worked in some places where ask I did was clock watch and do just enough to earn my wages. I’m not proud of that, but I think it’s something that we can all relate to.

In the church, the work that we did was to facilitate a welcoming, comfortable and approachable environment for both the regular congregation and more importantly, for visitors. I know I’m not just speaking from my experience when I say that some churches don’t feel that way, but most strive to be so and that is only made possible through the work of willing and motivated team workers.

When I am working in a team, I want to make it a comfortable environment where others are welcome. Because I want to work with people who are comfortable working with me and are driven. I hope that those with whom I’ve worked (and those who I will work with in the future) have felt like they’ve worked with a motivated team mate and that we’ve got a common goal, direction and motivation.


Which leads naturally to community. In classic best man’s speech style, I looked up what the dictionary says community means. I ended up in the urban dictionary, and of course was greeted with the U.S. Sitcom of the same name, but did eventually find a definition.

An interacting population of like-minded individuals, affecting the identity of the given members and also their cohesiveness. In gaining similar social perceptions gives them a sense of solidarity that may or may not lead in the exclusion of other individuals that do not share one or more of their like-mindedness.

Everyone on the same page, equal focus, drive, motivation and purpose. There is something really special about a feeling of belonging with like-minded individuals. I don’t think I’d truly experienced this until I made it to university, even then it took a while to work out who I was, what I wanted and being truly comfortable in my own skin.

It was while at university that I started attending the church that is the subject of this blog. I met loads of like-minded people, people I wanted to spend time with and was comfortable being myself in the company of. It was through these relationships and sense of belonging that my life became intertwined with that of the church.

The parallels with life in the software development world are clear. Except, to get a job you have to be interviewed. As part of an interview process, you look for people who will fit in with your team, even your company values and dynamic. It is possible that someone who is better qualified on paper, but has an air of an abrasive personality, might not get the job over someone who is less qualified. The soft-skills of personal interaction and communication can often be trumped by qualification. I can understand both sides. I don’t want to work in a team of lovely people who are incompetent, but I equally don’t want to work with highly skilled, uncompromising and unapproachable engineers.

In the church, team socials were encouraged and often a great way to build team spirit and to build friendships.

What comes to mind when someone suggests team building?

How can this process become something organic? Surely this can’t be forced?

It really is about the people, the personalities and how everyone works together and there certainly is no one way to solve this. I guess that’s where good management/leadership comes from.

And this leads on to the next point….


Do you know what makes your colleagues tick? What winds them up? How to press their buttons?

This knowledge can be a wonderful tool for those of us who love to avoid conflict, but also those who love to stir and manipulate.

Sharing is caring, but most people don’t want to share a lot of personal details with anyone who will listen. Often colleagues are people that we don’t want to ‘let in’ or reveal our weaknesses and struggles.

In the church, accountability was encouraged, not just with anyone, but with someone you wanted to do so with. It is inescapably intimate, when sharing details of things that we each go through. Even the most ‘together’ people will have inner-struggles and going through things by yourself is not easy.

We see this in software development, where we ask for reviews of our tests or code, or through pairing. Extra eyes present more ideas and hopefully more results.

It is my humble opinion that pairing and reviewing is essential, supremely valuable and an absolute must, but maybe we need more?

In a sort of utopian view, I would have a peer with whom I would set aside some regular time to share my struggles at work and maybe if something was going on in my private life.

Struggles professionally is what I will concentrate on here and I will share with you and go into more detail in future posts. Something for you to look forward to!!

  • Starting tasks, shiny and new, while not necessarily finishing them.
  • Avoiding tasks I find boring or difficult, keeping myself busy to qualify that.
  • Reporting or documenting tests, plans etc. Leaving it to the end.

And so on.

If I had a peer with whom this had been shared, they could not only challenge me, hold me to account on these things, but even perhaps offer solutions, people to talk to, documents to read or reference. I would not be left to stew in my own head-in-the-sand avoidance or self-pity.

This is a two-way street though and requires as much giving as taking, so requires a lot of trust. But, the benefits can be tremendous.


Do you know how to do everything? If so, well done, please help me.

If I knew how to do everything in my job perfectly, I think I would want to leave, I want to be in a constant state of learning, but I don’t want what I learned to be my power. I want that to be something to share.

I want to be trained and to train.

In the church, some teams had tasks that wouldn’t necessarily be easy for anyone to do and as such, would require training. In this instance, I will talk about the licensed bar within the church building.

That’s right, there was a bar in the church.

But, pouring a perfect pint, changing barrels and cleaning lines aren’t things that one can just do without requisite training and if you get them wrong, there can be consequences…….I didn’t like spraying beer all over my jeans much.

So how is training approached in your workplace?

Is it always ‘classroom’ led?

Is it on-the-job?

Is it just in a doc or an online webinar?

I bet you prefer one to the other. I’m a hands-on guy. Theory is great, but if I’m not using it in practice, I won’t be able to do it down the line. I really appreciate when someone takes the time for some one-on-one training, they demo something, get me to try it and I get to ask them questions on the matter. And, I’m more than happy to do the same for others.

This isn’t always possible, but I’ll never get anywhere if I don’t ask for help.

It is one of the first things I would look for in a potential employer, is training offered and readily available? But I would also appreciate the opportunity to pass that knowledge on to others.

Now that was a long post, I hope it reads ok.

I don’t know if I’ve raised more questions than answers, but I hope I have stimulated some thoughts and maybe you can improve the workplace in which you work.

Thank you for reading!

Blog post title lyrics from: The key, the secret – by Urban Cookie Collective.

Find all the songs from my blog posts at this Spotify playlist.

First blog post – it ain’t what you do, it’s the way that you do it…..

….that’s what gets results?

I’m at a new company, in a new position and now seemed like as good as any to start a blog.

I have moved from being a small cog in a big machine, to being a slightly bigger cog in a smaller machine. What does that mean for me? Why does this change feel like it’s so much more than any before?

Small companies are great places to work, it’s so easy to get to know people and the way things work. But, when I started in my new job, I felt a certain unease. Something was missing. I really missed processes. Some of my earliest notes that I made upon starting my new role were about me questioning where processes were, if there were any and where could I find them?

On a side note, using OneNote or Evernote when starting a new job is a great way to collate thoughts, emails and docs and without them I’d have forgotten most of my questions or at least lost most of my post-it prompts and probably made yet more of a fool of myself than ususal.

So processes, my close and personal friends, those by whose guiding light I had been following in my working life so rigidly that I had lost sight of what it was I was really doing. If all I am doing is following a set way of working, where is the creativity? Where is the use of a tester’s instinctive approach to a task? Where was the fun?

I’m not saying that I didn’t enjoy what I was doing, I really did enjoy it.

I’m not saying that I didn’t think that the processes were bad.

But, was I restricting myself and others? Where was the expression? Where was the spark? Where was the testing?

I should say, I spent a lot of time in test automation. I love automation, it can be a time saver a sanity saver and a great resource to share among teams.

But, it isn’t creative testing, it isn’t a replacement for testing, it cannot replace a tester.

Bit of a side track there, sorry.

Back to where I am today. Processes weren’t apparent and testers were still testing, even without a plan, or a strategy or even a way of reporting the testing, what kind of madness is this!?

My question is this, (and if you’ve made it this far, thank you) what are we sacrificing in the name of process? What is the right balance? I can’t live in a world without process, but equally without creativity and the spark of free testing.

Blog post title lyrics from: It ain’t what you do, it’s the way that you do it – by Fun Boy Three and Bananarma.

Find all the songs from my blog posts at this Spotify playlist.