In collaboration with Chris Simon we have worked on two case studies about Residuality . This talk aims to share our experience of using it. Slides Video recording This is the video recording from Convex, in Spain. Please note, the recording defaults to dubbed english, change the language in settings to “Language=Spanish(US) original” to hear the original audio More resources at Chris’ website…
The DDD Starter Modelling Process is an excellent guide when iterating through the design process. This process is recommended when planning or following significant change, or when there are changes in terms of personnel. Some good examples: major programme of work, beginning brownfield migration, re-organising teams, etc. I have been using Bytesize Architecture Sessions in a few of the sections…
So much about decision making is about trust. Trust in the information and knowledge you have, trust in what your colleagues say they will do and how likely they are on delivering on their promises. When I was working with a client a few months ago, they had some difficulties progressing The series covers the topics described in this talk: The Making of a Decision . This is part 5 of the series…
The series covers the topics described in this talk: The Making of a Decision . about decision making in software systems. The Making of a Decision - Part 1 The Making of a Decision - Part 2 - Knowledge The Making of a Decision - Part 3 - Tools for groups The Making of a Decision - Part 4 - Team and Personal Tools - This post The Making of a Decision - Part 5 - Introducing Decision KP Maps Part 1…
This is part 3 of the series about the common problems found when making architectural decisions, their underlying causes and how to address some of those issues with tools. This post covers tools for groups, such as across teams. The Making of a Decision - Part 1 - Introduction & Power The Making of a Decision - Part 2 - Knowledge The Making of a Decision - Part 3: Tools for Decision Making -…
I ran a workshop at LAST Conference on the 21th November. It was my first LAST conference, it was an a great event however it will be my last. Don’t worry! It will be my last one because they have decided to rebrand the conference to be Signal Not Noise. source For those of you that attended and requested the slides, or just curious: I hope to update this post soon with my notes and pictures from…
This is part 2 of the series about the common problems found when making architectural decisions, their underlying causes and how to address some of those issues with tools. This is part 2, all about what it means to know something, what are useful models to think about knowing something and whose knowledge is accepted. This series covers the topics described in this talk . The Making of a…
This series of posts goes over the topics described in this talk . The other posts in the series: The Making of a Decision - Part 1 - Intro & Power The Making of a Decision - Part 2 - Knowledge The Making of a Decision - Part 3 - Tools for groups The Making of a Decision - Part 4 - Team and Personal Tools The Making of a Decision - Part 5 - Introducing Decision KP Maps Nearly 30 years ago, I had a…
These resources span from practical case studies in team scaling to theoretical frameworks for understanding programming languages, unified by a common thread: how we structure our thinking to solve hard problems. Whether examining ProTime’s journey from feature teams to domain-owned teams, exploring different approaches to teaching programming concepts, or critically evaluating the models that…
Discovering Clarity Through Personal Practice I’ve been meaning to do some improvements to the Bytesize Architecture Sessions ’ website to integrate what I’ve learned lately, but I wasn’t clear on how to focus on when and how. That changed when I saw Krisztina Hirth’s awesome session: Impact Mapping: The Secret Sauce at Virtual DDD . While impact mapping is traditionally presented as a…
These are some readings associated with work associated with Decision KP Maps Thanks Dawn Ahukanna , Iris Meredith for sharing great resources!! Who has permission to know things? - Iris Meredith. Touching on Knowledge and power. I have been thinking about this post a lot since I first read it a few months ago. Meredith argues sudden workplace “explosions” stem from “corporate epistemology,” where…
This is a post about understanding what is happening during architectural decision making. Following up from the talk I did at ADA Conf I started working on a mapping tool to help me see and reason what we discussed It’s called Decision KP Map. Decision KP Map is a mapping tool that helps visualise the subjective perception of the community that enables decision making.The Key People , in terms of…
I’ve been running collaborative modelling sessions lately and noticed that some of the retrospective formats I tend to lean on don’t work as well as it could, perhaps because they have other focus. I was thinking about how to better capture the type of thoughts that come up when you are working through a collaborative modelling session. So, I be been trying a new format: 🕳️ Gaps: Is there…
A lot of these links are related to learning and collaboration, I blame excellent resources shared by Donna Benjamin , Cat Hicks Bot Bowl : Bot Bowl is an annual artificial intelligence competition centred around the tabletop game Blood Bowl (from the past). Hard for AI to beat because of the type of game and the fact that is not such a popular game. Learning about mental models of risk from the…
I ran a workshop with Tech Waka Podcast & Leadership Collective in Auckland on the 26th March. It was great to get hands on with my new local community! Thanks everyone that came over and worked hard during this workshop source
Some resources that came up either during the workshop or the talk : Bytesize Architecture Sessions The site with practical information and case studies for Bytesize Architecture Sessions. Russ Ackhoff “Ted Talk” about systems - A short and rather memorable video about what are systems. Programmer vs Developer - Einar Host In a team each person has a role, I really like how Einar describes what I…
Hartman Proficiency Taxonomy by Maria Hartman - This is about understanding learning, better. The bottom of the taxonomy being called Thought Leader which … not a name that works for me, but I can see where the author is going. How to build and rebuild trust - Frances Fei - Great talk about how to build trust. There are some gems about why being able to be your true self is important and how it…
These are the slides for the talk I did yesterday at ADA Conf in Melbourne Posts about the conference ADA Conf 2024 - Alison Rosewarne Exec Mgr, Architecture at REA Group A complete review from the conference, with summaries for each of the talks. I was super happy to read: Andrea Magnorsky closed out the day with the final talk – on the making of a decision. Every talk today was fantastic, but I…
This is a shortlist of resources associated with the talk: The Making of a decision. Update: A series of five posts about everything discussed in the talk can be accessed from The Making of a Decision - Part 1 Learning Systems Thinking - Book by Diana Montalion Facilitating Software Architecture - Book by Andrew Harmel-Law Feminist Perspectives on Power Entry on the Stanford Encyclopedia of…
Is It Time To Version Observability? (Signs Point To Yes) By Charity Majors Shorthand and Markup for Speedy Note-Taking - Olaf Zimmermann I thought this was going to be a lot shorter than this. I already use something similar to this but not as consistently as I would like. Learning Systems Thinking by Dian Montalion I had the good luck of not just meeting Diana but do a workshop together on…
In this post we look at dealing with ambiguity, a high level of what does OODA loops mean, getting better at debugging , and more. I wasn’t sure how to approach posts from newsletters (some of them behind paywalls). My current standpoint is that if I am able to archive it, then I will include them. Being a PM at Microsoft: Thriving in ambiguity - By Matthew Roche This quote is why I wanted to…
So here are some interesting links with some commentary about programming languages for distributed systems, cellular architecture, and advisory process for teams. Programming the cloud ought to be delightful The article could be summed up with: Microservices can get complicated Managing infrastructure is painful and different from programming the domain Programming languages have a lot of tooling…
So here are some interesting links with some commentary about programming languages, strategy, etc. Since a lot of the links are not short reads, I’m going to keep it brief. Rust’s Golden Rule - Steve Klabnik. The golder rule referred to is the following Whenever the body of a function contradicts the function’s signature, the signature takes precedence; the signature is right and the body is…
This idea, of writing a weekly(ish) post with interesting reads started of after reading Please, Own Your RSS Links . This is a post which could be summed up as Own your writting so that when stuff goes wrong you can change the source and keep going Nothing ground breaking but a good remminder to make sure that if you post, put a tiny bit of effort and have an RSS feed. This led me to look for a…
During October I spoke about Bytesize Architecure Sessions at the Global Software Architecture Summit . I got some interesting questions in the Q&A. We didn’t get through all of them, so have grouped them and answering in smaller posts. This one is about the team attitude to collaboration. Other posts on the series How this series started Questions about number of participants Questions about…
I am just back from the Global Software Architecture Summit were I spoke recently about Bytesize Architecure Sessions . I got some interesting questions in the Q&A. We didn’t get through all of them, so I figured I can answer them in a post. As I answered all of the questions, I realised that there were many ways to answer them, and that in many cases that was very useful too. So, I am going to…
Other posts on the series How this series started Questions about number of participants Questions about team’s attitude to collaboration About the number of participants How many people should participate on a Bytesize Architecture Session ideally? What should be the maximum size of people attending a Bytesize Architecture Session? For a new group of people trying out Bytesize Architecture…
I recently spoke about Bytesize Architecure Sessions at the Global Software Architecture Summit . I got some interesting questions in the Q&A. We didn’t get through all of them, so have grouped them and answering in smaller posts. This one is about how to find the goal of the session. Other posts on the series How this series started Questions about number of participants Questions about team’s…
I am going to be talking at New Crafts this Friday. I’m planning to update this post with more info about how was the conference here, so I figured I will start this post now. My talk: Knowledge sharing is Systems building Abstract People building a (dynamic) system need to have a high level of shared knowledge. They need to know not just what to build today, but what the system should look like…
I am going to be giving an in person talk after a long time (at New Crafts, more info ), and I was feeling a bit anxious. If I am feeling like that, how do people that never attended one must feel? My advice Bring Comfortable footwear. You’ll be standing and walking for a lot longer than you planned 👟 Water and snacks. Especially water. There is food and drink in the conference but not always…
It is not uncommon to hear the parable about the blind people and the elephant when learning about systems. It’s a story about a group of blind people who have never come across an elephant before, and who learn and imagine what an elephant is by touching it. As I spend more time running Bytesize Architecture Sessions and thinking about systems in general, I am coming to the (not so surprising?)…
In my previous post about Bytesize Architecture sessions I described briefly that one of the key aspects of the session is to have time “Alone together” where each of the participants of the session will have a few minutes where they are in the same room working on the same task, but not collaborating . What I did not mention was what to do. This post fixes that. When I started running sessions I…
Note: This is a cross post from Functional Feline Society , a collaboration between Elias Court and Myself. Welcome to part two of the series. “A series?”, you ask. Read all about it by following the link to part one . In this blog post, we’d like to go through how Santa’s workshop makes use of cats-effect (CE3) to bootstrap itself. Before we get started, we want to say that the Typelevel…
Note: This is a cross post from Functional Feline Society , a collaboration between Elias Court and Myself. Introduction This is the first post in a series walking through an example of a microservice with a Kafka integration using the Typelevel stack. We have chosen to showcase a simplified version of Santa’s Ledger. If you want to see the repo now, click here . Unbeknownst to most, Santa’s…
In my previous post about Bytesize Architecture sessions I described briefly that one of the key aspects of the session is to have “Alone together” time where each of the participants of the session will have a few minutes where they are working on the same task but not collaborating , and they are in the same room (virtual or not). The quiet time allows a break to engage on the task at hand and…
I did at talk about tools of software architecture 🎉. As a programmer you make architecture decisions all the time, whether you like it or not, might as well have some tools to help you with that. My aim was to show the tools based on their value, there are excellent resources out there to learn how to use them The tools: 🔧 Understand the problem: Domain storytelling, event storming, impact…
Update : see Bytesize Architecure Sessions website bytesizearchitecturesessions.com 🎉 The more you do something, the better you get at it. It applies to software architecture too. How to do it more often? People new to a codebase and those less experienced with programming generally have incomplete or incorrect mental models about the codebase. One would expect that as time passes, the mental…
Using .net as an example we’ll go over the technical decisions that influenced how todays languages look like. We will look at some key technologies that enabled the creation of .net, the reasons for its creation and the origin of its core features. Video of the conference (with video starting with at my talk. The whole conference is in that video) : I have created the following diagram to make…
Not so long ago, I had to add a feature that should run periodically as part of a web-server. I thought, no problem, I will use cats effects that will run whatever I need on a separate thread and return once completed. I was wrong … My initial program looked something like this: object TimerInitial extends IOApp { def periodicReminder(implicit contextShift: ContextShift[IO]): IO[Unit] = {…
Motivation Keep the dependencies in many repositories up to date as automatically as possible. Warn me when they can’t be updated automatically without breaking the build. How to run You can run by cloning the repo and running it, check the instructions .If you want to run this on private repos on some CI I find that it might be easier to run from Docker. I especially like that you can use a…
CAN bus: High level introduction Short for Controller Area Network, a standard designed to allow electronic control units (ECUs) to communicate without a centralised computer. It is a message based protocol. Mandatory in EU since 2001, us 2008 Runs on 2 wires. CANH (high) CANL (low) Uses differential signaling (some exceptions) When a signal comes in, CAN raises the voltage on one line and drops…
Day 7, last day of a week trying to generate the least amount of long lived rubbish by not buying non renewable things. My rules are: Focus only on things I buy or consume directly. From Monday 20/05 till Sunday 26/05 evening. Document what I do buy and questions that arise from this experiment. Previous days: Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7: Sunday Last day. Today was much more quiet.…
Day 6 of a week trying to generate the least amount of long lived rubbish by not buying non renewable things. My rules are: Focus only on things I buy or consume directly. From Monday 20/05 till Sunday 26/05 evening. Document what I do buy and questions that arise from this experiment. Previous days: Day 1 Day 2 Day 3 Day 4 Day 5 Day 6: Saturday A day of doing things outside. We are not sure on…
Day 5 of a week trying to generate the least amount of long lived rubbish by not buying non renewable things. My rules are: Focus only on things I buy or consume directly. From Monday 20/05 till Sunday 26/05 evening. Document what I do buy and questions that arise from this experiment. Previous days: Day 1 Day 2 Day 3 Day 4 Day 5: Friday Working from home again today. All food an drink consumed…
A week trying to generate the least amount of long lived rubbish by not buying non renewable things. My rules are: Focus only on things I buy or consume directly. From Monday 20/05 till Sunday 26/05 evening. Document what I do buy and questions that arise from this experiment. For previous days: Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Gotchas so far Individually wrapped tea, wrappers are not…
Day 4 of a week trying to generate the least amount of long lived rubbish by not buying non renewable things. My rules are: Focus only on things I buy or consume directly. From Monday 20/05 till Sunday 26/05 evening. Document what I do buy and questions that arise from this experiment. Previous days: Day 1 Day 2 Day 3 Day 4: Thursday Working from home today. This should be interesting. All food an…
Day 3 of a week trying to generate the least amount of long lived rubbish by buying renewable or compostable things. My rules are: Focus only on things I buy or consume directly. From Monday 20/05 till Sunday 26/05 evening. Document what I do buy and questions that arise from this experiment. For previous days: Day 1 Day 2 Day 3: Wednesday Commuting by train, tube, bus and taxi(boo) It seems like…
Day 2 of a week trying to generate the least amount of long lived rubbish by not buying non renewable things. My rules are: Focus only on things I buy or consume directly. From Monday 20/05 till Sunday 26/05 evening. Document what I do buy and questions that arise from this experiment. For previous days: Day 1 Day 2: Tuesday Commuting by train and tube Today’s hot drinks were either leaf tea or…
Something rather different here. I am doing a little experiment. A week trying to generate the least amount of long lived rubbish by not buying non renewable things. My rules are: Focus only on things I buy or consume directly. From Monday 20/05 till Sunday 26/05 evening. Document what I do buy and questions that arise from this experiment. Day 1: Monday Commuting by train and tube: I have a card…
Rust You can declare and initialise a mutable array in Rust like this let mut xs : [u32; 8] = [1,2,3,4,5,6,7,8]; alternatively you could separate the initialisation like: let mut xs : [u32; 8] ; xs = [1,2,3,4,5,6,7,8]; I was surprised when I was not able to re-assign the array with an array of different size… when doing this: let mut xs : [u32; 8] = [1,2,3,4,5,6,7,8]; xs = [2,4]; you get this…