Moving Toward Perfection
I learned to drive in a car that didn’t have power steering. (Yes, I’m that old.) But that didn’t prepare me for my stint in the Air Force. I was in a tactical unit, which meant we had to be ready to go anywhere and set up shop on short notice. So all of our gear was either loaded on trucks or had wheels bolted on them. And, since we had to be light and lean, we didn’t have a bunch of truck drivers on the team. All us geeks had to pack and drive our own stuff. That meant I had to learn drive a truck. Two and a half tons to be exact. “Deuce-and-a-Halfs” they were called. And they didn’t have power steering either.
Without power steering
Now, I’m not a big guy. About 120lbs at the time. And messing with electronics doesn’t exactly build upper body strength. So, as I sat in the driver’s seat and attempted to turn the wheel in preparation for backing out the parking spot, I promptly pulled myself off the seat onto the steering wheel – which hadn’t budged. Ah, the seat belt! Silly me, I thought. I buckled up, tried again, and accomplished nothing more than severely compressing whatever it was I’d had for breakfast. The motor pool Sergeant, who had amused himself watching my antics, eventually filled me in that it’s a lot easier to steer when the truck is actually moving. What a difference. With the truck moving and the engine taking the work of rolling the tires holding up all that weight over the pavement, course correction was a modest increment of required force easily accomplished by a 120lb comms tech. Though, truth be told, I still needed the help of the seat belt.
It’s much easier to be agile when your moving. If you’re trying to write the perfect product spec or business plan you’ll never deliver. Look, no one’s saying to deliver crap, but perfection can’t be attained in isolation. You can’t know everything about how your product will be expected to perform until it’s released into the wild. Your customers can’t know all the ways they’re going to use it until the get their hands on it (or their kids get their hands on it) and kick it around a bit. Even if you manage to satisfy your hypercritical self, you’ll fall short of somebody’s expectations. The startup world has already learned this and turned it into a mantra, or mantras actually. “Fail fast”, “Iterate often” all speak to the need to get a core offering out there and see where the user base wants to take it.
What could go wrong?
Release a product, get feed back, adjust, rinse and repeat. The hard part, of course, is figuring out what to fix and what to ignore. Which customers are right, or represent the target market and which ones are niche interests or one-offs. You still have to do a good job defining your goal. If not, you’ll end up with ‘feature creep’ or ‘code bloat’. Without a clear target, you may end up with a product that most people think is ok, but no-one is particularly excited about. More importantly, vet and remember your underlying assumptions. Any time you wonder if the goal is still valid, recheck those assumptions as well. If the footings have shifted, then adjust. But, if the assumptions still hold, hold the goal as well and make your tradeoff decisions accordingly.
By the way, when your overarching goal is well defined and consistently applied, the process of working through adjustments and tradeoffs will be much quicker. It’s a lot easier to get where you want to go when you’ve got the way points preloaded in the GPS. Even if you don’t have power steering.