Good software is probably one of the greatest demands of our age, just behind petroleum and porn. It is a wonder so few people can develop good software. When good software does come out, like Facebook, Twitter, or just about anything Apple makes, we flock to it like moths to the flame. While consumers have seen some relief as of late, businesses have not. Just about all business software sucks. The reason?… Because everyone is developing backwards.
Don’t Make it Do “Everything”
I have been in more than a few “brainstorming” sessions during the conception of new business software. The mistake that kills the project is always made right away when the first person says, “Let’s figure out everything we want this software to do.” That’s it. That is where any hope of a good usable software product dies.
Complication is easy. It is so easy for us to think of “everything we want”. What is actually hard is for us to think about is “What do we really need?” Determining the most basic and primitive function that we truly need automated is the key.
Do One Thing Right
The “one thing” you really need is usually discovered after months of development when the business launches a massive complex software system that does everything but the “one thing” you need. The system goes unused, and the “C”-levels are running around wondering what they paid for. All this time, if you just started with the “one thing”, you could have deployed quickly, invested little, and already be seeing a benefit from the software while it is still being developed.
Don’t Be Greedy
Software is not going to solve all your problems, don’t even try. Pick out your biggest pain, and then trim it down some more. The best thing that can happen is to launch your new software and say, “This is great, but I wish it did….” You can always add functionality to something simple, but you can’t make something convoluted simple.
Google! Just think about how Google started… type something in and hit “search”. Today Google has a million different bells and whistles, but it all started with just plain “search”.
Flavors.me (a personal homepage maker) and Goodsie.com (dirt simple ecommerce) are great examples of good software development. Both started out with the bare minimum functionality necessary to “meet the need”. Then, as fans demand, they add features. And believe me, their fans are asking for new features all the time. The point is THEY HAVE FANS! When you do one thing right, people want more, and that’s great!
Zen for Business Software
Making good software is about making order out of chaos. However, the order has to be made BEFORE starting the software. The process of finding the “one thing” to start with often times shows us just how chaotic and undisciplined our business processes really are. When a developer goes to make software to support that chaos, he is blamed for the chaos that inevitably follows. Finding your “one thing” to start with will help you refine your business processes, discover future issues, and generally be cathartic for everyone.