<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Steven Read</title>
    <description>The latest articles on DEV Community by Steven Read (@uniquereplica).</description>
    <link>https://dev.to/uniquereplica</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1305100%2Fddfb9e72-a020-4953-b09c-348cc38bb942.jpg</url>
      <title>DEV Community: Steven Read</title>
      <link>https://dev.to/uniquereplica</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/uniquereplica"/>
    <language>en</language>
    <item>
      <title>Better Software Design: Changing how we talk about software</title>
      <dc:creator>Steven Read</dc:creator>
      <pubDate>Wed, 04 Dec 2024 09:33:30 +0000</pubDate>
      <link>https://dev.to/ministry-of-software-design/better-software-design-changing-how-we-talk-about-software-bih</link>
      <guid>https://dev.to/ministry-of-software-design/better-software-design-changing-how-we-talk-about-software-bih</guid>
      <description>&lt;p&gt;Changing how we talk about software is the beginning of designing better software. Through clear definitions we have better design conversations.&lt;/p&gt;

&lt;p&gt;To learn the foundations of better software design and architectural thinking read &lt;a href="https://jacquiread.com/posts/better-software-design" rel="noopener noreferrer"&gt;Better Software Design: Changing how we talk about software&lt;/a&gt;, in which we present the ACED Model - Architecture, Context, Engineering and Design. This builds on previous principles we outlined in &lt;a href="https://jacquiread.com/posts/software-design" rel="noopener noreferrer"&gt;Software Design: What went wrong?&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the ACED model we focus our thinking using question words: &lt;strong&gt;why&lt;/strong&gt; and &lt;strong&gt;how&lt;/strong&gt;, and by considering whether they are focused on functional or technical aspects of the system. &lt;a href="https://jacquiread.com/posts/better-software-design" rel="noopener noreferrer"&gt;Read more about designing better software&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;©️ Read the Architecture Ltd.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>design</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Software Design: What went wrong?</title>
      <dc:creator>Steven Read</dc:creator>
      <pubDate>Wed, 06 Nov 2024 18:26:32 +0000</pubDate>
      <link>https://dev.to/ministry-of-software-design/software-design-what-went-wrong-3l65</link>
      <guid>https://dev.to/ministry-of-software-design/software-design-what-went-wrong-3l65</guid>
      <description>&lt;p&gt;Design should be a developer’s bread and butter. Changing how we talk about software under development is the start of building better software systems. We must stop calling everything architecture, make design more accessible, and resist the urge of focusing on technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design is how, who and when…
&lt;/h2&gt;

&lt;p&gt;Design is &lt;em&gt;how&lt;/em&gt; we use the system. This can be users or even systems via APIs. We can call this &lt;em&gt;who&lt;/em&gt;. Think of this as the behaviour of the system. It can also be &lt;em&gt;when&lt;/em&gt; - in terms of order of a process, or schedules.&lt;/p&gt;

&lt;p&gt;Typically, though &lt;em&gt;when&lt;/em&gt; is part of a design, it can be constrained by the architecture or engineering. For example due to data rate limits or costs. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn91dyr2440plx4vvxe4v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn91dyr2440plx4vvxe4v.jpg" title="Wireframes are only a facet within software design" alt="Wireframes are only a facet within software design" width="800" height="799"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Design isn't a set of requirements or a schematic, it is an iterative process where what is possible and thought best is improved, iterated, and captured through discussion. Not only is design a shortcut to the system that stakeholders want, design is a magic door to the system that stakeholders didn't know they wanted.&lt;/p&gt;

&lt;p&gt;Now that we are in a post-digitisation world, more and more of what used to be design has become simply analysis, used to verbatim reproduce an old process or interface within a replacement system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulvrncdlwx7virwrpjus.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulvrncdlwx7virwrpjus.jpg" title="EventStorming: We don't only design how an application looks, we design business processes and error handling" alt="EventStorming: We don't only design how an application looks, we design business processes and error handling" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Engineering is what and how...
&lt;/h2&gt;

&lt;p&gt;Engineering is the &lt;em&gt;what&lt;/em&gt; and &lt;em&gt;how&lt;/em&gt; (inside the system) - things like technology, algorithms, and design patterns. Also, generic resources such as databases, proxies, and compute platforms. These are implementation details. Deep dive topics which ARE useful for developers or operations in the right context, but can easily be separated from your architecture.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2x0httudvp102yp0ndnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2x0httudvp102yp0ndnx.png" title="Cloud infrastructure diagrams are heavy on engineering detail, but often light on architecture" alt="Cloud infrastructure diagrams are heavy on engineering detail, but often light on architecture" width="800" height="609"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Engineering details matter for some stakeholders such as security or DevOps engineers, but they are a distraction in more abstract contexts such as when you are developing your application. Flagging a few of the highest level engineering concerns is a good compromise, and is something the C4 Model has handled well for structural diagrams.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture is where…
&lt;/h2&gt;

