Loading…
Attending this event?
Tuesday September 17, 2024 16:45 - 17:45 MDT
This is the story of a design collaboration between a member of our code governance team and a C++ developer leading the effort to update tools that generate C++ code from schema. Through a two year collaboration, we crafted guardrails to a complex system that allowed maximum flexibility to exist alongside common sense restrictions in a single system. We did so successfully thanks to the input and consensus of our huge C++ developer community.

Bloomberg's C++ code generator was created 18 years ago to simplify the task of writing services and code to call those services, freeing up engineers from writing boilerplate code and allowing them to concentrate on writing code that provides business value. The code generator is so popular that it is used beyond services, with hundreds of developers relying on it to also create C++ value semantic types. As a long-lived project, the generator has evolved over the years to support many scenarios and options. While this versatility has been hugely valuable, having so much additional flexibility also created a huge support surface for the tool owners and also burdened users with questions about which options are optimal for their use cases.

Two teams began exploring this problem separately. One focused on updating the code generator while the other looked into how the generator was being used across the company. Progress sped up appreciably when we realized we could combine our expertise in outreach and design. We began a focused conversation with the firm's broader engineering community, which led to key changes to the code generator, the creation of directed CMake modules, the introduction of new rules and validations, and the development of clearer documentation. We put an end to longstanding misunderstandings that had been causing users to make mistakes. Finally, we gave our engineers  a clear outreach path to request new features.


Key takeaways:
* Development and outreach teams working together can make targeted technical improvements to a C++ codebase, and to the developer experience.
* An outreach team can bring existing community relationships, as well as dedicated time, to research larger issues. This gives developers a chance to have a say in designing best practices, in addition to allowing infrastructure teams to make improvements, without bringing other important work to a stop.
* Creating a well-lit path for a tool's usage avoids pressure on developers to craft ad hoc solutions that are unintended and inadequately tested by the tool's creators and maintainers.
* People will do the right thing when everyone involved understands what the right thing should be. Your organization's codebase will benefit.
Speakers
avatar for Sherry Sontag

Sherry Sontag

Technical Expert, Bloomberg
Sherry Sontag came to Bloomberg Engineering after co-authoring “Blind Man’s Bluff,” a New York Times bestseller about submarine espionage during the Cold War. Hired by Bloomberg 17 years ago for her ability to talk to anyone and actually listen, she recently has been working... Read More →
avatar for CB Bailey

CB Bailey

Software Engineer, Bloomberg
Tuesday September 17, 2024 16:45 - 17:45 MDT
Spruce 3/4

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Share Modal

Share this link via

Or copy link