It has been more than a year since I started developing CATS, which is the in-house ISMS platform for Qfirst. When I first started on the project I searched “How to develop ISMS?”. The answer was “You don’t, you buy ours for thousands of dollars!”. That obviously wasn’t an option to server SMB’s so development on CATS started with a Belgian “We’ll just start developing and handle any problems when we face them” attitude.
In the beginning, the “What” vision for CATS wasn’t a hundred percent developed. What did we want CATS to do? What exactly *is* and *isn’t* a platform for ISMS expected to do? Those were all questions I was dealing with.
The “How” part was answered right out of the gate. The philosophy behind CATS was to release small increments when they’re ready. In a big picture perspective, CATS is built from the ground up to be modular while making developed parts reusable. For example, when we make a feature available in one module that means we want (most of the) feature to be available across CATS. One example is that, before the *upcoming redacted module* was even on the road map or a request in our inbox, we already had support for such a stand-alone module in place because of the *redacted* feature that used all the pieces the *redacted module* will be using. This design philosophy makes CATS a little more complex at the time of developing a new feature but it makes life easier down the road as it’s more efficient for our team to add these features to other modules.
As we get more hands-on experience with CATS, changes and improvements get rolled out. One thing we learned in the past year is that our development process wasn’t optimal which meant the quality of some releases wasn’t always 110%. To address that we had to change the way we developed releases and how we paced their development. We’ve now reached a golden spot which is perfect for our approach to building CATS although of course there’s always room for improvement!
CATS is now up to release 0.16.2. There’s no 1.x.y in sight yet because I feel that implies CATS is “feature complete” and when I look at our road map I don’t think we’ll be getting to the point where we stop rapidly releasing new features and updates any time soon. But that doesn’t mean CATS isn’t stable or production ready! Every release of CATS, no matter how small, is carefully tested and crafted to make sure it does what it’s released for. Herding CATS might be hard, but we make sure to only open the door for them when they’re ready.
The journey of CATS so far has been a constant learning experience and will continue to be one as we keep expanding, improving and changing CATS. I’m aware this post doesn’t reveal much about CATS or the concepts behind it. That’s because I’m extremely rusty when it comes to writing anything longer than a tutorial and because it’s hard to distill a year of development where approaches, processes AND CATS constantly changed into one “This is how we did it!” blog post.
Stay tuned for more future updates about my tech journey and / or the development of CATS!
Discover more from Torettox84
Subscribe to get the latest posts to your email.