&lt;p&gt;Architecture is &lt;em&gt;where&lt;/em&gt; things live (akin to city planning). This is the structure of the system, at a higher level of abstraction than engineering, thus why I describe the database as engineering. It is encapsulated within the architecture. It organises the engineering so that it effectively implements the design.&lt;/p&gt;

&lt;p&gt;We are also making the overall picture coherent - across lots of different axes. Architecture references detail from the design, engineering, and the application's context.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture is also why…
&lt;/h3&gt;

&lt;p&gt;Architecture is also &lt;em&gt;why&lt;/em&gt; we are doing things. Knowing &lt;em&gt;why&lt;/em&gt; enables us to make decisions to change things. If we don’t know &lt;em&gt;why&lt;/em&gt; something is in place we need to discover and assess what it was doing. For some things you will find there is no reason &lt;em&gt;why&lt;/em&gt;, it just happened like that.&lt;/p&gt;

&lt;p&gt;The question of &lt;em&gt;why&lt;/em&gt; often involves the non-functional requirements of the application - the “ility” words. Reusability, modularity, testability, scalability, etc. These lead to choices in terms of engineering. Architecture is the decision, not the definition of those choices.&lt;/p&gt;

&lt;p&gt;In architecture, we are solving problems at scale, determining approaches that usually minimise engineering while maximising value.&lt;/p&gt;

&lt;p&gt;We are also affecting or enforcing policies, which can indeed add complexity or cost, but the policies have desirable properties such as security or availability. When architecture is successful these benefits are coming through automatically. When we are lucky, simply choosing the right tools will offer some of this value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Iterating and capture…
&lt;/h2&gt;

&lt;p&gt;Architecture benefits from fast feedback and conversations, just like design, and we capture those designs with artefacts. The same artefacts are the foundation to both design and architecture, and additional stages of enrichment can then provide additional insights in both areas. Our efforts avoid rework and allow better choices. Iterating (redrafting) and capturing (writing down to share and recall) has the same improving and accelerating effect on solutions.&lt;/p&gt;

&lt;p&gt;We are talking about choices, and if you have fast and expressive conversations you can make a lot more choices than if you don't.&lt;/p&gt;

&lt;h2&gt;
  
  
  State of Play
&lt;/h2&gt;

&lt;p&gt;Over the years I have seen many teams producing a lot of engineering artefacts, but much less design and architecture. People use engineering to bring favourable traits to their system, but they also use it as lipstick for a bad architecture, or to bamboozle stakeholders who never got to be involved in a design.&lt;/p&gt;

&lt;p&gt;You can't make informed decisions around architecture without a design. When somebody asks you to “show me the architecture” of your system you need to start with the high-level design.&lt;/p&gt;

&lt;p&gt;Teams have taken the view that by regularly releasing software they don't need a design. Regular releases provide all the feedback they need.&lt;/p&gt;

&lt;p&gt;I hate to be the breaker of bad news, but there are much faster and less expensive ways to get a good idea of what people want, you need to move to validating through releases rather than designing through releases. So many times I have seen a development team implement a feature or functionality, and then the stakeholders just accept or tweak it due to it being "too late" to change anything. I have even seen when a feature is implemented and then after it is deployed to production the feature is then rolled back, due to it disabling important functionality that users relied on. We need more design conversations with users.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We can develop ideas faster than releases&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ick3egqv7htl679f29b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ick3egqv7htl679f29b.jpg" title="User Story Mapping: swapping out ideas is swapping out post-its. We can develop ideas faster than releases" alt="User Story Mapping: swapping out ideas is swapping out post-its. We can develop ideas faster than releases" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agile isn't about stripping the development process down to coding in small chunks, lean of everything but code. It is about feedback loops - and those small loops go all the way back to stakeholder conversations. We are once again seeing the weight engineering has acquired over design and architecture, where the majority of the feedback loops end up accumulating in operations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jzo4gh3c5s6yrjg8uwa.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jzo4gh3c5s6yrjg8uwa.jpg" title="How we view our systems. We can't see our architecture for the engineering, and the design is anaemic" alt="How we view our systems. We can't see our architecture for the engineering, and the design is anaemic" width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Analysing the trend
&lt;/h2&gt;

&lt;p&gt;First of all, there are many factors at play here. One of which is the &lt;a href="https://agilemanifesto.org/" rel="noopener noreferrer"&gt;agile manifesto&lt;/a&gt;, which has a blind spot in the "over" statements regarding the importance of design. There are lots of clues there - "Individuals and interactions", "Customer collaboration" - but it isn't explicit. There is also a problematic statement:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Working software&lt;/em&gt; over &lt;em&gt;comprehensive documentation&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Teams regularly misinterpret this as meaning design and documentation are not part of the process, we should only code - working software INSTEAD OF comprehensive documentation. It was further exacerbated by "Clean Code" evangelism, which explicitly demonised commenting code - it is clear how this reinforces the INSTEAD OF misinterpretation above.&lt;/p&gt;

