On more than one occasion, I’ve found myself assigned to a project before clearly-defined development tasks were ready. Despite that, I’ve discovered several worthwhile things I can make progress on. 1. Basic Project Skeleton Even when my workflows are all ambiguous, I often have a good idea of what my tech stack will be. The […]
I just saw a great Twitter thread by Phil Lord, one of the writers of The Lego Movie and Spider-Man: Into the Spider-Verse. I’ve written before about parallels between software and TV/movie production, and the analogy continues to be relevant. There are a few lessons from Phil that can definitely apply to software. 1. No […]
I always feel a tension between the idea of building more foundation code upfront and waiting until it’s needed. If we spend all our time building framework and foundation, then we’ll never get around to actually building the product. But of course, if we plow ahead without planning, we can end up with an unmaintainable […]
Software applications (like homes, cars, and nearly everything else) need maintenance. Even when the software itself doesn’t change, the systems/devices it runs on and the larger software environment are always moving forward. This is called Software Rot. Most software maintenance falls into one of these categories: Updating Dependencies – Upating the frameworks, libraries, etc. that […]
Software rots if not maintained. The longer it sits on the shelf, the harder it becomes to work on it. It may even stop working on its own one day. This surprises my clients frequently, so I wanted to talk a bit about why this happens and how to plan for it.
On my current project, many of the tools we use are shared across projects. We’ve made good use of Azure DevOps pipelines and private package feeds to easily and automatically publish and share the artifacts. Most of the time, things have worked really smoothly. Until recently, when I had a package that depended on a […]
Most software projects have an established visual design: colors, layout, typography, etc. It’s typically one of the first things to be set up. But the product is going to change and evolve. Maybe a new button needs to be added. Or a link, or a metric, or some other widget. While a designer often leads […]
As we decide where to focus, figure out the best way to implement things, or evaluate costs on any project, we hear the same questions: “How much will this cost?” Or “When will it be done?” Or even technical questions like, “How many records can this process per second?” We need to make decisions and […]
Okay, that’s a bit grandiose, I admit. But I often see tweets or posts about how people don’t “get” capital-A Agile. Tweets like this and this point out common faults. Everything they say is technically correct but not especially useful. Pointing out all of the not-get-its in the wild won’t make people “get it” better, […]
I just returned from traveling and wanted to highlight some good design I saw: the mobile ticket display for Chicago’s Metra (suburb commuter) trains.