The Simplicity Manifesto
When it comes to new technologies, less is more.
- By Billy Hollis
Let me make a candid admission: I can't keep up with the flood of new technology for software development. I'm overwhelmed, and I know many of you are, too. At a recent presentation, I asked an audience of more than 100 people if they felt overwhelmed. All but a handful raised their hands.
Microsoft is providing us with new capabilities faster than we can assimilate them. Ironically, the .NET Framework has made developers inside Microsoft so productive, they can create new technologies such as Windows Presentation Foundation (WPF) and Windows Communication Foundation (WCF) more quickly. Is this Microsoft's fault? Not really. They're mostly doing what we asked them to do. Selection of technology platforms is heavily driven by features, so Microsoft keeps adding features.
Enterprise teams can usually invest the resources to cope with complexity. Those of us in smaller efforts can't. So we muddle along, doing what we know, rather than taking the time to learn better ways. There's no obvious solution, but one thing is clear: If the problem is too much complexity, the solution must emphasize simplicity. This won't be easy. Outside of Apple Inc., simplicity and elegance don't carry much weight in the development community.
That's where we come in. As customers, we must learn to value simplicity and elegance. We must challenge vendors to build platforms that are better at the tasks we need the most. In that spirit, I'd like to propose the Simplicity Manifesto. In the spirit of simplicity, each point only has three words:
Point 1: Hide the plumbing. When I take a shower, I want to turn on the tap and get on with it. I don't care where the water comes from or where it goes. I don't care how the water gets hot.
Why can't data plumbing be the same way? As an application developer, I'm happy if data appears where I want it, and then somehow goes back to its permanent store when I tell it to. I don't care how it happens; I just want the process to be simple and reliable. Other application needs such as security also need hidden plumbing. Certainly, there are those who need to get down to the metal, but most of us just need something good enough to do the essentials.
Point 2: CRUD for free. We ought to be able to put up data-entry forms in minutes, right out of the box, the first time we use a platform. It's time to stop rewriting those same data-entry programs, with the exact same features, every time we use a different language.
Point 3: Add fewer features. Evolving products must add new features, but we need to achieve a better balance between adding features and preserving simplicity. One of the most dangerous phrases in this industry is, "Wouldn't it be cool if …"
A feature should be added because it's needed, not because it's cool. With too many features, users can't find and learn the important ones. For example, the iPod shows the appeal of a product that intentionally sacrifices features for simplicity. It transformed the entire music industry. Technical companies of all types can take an important lesson from that.
Point 4: Make Help helpful. The state of Help and documentation for the latest round of .NET technologies is distressing. This isn't surprising. Sharp, innovative people want to do cool, innovative things, instead of chores like documentation. This needs to change. Microsoft, among others, needs to place more value on those who can make its products accessible to mere mortals who live in the real world.
Point 5: Fix the bugs. Fixing bugs might rank even lower than writing documentation for most tech company employees. But I see far too many bugs that are reported and never fixed.
If this manifesto makes sense to you, then let Microsoft and other vendors know it. Tell them that you're overwhelmed, and challenge them to innovate in the direction of simplicity and elegance. Challenge yourself to do the same for your own users!
Billy Hollis is an author and software developer from Nashville, Tennessee. Billy is co-author of the first book ever published on Visual Basic .NET, .NET Programming on the Public Beta. He has written many articles, and is a frequent speaker at conferences. He is the Regional Director of Developer Relations in Nashville for Microsoft, and runs a consulting company focusing on Microsoft .NET.