&lt;p&gt;A further problem is cloud certifications. We have already touched on the common misunderstanding that infrastructure is architecture. There are now many people who think a solutions architect is somebody who helps you integrate with a large cloud provider's platform, rather than integrate an application or system into your broader enterprise.&lt;/p&gt;

&lt;p&gt;Add to that Most Valuable Player and Community Builder awards/hats and this brings further focus to engineering-focused patterns and practices. If a software engineer wants to learn for free, they will likely be attending a product-focused community, which may well have developer relations or developer advocate speakers delivering the content.&lt;/p&gt;

&lt;p&gt;We have barely touched the surface, in that all of the above context leads to further knock-on factors within organisations, the jobs market, and even social media and conferences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixing the trend
&lt;/h2&gt;

&lt;p&gt;We need to get to the point where people are happy to design software, and that means to collaboratively design software, having rich conversations with stakeholders about how the software should work. The term &lt;em&gt;user story&lt;/em&gt; does not describe a work item, or even an "as a" statement. The idea originates from the user telling you what excites them, and you exploring the design together. Collaborative design.&lt;/p&gt;

&lt;p&gt;The only way to make a seismic change in our industry would be something of the same magnitude as the original agile manifesto, but there is a reluctance to redefine what is already there. Many people have already tried, and are just seen as trying to self-promote. This may well be the case!&lt;/p&gt;

&lt;p&gt;The closest thing we have to a solution is domain-driven design, which emphasises the importance of stakeholder conversations, and how that feeds through into design, code and architecture.&lt;/p&gt;

&lt;p&gt;But domain-driven design is a prickly pear, with difficult terminology, and practices that have evolved significantly over the last 21 years beyond their origins. These points came up in conversation on the fringes of &lt;a href="https://kandddinsky.de/" rel="noopener noreferrer"&gt;Kandddinsky '24&lt;/a&gt; and is a real blocker to us solving the broader software design problem in our industry.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You don't need a cutting-edge system to deliver most software requirements&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Right now, until something with more magnitude is possible, my best advice for you is to invest in quality using proven products and tools. You don't need a cutting-edge system to deliver most software requirements. Use low volatility and reliable components to avoid engineering distractions. By focusing on your design and architecture instead you will create better business processes, improve your agility, and increase your solution longevity.&lt;/p&gt;

&lt;p&gt;I have seen designed systems last 20 or more years with relatively lightweight maintenance, and they still remain evolvable. I have seen undesigned systems cancelled or declared legacy within years.&lt;/p&gt;

&lt;p&gt;Like we have had #nosql and #nouml we need #yesdesign. We are not talking about heavy-weight model-driven development. We are talking about a sensible middle position where we evolve a solution and talk to our customers. #yesdesign&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vm614czwyzr4g98wbtu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vm614czwyzr4g98wbtu.jpg" title="#yesdesign - written on a post-it!" alt="#yesdesign - written on a post-it!" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
©️ Read the Architecture Ltd.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>design</category>
      <category>architecture</category>
    </item>
    <item>
      <title>When to bring in a software architect?</title>
      <dc:creator>Steven Read</dc:creator>
      <pubDate>Sun, 13 Oct 2024 13:59:21 +0000</pubDate>
      <link>https://dev.to/ministry-of-software-design/when-to-bring-in-a-software-architect-30aj</link>
      <guid>https://dev.to/ministry-of-software-design/when-to-bring-in-a-software-architect-30aj</guid>
      <description>&lt;p&gt;Bringing in a software architect at the end of a project isn't architecture. It's archeology. 🤦&lt;/p&gt;

&lt;p&gt;That’s not saying there is no value in the process, but much more value is offered from involving an architect at the early stages. It is much more expensive changing existing decisions than making new ones.&lt;/p&gt;

&lt;p&gt;If you bring an architect into a project late on they will need to acquire context, and this will often involve learning what decisions have been made, and most importantly why. If this context isn’t something that has already been gathered and maintained then it can be a very time-consuming process. Context could come from conversations with the team, but the fog of time and staff moving on will often mean this becomes more of an archeological dig, gleaning information from chat histories, minutes, emails, git commits, source code, maybe even fin-ops reports. You will use any data sources you can lay your hands on.&lt;/p&gt;

&lt;p&gt;The contribution is still valuable - it may take you from analysis paralysis to having light at the end of a tunnel - but the overall team's journey was more arduous.&lt;/p&gt;

&lt;p&gt;Likewise, bringing in a software architect for only the start of a project is similarly challenging. At the start of a project we know the least about the problem. An architect will help you ask the right questions, and help you solve the right problems, but actually finding the right answers could take time. A bright and optimistic plan will likely need evolution or reconsideration in light of new information and learning. Will you have an architect involved in interpreting that?&lt;/p&gt;

