Skip to content

Instantly share code, notes, and snippets.

@msecret
Created September 29, 2016 20:05
Show Gist options
  • Save msecret/349eef337dbd56d71fdb4afb79bcdd1e to your computer and use it in GitHub Desktop.
Save msecret/349eef337dbd56d71fdb4afb79bcdd1e to your computer and use it in GitHub Desktop.

Cost-benefit analysis of building a configurable and extendable dashboard

Introduction

The cloud.gov dashboard is an open source UI for the open source Cloud Foundry(CF) system. It's built with React and anotoher CSS library called cg-style to create a UI emulates the CF CLI tool as well as add additional functionality. The project has a large amount of testing and is thoroughly user researched.

As cloud foundry is an open source project, there are many groups that are interested in building a CF dashboard similar to the cloud.gov one. Government's like Australia or Rhode Island, or any Cloud Foundry users will likely need to set up their own dashboard with their own styling, configuration and functionality. The only current solution is a poorly maintained and tested Angular project.

The cloud.gov dashboard could potentially make a great candidate for individual teams to roll their own CF dashboard. Before this is done, the cloud.gov dashboard has to be made less specific to cloud.gov. This could be done by making it an npm module that gets include in a project and can be configured and extended through additional React modules.

Benefits

  • Provide an open, configurable solution for any team adopting cloud foundry.
  • Allow other civic entities to re-use dashboard code for their own needs
  • Increase contributor base on dashboard project, allowing for more work to be done and higher code quality through diversity.
  • Allow the dashboard to be expanded through plugin systems, increasing recilency.

Measurements

  • Money saved by Australian gov?
  • Money saved by Rhode Island gov?
  • Money that getting open source contributors would make up for?

Cost

  • Initial dev and design hours
  • Increased time at first when using plugin system.
  • Time configuring current dashboard to use plugin system

Measurements

  • Initial dev time: ~300 hours, ~20 design hours
  • Initial slow down in development: ~40hrs
  • Configuring current dashboard: ~30hrs
  • Get cost of 18F dev

Alternatives

  • Make the dashboard extendable through forking instead. Would likely write instructions on how a team would do this.

Tech changes

Separate front end and backend, ~60hr

  • Separate go project into separate repo
  • Allow conbination of both to support current dashboard setup.

Remove cg styling, ~40hr

  • Add functionality to configure dashboard to use a style lib
  • Allow to just use base css files on project.
  • Attempt to provide some base css that doesn't include any theme

Make cloud.gov specific things configurable, ~10hr

  • Configure documentation link.
  • Configurable header with links.

Make npm requireable, ~60hr

  • Separate dev deps from normal deps
  • Write a more robust release process with versioning
  • Add npm publishing to build process
  • Add funtionality to build with configuration and addons
  • Add testing functionality

Build plugin system, ~100hr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment