The best is the enemy of the good. The internet tells me Voltaire said that. In programming circles, we call it the 80/20 rule – 20% of the functionality takes 80% of the time, and, conversely, 80% of the time a user makes use of 20% of the functionality.
The thing about the best and the good is this: sometimes, yes, it is important to ship a product. But when it comes to business software, there are two possibilities. The first is that there is a product out there that covers 80% of what you need. This case is very common in enterprise software; in fact, I would go so far as 90% or 95% in a lot of cases. That 20%, or that 10%, or that 5%, however, is typically can’t-live-without functionality, and is worth (or near enough) all of the money spent to get it, even if it means developing a whole new system. The second possibility is that there is no product that covers 80% of what you need. In this case you commission a system, and at that point the exercise converges with the first scenario; you spend to 80% (although perhaps a different 80% than the best commercial options, which is why you write that system to begin with), and you find it’s cost-effective (or, more commonly, effective by some other measure) to continue spending. In business software, the devil is very much in the details.
I’ve done development on internally-developed systems, and I’ve watched people try to modify an existing system. There’s never enough money or time or resources or knowledge to get it right, or even right enough. Organizations fit their processes to existing software, but every company does something a little differently, and that difference is ALL the difference. In that slim margin lies a sane, happy, productive user community.
So I don’t believe the best is the enemy of the good anymore. I think that we in the middle have the opportunity to always push towards the best. We are the ones who are always building the last 20%, or as much of it as anyone ever gets to build; we are the ones who know what that 20% looks like. It’s an opportunity, and if you remind yourself of that fact, it can be a lovely place to live.
Requirements | Maintenance Programmer
[…] since we’re the ones pushing for that last 20%, nobody knows that better than us. Packaged-application developers might see specs change until […]