&lt;p&gt;So when should you bring in a software architect? In effect, you want architectural thinking at all stages of your product’s lifecycle. Architectural thinking is what helps us make better decisions. Decisions can easily be taken from within a silo. Architectural thinking is breaking that silo - understanding implications outside any single development team, taking into account multiple perspectives and the things that matter to stakeholders. Architectural thinking is also structuring and quantifying that thinking.&lt;/p&gt;

&lt;p&gt;Does architectural thinking need to be from an architect? No. You can have no architect, but those perspectives and understanding of the things that matter don’t come for free, they come from breaking those silos. Can it come from a team leader? Yes, if you can balance delivery vs system quality drivers. Should it centralise decision-making? No. That’s not the point, you are looking to make the team feel more accountable for their decisions, and equipped to make better decisions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fblivhtjbefoye71tukco.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fblivhtjbefoye71tukco.jpeg" alt="An architect looks on with trowel ready for an " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>systemsthinking</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Teaching systems thinking through computer games</title>
      <dc:creator>Steven Read</dc:creator>
      <pubDate>Sun, 11 Aug 2024 18:32:31 +0000</pubDate>
      <link>https://dev.to/ministry-of-software-design/teaching-systems-thinking-through-computer-games-bnb</link>
      <guid>https://dev.to/ministry-of-software-design/teaching-systems-thinking-through-computer-games-bnb</guid>
      <description>&lt;p&gt;There have been a number of times in my life when I have found that I have learned things through doing, and then later discovered empowering vocabularies and models which further enhance and improved what I was already doing. Domain-driven design was one such area, but systems thinking recently became another.&lt;/p&gt;

&lt;p&gt;To illustrate my point we have Theme Park; a game I played in my early school years, which was overflowing in systems experiences. In the game you manage staff, set prices and salaries, build a park, stock shops, and more. Behind every computer programmer you often get a background story about computer games, so I guess I am no different.&lt;/p&gt;

&lt;p&gt;Today we will be using Theme Park to introduce a systems thinking modelling technique – the Stocks and Flows diagram. The purpose? Well besides to apply stock and flow diagrams, it was to explore an explosive phenomenon that can occur when you have a busy system, which I will refer to as the vomit loop🤮. Some actions within this system are optimisations – staff training for instance. Others such as staff strikes could place the system in a critical position. Many of those optimisations that enable operation at scale then only make the system more susceptible to failure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkzy9eewf2zrnanqu2gc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkzy9eewf2zrnanqu2gc.png" title="A view from the game theme park where the paths are covered in sick and a girl is looking nausious." alt="A vomit loop in Theme Park" width="322" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The diagram is made up of:&lt;/p&gt;

&lt;p&gt;🛁 𝗦𝘁𝗼𝗰𝗸𝘀: Where some entity is accumulated over time via inflows and outflows. This could also be considered like a water level. A bath can be described as a stock of water&lt;br&gt;&lt;br&gt;
🌊 𝗙𝗹𝗼𝘄𝘀: Where a stock is being changed over time, typically measured as a rate. Water going down the plug hole is a flow&lt;br&gt;&lt;br&gt;
🧮 𝗖𝗼𝗻𝘃𝗲𝗿𝘁𝗲𝗿𝘀: Calculated values based on other parts of the system, or boundary values entering the model. Despite stocks and flow diagramsnot including converters in the name they are an import part of the notation&lt;br&gt;&lt;br&gt;
➡️ 𝗔𝗿𝗿𝗼𝘄𝘀: Representing the effects of each instance on the others&lt;/p&gt;

&lt;p&gt;The following relationships are also illegal:&lt;/p&gt;

&lt;p&gt;🚫 Flows cannot influence other flows&lt;br&gt;&lt;br&gt;
 🚫 Stocks cannot influence other stocks&lt;br&gt; &lt;br&gt;
 🚫 Converters cannot influence stocks&lt;/p&gt;

&lt;p&gt;In my diagram I have used all of these components, and used the terms 𝘳𝘢𝘵𝘦 to label 𝗳𝗹𝗼𝘄𝘀 and 𝘴𝘵𝘰𝘤𝘬 to label 𝘀𝘁𝗼𝗰𝗸𝘀. All remaining components are 𝗰𝗼𝗻𝘃𝗲𝗿𝘁𝗲𝗿𝘀. As you can see the model is pretty large already, so for brevity, in an attempt to avoid text becoming too small, I have simplified the modelling of litter and toilet stocks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffci0nnefb7a1jb18hov2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffci0nnefb7a1jb18hov2.png" title="A stocks and flows diagram of theme park, where the model shows a balance that develops between cleaning capacity and consumption capacity, where a disruption to the cleaning capacity can have disasterous effects on the park." alt="The stocks and flows diagram allows us to investigate changes within the system" width="792" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If all of your cleaning staff go on strike, you are quickly left with no option but to close the park, or suffer significant reputational damage. Are there other solutions? Yes! Multiple cleaning contracts, or having sickbags at the exits to exciting rides and bins around the park. This is where your stocks and flows diagram comes in. You can use the diagram to explore how new measures would affect the system. The diagram isn’t to document a system, it is to explore changes to the system.&lt;/p&gt;

