Managing your Architectural Decision Records (ADR)

Michael Nygard, the inventor of Architecture Decision Records, has a great blog post to start with.

Even in ThoughtWorks Technology Radar, ADRs are mentioned as Lightweight Architecture Decision Records.

In his blog post, Michael Nygard discusses storing your ADRs next to your source in your source control system. I can recommend this approach, because it gives you all the tooling to manage your changes, e.g. version history, pull requests for reviews, and keeping them in sync with your code …..

However, I can also recommend not using source control if you are using another documentation system such as Confluence, a markdown based wiki or even OneNote.

In my current project, Confluence is our system of choice for documenting system-wide information and we currently store ADRs relevant to more than one team there. We are currently discussing moving ADRs that are now at the team level to live next to the source code with all the impact of distributed documentation.

In the end it really depends on your organization’s documentation strategy and architecture, and you should consider where to store this kind of information carefully. You may want to discuss with your colleagues to see where they would look for this type of information to get a better idea of where it belongs.

If you are going the source control route, there are several tools you can use, like adr-tools by Michael Nygard, a command-line tool for managing ADRs. Kevin Jalbert has written a great post on how to start using ADRs with ard-tools, which I can recommend you try out.

Now that we know more about ADRs, there are several sites I recommend reading before starting with ADRs in your organization.

Joel Parker Henderson has a great GitHub repository with suggestions for writing good ADRs and example templates.

Another great collection for ADRs and related tools can be found at https://adr.github.io/.

That’s already a lot of resources to read about ADRs. If you want to go even further, I can recommend the following talk by Jonathan Wolski about Using Architecture Decision Records and his experience.

Advertisement

.NET Framework 4.8 and how we will get the update …

Changes in .NET Framework 4.8

Recently, .NET Framework 4.8 was released with a mix of runtime improvements and library and framework enhancements.

  • [Runtime] JIT and NGEN Improvements
  • [BCL] Updated version of ZLib
  • [BCL] Reducing FIPS Impact on Cryptography
  • [WinForms] Accessibility Enhancements
  • [WCF] Service Behavior Enhancements
  • [WPF] High DPI Enhancements, UIAutomation Improvements

More details about .NET Framework 4.8 can be found on the official announcement blog post. As usual release notes can be found on github including with a continuously updating known issues collection.

Distribution of .NET Framework updates

Last year, Microsoft changed to update .NET Framework updates monthly via standalone cumulative updates which are separated from Windows Cumulative Updates.

  • This change should enable Microsoft to respond flexible to customer feedback with a higher velocity.
  • The separation from Windows Cumulative Updates enables flexibility in installing .NET Framework updates (Existing applications can be tested before installing the latest .NET Framework updates without block Windows Cumulative Updates).

More information about .NET Framework cumulative updates can be found in the official announcement blog post.

Distribution of .NET Framework 4.8 Updates

Updates to .NET Framework 4.8 and updates for it will be continued to be separated from Windows Cumulative Updates, in detail the roll-out

  • already installed as part of Windows 10 1903 update
  • will be part of a .NET commutative update for Windows 10 1809
  • for earlier Windows 10 versions, there will be standalone updates
  • .Net rollup updates for Windows versions before Windows 10 (including Windows Server)

More details about .NET Framework 4.8 updates can be found on the official announcement blog post.

Powershell update docker container images

An easy way to update all your local docker container images using good old powershell …


# Pull all images based on https://gist.github.com/gte445e/85119eb6e93bd46fb2bbd3e3a362ce68
docker images format "{{.Repository}}" | Where-Object {$_ -ne "<none>"} | %{Write-Host "Pulling image: $_"; docker pull $_}

First blog post … again …

It’s time for a fresh start …. what does it mean for me to have a fresh start?

After two years working on a big enterprise project, it’s now time to move on and switch to a new project.

Two years is a long time in today’s software development cycles. A typical iteration for a scrum team could be 2 weeks. In this two years, we had over 80 sprints, lot’s of stories, initiatives, improvements, impediments, bugs, questions, personal differences, colleges leaving the project, new colleges joining, and new friendships. We learned how we can work together, how we have to communicate, how to formulate acceptance criteria so that the whole team would understand them, the toolset our team was using, the different shortcuts of each of us, personal settings in editors and ide’s …. in the end, we build up new friendships and got a well-attuned team.

A new project, a new chapter in one’s life, it’s time to update profiles. Do you know how many profiles of you exist out in the world? When was the last time you’ve updated your profile?

This are only some of them out in the world … Twitter, stackoverflow, xing, linkedin, github, personal domain, medium, blogspot, wordpress, facebook, slack, google+, microsoft, …

Starting a new project, joining a new team means re-learning again … again … again …

Sure, you can use your experience from previous projects, tools and technology but working together in a new team with different people …

For me this is the perfect time to restart blogging again, restarting the 3rd time now in 10 years. When I switched years ago from my private hosted blog to blogspot it seems like it will be a future proof decision. Today it seems like you’ll have to go with either medium or wordpress … another blogengine, another migration … migrating my old blog, switching to the new blog somehow does not feel right, it’s like breaking from the past. Therefore I’ve decided to not migrate my old blog at http://danielthecoder.blogspot.com and leave all the stuff there which has the nice side effect of less work 🙂 and switch to wordpress at https://danielthecoder.wordpress.com for the future, let’s see for how long :).

… a new project, new challenges, new opportunities, … a new journey … new friends …