API GOVERNANCE IN THE PUBLIC AND PRIVATE SECTORS

This is Skylight’s report for the U.S. Department of Veterans Affairs (VA) microconsulting project, “Governance Models in Public and Private Sector.” The VA undertook this project in order to better understand how private- and public-sector organizations approach API governance.

In preparing this report, we drew on nearly a decade’s worth of our own API governance expertise, as well as information obtained through interviews with seven different organizations. For each interview, we followed an interview script (see Appendix A) and took notes. The Government Digital Service (see Appendix B), HMRC (see Appendices C and D), Capital One (see Appendix E), BYU (see Appendix F), and MuleSoft (see Appendix E) all agreed to releasing our notes publicly. The other two organizations (a big bank and a large social networking site) preferred to keep them private.

We structured this report to largely reflect the interview conversations that we held with leaders from around the API governance space. These conversations focused on the following areas:

Finally, our report outlines considerations for ultimately realizing API governance and the path to get there.

Types of organizational roles and models being used to govern APIs

Organizations use a number of different roles when it comes to achieving the consistent delivery of APIs at scale. While there are many names for these roles, we’ve distilled them down into the following areas:

Roles in these areas are critical to driving API governance successfully across the organization.

In addition to these roles, organizations are using a number of different structural models to advance their enterprise-wide governance efforts. These include:

We recommend thinking of these models more as principles for approaching governance, as opposed to rigid structures or one best way over another. There’s no clear single role or model that brings success to API efforts at scale across an enterprise. However, there are clear patterns being applied in the early stages of the industry-wide API movement that can be emulated by new players. One such pattern that seems to be emerging is the emphasis on canonical and centralized approaches, coupled with embedded and distributed approaches. The main reason for this is to ensure that the entire enterprise is moving forward in unison, and to leverage existing capacity throughout the organization to deliver on the API governance strategy.

Approach to software architecture being employed

Governance is all about shaping the way software is architected and designed. There are a number of healthy, and not-so-healthy, patterns across the landscape to consider. In doing so, it’s important to recognize the forces that are operating to influence the direction of software architectures, including in your own enterprise.

Domain awareness

Software architecture is always a product of its existing environment or domain. These are some of the areas to take into consideration in terms of how your enterprise domain influences your architecture:

Domain expertise, awareness, and structure will always fundamentally shape an organization’s software architecture. This makes it imperative not to outsource all of your domain expertise, as many organizations we talked to expressed. Otherwise, you run the risk of not having access to the critical domain knowledge that you need to design and evolve your software architecture on your terms.

Legacy considerations

You can never escape the past when it comes to making decisions about the future of your software architecture. At the same time, it’s important not to view your legacy decisions and environments in a negative light. Instead, look at them as historical artifacts (for example, embedded domain knowledge and lessons learned) that can inform how you move forward. Here are a handful of legacy considerations we identified through our discussions:

Systems, people, partners, and bad decisions made in the past will continue to drive, and often times haunt, each wave of software architectural shifts. These influences can’t be ignored nor abandoned, and must be transformed into positive effects on the next generation of investments in software architecture. Change will be inevitable, and legacy technical and cultural debt needs to be addressed, but not at the cost of repeating the mistakes of the past.

Contemporary considerations

Regardless of legacy concerns, we all live in the present. During our discussions with organizations regarding the challenges they face, and the current forces shaping their software architecture decisions, we found several recurring themes:

Modern practices shape how you deliver software architecture, govern the evolution of your infrastructure, and find the talent and resources to make it happen. It’s important to understand how the emergence of mainstream practices will affect your software architecture roadmap, how your teams will work with external partners, and how you’ll build-up the capacity necessary to adopt and support effectively.

Technically defined

The technology you adopt helps define and govern how software architecture is delivered and evolved. There are many evolutionary trends in software architecture that have moved the conversation forward, allowing teams to be more agile, consistent, and efficient in doing what they do. As we studied the architectural approaches of leading API providers across the landscape, we found several instances in which software architecture is influencing future generations and iterations:

These areas of software architecture increasingly govern how you design, develop, deploy, and manage your infrastructure. They provide the platform needed to manage and orchestrate increasingly complex technology infrastructures. The decisions you make about technology now will continue to influence your decisions for years to come.

Business defined

When it comes to delivering software architecture, not everything is governed by the technical components, and much of what gets delivered is defined by the business side of the equation. The amount of investment by a business into IT, as well as several other groups, determine what gets done. In general, the following business elements govern software architecture:

The governance of software architecture has to be in alignment with the business objectives of an enterprise. Many groups choose to begin their API journeys based upon trends, or the desire of a small group, and encounter significant friction when trying to align with wider enterprise business objectives. Groups that address business considerations early and often do a much better job of reducing friction when it comes to software architecture governance decisions.

Observability

Almost all of our discussions around software infrastructure governance have included several mentions of the importance of observability. Software designed, delivered, and supported in isolation either fails or is destined to become the next generation of technical debt. There were several areas of emphasis when it came to ensuring that an API-driven infrastructure considers observability from day one and continues to operate in a way that everyone involved can see what’s happening.

Enterprise organizations that push for observability by default find that teams tend to work better together and have a more open attitude. To focus on observability means attracting the right personalities, encouraging regular communication, and thinking externally by default, not as something that happens down the road. These actions bring much-needed transparency into processes that can often be very complex and abstract, and push things to speak to a wider audience beyond developer and IT groups.

Shared process

Having a shared process that can be communicated across internal and external stakeholders (for example, technical teams, business groups, and third-party developers) who can follow and participate in is now a regular part of newer API-centric, software-delivery lifecycles. Sharing core elements helps ensure that the process for defining, designing, delivering, and evolving software architecture is shared by all.

Historically the software development and operation lifecycle is owned by IT and specifically development groups. Modern approaches to delivering software at scale is a shared process, requiring collaboration among multiple internal and external stakeholders. This collaboration requires bringing software architecture out of the shadows and conducting it on the open web, making it more inclusive amongst all stakeholders. That open collaborative process must, of course, respect privacy and security along the way.

Identification and prioritization APIs

Once the architectural foundations have been laid, there are many ways in which large enterprises begin identifying potential APIs that should be designed, deployed, and evolved to support the many applications that’ll be depending on the underlying platform architecture. Depending on the organization and its priorities, the reasons for how new APIs arise vary, leading to different lifecycles and resulting services being delivered across internal and external consumers.

During our research, we identified that there’s no single approach to identifying which APIs should be delivered. However, we did uncover a variety of approaches in use across the landscape that helps us to understand why you create APIs.

Existing realities

Our existing realities drive the need for APIs, and reflect where you should be looking to provide new services to users. While some APIs may be entirely new solutions, it’s most likely that these APIs will be born out of the existing digital solutions that are in place today, such as:

You can’t govern what isn’t mapped out and known. It becomes increasingly difficult to govern software infrastructure that exists across many open and proprietary formats, and delivered as custom one-off solutions. Governance begins with knowing the landscape, and the greatest impediment to functional governance across organizations are the unknowns. Therefore, it’s critical to understand what solutions are already in place and how existing architectural approaches fit into the big picture. Otherwise, it’s impossible to make the enterprise architecture operate in concert.

Public presence

Another reason for having an open, public approach to selecting, delivering, and operating software infrastructure is that it establishes a public presence across web properties, social networks, and other platforms where enterprise organizations can build a community around. There are a number of ways to identify potential new API resources by simply being public, engaging with the community, and establishing API delivery lifecycles that involve having a public presence.

It isn’t easy soliciting feedback from the general public when it comes to determining the direction of your API platform roadmap. However, with some investment, curation, and cultivation, you can establish more reliable insights regarding the direction to take. The API community across the public and private sectors has grown significantly over the last decade. This community can serve as a wealth of talent and knowledge that can be tapped into

Improvements

In terms of prioritizing APIs, investing in areas that drive enterprise-wide improvements emerged as a common theme during our research. Some of these improvement areas focused on:

It’s important to come up with your criteria for deciding which APIs to prioritize. However, you may want to consider prioritizing APIs which drive one or more improvements in the areas above..

Challenges

The API journey is always full of challenges, and the risks these challenges represent should be identified and incorporated into your prioritization criteria. While some challenges can be minimized and overcome, others can cause unnecessary friction throughout the API journey.

Challenges are a fact of life in the delivery of software and evolving complex systems using APIs. Identifying challenges should be a natural part of the process for targeting resources for delivery as APIs. Challenges can increase friction when delivering services, and should be carefully evaluated before tackling the development of new services. It’s easy to identify the potential of new APIs, but it takes a more seasoned eye to factor in the potential challenges.

Development of standards around the delivery of APIs

Realizing and delivering upon governance at scale will require investment in standardizing data models, as well as the incorporation of existing patterns and standards throughout the API delivery lifecycle. Many enterprise API development groups are streamlining and standardization the delivery of APIs through the adoption of particular standards. Such standardization makes it easier for application developers to adopt and integrate APIs.

While the adoption of common data models, interfaces, media types, and web standards help contribute to the delivery of consistent APIs at scale, it can also prove to be a challenge for some teams, and even by viewed as a threat by others. There are a number of ways in which teams are pushing for standardization across their operations in order to achieve greater consistent, reuse, and results. In fact, this is one of the strengths of web APIs, in that they employ web standards to achieve wider adoption and the delivery of valuable resources at web scale.

Core definitions

A suite of approaches have emerged in the last decade for designing, developing, evolving, and applying common API patterns across the API lifecycle. These standardized approaches use common machine-readable specifications and widely-used patterns. They’re also fueling considerable growth in the API sector by serving mobile applications, as well as other emerging channels such as voice, bot automation, and the Internet of Things. They also help enterprises more effectively organize how services are delivered at scale.

Achieving a common language requires mapping out the known landscape across the enterprise and turning it into common patterns that can be reused across the design, development, and operation of the next generation of APIs. You must distill the linguistic and schematic aspects of your enterprise so that they become the building blocks of your API program.

Doing business on the web

APIs are built on, and benefit from, over 20 years of web history and evolution. There are a number of elements to consider when working to identify and define common standards for use across the governance of any API program. While the API strategy should be rooted in definitions derived from the core of the enterprise, it should also be embracing the web and employing common patterns that make the web work as the foundation for delivering APIs.

APIs are all about doing business on the web. The web provides the platform in which any API program will operate. When it comes to defining schemas, standards, and common patterns for use across API operations, the web is always the beginning of the conversation. While enterprise-defined patterns will always be front and center, the standards used to operate the web should always trump localized definitions, and be given priority whenever possible. Don’t reinvent the wheel when it comes to the web — always reuse and implement what’s already known.

Under the influence

