Modern tech firms could be so risky – it’s laborious to disagree with that. However the query of whether or not their structure needs to be like that too, stays open. How can tech leaders steadiness the necessity for enterprise effectivity now and optimum scalability sooner or later? Learn how to use fashionable instruments with out introducing an excessive amount of complexity? Mujib Azizi, Fixico’s CTO, has been answering these questions for 10 years.
The CTO vs Standing Quo sequence research how CTOs problem the present state of affairs at their firm to push it towards a brand new top … or to reserve it from doom.
“Solely introduce complexity when it’s vital”
Software program structure just isn’t a straightforward concept to promote inside a company. In any case, it’s one thing that solely the engineering division totally understands. And but, the identical engineering division is required to have a whole understanding of the enterprise.
However when you design your structure with the enterprise in thoughts from the beginning, you may not must say, “It simply can’t be performed” to your colleagues from the product workforce as usually.
Mujib has been a part of Fixico’s progress from a start-up to a mature group lively in 11 markets. He advised us what he had performed and what he wished he had performed if he might return in time. Stick round if you wish to discover out:
- When to optimize your structure
- Learn how to greatest use microservices or modularization to your benefit
- Why, how, and when to gather metrics
- When it’s a good suggestion to get a devoted software program architect
- What the optimum software program structure looks like (and the right way to set your self on a path to get there)
Meet Mujib!
Mujib started his profession as a backend developer, however his ardour for designing software program options led him to managerial roles. In 2014, he joined Fixico to assist its automobile restore administration platform evolve by way of additional phases of progress and worldwide enlargement. Irrespective of the circumstances, he ensures that the engineering workforce at Fixico can drive the enterprise ahead and revel in each second of the method.
Software program structure, venture administration, workforce administration, software program improvement
Fixico is a Dutch based mostly (Amsterdam) tech firm, working a digital automobile restore administration platform. They’ve launched into a mission to form the way forward for automobile restore and alter it from a standard offline business right into a linked and clear digital ecosystem through which fleet working companies and repairers discover one of the best ways to restore automobile damages. Over 250 main automotive companies, like Aon, SIXT, Europcar and Arval, and three,000+ restore outlets, at the moment use the platform throughout 10 European international locations and South Africa. To search out out extra, go to fixico.com.
Fixico right now
Hiya Mujib. Only some months in the past, Fixico signed a partnership with Europcar to increase its digital restore administration companies to Germany. That added greater than 300 rental stations and their restore community to your portfolio.
Am I proper to imagine that this enlargement additionally gave you a large number to consider as a CTO?
Mujib: Undoubtedly. Germany was really the primary market we expanded to. we thought: “Germany is so shut. Every thing there ought to be the identical.” Nevertheless it turned on the market have been a whole lot of variations.
First, the tradition is completely different, particularly relating to compliance, privateness, and safety. Whereas the identical legal guidelines utilized, how folks handled them and felt about them was completely completely different.
Within the Netherlands exhibiting the license plate is usually not a difficulty, however folks in Germany have completely different privateness preferences. In consequence, we needed to change into extra acutely aware and adapt to the native expectations.
One other fascinating problem was the localization of companies. Within the Netherlands, a smaller nation, we’ve got a centralized system for car and license plate registration, the place the knowledge is offered from a centralised supply. We naively assumed it will be the identical in Germany – a easy API we might question. Nonetheless, we shortly found that wasn’t the case. We had to determine the right way to get car data, and with a lot to think about, we have been left questioning: Ought to we create one system or two?
We additionally debated which answer is the quickest. Within the early phases, velocity is essential. Nobody goes to reward you for making fancy code or having a really environment friendly infrastructure. What issues most is how briskly you’re in comparison with your rivals.
In the end, we opted for a center floor. We developed a system that labored properly on the time, however one which wouldn’t instantly help fast scaling to a number of completely different international locations.
Naturally, this meant that we couldn’t simply scale our first expertise with enlargement to a different nation. We selected to give attention to velocity and execution within the second quite than optimizing too early.
The issue with software program structure
The difficulty of market enlargement is fascinating in some ways, and right now, I’m most curious in regards to the software program structure angle.
Each time you prolong your companies, you add much more complexity to your structure, extra integrations, modules, and site visitors. Does this ever fear you?
Mujib: At Fixico, we method the complexity of scaling companies with a strategic give attention to sustainable progress. Once we experiment with new applied sciences, we prioritize long-term stability over fashionable options. Earlier than adopting any answer, we assess its impression on our operations, guaranteeing it enhances our service with out introducing pointless complexity—although that’s not all the time assured.
For vital methods, we prioritize safety and reliability. For extra trivial options, similar to dashboards and APIs, we give attention to simplicity to remain agile. We selectively combine microservices based mostly on the optimistic impression they’ve on the consumer and developer expertise early on to keep away from over-engineering.
Our aim is to undertake applied sciences that not solely meet our present wants effectively but in addition align with our broader enterprise aims, guaranteeing each addition delivers actual worth.
I heard one thing comparable after I talked with one in every of our skilled Software program Architects. He advised me that whereas scalability and suppleness are necessary aims for fast-growing IT companies to pursue, they each improve the complexity of structure.
However how can you make sure that your stage of complexity is in step with your enterprise – not too large to deal with, not too little to your wants?
Mujib: To make sure our structure’s complexity is well-aligned with our enterprise wants, we adhere to a easy precept: solely add complexity if it instantly advantages our finish clients right now.
We intently monitor our efficiency metrics to anticipate wants a number of months prematurely, sustaining an adaptable mindset to short-term and long-term modifications. We set milestones and plan forward, adjusting our method as every milestone is reached.
Moreover, you want fixed and steady communication. If one thing takes an excessive amount of time or effort with restricted enterprise impression, don’t be scared to take a step again and take away it. Exchange it with one thing else and be open to attempting completely different strategies.
Managing software program structure – as a startup
We’ve seemed into the longer term just a little, however let’s take a step again now.
You’ve been with Fixico for 10 years now. You’ve seen it develop from a small startup to a giant firm with a global presence. Let’s speak about software program structure as this development occurred.
For starters, when you needed to do it from the start, would you design Fixico’s preliminary software program structure setup the identical means you probably did?
Mujib: After I joined Fixico, there was already a complete platform in place with varied dashboards. Our first step was to modularize this technique by separating sure functionalities into APIs, beginning with core options like notifications for apps, emails, and exercise logging. This allowed us to raised perceive consumer interactions and system efficiency, similar to electronic mail open charges and consumer behaviour.
As we advanced, significantly when shifting from a B2C to a B2B mannequin, we continued this pattern of isolating options into distinct companies every time their effectiveness was confirmed. This methodical separation helped us give attention to what was working and broaden it with out overcomplicating the system.
Trying again, the gradual evolution of our structure was pivotal. It helped us keep versatile and aware of the platform’s wants. If something, I’d have accelerated this decoupling and validation course of earlier to boost our adaptability and scalability even additional, however quicker and extra centered on the flexibleness of the area.
So, it appears that evidently microservices can serve scalability properly when you introduce them progressively. However I additionally heard about an fascinating and fewer advanced different to them that works for startups particularly: a modular monolith. What do you concentrate on this method?
Mujib: I recognize the modular monolith method, particularly for its potential simplicity and effectivity. In startup environments with smaller groups that want to maneuver shortly and deploy steadily, the modular monolith method could be significantly efficient.
Whereas microservices provide important advantages, they’ll introduce substantial overhead that’s usually underestimated. Creating microservices only for the sake of it, with no clear organizational technique, can dilute the advantages and complicate the event course of. For example, a single workforce managing a number of microservices whereas operating the operations would possibly wrestle with inefficiencies and a scattered focus.
However, a modular monolith retains issues easy, making it simpler for small groups to handle frequent deployments with out spreading sources too thinly. It’s essential, nevertheless, to keep away from introducing complexity prematurely. Identical to with microservices, complexity ought to solely be added when completely essential to serve actual wants. Overmodularizing, very similar to overengineering with microservices, can create boundaries—significantly when onboarding new builders significantly when there isn’t any clearly outlined course.
In essence, each methods have their place, and the selection largely will depend on the precise wants of the enterprise, in addition to the construction and capabilities of the workforce.
You made it clear that, particularly at first, enterprise is solely a lot extra necessary than structure. For those who don’t discover a method to become profitable, it doesn’t matter you probably have excellent structure. And discovering that means usually consists of fixing, evolving, pivoting. There’s little place for architectural maturity there.
However is there one thing else you possibly can realistically do early on to assist set the best stage to your software’s future scalability?
Mujib: The secret’s to construct structure with the developer expertise in thoughts. It’s essential to create an setting the place engineers can effectively develop options wanted by the enterprise with out extreme constraints.
Giving engineers the liberty to innovate is crucial. Whereas the platform ought to be cost-effective, it should additionally scale successfully with the obtainable sources to keep away from pointless overhead. Using scalable and versatile design patterns is helpful, supplied they align with our staffing capabilities and operational wants.
Furthermore, having the best metrics in place is important. These metrics ought to clearly point out how the structure meets enterprise calls for. If the workforce struggles to ship impactful options with excessive velocity due to a poor developer expertise then changes should be made—not for the sake of complexity, however to genuinely improve efficiency and help enterprise progress.
Talking of individuals, some startup firms could select to amass experience in software program structure by teaming up with a third-party vendor. An skilled exterior workforce could impart a whole lot of sensible know-how that may stick with the group for a very long time. When do you advocate this method?
Mujib: Buying architectural experience could be approached in a number of methods. Initially, recruiting skilled people is good, as constructing area experience inside the workforce is a invaluable asset—you then personal the information. If recruiting such expertise isn’t possible, then partnering with a third-party vendor turns into a viable possibility.
For instance, throughout our enlargement into Germany, we leveraged third-party experience for compliance-related tasks, making it extra environment friendly to collaborate with consultants who’re already conversant in these native necessities. Using third-party distributors in such eventualities can deliver invaluable experience and guarantee compliance with out diverting important inside sources from core enterprise actions.
Managing software program structure – as a scale-up
Let’s now deal with the scale-up stage.
In some unspecified time in the future, your organization began to determine itself out, and the variety of clients quickly elevated. You talked about that you simply began amassing knowledge early on. However isn’t the scale-up stage, when you could have extra clients, the best time to actually give attention to metrics similar to cloud price per consumer or error fee?
Mujib: Completely, the scale-up stage is vital for intensifying give attention to key metrics to handle progress successfully. Important metrics similar to deployment velocity, restoration time, and error detection are essential as they instantly impression operational effectivity and buyer satisfaction.
It’s important to have the best knowledge on the proper time. Insufficient knowledge not solely slows down decision-making but in addition complicates the event course of, resulting in bottlenecks that may hinder progress and competitiveness.
Because the group grows, the complexity of managing a number of groups and bigger purposes additionally will increase. This requires sturdy plans for metrics that deal with each operational effectivity and evolving buyer worth. For instance, efficient automation turns into essential to streamline processes and scale back overhead.
Furthermore, as extra clients undertake our answer, minimizing downtime turns into extra vital—every minute of downtime interprets to direct enterprise loss. Compliance with service stage agreements (SLAs) and sustaining stringent cybersecurity measures are usually not simply operational wants however are key to fulfilling our promise of remarkable service to our clients.
Gathering the best metrics can also make it easier to persuade stakeholders that there’s a have to optimize structure or re-architect it utterly.
In your expertise, is it simpler to persuade different managers to provide the time and sources wanted for such initiatives in a extra mature scale-up setting?
Mujib: Convincing stakeholders to allocate sources for architectural modifications hinges on how successfully you current your case, whatever the firm’s stage. Velocity is necessary, however aligning with enterprise objectives, and maintaining with business requirements and outpacing rivals is essential. Presenting how our efficiency stacks up towards these benchmarks over time supplies a strong basis for any argument for change.
For instance, quite than merely stating the necessity to improve outdated know-how, I give attention to how such modifications will improve our improvement velocity, reduce dangers and scale operations, instantly linking these upgrades to potential enterprise progress and improved service supply to clients. This method shifts the dialogue from technical must enterprise impacts, which is required by stakeholders.
It’s important to emphasise that whereas developer satisfaction is necessary, the first driver for architectural modifications ought to all the time be the enterprise impression. If the present structure impedes our progress or service high quality, it justifies a re-architecture, not only for technical enchancment however for substantial enterprise advantages.
So, take heed to the enterprise and re-architect in response to its wants?
Mujib: Sure, and one of the best ways to do this is to collaborate with the product and different departments. Determine collectively the place the structure ought to be in your product roadmap.
So, once more, fostering cross-functional groups proves crucial.
Talking of workforce constructing, an fascinating side of the structure debate is whether or not it’s best to democratize architectural information by having everybody be answerable for it just a little bit or, on the contrary – rent a separate architect, creating one thing of an architect guild inside your ranks. What do you want higher and why?
Mujib: At Fixico, we’ve experimented with each methods and located worth in every. We’re dedicated to empowering our engineers to make knowledgeable architectural choices, fostering a way of possession and broadening their ability units. This empowerment is helpful for each private improvement and our enterprise aims.
Nonetheless, we additionally acknowledge the significance of specialised information, particularly as we scale. Initially, we encourage a generalist method the place everybody can contribute to architectural discussions and choices. This helps in constructing a strong basis the place workforce members are versatile and proactive.
As our wants change into extra advanced and our workforce grows, we combine specialised architects who deliver deep experience in particular applied sciences. This experience is usually vital and requires experiences which can be sometimes gained by way of specialised roles in several firms.
In the end, beginning with a generalized method and progressively introducing specialised architects permits us to take care of flexibility and adapt to altering wants whereas guaranteeing that our structure can help superior and particular necessities.
Managing software program structure – as a mature group
Let’s transfer to the ultimate section.
There comes a time when a enterprise is mature sufficient for the structure to meet up with it lastly and change into mature itself. What are some key markers of a mature software program structure for you?
Mujib: As Fixico steps additional into maturity, a key indicator of our architectural maturity is the flexibility of groups to function independently but cohesively. Mature structure at Fixico means having a system the place groups are decoupled sufficient to scale their segments of the product autonomously, striving to excel and innovate inside their domains. This setup permits for fast improvement, high-quality, and impactful outputs.
Regardless of this autonomy, all groups keep a high-level understanding of the general system, guaranteeing their efforts align with our broader firm objectives. Administration performs an important function in guaranteeing that whereas groups transfer shortly and independently, they continue to be aligned with the corporate’s course.
The optimum scenario must be maintained over time although. How can we be certain that the structure continues to carry out effectively and even improves over time whereas giving the enterprise the flexibleness it wants to reply to altering enterprise circumstances?
Mujib: Efficient structure administration hinges considerably on a strong decision-making course of. Selections ought to be reversible—this flexibility permits us to keep away from the pitfalls of a inflexible technique and adapt shortly to new data or modifications within the enterprise setting. It’s essential to keep away from getting locked into choices that not serve the enterprise properly, even when important sources have been initially invested.
Furthermore, the software program engineering setting should foster not simply technical agility but in addition psychological security, enabling autonomy for workforce members to suggest and iterate on options with out undue boundaries. This setting encourages innovation and the continual reassessment of options to make sure they align with enterprise aims.
Managing software program structure – the roadmap
Let’s take all these concepts we talked about and take a look at to consider making a generalized software program structure progress roadmap to sum issues up.
Each enterprise is completely different – that’s granted. However maybe there are some common items of recommendation that anybody can use at every of the three phases we talked about: a startup, a scaleup, and a mature enterprise?
Mujib: For a startup, the stakes are excessive however not as excessive as they are going to be later, so prioritize velocity and experiment rather a lot. Go for fast improvement – you’ll study probably the most from it.
Early on, I stayed very concerned with engineering, maybe a bit an excessive amount of. At the moment, I counsel managers who’re becoming a member of startups to shortly and commonly interact with the enterprise and business groups. Understanding how every part works financially and commercially is essential.
For a scale-up, I’d advise to just remember to are usually not the one individual in cost, the one one making all the selections. Everybody should perceive the architectural points and the way they relate to enterprise. That means, if an pressing venture is available in, you shouldn’t change into the bottleneck as a CTO.
The identical goes for a devoted software program architect – even you probably have somebody like this, it shouldn’t absolve anybody from accountability for structure. So, be sure to distribute resolution making early on.
Sources
Whereas a whole lot of your experience comes from follow, I wager you realize some helpful studying sources for CTOs who need to study much more about structure. Are you able to advocate some?
Whereas a lot of my experience has come from hands-on expertise, there are a number of studying sources I’ve discovered invaluable for additional growing my information of structure and management in tech.
- The Tradition Map by Erin Meyer – Since we work with a multicultural workforce, this ebook has been extremely insightful. It dives into the nuances of how completely different cultures talk and collaborate, which is essential when constructing and main various groups.
- Pragmatic Engineer Publication by Gergely Orosz – Gergely’s e-newsletter is a goldmine for software program engineers and engineering managers. It gives sensible insights, ideas, and recommendation, which I discover significantly useful for navigating the challenges of engineering management.
- Lenny’s Podcast – This podcast is full of insights from prime leaders throughout industries, specializing in product, progress, and scaling. It’s a terrific useful resource for staying up-to-date on the newest traits and methods.
- CTO Craft Slack Channel – A worldwide group of CTOs the place you possibly can share experiences, challenges, and recommendation with friends. It’s been extremely useful for studying from others who’re dealing with comparable challenges.
These sources not solely maintain me up to date but in addition provide new views that assist me develop as a pacesetter.
What’s subsequent? 4 actions for CTOs to take
So what do you suppose? How shut are you to getting the sort of structure that meets the expectations of everybody in your group? Does it provide the very best efficiency and developer expertise and the bottom doable overhead?
Even when you’re not there but, it’s solely a matter of time with this motion plan:
- Don’t over-engineer your structure – optimize it for the present set of duties, not the longer term ones.
- However do handle your future by analyzing your previous and current – acquire the metrics you’ll want to help your enterprise.
- Don’t bounce on bandwagons – choose solely the applied sciences and instruments you can make the most of to the fullest at current.
- Align the dialog about structure with that about your enterprise worth – use it as the important thing driver of your decision-making in software program structure.
And don’t get caught doing the improper factor simply since you’ve been doing it for a very long time!
Do you need to study extra about how Fixico addresses the wants of superior vehicles and automobile fleets?
Try the official web site for articles, testimonials, and different sources.