<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Agile on Software Engineering Thoughts</title><link>https://software.skipoles.co.uk/tags/agile/</link><description>Recent content in Agile on Software Engineering Thoughts</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 08 Sep 2023 13:44:19 +0100</lastBuildDate><atom:link href="https://software.skipoles.co.uk/tags/agile/index.xml" rel="self" type="application/rss+xml"/><item><title>The Confusion Between Scrum and Agile</title><link>https://software.skipoles.co.uk/posts/confusion-between-scrum-and-agile/</link><pubDate>Fri, 08 Sep 2023 13:44:19 +0100</pubDate><guid>https://software.skipoles.co.uk/posts/confusion-between-scrum-and-agile/</guid><description>&lt;p&gt;More and more I am reading about, and experiencing, organisations who have adopted &amp;ldquo;Scrum&amp;rdquo; as their
process, but are complaining that they aren&amp;rsquo;t achieving any of the benefits that they expected from
&amp;ldquo;going agile&amp;rdquo;. This often manifests itself in broad claims that agile is a failure as a methodology.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve come to believe that there is a fundamental misunderstanding around what agile actually is,
how it is supposed to help, and in particular how it relates to Scrum. In this post I want to try
to address this confusion.&lt;/p&gt;</description></item><item><title>Continuous Collaboration</title><link>https://software.skipoles.co.uk/posts/continuous-collaboration/</link><pubDate>Wed, 26 Jul 2023 09:22:10 +0100</pubDate><guid>https://software.skipoles.co.uk/posts/continuous-collaboration/</guid><description>&lt;p&gt;The age of teams collaborating by huddling around a whiteboard in a meeting room inside some corporate
office is dead. The future of teams is &lt;strong&gt;continuous collaboration&lt;/strong&gt;. In this post I will explore what
this is, how it works, and why meeting rooms and whiteboards should be consigned to the scrapheap of
failed team collaboration approaches.&lt;/p&gt;
&lt;p&gt;(Note: this is not to say that there isn&amp;rsquo;t sometimes value in meeting rooms and whiteboards for knowledge
dissemination and other group activities, just not collaboration.)&lt;/p&gt;</description></item><item><title>Incremental Architecture</title><link>https://software.skipoles.co.uk/posts/incremental-architecture/</link><pubDate>Sun, 29 Jan 2023 19:47:54 +0000</pubDate><guid>https://software.skipoles.co.uk/posts/incremental-architecture/</guid><description>&lt;p&gt;I have been having some interesting discussions with colleagues around evolving architecture and adding new
requirements in an agile environment. The discussion raised some interesting points that I felt worthy
of a blog post exploration.&lt;/p&gt;
&lt;h2 id="background"&gt;Background&lt;a class="anchorjs-link" href="#background"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Imagine a simple system comprised of two main components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Component A&lt;/strong&gt; is the main component containing the key business logic. In order for it to
do its job it needs to interact with component X. Mostly it needs to retrieve activity status
from X, but it can also initiate a new activity from time to time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Component X&lt;/strong&gt; is a legacy system outside of our control. It has a number of peculiarities
that make it challenging to integrate with. These include:
&lt;ul&gt;
&lt;li&gt;Legacy format API payloads that aren&amp;rsquo;t mapped to a domain model&lt;/li&gt;
&lt;li&gt;Payloads that might not always be backwards compatible&lt;/li&gt;
&lt;li&gt;Release cadences that aren&amp;rsquo;t related to those of component A&lt;/li&gt;
&lt;li&gt;Periods of scheduled non-availability where some requests cannot be accepted and must be retried later&lt;/li&gt;
&lt;li&gt;Performance constraints requiring some throttling of requests&lt;/li&gt;
&lt;li&gt;High latency on some operations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Given the challenges of interfacing with component X, the team building the integration made a
sensible decision and decided
to keep all the complexity outside of the main component. Instead they added a new microservice,
&lt;strong&gt;Component B&lt;/strong&gt;. This component implements an adapter and anti-corruption layer that
deals with, and abstracts away, all the eccentricities of X.&lt;/p&gt;</description></item></channel></rss>