Energy services provider Viridity needed several new features added to its newly deployed application in order to stay competitive in the energy services market. Viridity’s software application allows clients to monitor usage with real time and forecasted information on pricing and energy consumption.
In the process of developing Viridity’s software, Chariot consultants identified ways to improve the company’s IT operations, process and technical environment through software automation, continuous integration and continuous improvement.
Custom Scala Suite Improves Functionality
Because of Chariot’s experience building large scale applications in Scala, Viridity turned to our team of developers for help. Viridity already had an existing team of UI and Scala developers, as well as an established framework to build reactive applications. The existing modules were designed around the CQRS and Event Sourcing philosophies. The new suite was being built completely in Scala using the Typesafe stack. MongoDB was the choice for the persistent store, and each module in the application suite was deployed onto a separate instance in CloudBees.
Chariot’s team did the necessary groundwork to understand Viridity’s architecture and design philosophies, and hit the ground running with minimal support. The team implemented new functionality to provide feedback on current energy usage in relation to contracted energy curtailment levels.
Increased Profit Through Energy Analytics
Chariot then added functionality to produce forecasts on future energy usage based on parameters from historical data, combining that information with forecasted pricing and temperature values. These new features enabled Viridity’s clients to participate in industry incentive programs that allow them to make more money through planned energy consumption.
Continuous Integration and Software Automation
Viridity’s deployment process had been mostly manual. Chariot improved the way applications were packaged, versioned and shipped using Docker containers, custom scripting and the Jenkins Delivery Pipeline plugin for smooth deployment flow. This allows Viridity’s developers to easily migrate a deployment from integration to QA and eventually to the production environment. The result is a continuous flow of updates and bug fixes through each phase, leading to quick turnarounds on fixes to production issues.
More Minds Make Better Software: IT and Process Improvements
Chariot made a big impact through improvements to the process by which Viridity gathers and analyzes requirements. The Chariot team observed that requirements would continually change after the beginning of a sprint. Minimizing change improves the likelihood of a successful sprint. Chariot proposed a procedure that engaged a variety of people such as product testers, developers and project managers in the requirements gathering and sprint planning processes.
The group came up with acceptance criteria and even wrote the outline of tests using a specific descriptive style. The exercise uncovered new scenarios and conditions, and led to significant improvement, largely due to input from multiple participants with various technical and domain disciplines. The most important benefit from this change is that in the end everyone was on the same page as to what the expected behavior was to be.
Outcome: Improved Product, Improved Process
Chariot played a key role in several areas of Viridity’s software development. In one example the team defined the architecture of a module that could deliver customized alerts to customers based on data gathered by the system. Customers are now able to create alerts based on energy prices in specific markets. The module was designed so that it could expand to support other types of alerts dynamically added at run time by other modules in the system.
The changes Chariot was able to suggest and bring about in the areas of build management, architecture and process had the effect of delivering a better product all around, with fewer problems during the QA cycle. Management now has realistic expectations of delivery time and offers a better product.