Helping engineering teams move faster and smarter is a big goal of the Office of the CTO at Bloomberg. Increasingly, the answer is to bring the company’s engineers closer together using cloud services built on open source tools.
Functioning as an internal research and advisory group, the Office of the CTO evaluates all of the publicly-available research around engineering challenges across the company. Then it looks for commonalities among the technologies, processes, people, and outside companies that may collectively inform generalized solutions.
“As a group, the CTO team develops a broader picture of what’s out there,” says Juan Negron, a senior-level technical architect who focuses on computing architecture at Bloomberg. “You combine little bits of what’s new out there with what you have done before, then you take into account the way that our engineers are doing things, and you try to merge it all into a solution that makes sense for everybody.”
A prime example of this approach and one of the group’s go-to open source projects is OpenStack, a software platform for cloud computing that is gaining more acceptance in companies as an alternative to public clouds. Bloomberg engineers, including Negron, have contributed to the OpenStack ecosystem by publishing the company’s tools and recipes for deploying OpenStack clusters. Two weeks ago, Negron participated in the OpenStack Summit in Barcelona, where engineers from around the world gathered to discuss how the open source project is making waves in enterprise technology.
Negron has seen first-hand how research and open source cloud tools come together at Bloomberg, and says it’s all about one thing: speed.
“OpenStack is a big open source project used to provide private cloud services for enterprises,” Negron explains. “But, at Bloomberg, it’s being used as a means to get developers into a development environment that they can iterate on without having to wait for machines.”
For Bloomberg’s CTO Office, spinning up an environment fast means identifying development challenges early and often, and working closely with engineers across multiple groups to devise a generalized solution. Such solutions can contain various components that can be grouped together and made available almost like a service.
The CTO Office’s only guardrail, Negron says, is to “make sure the choices we’re making don’t interfere with other teams, company policies, or future plans.”
How iterative problem-solving works
With an open mind, Negron and his colleagues will identify a problem that seems to be contributing to technical debt or user complaints across the company. Then, they immediately set up a taskforce with representatives from each team that the problem touches. Once a direction has been established for a generalized solution, says Negron, the architects recuse themselves, and the engineers work together to assign a product owner for the new solution kit.
“The type of problems that we have seen can be solved by a common thread of technologies, and that [solution] is something that’s iterative,” says Negron. As an architect, he says, “On certain occasions, I may not be able to help fix the problem, but I can make your iteration a lot quicker.”
Often it’s not a matter of offering any kind of technical expertise; in fact, another cook in the kitchen is the last thing a hard-working engineering team needs. “To be quite honest, sometimes I may not even understand their problem,” says Negron. “I can just make everything go faster.”
The process typically results in a Web service or a set of cloud-based resources that can be used by other engineers to quickly build even more customized solutions. “That way, the next person can go and use those resources; they can become available for somebody else,” says Negron. When one team benefits from the experiences of other teams with adjacent challenges, the process of identifying and solving problems becomes faster and more efficient.