</description>
      <category>games</category>
      <category>systemsthinking</category>
      <category>models</category>
    </item>
    <item>
      <title>Hands-on software architecture</title>
      <dc:creator>Steven Read</dc:creator>
      <pubDate>Tue, 26 Mar 2024 23:14:36 +0000</pubDate>
      <link>https://dev.to/ministry-of-software-design/hands-on-software-architecture-3oob</link>
      <guid>https://dev.to/ministry-of-software-design/hands-on-software-architecture-3oob</guid>
      <description>&lt;p&gt;Many times I've heard it said that software architects should be hands-on - they shouldn't be in an ivory tower. They should still be coding, one foot in the game. There is so much to unwrap from this!&lt;/p&gt;

&lt;h2&gt;
  
  
  Hands-on
&lt;/h2&gt;

&lt;p&gt;First of all, yes, architects should be hands-on. To me this means engaged, reactive to and even in front of the challenges that the business is confronted with. They should also be helping the business evade those challenges. Not asking much, eh? 🤔&lt;/p&gt;

&lt;p&gt;Hands-on is often referred to as being a synonym for coding. This couldn't be further from the truth, as actually when you have a multi-disciplinary team, or are working across different levels of abstraction, the scope is much broader. If you use the term engaged instead, you are considering who the architect is working with, rather than what they are doing. The broader the scope, the better your awareness of context, and the better the influence of everybody in the organisation and product decision-making processes.&lt;/p&gt;

&lt;p&gt;Examples of strong engagement include:&lt;br&gt;
 🔍 Finding problems in the captured requirements&lt;br&gt;
 🧪 Uncovering test strategy limitations or challenges&lt;br&gt;
 🚨 Reviewing and assessing operational tickets&lt;br&gt;
 🏗️ Understanding team CICD pipeline workflows&lt;br&gt;
 🚩 Pioneering and educating around the team's use of platforms&lt;/p&gt;

&lt;p&gt;Examples of engagement vary up and down the architectural stack, as the artefacts, business processes and stakeholders will change, but the same principles of linking people, perspectives, and most importantly experiences remains.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ivory Towers
&lt;/h2&gt;

&lt;p&gt;Let's now address the aspect of ivory tower architecture. To me this brings about imagery of an architect in a rapunzel-like tower, absorbed in their ideas for what could be eternity. It also suggests altitude, suggesting that there is a long distance and barriers to accessibility for those around them in the business - the architect's ideas are never tested, and do not fit with a broader business strategy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3jorxnfc87g1hy6mo1jz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3jorxnfc87g1hy6mo1jz.jpg" alt="A software architect coding from an armchair, sat overlooking a window in an ivory tower" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Does being a coding architect resolve these problems? Not at all, if the architect were to stay within their bubble! Furthermore, if the architect spends too much time coding, rather than providing and understanding perspectives, then the development teams and business are without an advocate. Experiences and perspectives remain unshared; they will code quite happily from their ivory tower uninterrupted.&lt;/p&gt;

&lt;p&gt;The analogy I would use instead is to have your architects visiting and involved at the construction site, not laying bricks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Caveat
&lt;/h2&gt;

&lt;p&gt;It's worth saying I do code, work on IaC, data, pipelines, etc as an architect, and the amount of insight you gain from an hour or two in new contexts is remarkable, but that degree of insight gained is exactly the same from the same time spent across all of the other activities I outlined previously.&lt;/p&gt;

&lt;p&gt;Coding isn't the cure - it is one of many sources of vitamin D.&lt;/p&gt;

&lt;p&gt;©️ Read the Architecture Ltd.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>personaldevelopment</category>
    </item>
    <item>
      <title>Using large language models in software architecture</title>
      <dc:creator>Steven Read</dc:creator>
      <pubDate>Mon, 18 Mar 2024 21:59:21 +0000</pubDate>
      <link>https://dev.to/ministry-of-software-design/using-large-language-models-in-software-architecture-45ck</link>
      <guid>https://dev.to/ministry-of-software-design/using-large-language-models-in-software-architecture-45ck</guid>
      <description>&lt;p&gt;It's been maybe 6 months since I started using corporate-approved large-language models, and I thought it would be worth writing a summary of how it has affected my work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The good:
&lt;/h2&gt;

&lt;p&gt;👍 LLMs have enabled me to change how I approach some low-level software analysis tasks. I have been able to reduce the keyboard and mouse overhead of extracting requirements from existing systems, eg from SQL statements or DAOs, by using one-shot prompting. A high quality review and refactor is faster than doing the whole thing from scratch&lt;br&gt;
👍 Creating API-level examples such as SQL statements or CSS layouts has worked well&lt;br&gt;
👍 Image generation makes it easier to create compelling analogies for stakeholders&lt;/p&gt;

&lt;h2&gt;
  
  
  The bad:
&lt;/h2&gt;