When learning about new standards and considering which standards to adopt, it can be easy to find yourself under the influence of specific vendors, competing standards, programming communities, and other factors. Careful evaluation of standards is important, and an awareness of what some of the common elements are that may shift your opinions one way or another, or even obfuscate what’s real and prevent you from achieving objectives.

There are plenty of currents to get caught up in when it comes to identifying, defining, and evolving standards. Not all will bear fruit, or realize the type of adoption needed to be successful. Establishing a balanced view of the landscape across internal and external actors will help ensure that you understand which API specifications, standards, and definitions will help move your enterprise forward.

Taking the lead

While there are a number of ready-to-use standards available for the web, and organically grown out of the API community, these standards won’t always find their way into the enterprise. Leading organizations demonstrate that it takes a structured effort to define, disseminate, educate, and evolve standards across large organizations, with a number of proven tactics:

It takes standards bodies to move forward common standards at the web and industry levels, and it takes the same approach to push forward the adoption and usage of standards within the enterprise. Leading enterprise organizations are able to quantify, measure, and evolve the infrastructure in a more organized way through the adoption of common schemas, specifications, and standards. This provides a common vocabulary for all teams to use when designing, deploying, and managing services that can be used consistently within, across, and outside of the enterprise.

Moving APIs into a production environment

We researched how teams moving APIs from idea to production. The processes that were described involve documenting the lifecycle of a service, and executing on that lifecycle and monitoring progress throughout.

Well-defined

To be able to deliver APIs at scale in a consistent way, teams are relying on a well-honed, well-defined lifecycle that’s been defined and continually refined. This lifecycle forces structure and rigor throughout the evolution of all services, puts governance in front of teams, and encourages them to execute in a consistent way in order to make an API a production reality. It’s important to focus on a handful of structured formats for imposing governance at the deployment levels:

Enterprise organizations that provide structure for API development teams find it much easier to realize their governance aspirations. The scaffolding is already there to think about the consistency of services, and the face-to-face or virtual scrutiny of services helps provide the environment for governance practices to be executed, enforced, and evolved before any service reaches a production state. A well-defined API deployment lifecycle will help contribute to a well-defined API governance practice.

Virtualization

One sign of enterprise groups who are further along in their governance journeys is the use of virtualized environments. Your should require all API developers to mock and iterate on their APIs in a virtualized environment, presenting them as if they’re real, before they ever are given a license to write any code, let alone reach a production state for their services.

Virtualized environments provide an important phase in the journey for APIs moving from concept to reality. They establish a safe environment for developers to iterate upon their work, and to encounter many of the challenges they’ll face in a public environment, without any of the potential for harm to users or the platform. This ensures that when a service is ready for development, most of the rough edges have been worked out of the service contract.

Technology

One of the most significant ways in which we found enterprise groups governing the evolution of their APIs is through the technology they employ. This technology is providing much of the structure and discipline that organizations depend on to help ensure that APIs are being developed and ultimately deployed in a consistent manner.

Our findings demonstrate how important both technological choices and architectural planning are to overall API governance conversations. The services, tooling, and applications we adopt will contribute to our governance practices, either positively or negatively. You should consider enforcing governance for all APIs as they move from development to production, in a way that teams can’t circumvent and often times don’t notice.

Orchestration

Augmenting the previous discussion of core technology, there are a number of orchestration practices we found that help quantify and enforce governance on the road from development to production. They dictate how code, artifacts, and other elements included as part of the API lifecycle move forward, evolve, or possibly get held back until specific governance criteria are met.

Orchestration provides some clarity on the automation side of moving services from development to production, while also enforcing governance along the way. It allows for an assembly-line delivery of consistent services, and the iteration of each version, in alignment with the overall governance strategy. This reduces the chance for human error and increases the chance for consistent execution of the enterprise API strategy at scale across many different teams.

In addition to technical staff, the legal department should have a significant influence over APIs going from development to production. They can provide a structured framework that can generally apply across all services, but also more granular control over legal documents for specific services and use cases. We saw a handful of clear building blocks in use to help govern the delivery of APIs from the legal side of the equation:

The legal department will play an important role in governing APIs as they move from development to production, and there needs to be clear guidance for all developers regarding what’s required. Similar to the technical and business elements of delivering services, the legal components need to be easy to access, understand, and apply, while also protecting the interests of everyone involved with the delivery and operation of enterprise services.

Making APIs available to consumers

A key step in the lifecycle of properly-governed APIs is making them available to consumers, after they’ve been published to a production environment. This portion of our governance research is intended to provide a basic list of the building blocks involved in governing APIs at this stage in the lifecycle.

Known consumers

Making your APIs available to consumers requires doing a lot of research on your target audience and positioning yourself to deliver a tailored experience. That might involve not only tailoring the design of your API for a particular audience, but the overall presentation, messaging, documentation, and even portal as well.

Knowing your existing and potential API consumers is essential to delivering a tailored consumer experience. It’s difficult to design and present the right set of resources for an audience that you don’t understand. Understanding your consumers should be an ongoing process, happening well before you even begin development.

Common patterns

We found a number of common patterns on how best to reach your audience, minimize barriers to adoption and usage, and maximize the impact of your APIs.

Common design and presentation patterns is one of the reasons why leading API providers have established a strong foothold with their consumers. When you study the approach of organizations such as Amazon, Google, Twitter, Twilio, and Stripe you’ll see that they all make similar use of design patterns, portals, documentation, and other support resources. These commonalities govern the presentation layer of their API-driven services, and represent the consistency that consumers have come to expect and enjoy when working across multiple API providers.

