From "Wouldn't it be Cool if..." to "It's Live!" - How We Ship Features at Warp Speed
In the fast-paced world of software development, agility is king. We've all been there: a fantastic feature request pops up, sparking excitement and visions of improved user experience. But then reality hits – the backlog, the spaghetti code, the daunting task of integrating yet another piece into the existing puzzle. At Cesbit we've cracked the code to transform those "wouldn't it be cool if..." moments into "it's live!" in record time. How? Through a potent combination of modular design, a clear and consistent codebase, and the powerful ThingsDB database!
The Feature Request: A Spark of Innovation
Let’s take a recent feature request in which we introduced a complex multi level filter feature in our notification rules for our flagship infrastructure monitoring tool InfraSonar. In many systems, this could translate into days or even weeks of development, testing, and deployment. But at Cesbit, we approached it with a confident stride.
Modular Design: Building Blocks of Efficiency
Our system is built on a foundation of modularity. Each component is designed to be self-contained and easily integrated. This means that adding a new feature like the multi level filter doesn't require a complete overhaul of the existing architecture. We simply created a new module dedicated to this new multi level filter feature and updated our GUI module to make use of our new multi level filter module..
Benefit: Reduced dependencies, faster development cycles, and easier maintenance.
Clear and Consistent Codebase: The Language of Speed
A clean, well-documented, and consistent codebase is the unsung hero of rapid development. Our team adheres to strict coding standards, ensuring that every line of code is easily understandable and maintainable. This eliminates the need for lengthy code reviews and reduces the risk of introducing bugs.
Benefit: Faster development, fewer bugs, and easier collaboration.
ThingsDB: The Real-Time Data Powerhouse
ThingsDB (https://thingsdb.io) offers more than just data storage. It includes task scheduling, real-time events, live code updates, and a dedicated language for defining strict data processing logic. ThingsDB allowed us to:
Effortlessly manage real-time updates: ThingsDB's event-driven architecture makes it simple to update all our worker nodes to take the new multi level filter into account as soon as the user modifies it.
Store and query data efficiently: The flexible schema-less data model allowed us to store our newly created multi level filters without rigid constraints.
Implement complex queries with ease: ThingsDB's query language enabled us to retrieve and filter any configured multi level filters quickly and efficiently..
The Workflow: From Request to Release
Here's how we turned the activity feed request into a live feature:
Feature Request: Active listening to our users brought this idea to our attention;
We discussed the idea within the team and drafted a feature request outlining the desired result;
The team developed the change and deployed it to our test environment for approval by our product team;
Deployment: We deployed the feature with no disruption, thanks to our streamlined deployment process and the power of ThingsDB that allows us to perform “hot” code updates and live data migrations.
The Result: A Happy Team and Delighted Users
Within a remarkably short timeframe (literally 2 days), the multi level filter feature was live and delighting our users. The feedback was overwhelmingly positive, reinforcing the value of our development approach.
Key Takeaways
Modular design promotes reusability and reduces complexity.
A clear and consistent codebase fosters collaboration and speeds up development.
ThingsDB's real-time capabilities are ideal for dynamic features like activity feeds.
A streamlined workflow ensures efficient development and deployment.
By embracing these principles, we've transformed our development process, allowing us to deliver innovative features faster than ever before. We're not just building software; we're building a culture of agility and responsiveness, fueled by the right tools and a commitment to excellence.