Traveling Light: Pare Down Software to Move Faster
One commercial trip a month for four years adds up to forty-eight roundtrip flights. That might not put me in the million-miler club just yet, but with all that travel time, I have learned a thing or two about streamlining my airport security process.
My experience with slip-on shoes, no luggage to check, and a preprinted boarding pass is wildly different from what I was doing four years ago, yet I’m still working at it. Every few months I take everything out of my backpack, determined to pare it down to the essentials … and I keep putting everything back in.
I can’t do without extra power for my cell phone, a remote to advance slides in my presentations, a mouse, a book, a VGA adapter for my Mac, and a magazine. Each individual item is light, but somehow they add up to too much.
Now, how does this relate to software? Just like each little item in my carry-on, when you’re building software, everything slows you down.
Well, not literally everything. Tests and code are essential. You probably need to talk to some customers to figure out what to build.
But everything else is accidental—or, at least, nonessential. We add the other pieces to provide some kind of benefit.
For example, it seems reasonable to know how long a project will take before we fund it, so we ask for estimates or make predictions. We get into silly arguments about what should have been built, and, as they say, the last 10 percent of the project takes 90 percent of the time, so we decide to write things down. Different people have different opinions and change their minds, so we create a change control process.
Some huge amount of software development process is insurance. If everything went well, we wouldn’t need it. If the code just worked, we wouldn’t need to test. If our mind meld with the customer worked, we wouldn’t need requirements. Kickoffs, predefined acceptance tests up front, standups, pairing—all these things are little investments. We spend some money now with the expectation it will save something later.
Except, sometimes, we don’t.
I haven’t used that phone charger I always pack in about two years. I’ve used the slide advance, but if I ask beforehand, there is usually one wherever I am going. I rarely read the book. These are things picked up to make my life easier, but all they really do is slow me down.
Let’s take a look at your software process. What’s slowing you down?
Most people try to improve a process by adding, but the truth is if you want to go fast, you need to take away.
Before it was agile, we used to call them lightweight methods. Something has happened, though, and we’ve lost sight of that over the years. Perhaps it’s time we started talking about traveling light again.
It would certainly be easier on my back!