Simpler Is Better
Why is it that many of us strive to make things more complicated? Maybe it’s human nature or maybe it’s simply because we can. Regardless, complexity is often unnecessary and it can be just plain evil at times.
As the software systems we build grow more complex, the development approaches we use to build them become correspondingly more cumbersome. This is a matter of necessity. Complex systems have more of everything.
- More Features,
- More Menus,
- More Options,
- More Rules,
- More Controls,
- More Security,
- More Parameters,
- More Bulk!
Do we really need more, more and more? If you want to build better software, faster and more predictably, think less — plan less, build less, test less, deliver less, do less. How?
- Keep the core software feature set minimalist. Only add new features that offer high value based on the opinions of the Product Owner and Executive Sponsor.
- Open up the design so that software tools and utilities can be added to the software. These add-ons, applets, plug-ins, packages or whatever you choose to call them can be built and released independently of the core product. [Separate agile development teams can work at their own paces.]
- Offer multiple ways to use the data that feeds the software. Other applications should be able to read the data and — with some controls — be able to write new data. [Reporting is the obvious use for this but it can go far beyond that.]
- Let the user community customize the look, feel and operation of the software in as many ways as you can. They will be happier and they’ll make fewer demands of the development team.
Leaving out features, menus and options can be a good thing. It forces people to think for themselves. It frees them to be creative. One of the reasons business users ask software developers for so much is simply because they are at our mercy. They have no alternatives.
Stop thinking about the way things used to be. Today’s user community is much more technology savvy than yesterday’s. Twenty years ago — even ten years ago — we had to spoon feed business users. They were new to computers and software. They had to learn and adapt. Not any longer. They get it.
Turn them loose. Give them tools and let them customize the software to their liking. You’ll find that new ideas emerge and the software becomes better than anyone expected.
While you’re at it, stop adding new rules — you can’t do this — you must do that. Enough already! Keep the rules to a minimum so people actually understand them. Hold everyone accountable for following a few important rules. Monitor what people really do using log files and internal social networking features.
Simpler is better. Think less, not more.
photo credit: Yoshi Shih-Chieh Huang via photopin cc