"Successful software needs to be simple". I've been saying this for quite a while, but I've never really thought much about why. Recently I noticed that a major company that I've been critical of on many fronts has been using this as sort of a mantra for a long time. Apple. But they do it with hardware also. One button is all you need. One button on the mouse, one button on the iPhone, one button on the iPod touch, one button on the iPad. I used to really complain about their approach to hardware. It was just so wrong to have a mouse with one button, and it forces you to use the other hand to hold a key on the keyboard while clicking if you want the menu. I still prefer a multi-button mouse, but I think I understand the reasoning behind the single button. It's a policy of simplicity. I'm not overly familiar with Apple's OS, but I think they try to balance between usability and simplicity. I do know their licensing. It's simple. One license for a desktop computer, one license for a server. They know that confusing the buyer with names like "starter edition", "professional edition", "media edition", "ultimate edition", "basic edition", "home edition", and whatever else... doesn't help them sell the software. It just muddies the water.
I wish Microsoft followed the simplicity mantra a little more. I'd love to see their licensing simplified. I'm a professional in the industry and their server licensing makes no sense to me. I've asked people that work directly for Microsoft, and they don't understand it either. I've even heard, "you'll have to talk with one of our licensing professionals for questions about that". They do volume licensing, service provider licensing, OEM licensing, select licensing, open licensing, and a whole slew more. Maybe they just need something for the lawyers to do.
I've seen projects try to be simple, but that can easily be lost with "scope creep". It's so easy to lose sight of a goal like, "let's make it easy for all ages to use", with a simple question like, "wouldn't it be cool if it could do this?" This is where a good project manager should pull back on the reigns, and remind that person of the goals. If you try to add all the features you can think of, you only end up with a product that needs training just to do the basic things that 90% of your users want to do.
One approach that I like when adding features is to try to keep it modular. Have a core functionality that does the job, and does it easily. Then you can have an "advanced" section that shows other features that are available. This is where adding modules can also be an opportunity for revenue. You can sell or give the new features to each customer when they want them. It keeps the core product simple, but allows for growth. The Firefox browser is an excellent example of modularity.
It seems rather obvious that the interface is the key to simplicity in the software, but a lot of developers overlook the code. If your code is kept simple, it's much easier to integrate new people to the project. If it's a complex hodge-podge, it'll be a nightmare whenever you try to ramp up, or lose someone.
Simplicity rules. I think we, as software developers need to use this approach more often. Not just with licenses, but with software design.
0 comments:
Post a Comment