&lt;p&gt;👎  LLMs suffer from the same common misunderstandings or limitations as the general internet - for example, recommending performance when actually the situation requires responsiveness, and not knowing when high availability or fault tolerance are required, etc&lt;br&gt;
👎 Sources/references matter. They are a non-negotiable when you are working on important decisions and enterprise strategy&lt;br&gt;
👎 The more complex your context the less helpful the AI becomes. It's fine for throwing together some quick proof of concept but right now it won't help you uncover years of unintended complexity in poorly documented architectures.&lt;br&gt;
👎 The last place I want to see the scaffolding of an application coming from is an LLM. Reference architectures provide much more value to your landscape&lt;br&gt;
👎 Nascent concepts aren't well supported (expected, but given API-level aspects seem a strongpoint this is important if you think it will help you learn a NEW language - as opposed to a NEW-TO-YOU language!)&lt;/p&gt;

&lt;h2&gt;
  
  
  The ugly:
&lt;/h2&gt;

&lt;p&gt;👺 Architecture is as much about why you're doing something as it is about what to do. LLMs score very badly at this&lt;br&gt;
👺 The amount of low-quality material on the internet is increasing due to AI, meaning we are all having to resort to using heuristics to find good quality reference materials &lt;br&gt;
👺 The internet and communities are at risk when corporations offering AI services hide the collaborative environments that have created the state of the art in our industry. Scraping laws and terms of use are presently inadequate for balancing the trade offs. We will see more paywalls, such as medium and substack, if these trends continue&lt;/p&gt;

&lt;p&gt;What observations do you have from applying LLMs in your workplace?&lt;/p&gt;

&lt;p&gt;©️ Read the Architecture Ltd.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>ai</category>
      <category>llm</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Modern Approaches to Enterprise Architecture</title>
      <dc:creator>Steven Read</dc:creator>
      <pubDate>Mon, 11 Mar 2024 22:30:00 +0000</pubDate>
      <link>https://dev.to/ministry-of-software-design/modern-approaches-to-enterprise-architecture-326l</link>
      <guid>https://dev.to/ministry-of-software-design/modern-approaches-to-enterprise-architecture-326l</guid>
      <description>&lt;p&gt;Enterprise architects need to use a broad variety of techniques and perspectives, delivering a varied set of artefacts and collaborating with other parts of the organisation to provide insights which cannot be attained alone. Many activities crucially important to modern enterprise architecture are not labelled as such. Some practitioners of the new techniques don't want to be "tainted" with the EA label, and identify as other roles. Meanwhile, traditional architecture frameworks want to control and own their ecosystems. This shouldn't put off enterprise architects, or anyone working at enterprise level identifying as a similar role, from using a broader toolset.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felt23dbw2tfk81zgwn64.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felt23dbw2tfk81zgwn64.jpg" title="A man wearing a flannel shirt in a forest chopping logs with an axe." alt="What has happened to enterprise architecture?" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In recent years enterprise architecture has become a term that has fallen out of fashion. The enterprise architect job title has become inherently linked with heavyweight analysis by a small number of individuals. What many people perceive as enterprise architecture has stayed relatively static over the last 25 years - the rest of the IT industry has been transformed in that time, not only in technology but in ways of working. To most, an enterprise architect is somebody who practices &lt;a href="https://en.wikipedia.org/wiki/The_Open_Group_Architecture_Framework" rel="noopener noreferrer"&gt;TOGAF&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A similar thing has happened in other professions too. What do you picture when thinking of a lumberjack? A search of the internet for pictures of a lumberjack comes back with romanticised images of bearded men in checkered flannel shirts, holding axes. Do modern lumberjacks use axes? Chainsaws, harvesters, and feller bunchers are used for most work now. Do modern lumberjacks wear flannel shirts? To be honest I don't know, I only see romantic illustrations of them. They probably wear hard hats and high vis jackets!&lt;/p&gt;

&lt;h2&gt;
  
  
  Organisation
&lt;/h2&gt;

&lt;p&gt;Let's start with looking at how enterprise architecture fits into an organisation. The terminology has evolved since the early days of enterprise architecture - other terms have also become established. Solutions architect (or sometimes solution architect) is used for "solution-level" design; outlines of systems aligned with the interests of the business, regularly interacting with other systems. There are also technical architects, who focus on supporting implementation and delivery of those solutions. People still use the term software architect as well, but a software architect could be doing either technical or solutions architect roles - it could even be a mixture of both, depending on where projects are within their lifecycle. There are also plenty of software architects who practice enterprise architecture, some of whom even refer to themselves as developers.&lt;/p&gt;

