Technology Planning: API First Design
Credit: https://www.thenbs.com ; Image of 2 people shaking hands with one arm coming out of a computer.

Technology Planning: API First Design

How to structure teams for API first development isn't as complicated as you might think.

Are you running a tech organization that is just starting out or on the verge of heavy growth? Listen up. 

“Microservices”, “API First”, “Service Driven Architecture”, or any other trendy topic that you hear about like these may seem like buzz but if you understand the true nature of these methodologies, it could mean the difference between rapid growth or being bogged down in ten years of technical debt. 

First, you have to understand that applications (at a high level) are comprised of just 2 aspects:

  • User Experience (Developer or Consumer)
  • Contracts: A series of questions and answers that powers the flow of information from the producer and consumer.

How can application development be that simple? Truth be told, it isn’t, but the concept is. For sake of brevity, I will forgo discussions around security and governance and focus solely on the general concepts. Maybe I will write an article later on those. Im also going to skip over User Experience (UX) for this article even though I consider that a critical item for success.

Contracts

I’ve been saying for years that applications start and end with analytics. It’s like “bookends”. You set up to collect information, design and build your application(s) around those metrics and then review the data to determine what is next.

No alt text provided for this image

It starts with designing your database to support your workflows. Many times, the biggest technical mistake companies make is they build their application around the database. I refer to this as “programmatic database development”. Not saying there isn’t a time and place for it but one thing I have come to learn about application development in the enterprise space is that your databases should be dumb. Neither your services or your data architecture should know about each other. 

This is where the contract designs are critical. Your application should ask an expected question (format) and get an expected answer (format). Where artificial intelligence comes in (much larger topic) is the ability to add deductive reasoning to the question. A simple REST example is getting someone’s name.

Application: What is your name? (First, Last) 

User: John Smith

Service: POST https://domain.com/input/name text=John Smith

Response: GET https://domain.com/output/name fullname=John Smith; firstname=John; Options=[Yes,No]

Application: Hey John Smith, thank you for telling me your name. Can I call you John? (Yes/No)

User: Yes

Great? Well, its exact question and answer specific. My application is expecting the user to ask the question in a very specific way and I will respond in kind. This happens everywhere within the application environment and as such, can be tested easily. Everything from what content to show to how to deliver that content is driven from these responses. 

Pro tip: Have a mock API framework so your front end teams are not waiting on your back end teams.

If you design out your APIs and focus a team to develop those contracts, you will have way more success than building them ad hoc. Whenever possible, this is how my teams are structured. Service teams and implementation teams. 

Treat Implementation Teams As Vendors

If the goal is API first development, your implementation teams need to immediately be treated as a vendor. This will create best practices within your service teams. Things like documentation, registration, versioning, deprecation, communication and design patterns become required. A service is only successful if someone can implement without platform knowledge. Start with this mindset and then UX will drive service offerings as a request. 

This also makes it easier to create an open network for others to leverage your platform. It is so much easier for sales teams to sell your services to businesses when you don’t have to hack solutions together. Remember, every hack has to be supported and some companies spend up to 75% of their time managing one-off platform connections. You can’t scale in that model.

If you have questions, please reach out to me at [email protected]. Would love to discuss your challenges to see if I can help.

Article: https://johnsteinmetz.net/technology-planning-api-first-design/

要查看或添加评论,请登录

John Steinmetz的更多文章

  • Analytics 101: Data Governance

    Analytics 101: Data Governance

    Definition: Data Governance is the collection of practices and processes which help to ensure the formal management of…

  • Measuring Success of Data Teams

    Measuring Success of Data Teams

    Good morning rockstars! I've been thinking a lot about how data teams can effectively communicate the success of their…

    5 条评论
  • Business Applications for AI

    Business Applications for AI

    Frankly, I'm seeing hundreds of articles about how "AI will change the way we work" and "AI is the hottest new trend in…

  • Driving Organizational Success through Value-Centric Data Initiatives

    Driving Organizational Success through Value-Centric Data Initiatives

    As a leader of Data in today's dynamic business landscape, I recognize the pivotal role that data teams play in shaping…

  • Change is Hard. Accepting change by channeling fear into positivity.

    Change is Hard. Accepting change by channeling fear into positivity.

    “It was the best of times, it was the worst of times.” I love that line from A Tale of Two Cities, it represents the…

    2 条评论
  • Make waves, don't drift with the current.

    Make waves, don't drift with the current.

    Over the last few years I have realized a few things about myself. I used to be trouble, always the dissenting opinion,…

    4 条评论
  • What does a product manager do

    What does a product manager do

    I get asked all the time “What does a product manager do?” Got me thinking, why not a blog post! Just about every…

    3 条评论
  • Analytics, Testing and the Customer Journey

    Analytics, Testing and the Customer Journey

    In any analytic system that involves a multi-step conversion funnel, the customer journey contains decision points. No…

  • Data Is The New Currency

    Data Is The New Currency

    Data is the new currency. More and more, companies are turning their attention to creating new ways to generate…

    2 条评论
  • Brand Loyalty Programs: Using Customer Engagement

    Brand Loyalty Programs: Using Customer Engagement

    As a consumer, I am conditioned to seeing the brands I use sell me on loyalty programs. Everything from "cash back" and…

    2 条评论

社区洞察

其他会员也浏览了