Communication

The next aspect of presenting production APIs to consumers involves communication. That entails maintaining a steady stream of information around the platform, and leveraging any feedback gather from consumers to inform the API platform roadmap.

The best API providers excel at managing communications. As a result, you always have a sense of what’s happening and being worked on. You also see teams collaborating with one another, sharing practices, lessons learned, and showcasing their work.

Realizing API governance

Everything covered so far in this document feeds into what should be considered part of the overall governance of an API platform, but with strong focus on the actual delivery of APIs. In this section, we examine what’s needed specifically for governance. We also look at what various organizations are doing to invest in the governance of APIs across their teams, projects, and the operational lifecycle. What follows are some key areas to consider.

Structure

One key component of API governance that you’ll find in organizations who have been investing it for a while is the presence formal governance structures and teams. While the names of these structures may vary, they all have some common elements worth nothing:

There’s a lot variation in how organizations structure their governance teams. Some took a more centralized approach, while others took a more decentralized/organic approach. There’s no cookie-cutter approach to doing this, and finding the right organizational-context fit will ultimately need to be a process of self-discovery.

The approach

Despite the varying degree of approaches used to organize and execute API governance across the enterprise, there are some common themes in terms of how to approach governance in a pragmatic way. These include:

The general idea is to move beyond just a group of people in name only, and to have a structured and planned approach to executing API governance across the organization on a daily, weekly, monthly, quarterly, and annual basis. Organizations can accomplish this by establishing a deliberate API governance cadence, including regularly measuring value and iterating on the overall approach.

Technology

Technology can play a critical role in helping to define, measure, and report on governance efforts. To that end, we found that those in charge of governance are making smart uses technology, even to the point of being able to govern in real time.

Technology should be a key consideration in deciding how to approach API governance. Having services and tooling inline can help execute and report on how well governance is performing.

Embedded governance is much more likely to be leveraged than externally-mandated tracking and reporting.

Challenges

Every organization that we talked with shared stories about the governance challenges they’ve faced. Many of these have been covered in the sections above, but we’d like to call them out here so that you can be prepared for what’s ahead in your own governance journey.

In the world of enterprise API governance, there’ll be seemingly more challenges than successes. And those challenges will be encountered at every stage of the API lifecycle. Awareness of the types of challenges that other organizations have encountered will you prepare for what’s ahead.

The road to API governance

Since 2010, there’s been a huge uptick in the number of organizations doing APIs. Only a very small percentage of these organization have started to take a formal approach to API governance. Most organizations recognize the need for API governance, but a struggling to overcome a handful of common roadblocks:

Not all organizations are ready for capital “G” governance. Some have to accept lower “g” governance, doing what they can with what they have to drive some aspect of governance forward. While an organized, centralized, and well-funded governance program is ideal and can achieve significant progress, a significant amount can still be achieved using a scrappier approach, at least until those efforts gain more traction and the resource attention deserved.

Conclusion

This report pulls together several years of governance-related research, combined with information obtained from several interviews with API governance professionals. At this point in time, it’s important to recognize that API governance is more of a discussion than a formal discipline. There are a few, but not many, organizations blazing the API governance trail, with formal strategies and programs in place. Unfortunately, there isn’t much information publicly available on these efforts.

Therefore, the objective of our research effort was to bring some of this information to light, and assemble our findings in a logical order, reflecting how an organization might approach governance:

Not every detail in this report will apply to the VA, nor every other organization looking to establish a wider API governance strategy. Our report is meant to shed light on the scope of how enterprise groups are addressing governance. And to serve as a source of information for organizations — no matter how big or small — to starting learning from one another.

Furthermore, this report reflects a patchwork of things that should be considered, rather than a prescriptive list of actions to take. There’s no such thing as a one-size-fits-all model to follow. With the right team and the right approach, you can make governance work for your organization and your specific circumstances.

You can’t ignore the negative perceptions of governance. Many people view governance as the antithesis of agility, innovation, and empowerment. It’s important to manage these perceptions, and give people the confidence that you’re approaching API governance in a way that will work for them and the enterprise.

One definition of governance comes from the Cambridge Dictionary: “the way in which an organization is managed at the highest level, and the systems for doing this[.]” Don’t conflate the highest level with the highest levels of management, and instead let it be more about the highest levels of strategy across the organization. It’s the system for governing a complex machine of API-driven gears that make applications work together across the enterprise. It’s the governance of the machine that has the potential to allow every individual within the enterprise to play a central and meaningful role.

Appendix A: interview questions

For each interview, we asked the following questions:

  1. What role do you play within the organization?

  2. What’s your general approach to designing software architectures?

  3. How does your organization decide which APIs to build in the first place?

  4. How does your organization define the data models and standards upon which to deliver and operate APIs?

  5. After your organization has decided what API(s) to build, how does your organization ultimately get them into a production environment?

  6. How does your organization make APIs valuable to third-party consumers?

  7. Do you have a formal API governance program in place? If so, please describe its mission and scope, how it was stood-up and rolled-out, how its structured, how its staffed, how it operates, how it has evolved, and how you plan to evolve it further.

  8. If you don’t have a formal API governance program in place, are there any aspects of the API lifecycle that you’re currently governing? If so, please describe how you do that.

Over the course of the interview, we also asked the following questions:

  1. What’s working well and what isn’t?

  2. What improvements would you like to make?

  3. What critical lessons have you learned?

Appendix B: UK’s Government Digital Service interview notes

1. What role do you play within the organization?

