There are but two basic principles we have to take into account while making a software solution:
- Humans are visual animals. Vision is often the first sense you use to interact with your environment, and it's especially true in a world of ideas.
- Humans are social animals. As Aristotle describes it, humans need to belong to a society to strive: "Anyone who either cannot lead the common life or is so self-sufficient as not to need to, and therefore does not partake of society, is either a beast or a god." Fortunately, neither beasts nor gods care for software products.
Principle n°1 means a software interface has to be visually pleasing: intuitive, fast, and powerful.
The second one means we have to take care of our people and think in terms of community to create long-term bonds.
The initial idea we have for our digital product doesn't matter. Only the problem we want to solve does, and our assumptions have to evolve accordingly through trials and errors. Both principles have to guide how we handle this all-encompassing problem and its subproblems.
Of course, none of that matters if the problem we're trying to solve is too superficial in the first place. False problems, as philosophers say.