“To attain knowledge, add things every day. To attain wisdom, subtract things every day.” – Lao Tzu
At our core, we’re a bunch of nerds. We like to build things. Our first inclination for almost anything is to write software. Reveling in the minutia of how things work, and how things could work is part of the fun. That’s cool and all – you’re paying us to write software and we’re good at it. But that’s the catch: you’re paying us to write software. Ideally, we’re trying to solve your problem with the least amount of software we can write.
In order to do this, we have to be crystal clear what we’re trying to build. There’s a delicate balance between not building enough to be valuable and building more than is needed. We expect the client to have the wisdom to know the difference. The ability to say, “Yes” and “No” and “Not yet” is what allows us to keep delivering high-value software.
Think of it like driving a car. If you’re only going 10mph there is typically quite a bit of reaction time. We want to move pretty fast. Driving 100mph requires concentration and focus: both in the short term (not hitting something) and long term (heading in the right direction). As the client and product owner, we’re depending on you to define what is in scope and what isn’t. You’re helping us decide if a particular feature is helping achieve the goal or a distraction.
In some ways, software is an asset. It’s a working implementation of intellectual property. It’s a tool that accomplishes some outcome. It’s what you’re paying to have built. On the other hand, software is a liability. Building a feature has an opportunity cost: your limited dollars pay for this feature instead of some other feature. There are further hidden costs: the implementation of this feature may make other features harder to write; it could block some other feature entirely. Additionally, as much as we don’t like to admit it, there could be bugs in the implementation of the feature that will later cost money to fix.
All of this means we should be very careful about what features we add to the system. While we can explore together the decision of what to add and what not to add, only you as the client can make the final judgment of what’s most valuable.