Adhesion

I recently gave a short talk in our engineering all-hands. I got a ton of responses, leading me to think that this might be a subject worth a post.

Back when I was racing bikes, I went to PT regularly; muscle adhesion was something that my PT taught me (in an excruciating way I might add).

Muscle adhesion happens as a result of an injury, causing muscles to be essentially "stuck" together, causing them to move inefficiently (furthering the damage and injury).

Adhesion in software delivery

In software delivery, adhesion happens when one piece of code can't be shipped without another piece of code. When service X has to be aware of the service Y lifecycle.

I've seen adhesions pretty much in every place I've worked at in my career. Some companies went as far as creating tools to override these adhesions. However, I find that the best way to solve these adhesions is with simple rules.

  1. API -> This API FIRST AND LAST. Even if you have access to edit service X while working on service Y - Don't! API for services should not consider the implementation of the consumers in a special way. If your consumer requires a change in the API, make that as a request to the team.
  2. CHANGELOG -> Enforce the use of a changelog in all services that expose API endpoints.
  3. SemVer -> Learn it, use it, love it. Semantic versioning in service API should be enforced at all times.
  4. Schema migration -> Schema migrations should always be backward and forward compatible. You should separate DDL from DML in your migrations as much as possible.
  5. Data Migration -> Avoid data migrations as much as humanly possible. If one service is "born" needing to migrate data from another service, it's probably the wrong idea. Think about the source-of-truth for any object in the system religiously.

Culture

The good news (and bad) is that adhesions are usually rooted in culture. It's about discipline and policies. Think about your product. Can one team move without the other? Can one service be dropped into production without coordinating with other teams?

Have you seen similar at your workplace? Happy to discuss in the comments.

Rock on!




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

Avi Zurel的更多文章

  • The 3 W’s: A Simple Way to Solve Problems Smarter

    The 3 W’s: A Simple Way to Solve Problems Smarter

    In engineering, we’re constantly tackling problems. But sometimes, what looks like a simple request actually hides a…

  • Analyzing GMail (Gsuite) with Python and Google Sheets

    Analyzing GMail (Gsuite) with Python and Google Sheets

    Earlier this week, I published this tweet: I have a Gsuite account going back a few years for `kensodev.com`.

  • Our Ephemeral dev environments -driven by Slack

    Our Ephemeral dev environments -driven by Slack

    In one of my recent posts (https://www.linkedin.

  • Investing in multi-cloud

    Investing in multi-cloud

    One of the goals for us this year is to invest in multi-cloud deployments. There are multiple reasons for this, I…

    1 条评论
  • Note I shared internally after the Twitter hack

    Note I shared internally after the Twitter hack

    If you live on earth and are in tech, you know that Twitter was hacked via social engineering and access to internal…

    1 条评论
  • How we deploy to production

    How we deploy to production

    Yesterday, I was texting with a friend that asked me a question about the load on our ops team during COVID With remote…

    5 条评论
  • Managing a flexible cluster of micro-services - HOWTO in the wild

    Managing a flexible cluster of micro-services - HOWTO in the wild

    We've been managing flexible clusters of micro-services for quite some time now. Over the years, we've learned some…

  • Dishes and Laundry

    Dishes and Laundry

    I had a conversation today with one of my project managers. It made me think about this "dishes and laundry" term in…

    1 条评论
  • Managing CI Configurations At Scale - Globality

    Managing CI Configurations At Scale - Globality

    Intro You often hear about scale issues when discussing capacity, traffic, users and other resource related topics and…

    3 条评论
  • Chat controlled RC car using a RaspberryPi

    Chat controlled RC car using a RaspberryPi

    I've been streaming myself coding on Twitch for the last couple of months. I wanted to build something really fun and…

    1 条评论

社区洞察

其他会员也浏览了