Architecture Weekly #156 - 4th December 2023
Welcome to the new week!
If you missed it, last week we had our next webinar. Mário Bittencourt did a great, practical introduction about BPMN and how it can help you understand your business process and transition it into the tech world.
Mario showed us:
why focusing on the process and not mixing it straight with technical concepts is a basis for proper modelling
how to run BPMN modelling practically. I loved the storytelling of it, impressive!
how to start with BPMN and use it in different phases of the project,
his heuristics on how to do it well and badly.
Documenting a business process, maintaining it and transitioning that into an architecture vision are one of the biggest challenges I see in my consultancy. Check also na nice guide about ADRs:
“Citibank’s payment software was so badly designed that it almost encouraged bank personnel to make huge mistakes.”. That’s a quote from a Forbes article about Citibank's issue with their loan software system.
In August 2020, Revlon paid Citibank a few million dollars to cover some interest on the loan. Citibank distributed that payment to the lenders as appropriate. By mistake, Citibank also wired to all the lenders all the principal due on the loan – about a billion dollars – even though the loan wasn’t due and Revlon hadn’t actually repaid any principal.
Forbes did a nice job checking the outcome two years later. Not surprisingly, the empire strikes back, and after a series of appeals:
The appellate court concluded that the lucky lenders weren’t so lucky. They had never received any notice that Revlon would prepay the loan. The loan wasn’t presently due and payable. The lenders knew Revlon was in such distress that prepayment was highly unlikely. If Revlon had wanted to eliminate the loan it could have bought the lenders’ positions for less than a third of their face amount, instead of prepaying the whole loan. The lenders should have known the wire transfer was a mistake. So the lenders had to return Citibank’s money.
So, it sounds like users are to blame. The conclusion from this article is rather a sad state of our industry
Going forward, perhaps all loan agreements will now include a new paragraph to require lenders to return any erroneous payments they might receive. Presumably Citibank will also upgrade its payment software and procedures.
Curtain.
Another empire that strikes back is Google. They’re getting harmed by other browser policies to remove cookies and ad blocker extensions. As their business is about ads, they did a typical dick move: they slowed updates to Chrome extensions in Chrome:
That should give them time to adjust their ad algorithms and walk around ad blocker policies.
Don’t be evil? Nah, they already removed this slogan 5 years ago.
Plus:
If your business model is about going around users’ privacy, is it really a good model?
Staying in not being evil. I wrote already that our industry has diversity issues, and we have yet another example of that. DevTernity organisers, decided that it’s fine to make up fake women speakers’ profiles to show that they have diverse line up.
That’s the next level of dealing with diversity issues. I can’t even find the words to say how bad that is.
As a person on conference program boards, I know it’s not easy to find a diverse set of speakers. It requires proactivity and willingness to change it. One of my goals next year is to have in our Architecture Weekly a diverse set of guests on webinars. If you have someone you’d like to see, I’m open to suggestions.
I was bashed after my article that I was exaggerating and that discussing such things in a professional space is not professional. But we’re firstly humans, then we’re employees. A good explanation of that is this article:
Critical skills for architects are discussion, collaboration, and asking the right questions. When asking questions, we should ensure that we provide enough context and not throw all the details in them. We should also be open to being challenged. Thanks to that, we may find that instead of trying to solve problems, we’re too focused on specific solutions. A good inspiration is:
Check also a nice set of articles on how to work closer with other people, how to shape our collaboration in a flexible manner:
If you’re also thinking about a proper way to enable other teams to be effective with a platform approach, read:
Finding the right balance between how much we should do on the backend and the frontend is hard to achieve. It’s also a sociotechnical issue, as it can create tension between teams on who’s more important. That’s why I like that AirBnB provided some time ago their journey and their take on that:
It’s a really detailed article showing how they tackled that also technically. A must-read.
Are you a Marten or Wolverine user? Tell me more!
We’re trying to stay close to our users; we have almost 1000 people on our Discord. I think we’re doing a decent job on that, but there’s something we could do better. What's that?
Understanding the specific use cases, being more proactive, and learning what they precisely do. And that's what we try to improve.
If you’re our user, I have a small request: could you fill out a short survey?
Thank you in advance!
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 the Ukraine humanitarian organisation, Ambulances for Ukraine or Red Cross.
Architecture
Sonya Natanzon - It’s a Feature, Not a Bug: A Step-by-step Guide to Architectural Decisions
Forbes - Citibank’s Billion-Dollar Mistake And How It Turned Out Two Years Later
Ashley Davis - The False Dichotomy of Monolith vs. Microservices
Tomasz Stolarczyk - Who calls who? — a simple events heuristic
DevOps
Frontend
AI
AWS
AWS - AWS Lambda functions now scale 12 times faster when handling high-volume requests
AWS - External endpoints and testing of task states now available in AWS Step Functions
Go
Java
.NET
Oskar Dudycz - Are you Marten or Wolverine user? Tell us more!
Andrew Lock - Behind [LogProperties] and the new telemetry logging source generator
Tim Deschryver - Intercepting HTTP requests with a DelegatingHandler
Microsoft - How to make libraries compatible with native AOT
Coding Life
Management
Industry
Gergely Orosz - A Tech Conference Listed Fake Speakers for Years: I Accidentally Noticed
The Verge - Federal judge vows to investigate Google for intentionally destroying chats