Earlier this year Engineering at Flexera embarked on a more focused journey to modernize and integrate our Architecture to enable the formation of a true integrated set of capabilities across our suite of product offerings.
We formed a central Architecture team comprising of a group of globally distributed enterprise architects. They are embedded in each of our Engineering programs, spanning four of our global locations.
Next came an Architectural vision coined by our VP of Architecture, aptly named, "One Flexera Architecture", that would take us into the future with a modern cloud-based microservice architecture.
Current products overlap in some areas, use a combination of architectures and technologies. This vision aligns them to remove overlap, utilize common capabilities and enable faster delivery of value to customers once the basics are in place.
So, we have a team and a vision, but what next?!
The Architecture team made some recommendations of Architectural standards and technologies Engineering teams should be working with. The communication of these standards was delivered both in person in some locations and virtually across all.
The teams needed support and resources to implement using the recommended technologies. This involved sending experienced engineers to various locations to work with teams directly for periods. Not only has this helped with knowledge transfer but it also built up networks and contacts across our global engineering teams.
But, did we get resistance along the way?
Of course! What change doesn't come with a bit of resistance? It’s natural for people to question recommendations and figure out how they fit into the bigger picture.
The intention of defining Architectural standards is to give the engineering delivery teams guidelines and enhance collaboration by ensuring all teams adhere to a common set of tooling. The teams themselves are empowered to contribute to the recommendations and innovate in their implementations.
Now that there's been features delivered in the new One Flexera stack, engineers are seeing the guidelines are helpful and are embracing the change to their way of working.
In addition, we've seen an increase in cross geography collaboration, leveraging the experience of the greater whole in solving problems together and ultimately redefining new guidelines that benefit all teams.
And what about standards we haven't decided on?
We set up short term task forces, led by a member of the Architecture team and volunteers from the broader Engineering group, to work together to solve Architectural problems around DevOps, security, access management etc. The outcomes being a set of standards that everyone can use. Everyone can and is encouraged to contribute to the growth of the architecture at Flexera.
Like all experiments, we didn't achieve everything we wanted to the first time around, but we're quickly improving on this, learning from our experiences, and applying these learnings to future task forces. And we'll keep doing this into the future.
And how do you coordinate across a globally distributed engineering team and get the intended results?
Recently we added a program manager to the Architecture team to help with coordinating the architectural roadmap, cross program implementations and work with the enterprise architects around task force coordination. In addition, we ramped up on transparency and communication as it relates to the implementation of the One Flexera architectural vision.
And because the enterprise architects are embedded within teams/programs they have been able to work with teams directly in their designs and implementations.
And is it working?
It's still reasonably early days, but by all accounts, we're starting to see things coming together and the velocity of engineering teams increasing. If we continue to employ the principles of continuous improvement, collaboration and transparency we're confident this transformation will be a success. The future is looking very bright for our customers and Flexerans alike.