Software development lifecycle (SDLC)

Guidelines for backlog refinement sessions

Formerly referred to as “backlog grooming,” backlog refinement is the process of defining pieces of work and estimating the amount of effort required to complete them. Backlog refinement requires buy-in from developers, testers, and stakeholders (product managers, business folks, etc.). Doing this refinement work results in a clearer understanding of...

How working on Developer Experience (DX) improved knowledge sharing and enabled more developers to contribute to a project

A four-year old Android app installed on thousands of transit buses needed some serious improvements to usability and reliability. The product team proposed a bold vision for improving the user experience for bus operators, but the development team was mired in a codebase that was hard to understand, difficult to...

Writing software that works with hardware

I’ve been working on a lot of hardware projects lately: making text-to-speech appliances work on transit vehicles, making software for internet-connected signs, prototyping tools to help me make good health decisions, and building out my go-sensors libraries to support physical environment sensors. I’ve spent a lot of my time as...

A story about protocols and documentation

In April 2021, I had a problem at work: I didn’t understand how our on-vehicle application communicated with the text-to-speech appliance to make next stop announcements.