Guest Opinion

The Simplicity Manifesto

When it comes to new technologies, less is more.

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!

About the Author

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.

comments powered by Disqus

Featured

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

  • What's New for Python, Java in Visual Studio Code

    Microsoft announced March 2024 updates to its Python and Java extensions for Visual Studio Code, the open source-based, cross-platform code editor that has repeatedly been named the No. 1 tool in major development surveys.

Subscribe on YouTube