Since the beginning of Stratio we had a vision of building a #zerodowntime future. As you might guess, that’s not an easy task because a new born company looking to implement top notch solutions from scratch with limited resources has to work harder and smarter to achieve its goals.
However, we never lacked talent, ideas and perseverance.
My name is João Ferreira and I’m a software developer at Stratio. Let me walk you through the Stratio software team journey to drive a #zerodowntime future.
For the past one and a half years, the Stratio software team started paving the way to build solutions that could match the ambition of our company vision. It demanded (and still does!) a lot of restlessness, proactivity and sweat, since we have changed almost everything, from technologies to our own processes.
At that moment, one and a half years ago, we already had our products covering most of the customers main needs, but since we had grown a lot in a short period of time, we knew we could deliver more at a higher pace and with more quality, but at the same time we were suffering from our own success and we couldn’t support the growth in the volume of users for much longer, and if we didn’t act we would very soon be struggling with scalability and stability.
After a careful analysis, the main conclusion was: we needed refactoring. The needs of a 3 year old Stratio were no longer the same as those of the newborn Stratio, nor those of the future Stratio. So we needed to change and fulfill the present needs whilst also planning for future requirements simultaneously. But how could we do it? We could not just put everything on hold and simply redo everything from scratch…
The first thing we did was trying out the Scrum methodology. The two week scope was excellent to control and manage expectations for every stakeholder: the customers had new updates every two weeks, the product/management could provide feedback and require changes more easily, and us, the developers could accommodate the technical changes we needed in a very controlled way, without affecting feature delivery.
We started allocating time to investigate new technologies and how we could keep improving the quality of our product and solutions. Then, after getting the necessary know-how, we began refactoring small bits of our software critical modules, whilst continuing to develop new features using the previous tech, although simultaneously planning and building the new one at the same time. As time went on, that simply shifted. We started to have a lot of components made on the new tech and we stopped implementing new features on top of the old tech, because it was way faster to do it leveraging on the newly available technologies.
So, during the last year our customers started to have new features with even more quality, gradually and without having to wait for the full platform to be entirely redone.
Well, what about the future?
We are ambitious and demanding with ourselves, and we want to deliver every valuable feature that somehow helps our clients. From real-time fault detections to fleet operation management, we want to create a product portfolio that suits our customers needs. The product strategy is to identify the key features that serve the most important needs from the widest range of customers, deliver value fast and get feedback to improve further.
And we are doing this developing our software modularly, allowing for specific configurations to be done separately for each customer. That way, in the future, we can have a core team (or multiple ones) that develop the main product, and smaller teams to attend individual needs. Those teams will pick up the available “modules”, configure them to meet the customers’ needs, and when necessary, extend those modules to customize them with new features. Then, if some customization makes sense as a “main module”, the core team can then use that work already done and make it available to “all customers”, thus creating a win-win situation.
This way we can have an incredible pace developing core features that will help create and accelerate a zero downtime future. All along, customers can still have their specific needs being quickly attended due to the work of a specific team addressing and resolving them.
The first steps of this journey have already been taken, but there’s still a long way ahead of us. We’ll make it there, one step at a time.