Simple solutions are hard to design. They require experimentation, trial-and-error and a load of experience. It’s about deliberately chipping away the marble that doesn’t look like David.
So why do easy IT projects run afoul? Why does it start as “just a simple website” and ends up with a 2 year death march? Turns out it’s incredibly hard to build simple software.
The vision of what you’re trying to build should be shared by all team members. The larger your team, the more difficult this will be. Decision-by-committee is murder. You cannot build a “simple app” when one stakeholder thinks of marketing purposes and the other wants to use it as a helpdesk.
The best way to mess up that app is to try to be everything to everyone. The simple (but hard) rule is : do one thing. If you build an e-commerce site with the intention of increasing sales, then make it a sales machine. Don’t put effort into anything that doesn’t contribute to additional sales. Don’t add a FAQ page. Don’t add user accounts. Focus only on building the best buying funnel you can come up with.
Upfront design and analysis are the best excuses for not building. Don’t try to think your way to a better solution : build something. Build a small mock-up and iterate over that. Learn from each iteration and improve your solution. Take a new block of marble and start over if necessary.
Once you’ve build your simple machine, you might feel the need to add features. Don’t. Michelangelo did not build an interactive experience with David, a dragon and fireworks. He made a simple, awesome David. Release your David in the wild and see what happens. You can always fine-tune later.
A small team with a singular vision building a one-trick-pony : that is the simple recipe for a successful IT project. And it’s incredibly hard to do.