Serve as Lead Tech Advisor and Head of Technical Writing. My group looks at what standards and guidance that the government needs.

Our former CTO found 18F’s API Standards to be an incredibly useful resource, and wanted to do something similar, addressing questions such as: What areas around API’s should be standardized? And what areas shouldn’t?

So we did a series of workshops around security, API documentation, and service levels. And decided what we should be saying in those areas.

Local government isn’t really building APIs yet. Local government is consuming government APIs. They tend to have a consistency problem in consuming APIs from the national government. So GDS creates an MOU template (how data is used) with local governments. MOU is the legal side of APIs such as how data is being handled, etc.

2. What’s your general approach to designing software architectures?

Agile approach to development. Moving to microservices architecture. Moving away from legacy is important. Do Wardley Mapping to identify service dependencies. Make everything open.

3. How does your organization decide which APIs to build in the first place?

We use Wardley Mapping. Try to create reuse as much as possible. Working in the open helps facilitate, because it encourages the behavior to find something that’s already out there. GDS looks across government to identify common services or common data needs that should be built as APIs such as payment and notification. Right now there’s a lot of pressure on spending efficiently, so reuse is important.

4. How does your organization define the data models and standards upon which to deliver and operate APIs?

GDS has API standards in place. Was the result of cross-government collaboration with local and central government. HMRC and DWP are building APIs on a much larger scale.

First set of API standards events was mix of talks and feedback.

Second was all workshops. Three different sessions happening on different areas. About 80 people total across three streams. These workshops led to the API standards.

Collaboration creates buy-in and trust.

Originally, HMRC was going to create their own API standards. But now they’re going to refer to GDS’ because they were shaped by HMRC.

HMRC produced API standards for product managers that are less technical, and GDS is going to leverage those.

GDS tech writers are more than what we typically think about that role. They are content designers and they understand tech.

5. After your organization has decided what API(s) to build, how do you ultimately get them into a production environment?

Follow the GDS delivery model (discovery, alpha, beta, live).

6. How does your organization make APIs valuable and usable to third-party consumers?

Make sure technical documentation is designed and maintained well. Took a developer-centric approach to understanding what developers need. Have done diary studies, cort sorting, etc. to understand how they wanted their documentation structured. They discovered false assumptions about who used the documentation and how they used it.

From this research, created a documentation formatting tool, used across all products to help create consistency developer documentation.

Making APIs RESTful is default standard. Trying to encourage adoption of this.

Use Swagger for documentation and version control.

Be consistent and clear with versions, and making those as part of the URLs.

Primary users of GDS’ documentation are other government organizations.

Have internal government APIs, B2B APIs, and B2C APIs. Investment in documentation for B2B and B2C is higher; have ideal staffing models for these. GDS API documentation goes through the central GDS group for review. GDS tries to play support role for other cabinets. GDS guides them through how to structure and staff to manage documentation effectively.

Use GitHub and pull requests to document. Use a tool that spits out formatted documentation that publishes to GitHub.

7. Do you have a formal API governance program in place? If so, please describe its mission and scope, how it was stood-up and rolled-out, how its structured, how its staffed, how it operates, how it has evolved, and how you plan to evolve it further.

GDS standards are defined, but not mandated. Trying to make so useful that they are adopted.

Can “enforce” that these are used through governance around domain management. Can only use API domain if GDS’ API standards are used.

Currently creating architecture assessment authority to help guide APIs in the right direction.

Have few people on staff to drive the API strategy. Would love to be going a lot faster. There’s so much developing in the API space such as API management tools that it can be a challenge to keep up with.

8. If you don’t have a formal API governance program in place, are there any aspects of the API lifecycle that you’re currently governing? If so, please describe how you do that.

n/a

Appendix C: HMRC #1 interview notes

1. What role do you play within the organization?

Role has always been tied to APIs. Was lead architect for APIPD (API Program Design), the platform for which was built by another team. Now head-up our solutions team. Run internal API design consultation sessions with teams when they are just getting started. Anything that’s going outside to third parties such as tax service providers runs through our API platform.

2. What’s your general approach to designing software architectures?

Start with why. Have to isolate a strategy. Even if organization has one, have to look at it in order to define objectives that support the strategy. Can you identify KPIs at a tactical level to help define and monitor APIs? For example, are you increasing the reach of the data? Are you saving people money?

Once strategy is defined, provide advice on defining a set of principles to guide the overall delivery approach; converging on smallest number of possible things to support a range of things; keeping complexity inside of the organization and shielding consumers from that; and not breaking consumers.

External advice provided consists of APIs specs (e.g., Roy Fielding REST). Internal advice provided is to close gaps not explained in external API specs.

3. How does your organization decide which APIs to build in the first place?

Originally, didn’t do it right. Started about 6 years ago. Started to mature about 2 years.

Started to design APIs for a specific project or consumer. Doing in isolation leads to duplication. For example, another teaming doing something similar. Didn’t have people at higher level looking across the landscape.

Started doing domain-driven design to take advantage of Pareto principle. Can design one or few APIs to support 80% of consumer needs.

The core domain, in this case the tax domain, should be modeled very well. Think about resources and different views based on this model (e.g., summary, detailed, time). Design APIs to be multi-channel based on this core domain. Been doing this over last 18 months. For example, a company may have to pay VAT, corporation, and personal assessment. Don’t want to have multiple credentials to access. Looking to build on this going into the future.

4. How does your organization define the data models and standards upon which to deliver and operate APIs?

