I recently started work on a project I’m calling Ensemble. Ensemble will be a minimalist data-sharing platform. It will allow data scientists to quickly and easily create public dashboards with no web development experience.
In the process of writing a project README, I realized I had accidentally written my software development manifesto, the distillation of my thoughts on crafting valuable software in today’s environment. The document does discuss some specifics of this project, but the broader points do apply generally.
I’d like to share it with you.
Ensemble is a minimalist platform for publishing data dashboards. Ensemble is to data what Read the Docs is to developer documentation.
Creating an Ensemble dashboard will be easy. Publish your data anywhere in our standard JSON format and register it with this service. That’s it.
Ensemble explicitly aims not to be highly-configurable. Our goal is not to support every feature imaginable, but instead to build a minimalist platform for publishing useful visualizations quickly and easily. Right now, the need for more dashboards outweighs the need for perfect dashboards.
Ensemble will offer all of the customization that data scientists need, but no more. Custom sections, chart types, axes, and labels will be supported, for example. It will be possible to export and save charts. Other features with obvious value will be added. But will we adopt a feature that only one or two people truly need? Probably not.
Software developers have more ideas than users have needs, so this trade-off between elegance and scope is unavoidable. Saying no is hard, but it’s necessary to build a maintainable product that large numbers of people actually want to use.
Ensemble’s target audience is the long tail of organizations and teams that want to publish something rather than nothing. Those with highly-specialized or unique problems likely also have the resources to build their own dashboards. We encourage them to do so and look forward to learning from one another.
Originally published at blog.openjck.com on August 4, 2017.