The most important aspect: does the solution address the current and future use cases? Will future evolution or an aspect of past architecture prevent addressing a key use case?
Easy to use for end user
Are your data users silent after your presentation because they lack timely, trustworthy, enriched data to run with and gain insights from? Not only do we evaluate the usability of tools with a minimalist design, but we also put a plan together to enrich the data in place that meets the user needs to gain maximum adoption.
Scale-out, not scale-up. eSimplicity only choose services that scale linearly by adding more servers, instead of scaling “up” by adding more expensive processors or storage. We look at the heritage of every codebase and choose ones that are designed to be distributed from the ground-up, rather than having scalability as an afterthought. Instead of guessing at optimum solutions, we build simulations and make data-driven decisions when it comes to performance.
Minimal hands-on ops. eSimplicity takes a minimalistic approach by only adding tools when they provide overwhelming efficiency and productivity gains. This is because each new piece of software adds fragility and cost, even if it is “free.” We also consider the long-term use cases of our solutions and how the technology fits in. We want our solutions to be robust and avoid long-term operational burdens.
eSimplicity looks at the maturity of each technology and its API, and how often updates happen and if they are bug fixes or feature improvements. For open source, we look at the health of the community supporting the technology. We prefer to use technologies with a healthy community, so we do not become trailblazers in popularizing technology. When we look at enterprise products, we consider current features and how they meet our needs balanced against costs and the overhead of the support. Finally, eSimplicity focuses on patterns of development — not features by looking at the portability of the technology to stay as agnostic as possible. Specific features of a technology may be great, but we avoid interweaving our solution in any specific implementation detail.