Architecture Weekly #86 - 1st August 2022
Welcome to the new week!
Let’s start with it with an invitation. Thanks to the JetBrains invitation, I’ll be showing a “Pragmatic Event Sourcing in .NET With Marten”. It’ll be on Tuesday, August 16, 2022, 14:00 – 15:00 UTC. Feel invited, and register here!
To close my self-promotion part, I also encourage you to look at my last article. I thoroughly explained how you could model Union types in C# and why you could consider doing that. I think I might be the first to show Tuples as the option to do that.
An intriguing experiment happened when I was at the DDDEU over a month ago. Multiple speakers ran the keynote in the form of a workshop. Yeah, a workshop for the few hundred people audience. Everyone could put their feedback through the mobile app and share thoughts with people near them. What was the topic? What’s the architect's role, and how to effectively shape it. The emphasis was put on being the advisor and if that works well. The results of the survey are available in the GitHub repo:
My personal take about the advice process as a collaborative process is that it’s not easy. It has to be aligned and driven both bottom-up and top-down. People need to learn it and trust it, but also top management needs to back that up. Without that, it will fail. It’s a learning process and mostly about building the proper organisational culture. You need to develop a safe environment where it’s okay to fail. Yet, in some companies, it will require a lot of days do day work, sometimes even enforcing democracy… It’s just not happening by a single decision.
One of the critical aspects of decision-making is transparently doing that. Jessica Kerr nicely summarised that in:
Making decisions in public, giving people the option to state their point of view, and sharing feedback enable collaboration. It’s not easy, it requires grooming, but it pays off if done right.
As one good picture speaks more than thousands of words, it’s essential to visualise your design and decision. That makes it easier to understand and follow. In recent years, visual collaboration tooling has been emerging. It’s worth playing with different tools to see how it works. One of the most important to map and shape your systems are context maps and the C4 model. See more:
Of course, to make it maintainable, it’s crucial to have a (semi)automated process. Some time ago, I wrote that the best way to maintain documentation is not to have to maintain it. How come? Read more in How to successfully do documentation without a maintenance burden.
Google released a new language. Yup, we have a shortage of them. It sounds like Go is not enough, and Rust is not promising, as they released:
I’m not sure what to think about it yet, but I can already say that Google has the notion for the great-looking syntax in their languages...
Did you know that Slack is a tool to enable online collaboration? The slack company didn’t realise that immediately:
From where I’m sitting, why you’d need to try to squeeze all the devs in a single location in the world (Bay Area et al.) and need to pay them compensation for the costs of living that went higher as they tried to squeeze all of the devs in the single place. Also built tools for online collaboration, not being able to do it on your own. Even those sentences read as a vicious circle.
Check also other links!
Cheers
Oskar
p.s. I invite you to join the paid version of Architecture Weekly. It already contains the exclusive Discord channel for subscribers (and my GitHub sponsors), monthly webinars, etc. It is a vibrant space for knowledge sharing. Don’t wait to be a part of it!
p.s.2. Ukraine is still under brutal Russian invasion. A lot of Ukrainian people are hurt, without shelter and need help. You can help in various ways, for instance, directly helping refugees, spreading awareness, and putting pressure on your local government or companies. You can also support Ukraine by donating, e.g. to Red Cross, the Ukraine humanitarian organisation. You may also consider joining Tech for Ukraine initiative.
Architecture
Alicja Halamska, Dawid Kubicki - Exploring GraphQL’s performance tradeoffs
Miki Pokryvailo - Shipping multi-tenant SaaS using Postgres Row-Level Security
Simon Brown - Visualising software architecture with the C4 model
DDDEU - A Commune in the Ivory Tower? - A New Approach to Architecture
Databases
DevOps
Functional Programming
C++
.NET
Christophe Nasarre - Digging into the CLR Diagnostics IPC Protocol in C#
Khalid Abuhakmeh - Entity Framework Core with PostgreSQL and Timescale
FSharp Companies - Community curated list of companies that use F#
Coding Life
Management
Product Design
Industry
Cindy Sridharan - Why Success Is Often Elusive at the Highest Echelons
Mashable - Slack finally realized that Slack makes permanent remote work possible