22 October 2020
In Uncharted Territory: Merging Speed and Sustainability
Combining code, caffeine, and continuous integration to create killer charts
About a month ago, a few of us banded together to create a new library. We started working on it during a remote (thanks, pandemic!) hackathon weekend as part of Spawnfest. Our goal was simple: to create an Elixir charting library using LiveView Components and SVGs, which is also extensible enough for other representations (think Scenic or command line ASCII art). We also wanted something that paired strong accessibility standards with flexible design.
We love using Elixir on our projects, and on more than one occasion we have wished that we had a good SVG charting library we could reach for quickly and productively. In the past, we have integrated various JavaScript charting libraries, but in doing so we knew we were missing out on something more appropriate and integrated with the powerful platform we get with Phoenix. By building the charting library for the community and our projects, we now have a collection of easy-to-use, live-updating charts with native integration into our event-driven Elixir applications.
As a result of the hackathon, we won an award for maintainability. This is a big deal, and we are ecstatic! Hackathons are widely known for over-caffeinated teams pulling all-nighters and furiously pounding out code. We knew all along that we wanted this project to outlast one weekend. That’s why we used continuous integration, code linting and static code analysis, and test-driven development out of the gate. While many teams focus on speed in time-boxed events like this, our team decided on the dual focus of speed and maintainability. We wanted for the product that we produced in those 48 hours to include instructions for people to contribute to the open-source project as well as good documentation for how to use it. Winning the maintainability award is an honor and recognition for the effort that we put into the project. In the time since the hackathon, we have added stronger accessibility, more design flexibility, and new charts to Uncharted.
At Gaslight, we constantly reinforce our core value to “Grow Sustainably” on all of our projects. We have an unrelenting focus on productivity at the intersection of speed and maintainability. We know that the way to maintain speed of delivery over the life of a project is through the structural support of solid tests, code refactoring, and constant attention to keeping the code in tune with the business problems it exists to solve. We create value quickly, and we build products in a way that we can support our customers for the long-haul.
The ability to pair speed with code integrity provides value to our clients in several ways. The right amount of documentation leaves a road map for the next team to pick up the codebase and run with new features or improvements. Well written tests ensure your existing product functionality is stable when adding new features or refactoring. There will always be new ways to grow a product for your business and its users. Maintainability is the path to constantly delivering value.
If you are looking for that kind of combination in your product, or you have a team that’s already practicing that and you need help accomplishing your business goals, hit me up, and let’s talk.