Trunk-Based Development vs Feature Branching

For how important branching strategies are, we don’t talk about them as often as we should. We pick our approach, alongside the core languages and tools, at the start of a project and then never think about it again. At most, we might make minor tweaks around the edges — how many reviewers need to approve a pull request, what git tags we use, when our pipelines are triggered, etc. But we rarely check whether Trunk-Based Development or Feature Branching is still working for us.

Software development is not static. Our teams, projects, and the…


Creating a system that empowers your team.

Code reviews are one of the most productive tasks we do each day. When done well, they ensure code quality, promote knowledge sharing, and strengthen the team. Code reviews give developers the confidence that the code they contribute is as good as possible and let everyone in the team have a say about the direction of the codebase and the standard the team holds their code to. They let the team intervene before technical debt becomes a problem and provide opportunities for positive feedback and celebrating improvements.

However, we often end up with a set of processes and a culture…


Design your Retrospectives to match the Sprint and state of the team.

Photo by You X Ventures on Unsplash

It had been a difficult Sprint, but the morning before Retro was even harder. A bad merge had clobbered what we had been intending to deliver that Sprint. Cleaning up that mess had left me without time to prepare for our Retrospective. So for the Gather Data step, I fell back to one of my favorites activities— Lacked, Loved, Learned, and Longed For, otherwise known as the 4 L’s. Almost immediately, I could sense the team’s frustration. ‘Lacked’ didn’t even begin to describe the past two weeks, and they felt limited by the prompts I had picked.

Earlier in my…


Features I wish I had known about earlier for developing, debugging, and improving the performance of my pipelines

Using the Azure CLI to queue builds

Since there is no support for running pipelines locally, you need to commit each change to your repository and queue your pipeline to run within Azure DevOps. To queue a run, you have three options: you can manually queue a run via the Azure DevOps GUI, you can set up triggers on your pipeline to queue a run whenever you commit, or you can use the Azure DevOps CLI to queue a run.

Of the three options, I have found the CLI the easiest to work with. The GUI takes a bit too long to click through, and the automatic…


Streamline communication between developers and designers.

Web developers have always had access to a wide array of options for tools, libraries, and frameworks that help them write and maintain code. Recently, the tool that I have become most enamored with is Storybook. At its core, a component library and a tool for building UI components in isolation, these two features have had many cascading benefits. Storybook has helped us tackle some of our team’s biggest challenges, getting everyone on board with a switch to a component-oriented architecture and reducing the amount of time we wasted creating duplicate components. …


Photo by NeONBRAND on Unsplash

There is never enough time to fix all of our application’s bugs. Everything we don’t fix gets moved to the bug backlog, a list somewhere within our ticket tracking software. If a bug isn’t critical enough to be fixed straight away, it ends up in the backlog. If a bug report is ambiguous, missing vital information, or making odd requests, it ends up in the backlog. All of the bugs that no one wants to fix, but no one wants to be the one to close either, end up in the backlog.

Bug backlogs are never easy to work with…


As software developers, learning is a vital part of our role. We work in an ever-changing field where new technologies and ideas are continually being introduced. The high level of complexity that we deal with means there is always a better way of tackling a given problem. We wear so many hats and need so many different skills that it can be challenging just keeping up to date, let alone expanding our knowledge.

Despite the dynamic nature of our chosen field, I often see developers that don’t feel like they are learning as much as they want to be. They…


For the past six months, our team has been rewriting our application using a micro-frontend approach. Given how popular micro-frontends appear to be at the moment, I wanted to share our experiences and the lessons we learned.

Micro-frontends can be a fantastic tool, but they are not a silver bullet. Depending on the structure of your project, team and business, you may not be able to take advantage of the benefits. Worse, micro-frontends may undermine the architecture of your application and hinder your team’s ability to deliver. …


Reviewing code is one of the most valuable tasks we do each day as a software developer. In that one activity, we spot problems and preempt issues before they can grow. We learn new approaches and gain familiarity with features we might have to update or borrow from in the future. We provide guidance and teaching, ensure quality and maintainability, and keep an eye on the future direction of the codebase.

But with code review doing so much for us, we can overload it, give it too much responsibility, accumulate tasks and checks that belong elsewhere. By treating code reviews…


Photo by Alain Wong on Unsplash

In my first job as a developer, the prevailing attitude from management was “If developers would just be more careful, we wouldn’t have any bugs.” The other prevailing attitude was, naturally, “Also, work as fast as possible.” Unsurprisingly, in this environment, bugs were commonplace. This attitude came to a head when, despite months of warnings about how flawed our deployment process was, a junior developer took down production for half a day. Rather than seeing the error as caused by an underlying problem, management chose to harass a capable young developer out of his job. …

Steven Lemon

Senior Software Developer and occasional Scrum Master. Writing about the less technical parts of being a developer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store