There are a huge number of organizations and groups focused on this. Core architect group uses more modern delivery. Model things using domain-driven design. About 30 architects in the group like this approach. Use event storming to help define domains. Multi-stakeholder, not just architects. Built-up a language to help domain. If you do domain-driven design right, it should reflect in the code in terms of recognizable terms.

External standards, advice stack: HTTP, OAuth, OpenID, REST, HATEOAS (evolve API by providing links). Best to use existing standards when dealing with external consumers.

Working on internal standards as well.

Lesson learned: the organization’s domain is the most important thing. Don’t get fixated by external standards or tools such as Swagger or RAML. Great for non-HATEOAS APIs. API should minimize out-of-bound and should be self-describing according to Fielding model. If not, will be hard coded and hard to evolve. For non-true REST, Swagger or RAML good. A lot of people are trying to push GraphQL. Great if you have super user who understands your domain. Then can federate power and share complexity with the user.

5. After your organization has decided what API(s) to build, how do you ultimately get them into a production environment?

Just focus on consumer-facing APIs such as tax software providers. Engage process above. Will go onto the API platform where implemented and hosted. That platform has few things available to minimize rework: OAuth, OpenID, scopes for reducing resources, etc. In parallel to this, engage the API service process.

Welcome session: producer team talks with Shipley team — standards, platform architecture implementation, and API design.

Kickoff session: looks at business requirements, strategy, backend data sources. Artifact that comes out is a kickoff artifact that’s published and will evolve over time as the design evolves.

It’s a living document for communicating with the organization: what they are trying to do and how they are progressing.

Next stage API design clinic. Architect-to-architect discussion focused on the user journey, etc. Understand the users. Then start dig into domain modeling, do state diagram / finite state machine.

After this, the producer team can start implementing, but can continue to engage with the central team.

Recommend to teams that they build simulated APIs to do user research. For example, can do A/B testing. And make changes on-the-fly during sessions. Lesson learned: user research is not the only part of research. Just as backend shouldn’t drive all design decisions, should consider other types of research such as architectural research.

Have to go through different assessments such as data modeling, security assessments, fraud analysis before can push to external testing environment. How long consumer testing lasts varies.

Another team does checks before API can be pushed to production. Need just enough governance to make this work.

An aside on our API Service Process. As part of our API platform, you have API design and API standards, with several groups working together. The entire customer process and customer architecture is called MDPT. The API platform is part of the tax platform, which is restricted to third parties.

Lesson learned: the central governance run by internal civil servants is critical. Before just contractors without authority.

6. How does your organization make APIs valuable and usable to third-party consumers?

Driven by market demand, so have an idea of what everyone wants. We’re targeted about providing what they need in order to achieve their goals (that is, don’t bog them down with things they don’t need). Use REST + HATEOAS.

7. Do you have a formal API governance program in place? If so, please describe its mission and scope, how it was stood-up and rolled-out, how its structured, how its staffed, how it operates, how it has evolved, and how you plan to evolve it further.

Described above.

8. If you don’t have a formal API governance program in place, are there any aspects of the API lifecycle that you’re currently governing? If so, please describe how you do that.

n/a

Appendix D: HMRC #2 interview notes

1. What role do you play within the organization?

Head of API Design and Delivery, focused on enabling the rest of the organization to delivery APIs. Run the API platform, including catalog of API services and API standards. Have six delivery centers, with various teams delivering APIs.

In functioning as a Center for Enablement, things have been going well. There have been challenges with ensuring quality given some constraints such as timeline.

Platform is missing some capabilities. Have been striking the right balance between governance and autonomy.

2. What’s your general approach to designing software architectures?

Brought a large outsourced system in-house. Called multi-digital tax platform. Started to apply modern practices, and set groundwork for APIs. Use microservices, containerization, cloud, etc. This approach has allowed HMRC to bring the capability in-house.

3. How does your organization decide which APIs to build in the first place?

When started, created an API strategy around creating APIs for third-party software. Instead of building the frontend themselves, wanted to open the APIs so third parties could consume in their applications. Started with a few exemplar ones to get momentum going.

Now focus on APIs for three groups: (1) third parties; (2) other agencies; and (3) internal consumers.

Do have a digital frontdoor where others can request APIs. Because funding is a constraint, really need a strong business case that aligns to mission.

Building APIs are very project focused and centered around data. Central group doesn’t prioritize really. Driven by demand or legislative requirement. Want to start exploring a change in model to be more user-centric and help to shape API strategy. Have been challenged to create reusable APIs across the organization. Standards have helped, but been a challenge to maintain consistent APIs, domain model, etc. Mastering the data from all the sources and ensuring their quality has been a challenge. Foresee this as being a challenge at scale.

4. How does your organization define the data models and standards upon which to deliver and operate APIs?

Have developed a domain model for the organization. Sets out how they want to address problem. Eventually going to publish this to GitHub so developers will understand HMRC’s thinking.

Standards focus on API design principles. Been a lot of work to agree on these.

Have an organization that is responsible for enterprise data architecture. Work closely with them.

5. After your organization has decided what API(s) to build, how do you ultimately get them into a production environment?

Use an API service process. Starts with a welcome call. Then project teams do user research (treat APIs as products). Use REST Assured to help design API and watch how developers use use it. Project teams communicate research using a product canvas, where it fits within the domain. Then have a design clinic. Then project teams start building. Then do assessments using various checklists. For example, if doing transactions, have to do fraud-risk assessment. Also do platform and architecture assessment.

