<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Agile Congruence</title>
    <link>https://agilecongruence.com/posts/</link>
    <description>Recent content in Posts on Agile Congruence</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 23 Apr 2025 14:04:34 +0000</lastBuildDate>
    <atom:link href="https://agilecongruence.com/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Introduction to Agile Congruence</title>
      <link>https://agilecongruence.com/posts/introduction-to-agile-congruence/</link>
      <pubDate>Thu, 03 Apr 2025 13:30:54 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/introduction-to-agile-congruence/</guid>
      <description>&lt;p&gt;One of my responsibilities at my former employer was to give an introductory talk about the Technology Team and our SAAS platform to new hires. This is always an interesting experience because of the diverse range of backgrounds in the audience. Accountants, Financial Analysts, Developers, and new graduates among others will all have very different levels of understanding of modern software development processes. After one such Intro to the Technology Team talk a newly hired Product Owner came up to me and said, “That was interesting, I’ve never heard anyone describe Agile Software Development as an Organizational Change process before”. That comment really made me think. Could my conceptual model of the process of building enterprise software help other organizations?&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Brief History of Agile Software Development</title>
      <link>https://agilecongruence.com/posts/a-brief-history-of-agile-software-development/</link>
      <pubDate>Thu, 03 Apr 2025 13:32:34 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/a-brief-history-of-agile-software-development/</guid>
      <description>&lt;p&gt;In the 20th century organizations viewed software development investments as projects. They would plan the project, document the requirements, implement the software, test the software, then release the software. While this process made sense on the surface, a lot of the software that it produced failed miserably after it was released. Processes that follow this development model are now labeled Waterfall.&lt;/p&gt;
&lt;p&gt;In the early 21st century there was a great shift in enterprise software development. In February 2001 a group of 17 leading software engineering experts met at a ski lodge in Utah to discuss the state of software development. What emerged from that meeting is called the Agile Manifesto.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Nadler-Tushman Congruence Model</title>
      <link>https://agilecongruence.com/posts/the-nadler-tushman-congruence-model/</link>
      <pubDate>Thu, 03 Apr 2025 13:34:02 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/the-nadler-tushman-congruence-model/</guid>
      <description>&lt;p&gt;The Nadler-Tushman Congruence Model, shown below, was introduced in 1980 in &lt;a href=&#34;https://agilecongruence.com/nadler-tushman-congruence.pdf&#34;&gt;an article in the journal Organizational Dynamics&lt;/a&gt;. This model has gained great popularity in the Organizational Behavior community and is commonly taught in graduate Business Administration programs.&lt;/p&gt;
&lt;p&gt;The model begins with a set of inputs. These inputs are thought of as outside of the control of the manager of the organization under analysis. The manager is given a strategy. Even if they were part of the development of that strategy, it should be given before the change process. They also have a fixed set of resources and are working in some known environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Releasing Software as an Organizational Change Process</title>
      <link>https://agilecongruence.com/posts/releasing-software-as-an-organizational-change-process/</link>
      <pubDate>Thu, 03 Apr 2025 13:54:01 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/releasing-software-as-an-organizational-change-process/</guid>
      <description>&lt;p&gt;The key hypothesis of Agile Congruence is the relationship between releasing software and the Nadler-Tushman model.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Enterprise software is the automation of an organization&amp;rsquo;s formal processes. Each time an organization releases software, it changes the “work” component of the organization in the Nadler-Tushman model. With each software release the people, culture, and org structure components must then be evaluated and possibly updated to keep congruence in the organization.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This means that the working software output of &lt;a href=&#34;https://agilecongruence.com/posts/a-brief-history-of-agile-software-development/&#34;&gt;the agile software development model&lt;/a&gt; is a change in the work component of &lt;a href=&#34;https://agilecongruence.com/posts/the-nadler-tushman-congruence-model/&#34;&gt;The Nadler-Tushman model&lt;/a&gt;. Under an Agile software development methodology, these changes are made frequently. At the company where I spent the majority of my career we released software every two weeks. In order to maintain congruence every two weeks we needed to evaluate the impact of the released software on the people, culture, and organizational structure components of our business. While this seems daunting it results in a series of small incremental changes and it is far easier to implement than the alternative of making large organizational changes every six months to a year.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Agile Congruence Framework Overview</title>
      <link>https://agilecongruence.com/posts/the-agile-congruence-framework-overview/</link>
      <pubDate>Fri, 04 Apr 2025 17:13:15 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/the-agile-congruence-framework-overview/</guid>
      <description>&lt;p&gt;In their paper &lt;em&gt;A model for diagnosing organizational behavior&lt;/em&gt;, Nadler and Tushman define a process for implementing their change model. In that spirit, Figure 3 shows an overview of the process for using Agile Congruence to implement a software driven organizational change process.&lt;/p&gt;
&lt;p&gt;While I use these steps when implementing technology changes, I don’t go through a formal documentation process. This process can be accomplished with a whiteboard or two, an Excel spreadsheet, a PowerPoint, or whatever tools you use to best organize your thoughts. Many organizations use tools like Jira or Gitlab Issues to manage their backlogs, but other tools like Post-It notes or Excel spreadsheets work fine as well. I would be very sad if I saw an organization produce a binder of documentation formally documenting this process.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Agile Congruence Framework Part 1</title>
      <link>https://agilecongruence.com/posts/the-agile-congruence-framework-part-1/</link>
      <pubDate>Fri, 04 Apr 2025 17:13:29 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/the-agile-congruence-framework-part-1/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;The Agile Congruence framework&#34; loading=&#34;lazy&#34; src=&#34;https://agilecongruence.com/images/agile-congruence-framework.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;1-identify-symptoms&#34;&gt;1. Identify Symptoms&lt;/h2&gt;