&lt;p&gt;In a simple world, the enterprise architect works with the above architects by identifying and prioritising the problems within the enterprise that require solutions. We aren't in a simple world though, and thus the scope of the role is much broader. We will come back to this later. The below diagram illustrates the model, but doesn't imply a team or organisational structure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe0eu09sy0fz1q2w1n0zf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe0eu09sy0fz1q2w1n0zf.png" title="Enterprise architecture in a simplistic example, where two solutions are part of an enterprise, with each solution having technical and solutions architects working against it, and enterprise architects working against the landscape/enterpise." alt="A simplistic visualisation of the popular architecture boundaries" width="800" height="695"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A recent trend for technical leadership titles is the staff+ path, which are technical leadership roles from staff engineer and above. These are influential roles, but not associated with traditional enterprise architecture outputs. Despite it being described by many as "the technical leadership track", architecture too is a technical leadership track. &lt;a href="https://staffeng.com/guides/staff-archetypes/" rel="noopener noreferrer"&gt;Will Larson&lt;/a&gt; suggests that &lt;em&gt;architect&lt;/em&gt; is a specialised staff+ role, but this doesn't acknowledge that the experience of an individual supports the different roles. You can't parachute a &lt;em&gt;Right Hand&lt;/em&gt; into an &lt;em&gt;Architect&lt;/em&gt; role. You can assume those behaviours in the way that teams assume &lt;a href="https://teamtopologies.com/key-concepts" rel="noopener noreferrer"&gt;interaction modes&lt;/a&gt; in Team Topologies, but the experiences needed to support the roles are different. &lt;/p&gt;

&lt;p&gt;Getting enterprise architecture out of its rut requires architects to work closely with other staff+ roles. It doesn't replace the need for enterprise architecture but makes the architects more accountable and broadens the opportunities for collaboration. staff+ engineers will carry different perspectives, and this is the power that needs to be harnessed.&lt;/p&gt;

&lt;h2&gt;
  
  
  An alternative to defining enterprise architecture
&lt;/h2&gt;

&lt;p&gt;We have noticed that defining enterprise architecture is a controversial subject, causing heated disagreement or vehement denial of their role among practitioners.  Forrester has seen this too and has &lt;a href="https://www.youtube.com/watch?v=6_jwcXhP-nA" rel="noopener noreferrer"&gt;identified an alternative approach&lt;/a&gt;, by analysing how enterprise architects deliver value. That analysis identified that enterprise architects can deliver value along a strategic and project value axis (X), and a business and technical value axis (Y). I'll refer to project as delivery, as that's the underly priority. Over time the work shifts around the different quadrants, depending upon the needs and priorities of the enterprise. Some examples have been included for illustration in the diagram below, but even the same activity is likely to differ in its position depending upon its context and lifecycle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11d9z5ubcjyae4fxb379.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11d9z5ubcjyae4fxb379.png" title="A graph with a horizontal axis with each end labelled stratey and delivery, and a vertical axis disecting it labelled business and technology" alt="Enterprise architecture value quadrants, an evolution on those presented by Gordon Barnett at Forrester." width="800" height="677"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have identified that different types of value address different needs and priorities. Delivering different types of value requires different capabilities and skills from the enterprise architects, interacting with different parts of the enterprise. So now is the right time to ask, in a sea of differences, should the enterprise architect follow the same approach across the board? &lt;/p&gt;

&lt;p&gt;Of course not, and this is the problem. We need to loosen up, and stop treating enterprise architecture like it's a rigid discipline, with framework gatekeepers constraining how people work. There are too many solutions that promise to unify the approach, and they have claimed enterprise architecture as their own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using the correct tool for the job
&lt;/h2&gt;

&lt;p&gt;Given the broad variety of problems that an enterprise architect could be called upon to solve, they need to use the most effective tool to get the job done. This is where we need to bring together a variety of perspectives and techniques. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose your tools based upon your context. A painter doesn't use a paintbrush for the whole of a wall - but they would for cutting in around edges. When they do use a brush they will chose a type and size to match their activity. They will even use two or more tools simultaneously - masking tape, brushes, benches, extensions, or even thinners. Good architects should be equally as flexible.&lt;/li&gt;
&lt;li&gt;Would you expect to be able to keep all of your tools in a single toolbox? Enterprise architecture frameworks have a vested interested in providing you with certifications and new releases. They want you to use techniques that are within their ecosystem. You're better off if you don't constrain your toolbox. Not all methods that are useful in enterprise architecture are labelled as enterprise architecture techniques - you can use tools in lots of different contexts.&lt;/li&gt;
&lt;li&gt;If you can't see where to hammer, what do you do? You will often benefit from using multiple perspectives. It is widely acknowledged that you cannot model a whole enterprise, they evolve too quickly and are very complex. It is more important that you look at aspects of your enterprise from different perspectives instead, as this will reveal information which would otherwise have been hidden.&lt;/li&gt;
&lt;li&gt;If you look on your problem from a different perspective, you may find that actually you will find root cause solutions, rather than applying whack-a-mole patches.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are plenty of techniques that are being used across IT landscapes which are not labelled as enterprise architecture activities. To illustrate, we have drawn up the below table that provides examples. The table is far from exhaustive, and the values are draft, but you can hopefully see that you get radically different perspectives, very quickly, from embracing modern patterns. Some of the approaches were originally identified by Mark Richards - see Lessons &lt;a href="https://www.developertoarchitect.com/lessons/lesson50.html" rel="noopener noreferrer"&gt;50&lt;/a&gt;, &lt;a href="https://www.developertoarchitect.com/lessons/lesson51.html" rel="noopener noreferrer"&gt;51&lt;/a&gt; and &lt;a href="https://www.developertoarchitect.com/lessons/lesson52.html" rel="noopener noreferrer"&gt;52&lt;/a&gt; of Software Architecture Mondays. Model-driven and initiative-driven are also approaches recorded by Mark. &lt;/p&gt;

