Sustainable Software Development

When you’re in the zone it can be hard to think about the future of the code you’re writing, but the time you’re spending writing it is just a fraction of its lifespan. Code may be written once, but it will be edited a few times, perhaps copied once or twice, and likely executed many hundred, if not thousands or millions of times. You as a software developer will (hopefully) have a long and productive career in software development, as will the team you work with. And finally, you also do your work on planet Earth (hi to any readers on the ISS), and without it you’d really struggle.

When creating or modifying an object or system that we intend to last for a long time, it is crucial to consider sustainability. This includes factors such as the sustainability of the source code, your or your team’s ability to work on it for an extended period, and the software’s impact on the environment. All of these aspects are significant and should be carefully considered.

If you’re working in a scrappy start-up, fighting for survival, then the long-term maintainability of your code will not be important to you. In most cases though, code can be expected to last for a significant time, and the cost of maintaining it will significantly outweigh the initial cost of writing it.

Read More...

Small Celebrations, Big Motivation

Software development can sometimes feel like an endless treadmill. Push that commit, review that code, investigate and solve that bug. Rinse and repeat, day after day.

You probably have some high-level business and technical aims that you’re working towards. These might be releasing a large new feature, or perhaps migrating to a new infrastructure or a new software stack. These long-term projects might take a year or more to complete, and can often feel never-ending.

If you’re working on a mature code base it can be difficult to see the progress that you’ve made. One of your jobs as a leader is to help the team step back and see how far they’ve come, and one way to maintain motivation in a team is to celebrate achievements and show the wider business the progress that has been made.

It can be hard to know how to celebrate, and how often. Too frequently and you’ll be celebrating things that are too small and simple, and it will seem forced. If you wait for the large projects to finish then you could be waiting for a very long time, and it will feel like you never celebrate anything.

Read More...

Leadership Stand-Ups

Standups are standard practice among developers, but when you move into the realm of leadership they stop. If you’re a team leader then you will probably join your team’s stand-up meeting, but often you only contribute a brief update, if anything at all. Mostly you just listen and perhaps facilitate discussion on other people’s updates.

In Five Dysfunctions of a Team by Patrick Lencioni (affiliate link included) the CEO in the story asks her executives to consider that group as their primary team. I’ve been asked to do the same too, but really, if you only meet once a week or perhaps even less frequently, how can you do that? If a group is your primary team then you should know (at a high level) what everyone is working on, and what their main problems are. A leadership team where you only discuss what people decide to bring to the table will not function as well as a group that can benefit from collective wisdom being brought to bear on problems.

When you start a leadership position your calendar suddenly fills up with meetings, so the idea of adding a daily meeting might seem crazy, and it probably is. However leadership is a different role to a developer, and you can use different processes to achieve the same goals.

Read More...

LeadDev London 2023 (Day 2)

This is a follow-up to my first post about day 1 of the LeadDev London 2023 conference. That post covers my notes on talks from day 1, as well as my thoughts on the overall conference.

Here are my notes on talks from day 2…

Read More...

LeadDev London 2023 (Day 1)

Recently I was lucky enough to attend Lead Dev London for a second time (see my review of 2022 day 1 and day 2). As with last year, this is a one-track conference focused on leadership and engineering management. Unlike last year LeadDev was also running a separate one-track conference at the same time, StaffPlus, focused on Staff+ engineers. As I didn’t have a ticket to that, I didn’t attend any of those talks but it was great to see LeadDev expanding and I’ll be considering StaffPlus next year.

Read More...