Building Async and Cloud Native organizations - Issue #18

New GitHub features, compliance testing for IaC, retrospectives in Azure DevOps, role of the software architect

Welcome to my weekly newsletter! Every week, I bring you the latest news, updates, and resources from the world of coding and architecture. I'm so glad you've decided to join me, and I can't wait to share my insights and expertise with you.

I hope you'll find this newsletter to be a valuable resource, and I welcome your feedback and suggestions. If there's something you'd like to see more of, or if you have any questions or comments, please don't hesitate to contact me.

Thank you for joining me, and happy reading!

Before you start reading, could you answer the below poll? It will help me optimize my newsletter for you. Thanks!

REST and APIs

Rate limiting and throttling are two almost similar concepts, but there are some subtle differences. API rate limiting limits the number of requests a client can make to an API within a time period, while API throttling slows down or delays the processing of requests to an API. Read more about the differences and usages at Nordic APIs:

That Twitter is not that stable and is undergoing a lot of changes is not something to be surprised about, but recently they even locked themself out by introducing an API limit. Unofficially, blame was placed on a single developer that did something stupid. However, it is always the system that makes this possible. And that system is not that stable at all as well:

Coding technicalities

Azure Durable Functions now support managed identity for Azure Storage, which is now generally available. It's worth noting that this feature is an extension to Azure Functions, which already had the ability to use managed identities. This allows users to access Azure Storage using an identity-based connection, eliminating the need to embed secrets in connection strings. The identity is managed by the Azure platform, so no secret provisioning or rotation is required. Overall, this is a significant step forward in eliminating secrets for those who also use durable functions.

Pattern matching in C# comes a long way and version 11 adds even more goodness to the mix. The Endjin blog contains a collection of examples and explanations of what you can do.

They particular dive into the list features, like shown below:

void DaftStringExample(string message)
{
    if (message is [char first, char second])
    {
        Console.WriteLine($"String is '{first}' then '{second}");
    }
}

Want to know the real in and outs of async/await in C#, then this is definitely a great guide. Stephen Tout takes you along the history of async development and shows you the inner workings:

GitHub related

The mobile app of GitHub got another feature added; Projects! You can now also manage Project boards on your mobile phone.

Commenting on a line was the only way to place something related to a file as a comment. The other option was to place it as a comment in the Pull Request itself. But with this new beta feature, you can add comments to specific files as well.

You might want to indicate why a certain file is removed. It is also a great way to add a comment to non-text files where it is hard to find a line to add the comment anyway like a binary file.

With the introduction of Mermaid rendering directly in GitHub pages like Wiki, issues, readme etc, it adds the ability to use it as a graph from outputs. Andrew Lock shows how to use a gantt chart to draw the output of a benchmark:

Computing in general

Part of the shift left movement, we want to validate compliance as early as possible. The checkov tool, an open-source component from Bridgecrew, scans cloud infrastructure configurations to find misconfigurations before they're deployed.

Sam Cogan shows how you can integrate this tool into Azure DevOps. In a similar way, you can get this to work in GitHub Actions as well.

Retrospectives are an important part of the Scrum framework as they provide a regular opportunity for the team to reflect on their work and improve their process. By encouraging continuous improvement, retrospectives help teams identify areas where they can make changes and work more effectively.

Additionally, retrospectives empower the team by giving them a voice in the process and allowing them to take ownership of their work. Ultimately, the insights gained from retrospectives can help teams deliver better results and achieve their goals more effectively.

When you work with a remote team, you will need to use tools like Miro boards or Mentimeter to faciliate this kind of meeting. But did you know there is an extension for Azure DevOps that provides Retrospectives support directly in the tool itself?

Oksala did a review about this extension and shows how it can be used for running retrospectives and how it integrates in Azure DevOps as well.

In a recent GitHub training I was introduced to the Git Bisect command. An ideal way to see where and when a certain issue was introduced, is to split the list of all commits between the good and bad point and validate if the issue is above or under the split.

The Bisect command is your handy helper for this, read the blog of Mike Street with an interesting example:

The role of the software architect is a tricky one. In an ivory tower, with no coding experience and not responsible for the outcome, it becomes a nasty role. Charity Majors of Honeycomb recently asked the question on Twitter:

As you might expect it got quite some reactions. She wrote and commented on them in her blog:

Helpers and utilities

You might know the Lorem Ipsum generator, or even seen the Lorum Picsum for images. But if you just want some generative art, then this site has you covered:

Computer laws

Adding Manpower to a Late Project Makes It Later

Brooks’ Law

Brooks' Law is a software engineering principle that states "adding manpower to a late software project makes it later." It was first introduced by Fred Brooks in his book "The Mythical Man-Month," which was published in 1975.

The law is based on the idea that adding more people to a project that is already behind schedule will actually cause delays, as the new team members will need time to be trained and to become familiar with the project's complexities. In addition, more people on a project can lead to communication overhead and coordination challenges, which can further slow down progress.

Therefore, according to Brooks' Law, the most effective way to speed up a late project is to focus on improving the efficiency and productivity of the existing team, rather than adding more people to the project.

I hope you've enjoyed this week's issue of my newsletter. If you found it useful, I invite you to share it with your friends and colleagues. And if you're not already a subscriber, be sure to sign up to receive future issues.

Next week, I'll be back with more articles, tutorials, and resources to help you stay up-to-date on the latest developments in coding and architecture. In the meantime, keep learning and growing, and happy coding!

Best regards, Michiel

Join the conversation

or to participate.