In-process of developing a standard similar to GDS’.

6. How does your organization make APIs valuable and usable to third-party consumers?

Viewing them as products, and looking at functional and non-functional aspects. Have a software development support group that interacts with industry and users to understand how they are experiencing HMRC’s APIs.

Have weekly calls with vendors and where they are going with their product roadmaps to understand consumer direction.

Having a cradle-to-grave service is important.

7. Do you have a formal API governance program in place? If so, please describe its mission and scope, how it was stood-up and rolled-out, how its structured, how its staffed, how it operates, how it has evolved, and how you plan to evolve it further.

See above.

Have struggled to keep up with API standards with the development of the teams. Hasn’t been a huge mandate. HMRC has been somewhat under-resourced to push standards forward. Will focus on how to scale to industrialize APIs.

Organization starting to learn about the value of following the standards based on first-hand experience.

Working with GDS to establish a government-wide standard for APIs.

8. If you don’t have a formal API governance program in place, are there any aspects of the API lifecycle that you’re currently governing? If so, please describe how you do that.

n/a

Appendix E: Capital One interview notes

1. What role do you play within the organization?

Director for Capital One Platform CoE. Previously API CoE. Changed name because not only handle governance for API processes and design standards, but also have responsibility for data transformation and event streaming. Have about 8-9k developers. Many APIs are internal. Work on carefully grooming the ecosystem to make sure delivering the best value.

Focus on: (1) understanding the landscape, not only internally, but externally as well (e.g., disruptive technologies); (2) helping people navigate the landscape and how to apply new developments to certain use cases; (3) measuring success. It’s one thing to set up a CoE, but it’s quite another to measure success, which is critical to viability of the CoE. From CoE perspective, it’s not just about technical metrics, but business metrics as well.

2. What’s your general approach to designing software architectures?

Capital One is probably unique in that the CoE sits within the product management group. Draw a definitive line between the interface and the implementation. The CoE focuses on the interface. The architecture teams focus on the implementation.

CoE trying to create an ecosystems of APIs that are cohesive and coherent. Try to avoid isolated areas of practice.

Product management + API design go hand-in-hand in terms of creating a great experience.

Trying to experiment with teaching people about APIs the same way you learn to drive. You don’t read the car manual. People don’t tend to dive into the standards doc, nor desire to, nor retain the information. How to put the essential information in front of people as they’re working using smarter tools such as Swagger Editor to provide in-context help (business-specific rulesets). Experimenting with machine learning. Switching from model to you have to be expert in all the docs, to instead providing great tools to provide context-specific help.

3. How does your organization decide which APIs to build in the first place?

This comes from the lines of business. They know their business and strategies and delivery intent. CoE doesn’t decide this.

4. How does your organization define the data models and standards upon which to deliver and operate APIs?

Context is everything. Companies get in trouble when they think things stored at rest should be streamed out the same way to consumers. Subscribe to backend for frontend patterns. What they’re preparing for consumers matters.

There’s group that defines data standards, and there’s governance around that. But by the time it gets to API level, then that’s where focus on the context of how that data is being consumed comes into play.

5. After your organization has decided what API(s) to build, how do you ultimately get them into a production environment?

Practice API-first design before start coding. Teams start developing after contract is defined. Track lead time at each stage. Any deviations are flagged and the CoE can swoop in to help remove blockers or address issues.

Use a central management tool to manage environments. Endpoint registration process that automates environment set up and promotion.

Use centralized gateway, which helps to display status, metrics, etc. in API portal.

6. How does your organization make APIs valuable and usable to third-party consumers?

Spend a fair amount of time looking at competitive landscape. Have experimented with third-party APIs to gather feedback / test a hypothesis. In some cases, demo as well. But after running live for a bit, sometimes the business case doesn’t hold up to real-world test. There’s only so much capacity to do all the things, so if an API experiment isn’t showing promise, will spin down and refocus efforts elsewhere.

For those APIs that are ongoing programs, invest the appropriate resources (e.g., tech writers) to run well and make a great developer experience.

7. Do you have a formal API governance program in place? If so, please describe its mission and scope, how it was stood-up and rolled-out, how its structured, how its staffed, how it operates, how it has evolved, and how you plan to evolve it further.

Original motivation for API governance was concern around fragmentation that would make delivering products difficult and concern for pushing complexity onto to consumers, which might lead to duplicative integration efforts to get the data they needed.

Realized the importance of consistent interfaces in order to deliver consistent and great experiences.

Advice for getting started: start simple. For example, avoid designing perfect API standards doc. Things change so quickly. Governance is not a static thing. Less concerned about the static / authoritative artifact. More concerned about creating the process + capability for safely changing in the organization. Starting simple could be making sure APIs have health routes. Once you got that, then move onto monitoring, for example. Hard for big organizations to drive large-scale change at once. Gain momentum around small wins. As you do this, you refine and harden your process. You learn who is engaged and who isn’t. Religious wars get started around huge standards push. That will sap energy and kill progress.

Take an internal developer evangelist approach. Critical to building communities and alignment.

8. If you don’t have a formal API governance program in place, are there any aspects of the API lifecycle that you’re currently governing? If so, please describe how you do that.

n/a

Appendix F: BYU interview notes

1. What role do you play within the organization?

Enterprise architect in the CIO office, doing org-wide API discovery and implementation.

2. What’s your general approach to designing software architectures?

Bring people together to co-discover and come to a consensus on the right approach. Takes time, but critical to creating buy-in and bringing people along.