&lt;p&gt;There is some reason that your organization wants to change and make an investment in technology. In the past when I have assumed that all stakeholders were on the same page with the problem that we were solving I was usually wrong. Taking the time to identify and understand the symptoms and ensure that there is agreement among stakeholders on the problem statement is a key first step to scoping your change process.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Agile Congruence Framework Part 2</title>
      <link>https://agilecongruence.com/posts/the-agile-congruence-framework-part-2/</link>
      <pubDate>Fri, 04 Apr 2025 17:13:41 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/the-agile-congruence-framework-part-2/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;The Agile Congruence framework&#34; loading=&#34;lazy&#34; src=&#34;https://agilecongruence.com/images/agile-congruence-framework.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;4-analyze-gaps-and-build-your-backlog&#34;&gt;4. Analyze Gaps and Build your Backlog&lt;/h2&gt;
&lt;p&gt;In the process laid out by Nadler and Tushman this phase was labeled &lt;em&gt;Identify Problems&lt;/em&gt;. In the world of agile software development these problems are captured using tools like User Stories. Modern UX techniques can also be used to help with this Analysis. At Chatham, when facing some complex organizational changes, we use the concept of a Design Sprint to guide users through a problem identification process and capture the gaps in the current organization. Each organization typically has a different process for accomplishing this and there is a wealth of information in the software world on various processes that your organization could implement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Agile Congruence Framework Part 3</title>
      <link>https://agilecongruence.com/posts/the-agile-congruence-framework-part-3/</link>
      <pubDate>Fri, 04 Apr 2025 17:13:51 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/the-agile-congruence-framework-part-3/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;The Agile Congruence framework&#34; loading=&#34;lazy&#34; src=&#34;https://agilecongruence.com/images/agile-congruence-framework.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;8-decide-to-continue-or-re-evaluate&#34;&gt;8. Decide to Continue or Re-Evaluate&lt;/h2&gt;
&lt;p&gt;At this point on any iteration you may find that there are no changes that can be made where the value of the change justifies the cost. There are times early in the process where we have found that we should delay development and wait for other organizational changes to complete before we make the investment in software, and other times late in the process where we have a set of nice to have features that are expensive to implement and provide lower value. In either case, at this point you should delay or cancel further development on this project, as more software will not deliver more business value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bad Software or Bad Organizations</title>
      <link>https://agilecongruence.com/posts/bad-software-or-bad-organizations/</link>
      <pubDate>Fri, 04 Apr 2025 17:14:00 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/bad-software-or-bad-organizations/</guid>
      <description>&lt;p&gt;There are many definitions of bad software. &lt;em&gt;Clean Code&lt;/em&gt;’s metric of WTF’s per minute, test coverage, cyclomatic complexity, and a million other measures can be put in place to measure good vs. bad software. Through the lens of Agile Congruence I want to offer yet another definition of bad software.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bad software is software that changes slower than your organization.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In an organizational change process, you will encounter a lot of resistance to change. Organizational structure changes require buy in from many stakeholders. Culture changes require discipline of your team. People changes require a willingness to learn new skills. If your biggest impediment to changing your organization is that your software team says that the delivery of the required features is too difficult, you have bad software. All development organizations have technical debt. This debt needs to be managed and invested in to allow your organization to have the speed and flexibility to change.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Conway’s Law and Agile Congruence</title>
      <link>https://agilecongruence.com/posts/conways-law-and-agile-congruence/</link>
      <pubDate>Mon, 07 Apr 2025 18:40:27 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/conways-law-and-agile-congruence/</guid>
      <description>&lt;p&gt;In a recent discussion with a fellow Software Engineer about Agile Congruence, he stated that the model did not consider software architecture. More directly he said, “I can be effective at agile software development and delivering in small batches of changes but if my architecture sucks it still might not let me be agile enough.”&lt;/p&gt;
&lt;p&gt;While I definitely agree with this statement, it got me thinking about how Agile Congruence and Software Architecture are related. Ultimately I realized that this comes down to one of the most famous principles in enterprise software architecture, Conway’s Law.&lt;/p&gt;</description>
    </item>
    <item>
      <title>This might kill your vibe, but I’m not worried about AI replacing Software Engineers</title>
      <link>https://agilecongruence.com/posts/this-might-kill-your-vibe/</link>
      <pubDate>Wed, 23 Apr 2025 14:04:34 +0000</pubDate>
      <guid>https://agilecongruence.com/posts/this-might-kill-your-vibe/</guid>
      <description>&lt;p&gt;I started learning to code in the late 1990’s using gcc, make, and emacs.&lt;/p&gt;
&lt;p&gt;The 2000’s were a huge pivot point in Software Engineering. Three major changes which were very related came together to fundamentally change how software saw built. First, modern IDE’s changed how coding was done. Second, high level languages like Java, C#, and Python became more usable. Third, agile fundamentally changed the way that engineers worked with businesses.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
