Usefulness is the king; and it doesn’t have to be complex. One of the premium rules of project management is to never add a feature without seeing any substantial demand for it. Whatever it is, any additional feature is a burden to the system and a cost of time, both growing exponentially.
While many of them may seem indispensable at first glance, in the long run you will be convinced that they are actually not. In fact, 80% of the features of 80% of the software in the market can be eliminated with few user complaints. The benefits you gain by removing lesser userful features, such as faster loading, better responsiveness and greatly reduced learning curve for users are far more favorable than the features themselves. Not to mention the hardened and accelerated project cycle that’s going to pose less risks to your budget and team because it has been shortened to just one third of the original.
Ideas can be thus much more quickly implemented and tested in public. Small overheads for all projects until you see solid potential of some of them by user acceptance and positive feedback. It is then when you invest more into the selected projects and try to grow them from average simplicity to great simplicity.
Unnecessary sophistication is the number one sign of a novice. Use no more than 3 colors (preferrably black, white and a toner) designing your first web page and no one can tell if you’ve just started learning it or you are an experienced hand. On the contrary, beginners use as many colors as possible across the spectrum before even thinking about the compatibility and actual need for them. They don’t know what’s important that should come first. They simply go with their god damn poor instincts and put everything that randomly comes on their mind into the whole thing.
Being simple is simply to keep the most important stuff and peel off everything else.
The last thing you want do when designing an application or data model, is to blindly make assumptions for users, add new features by dreaming of your own and appear amateur, resulting in a super complex system hard to learn and use as well as features that the users don’t actually need that badly (which you naively believe they do!).
Always start a project by unequivocally hitting the point – why would the users want to use your product? The very first feature is your answer. And that’s it.