&lt;p&gt;Each approach has been provided with quality attributes to demonstrate some of the ways that an an enterprise architect may choose between approaches. Definitions of those listed are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Velocity&lt;/em&gt;&lt;/strong&gt; Speed at which an initiative can provide value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Effectiveness&lt;/em&gt;&lt;/strong&gt; Whether the initiative results in the desired business outcome.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Accuracy&lt;/em&gt;&lt;/strong&gt; How accurately the approach represents its intended outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Accessibility&lt;/em&gt;&lt;/strong&gt; Size of the audience, and whether the audience would understand the artefacts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is worth keeping in mind that as in all parts of architecture across IT, "it depends". The approaches could be combined - Inventorying implemented as part of a platform engineering effort would be using a continuous approach, and so characteristics would generally align with the continuous approach, but would require the high level of systems maturity to enable it.&lt;/p&gt;

&lt;p&gt;You may need to scroll horizontally to see all of the columns in the table.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Perspective&lt;/th&gt;
&lt;th&gt;Style&lt;/th&gt;
&lt;th&gt;Velocity&lt;/th&gt;
&lt;th&gt;Effectiveness&lt;/th&gt;
&lt;th&gt;Accuracy&lt;/th&gt;
&lt;th&gt;Accessibility&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Model-driven&lt;/td&gt;
&lt;td&gt;Zachman, SABSA&lt;/td&gt;
&lt;td&gt;Top-down&lt;/td&gt;
&lt;td&gt;Analytical&lt;/td&gt;
&lt;td&gt;⭐&lt;/td&gt;
&lt;td&gt;⭐&lt;/td&gt;
&lt;td&gt;⭐&lt;/td&gt;
&lt;td&gt;⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Initiative-driven&lt;/td&gt;
&lt;td&gt;TOGAF&lt;/td&gt;
&lt;td&gt;Mixed&lt;/td&gt;
&lt;td&gt;Analytical&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;td&gt;⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inventorying&lt;/td&gt;
&lt;td&gt;Populating registers to improve landscape visibility&lt;/td&gt;
&lt;td&gt;Bottom up&lt;/td&gt;
&lt;td&gt;Analytical&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Iterative&lt;/td&gt;
&lt;td&gt;Small incremental transformations&lt;/td&gt;
&lt;td&gt;Technology&lt;/td&gt;
&lt;td&gt;Hypothetical&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Value-driven&lt;/td&gt;
&lt;td&gt;Prioritised based on outcomes&lt;/td&gt;
&lt;td&gt;Business&lt;/td&gt;
&lt;td&gt;Analytical&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adaptive&lt;/td&gt;
&lt;td&gt;Expects change. Typically event-driven&lt;/td&gt;
&lt;td&gt;Mixed&lt;/td&gt;
&lt;td&gt;Operational&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Continuous&lt;/td&gt;
&lt;td&gt;Automated, self-scaling, self-healing, dashboards&lt;/td&gt;
&lt;td&gt;Platforms&lt;/td&gt;
&lt;td&gt;Operational&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Collaborative&lt;/td&gt;
&lt;td&gt;Big Picture EventStorming, workshops&lt;/td&gt;
&lt;td&gt;Bottom up&lt;/td&gt;
&lt;td&gt;Interactive&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Socio-Technical&lt;/td&gt;
&lt;td&gt;Team Topologies, stream-aligned teams, Conway's law&lt;/td&gt;
&lt;td&gt;Mixed&lt;/td&gt;
&lt;td&gt;Interactive&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Value chain&lt;/td&gt;
&lt;td&gt;Wardley Mapping&lt;/td&gt;
&lt;td&gt;Mixed&lt;/td&gt;
&lt;td&gt;Interactive&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;To summarise, there are lots of excellent approaches available, which within their own narrow niches have very positive characteristics. Interactive and Operational approaches give better informed decisions, and change how enterprise architecture is defined. Analytical approaches are also still useful, but are typically applied in very focused contexts. All approaches have their trade-offs, and those trade-offs will vary by context.&lt;/p&gt;

&lt;p&gt;What are your experiences of these techniques, and what other approaches would you consider? If you would like to discuss any of the concepts we have written about get in touch.&lt;/p&gt;

</description>
      <category>enterprisearchitecture</category>
      <category>architecture</category>
      <category>sociotechnicalsystems</category>
    </item>
  </channel>
</rss>