3. How does your organization decide which APIs to build in the first place?

Take a breadth-first approach. Get group of people together to talk about APIs, what are good principles, and how to approach it. Wanted to define an approach to APIs across the organization. For example, wanted APIs that embody workflow, not CRUD. For example, in client, if student drops ECON 120, have to drop ECON 121.

Decided wanted API to reflect business of BYU. Took a long time to define this.

Created a pot of money to support API development. Anyone who asked to build functionality that required interacting with one of the 950 web services, provided money from that pot to the development team to build and use an API instead. Requires a degree of visibility into all the IT projects that are happening. Have been building out at University API incrementally that defines resources (e.g., people API) that ultimately will satisfy the need for everything. Some of these resource APIs are at different stages. Want to be in a position when have to replace people system, for example, can just swap it out because the APIs are in place.

4. How does your organization define the data models and standards upon which to deliver and operate APIs?

Arrived at consensus among a small group of influencers. Started implementing by using an API manager. Now using WSO2. Put a developer portal in place.

Right now doing a weekly 2-hour meeting with developers from across the university to ask questions, challenge assumptions, specify what level of detail is really necessary in JSON packages, etc. Have to have processes and money to solve the issues raised during these meetings, but at the same time stay true to principles. If not, developers will rebel and won’t use the API. Developer is the customer. Developers come and ago, so need to have continuous communications to socialize principles, standards, etc. and hear their needs and preferences.

5. After your organization has decided what API(s) to build, how do you ultimately get them into a production environment?

After going broad, then focused on vertical slices that aligned to projects that university needed. Had stopgap funding to cover extra cost of building the API.

6. How does your organization make APIs valuable and usable to third-party consumers?

Must look at the developer as your customer. Did a good job of putting a developer portal in place. Need to improve support beyond just self-service documentation.

Have a strong information governance process, but much of that was in place before APIs, so need to address questions/issues around information use. Making sure the developers aren’t being burdened by this takes a lot of time and isn’t trivial. Need to socialize what APIs are, how they work, etc. with information governance officials in order to get them onboard.

7. Do you have a formal API governance program in place? If so, please describe its mission and scope, how it was stood-up and rolled-out, how its structured, how its staffed, how it operates, how it has evolved, and how you plan to evolve it further.

Use a governance process called Architects Council. Bring in architects/developers from across the university to address a range of topics. The governance model is consensus. More informal. Sometimes CIO needs to break ties.

Most of the APIs are developed and managed by central IT group.

Can enforce governance around how developers consuming the API through API management platform.

8. If you don’t have a formal API governance program in place, are there any aspects of the API lifecycle that you’re currently governing? If so, please describe how you do that.

n/a

Appendix G: MuleSoft interview notes

1. What role do you play within the organization?

Person #1 - Regional Director for Federal Customer Success; help advise clients on processes and management models for making best use of MuleSoft.

Person #2 - Solutions Consultant Team (pre-sales).

2. What’s your general approach to designing software architectures?

Recognize that most impactful thing to focus on is info and business entities. Every digital initiative is driving toward information. Understand and prioritize information types.

Understand and automate key business processes.

Information and processes are most important to digitize.

Ensure there’s alignment between design of architecture and business outcomes, and there are KPIs in place to measure.

3. How does your organization decide which APIs to build in the first place?

Partly answered above.

Seen three patterns: (1) driven by specific projects (e.g., what info the app needs); (2) prior knowledge about what info is valuable (they know their business) — they think of their business as a potential platform; and (3) what are the commonalities across the business (what would have highest reusability?), for example, that could accelerate delivery.

4. How does your organization define the data models and standards upon which to deliver and operate APIs?

Some organizations just chase after standards because that’s what’s industry is talking about. For example, FHIR.

Mature organizations treat standards as conveniences, for example, when API would be consumed by external entities.

Don’t simply embrace because that’s what everyone else is doing. Industry standard might not be as authoritative or fit for purpose as you think.

For internal models, best to use domain models that are fit for purpose.

For big organizations, you can understand why they might lean toward industry standard.

Industry standards are about interoperability with external players so make sense to use. No point in creating own standard.

If it’s internal issue, industry standard might not be the best approach.

5. After your organization has decided what API(s) to build, how do you ultimately get them into a production environment?

Leverage automation as much possible (e.g., using CI/CD), and good DevOps practices in general. Building out self-service capabilities.

6. How does your organization make APIs valuable and usable to third-party consumers?

Valuable portion addressed in questions above. If the APIs capture the org’s core value, then they are inherently valuable.

Every API sits in its own business channel. For example, patient portal. API should be fit for purpose based on the channel.

7. Do you have a formal API governance program in place? If so, please describe its mission and scope, how it was stood-up and rolled-out, how its structured, how its staffed, how it operates, how it has evolved, and how you plan to evolve it further.

MuleSoft’s Center for Enablement represents how a few of their most mature organizations are managing governance.

Need top-down support for governance.

Different models for standing-up.

Some start with small 3-4 internal people to establish core. Some do shared services model. Others leverage an SI. Can be mix of internal and external resources.

Not heavy-handed governance board. Don’t serve as a gateway. Will just be blockers.

The enablement team works with other projects team in an advisory/guidance support role.

Some organization create multiple support groups to serve different lines of business.

8. If you don’t have a formal API governance program in place, are there any aspects of the API lifecycle that you’re currently governing? If so, please describe how you do that.

n/a