<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tomas Malmsten.com</title><link>https://tomasmalmsten.com/</link><description>Recent content on Tomas Malmsten.com</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Mon, 16 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tomasmalmsten.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Visualising informal influence</title><link>https://tomasmalmsten.com/blog/influence-visualisation/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/influence-visualisation/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="visualising-informal-influence" --&gt;
&lt;h1&gt;Visualising informal influence&lt;/h1&gt;
&lt;p&gt;Where we look at how we can uncover undisclosed power lines and influence
structures in our projects and workplaces to aid our software design.&lt;/p&gt;
&lt;p&gt;Many have written and talked about how social structures in organisations
influences the software we create. From Conway&amp;rsquo;s Law&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; to Domain Driven Design&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;,
and Diana Montalion&amp;rsquo;s book Learning Systems Thinking&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;. But I have so far not seen
anyone write about how we can discover the implicit relationships we have that
also play a role in design.&lt;/p&gt;</description></item><item><title>Giving your unit tests the trust they deserve</title><link>https://tomasmalmsten.com/blog/trusting-unit-tests-fully/</link><pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/trusting-unit-tests-fully/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="giving-your-unit-tests-the-trust-they-deserve" --&gt;
&lt;h1&gt;Giving your unit tests the trust they deserve&lt;/h1&gt;
&lt;p&gt;Where we learn more about the value of unit tests, and about collaborating closely to better understand the complexities in our software.&lt;/p&gt;</description></item><item><title>Defining the unit in Unit Tests</title><link>https://tomasmalmsten.com/blog/definition-of-unit-test/</link><pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/definition-of-unit-test/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="defining-the-unit-in-unit-tests" --&gt;
&lt;h1&gt;Defining the unit in Unit Tests&lt;/h1&gt;
&lt;p&gt;Where we consider what a unit is when we talk about unit tests, with some help from Michael Feathers.&lt;/p&gt;</description></item><item><title>Collaborating on requirements with example mapping</title><link>https://tomasmalmsten.com/blog/2025-12-02-discover-specs-with-team/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2025-12-02-discover-specs-with-team/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="collaborating-on-requirements-with-example-mapping" --&gt;
&lt;h1&gt;Collaborating on requirements with example mapping&lt;/h1&gt;
&lt;p&gt;Where we follow a team who make some fundamental discoveries in a short time using Example Mapping.&lt;/p&gt;</description></item><item><title>Example Mapping HowTo</title><link>https://tomasmalmsten.com/blog/2025-11-06-how-to-example-mapping/</link><pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2025-11-06-how-to-example-mapping/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="example-mapping-howto" --&gt;
&lt;h1&gt;Example Mapping HowTo&lt;/h1&gt;
&lt;p&gt;Where we look at the mechanics of Example Mapping.&lt;/p&gt;</description></item><item><title>How Continuous Delivery raises the bar on compliance</title><link>https://tomasmalmsten.com/blog/2025-10-29-raise-the-bar-of-compliance-with-cd/</link><pubDate>Wed, 29 Oct 2025 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2025-10-29-raise-the-bar-of-compliance-with-cd/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="how-continuous-delivery-raises-the-bar-on-compliance" --&gt;
&lt;h1&gt;How Continuous Delivery raises the bar on compliance&lt;/h1&gt;
&lt;p&gt;Where we understand how Continuous Delivery allows us to continuously release fully compliant high quality software that stand up to regulatory scrutiny. By building quality in and automating all manual processes.&lt;/p&gt;</description></item><item><title>Untangling test setup</title><link>https://tomasmalmsten.com/blog/2024-08-21-untangle-test-setup/</link><pubDate>Wed, 21 Aug 2024 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2024-08-21-untangle-test-setup/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="untangling-test-setup" --&gt;
&lt;h1&gt;Untangling test setup&lt;/h1&gt;
&lt;p&gt;Where we learn about some patterns that will help separate test setup from tests, making tests easier to read and understand.&lt;/p&gt;</description></item><item><title>Decomposing work</title><link>https://tomasmalmsten.com/blog/2024-07-01-decomposing-work/</link><pubDate>Mon, 01 Jul 2024 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2024-07-01-decomposing-work/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="decomposing-work" --&gt;
&lt;h1&gt;Decomposing work&lt;/h1&gt;
&lt;p&gt;Where we learn some more about how to slice work into smaller pieces, perhaps so small we can deliver many a day.&lt;/p&gt;</description></item><item><title>Every day resistance to the system</title><link>https://tomasmalmsten.com/blog/2023-10-29-everyday-resistance/</link><pubDate>Sun, 29 Oct 2023 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2023-10-29-everyday-resistance/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="every-day-resistance-to-the-system" --&gt;
&lt;h1&gt;Every day resistance to the system&lt;/h1&gt;
&lt;p&gt;Where we discover that growing things is actually a form of political activism.&lt;/p&gt;</description></item><item><title>Subtraction over addition when making changes</title><link>https://tomasmalmsten.com/blog/2023-12-15-removal-not-addition/</link><pubDate>Sun, 29 Oct 2023 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2023-12-15-removal-not-addition/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="subtraction-over-addition-when-making-changes" --&gt;
&lt;h1&gt;Subtraction over addition when making changes&lt;/h1&gt;
&lt;p&gt;Where we consider the value of removing thing rather than adding things.&lt;/p&gt;</description></item><item><title>Frontend testing strategies - The GUI</title><link>https://tomasmalmsten.com/blog/2023-03-10-frontend-testing-strategies-the-gui/</link><pubDate>Fri, 10 Mar 2023 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2023-03-10-frontend-testing-strategies-the-gui/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="frontend-testing-strategies---the-gui" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Frontend testing strategies - The GUI
&lt;a href="#frontend-testing-strategies---the-gui" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we learn two patterns that will make it possible to TDD the frontend.&lt;/p&gt;</description></item><item><title>Software Design is an Exercise in Human Relationships</title><link>https://tomasmalmsten.com/blog/2023-02-06-software-design-exercise-in-human-relationships/</link><pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2023-02-06-software-design-exercise-in-human-relationships/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="software-design-is-an-exercise-in-human-relationships" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Software Design is an Exercise in Human Relationships
&lt;a href="#software-design-is-an-exercise-in-human-relationships" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we dive into the core of software design, the people.&lt;/p&gt;</description></item><item><title>A mechanic making preparatory tidying separate from feature changes</title><link>https://tomasmalmsten.com/blog/2023-01-17-a-way-to-handle-preperatory-tidy-work-from-feature-work/</link><pubDate>Tue, 17 Jan 2023 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2023-01-17-a-way-to-handle-preperatory-tidy-work-from-feature-work/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="a-mechanic-making-preparatory-tidying-separate-from-feature-changes" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;A mechanic making preparatory tidying separate from feature changes
&lt;a href="#a-mechanic-making-preparatory-tidying-separate-from-feature-changes" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we learn a way to separate structural changes from behavioural even though making it easy to change takes quite a while.&lt;/p&gt;</description></item><item><title>The importance of direction</title><link>https://tomasmalmsten.com/blog/2023-01-11-the-importance-of-direction/</link><pubDate>Wed, 11 Jan 2023 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2023-01-11-the-importance-of-direction/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="the-importance-of-direction" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;The importance of direction
&lt;a href="#the-importance-of-direction" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we look closer at the value of going towards something over moving away from something.&lt;/p&gt;</description></item><item><title>On growing software</title><link>https://tomasmalmsten.com/blog/2022-10-26-on-growing-software/</link><pubDate>Wed, 26 Oct 2022 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2022-10-26-on-growing-software/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="on-growing-software" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;On growing software
&lt;a href="#on-growing-software" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we delve into the similarities between gardening and making software.&lt;/p&gt;</description></item><item><title>Estimating or not estimating</title><link>https://tomasmalmsten.com/blog/2021-04-07-estimates-or-not/</link><pubDate>Wed, 07 Apr 2021 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2021-04-07-estimates-or-not/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="estimating-or-not-estimating" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Estimating or not estimating
&lt;a href="#estimating-or-not-estimating" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we learn that estimation on some levels are essential, on others harmful.&lt;/p&gt;</description></item><item><title>A case for Gherkin</title><link>https://tomasmalmsten.com/blog/2021-01-29-a-case-for-gherkin/</link><pubDate>Fri, 29 Jan 2021 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2021-01-29-a-case-for-gherkin/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="a-case-for-gherkin" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;A case for Gherkin
&lt;a href="#a-case-for-gherkin" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we learn a bit more about how Gherkin can help us.&lt;/p&gt;</description></item><item><title>Why doesn't Agile work</title><link>https://tomasmalmsten.com/blog/2019-12-02-why-does-not-agile-work/</link><pubDate>Mon, 02 Dec 2019 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2019-12-02-why-does-not-agile-work/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="why-doesnt-agile-work" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Why doesn&amp;rsquo;t Agile work
&lt;a href="#why-doesnt-agile-work" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we look closer at the things stopping us from doing agile as it was intended.&lt;/p&gt;</description></item><item><title>Above my pay grade</title><link>https://tomasmalmsten.com/blog/2019-11-27-above-my-paygrade/</link><pubDate>Sun, 17 Nov 2019 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/2019-11-27-above-my-paygrade/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="above-my-pay-grade" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Above my pay grade
&lt;a href="#above-my-pay-grade" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we ponder the small lies we keep telling ourselves and the impact they
have.&lt;/p&gt;</description></item><item><title>So, What is Developer Testing then?</title><link>https://tomasmalmsten.com/blog/so-what-is-developer-testing/</link><pubDate>Tue, 11 Jun 2019 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/so-what-is-developer-testing/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="so-what-is-developer-testing-then" --&gt;
&lt;h1&gt;So, What is Developer Testing then?&lt;/h1&gt;
&lt;p&gt;Where we take a closer look att testing from the developer perspective.&lt;/p&gt;</description></item><item><title>Developer testing vs. Tester testing</title><link>https://tomasmalmsten.com/blog/tests-for-developers-vs-testers/</link><pubDate>Thu, 30 May 2019 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/tests-for-developers-vs-testers/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="developer-testing-vs-tester-testing" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Developer testing vs. Tester testing
&lt;a href="#developer-testing-vs-tester-testing" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we take a closer look at what is different and not between testers and developers thinking about testing.&lt;/p&gt;</description></item><item><title>Encapsulation in Java and Kotlin</title><link>https://tomasmalmsten.com/blog/encapsulation-in-java-and-kotlin/</link><pubDate>Tue, 15 Jan 2019 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/encapsulation-in-java-and-kotlin/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="encapsulation-in-java-and-kotlin" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Encapsulation in Java and Kotlin
&lt;a href="#encapsulation-in-java-and-kotlin" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we dive into tradeoffs in encapsulation in the Java and Kotlin languages.&lt;/p&gt;</description></item><item><title>Logical view and ¿developer view?</title><link>https://tomasmalmsten.com/blog/logical-view-and-developer-view/</link><pubDate>Tue, 25 Oct 2016 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/logical-view-and-developer-view/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="logical-view-and-developer-view" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Logical view and ¿developer view?
&lt;a href="#logical-view-and-developer-view" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we ponder the irrationalities of old.&lt;/p&gt;</description></item><item><title>Tackling legacy code</title><link>https://tomasmalmsten.com/blog/tackling-legacy-code/</link><pubDate>Thu, 20 Aug 2015 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/tackling-legacy-code/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="tackling-legacy-code" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Tackling legacy code
&lt;a href="#tackling-legacy-code" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Where we learn some strategies that will make scary code become less scary.&lt;/p&gt;</description></item><item><title>Why is Legacy Code so important?</title><link>https://tomasmalmsten.com/blog/why-is-legacy-code-so-important/</link><pubDate>Tue, 14 Jan 2014 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/blog/why-is-legacy-code-so-important/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="why-is-legacy-code-so-important" --&gt;
&lt;h1&gt;Why is Legacy Code so important?&lt;/h1&gt;
&lt;p&gt;Where we take a close look at the value of code that scares us.&lt;/p&gt;</description></item><item><title>About Me</title><link>https://tomasmalmsten.com/about-me/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/about-me/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="tomas-malmsten" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Tomas Malmsten
&lt;a href="#tomas-malmsten" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;img src="profile-2020.jpg"
alt="Picture of me"
style="
float: left;
max-width: 40%;
margin: 0 1rem 1rem 0;
"&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been doing software for more than 25 years and I still enjoy it. Perhaps,
over time, I&amp;rsquo;ve found that technical aspects are less motivating in them self,
instead solving them together is what motivates me. Working with a team where
people feel they belong and can be themselves, regardless of background,
seniority, or other things that sometimes seems to differentiate us. All these
differences bring better insight for the group, make us become more than the sum
of the parts. Seeing such teams and the people flourish, nurture it, makes work
fun and rewarding.&lt;/p&gt;</description></item><item><title>Apprenticeship Patters; by David H Hoover &amp; Adewale Oshineye</title><link>https://tomasmalmsten.com/reading-list/apprenticeship-patterns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/apprenticeship-patterns/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="apprenticeship-patters" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Apprenticeship Patters
&lt;a href="#apprenticeship-patters" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;David H Hoover &amp;amp; Adewale Oshineye&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This book will have to come first in the list. It is, after all, the reason to why
I&amp;rsquo;m publishing this page. This is the book I which someone would have put in my
hands back in the late &amp;rsquo;90s when I started to develop software for money. It&amp;rsquo;s
a patterns books about how to continuously learn and each pattern, even though
sometimes obvious, is really good. Here you will find valuable guidance on how
you can continuously grow you skills towards mastery. And even in the cases where
the guidance is obvious it gives you name to refer to that practise with, which
is the key point with a pattern. It is a fantastic thing that David and Ade have
taken the time to make the patterns explicit, giving us a language to use when
we talk about our journey. Thank you!&lt;/p&gt;</description></item><item><title>Building Evolutionary Architecture; Neal Ford, Rebecca Parson and Patrick Kua</title><link>https://tomasmalmsten.com/reading-list/evolutionary-architectures/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/evolutionary-architectures/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="building-evolutionary-architecture" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Building Evolutionary Architecture
&lt;a href="#building-evolutionary-architecture" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Neal Ford, Rebecca Parson and Patrick Kua&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Some will probably claim that this book shouldn&amp;rsquo;t be in a list of literature
for novice architects. I disagree. It is a rather advanced book. But it is
also essential, in my opinion, since almost every &amp;ldquo;legacy system&amp;rdquo; I&amp;rsquo;ve ever worked
with has been missing exactly this. The ability to evolve into what is needed
now.&lt;/p&gt;</description></item><item><title>Continuous Delivery; by Jez Humble &amp; Dave Farley</title><link>https://tomasmalmsten.com/reading-list/continuous-delivery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/continuous-delivery/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="continuous-delivery" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Continuous Delivery
&lt;a href="#continuous-delivery" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Jez Humble &amp;amp; Dave Farley&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This book may look a bit dated to some. Yet, the patterns and practices here are what CD is all about. Sure, now we have more tooling that will support this practice, but I think to understand what it is all about you need to read this book.&lt;/p&gt;</description></item><item><title>Conversational Capacity: The Secret to Building Successful Teams That Perform When the Pressure Is On; Craig Weber</title><link>https://tomasmalmsten.com/reading-list/conversational-capacity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/conversational-capacity/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="conversational-capacity" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Conversational Capacity
&lt;a href="#conversational-capacity" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Craig Weber&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I talk a lot about dialogue and how important it is. But am I any good at it?
I suppose I&amp;rsquo;m better than some, but I would not say I&amp;rsquo;ve mastered it. So I decided
to read up on the topic. How can I improve my skills at dialogue. And I stumbled
on this book. Craig Weber gives the skill a name, Conversational Capacity. He
then looks at what makes it so hard to hold a dialogue, especially in stressful
situations, and how we can counter our instincts which work against us. Both as
individuals and as teams. Towards the end of the book he also digs in to how we
can use this skill to learn together and become adaptive thinkers. And he
touches leadership and how we can lead a team or organisation towards higher
conversational capacity.&lt;/p&gt;</description></item><item><title>Dinner at the Jetty</title><link>https://tomasmalmsten.com/art/dinner-at-the-jetty/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/dinner-at-the-jetty/</guid><description>&lt;p&gt;&lt;figure&gt;&lt;img src="dinner-at-the-jetty.png"
alt="Dinner at the Jetty" width="200px"&gt;
&lt;/figure&gt;
Width: 40 mm; Height: 46 mm&lt;br&gt;
Water colour, inc&lt;br&gt;
2025&lt;/p&gt;</description></item><item><title>Fundamentals of Software Architecture; Mark Richards and Neal Ford</title><link>https://tomasmalmsten.com/reading-list/fundamentals-software-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/fundamentals-software-architecture/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="fundamentals-of-software-architecture" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Fundamentals of Software Architecture
&lt;a href="#fundamentals-of-software-architecture" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Mark Richards and Neal Ford&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In this book, Mark Richards and Neal Ford go through pretty much every aspect
of architecture. From the basics of what components are and how coupling works
to different architecture styles. They also go through the role and skills that
someone working with architecture needs, such as negotiation skills,
presentation skills, team skills and much more.&lt;/p&gt;</description></item><item><title>Growing Object-Oriented Software, Guided by Test; by Steve Freeman and Nat Pryce</title><link>https://tomasmalmsten.com/reading-list/goos-book/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/goos-book/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="growing-object-oriented-software-guided-by-test" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Growing Object-Oriented Software, Guided by Test
&lt;a href="#growing-object-oriented-software-guided-by-test" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Steve Freeman and Nat Pryce&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If &lt;a href="https://tomasmalmsten.com/reading-list/tdd-by-example"&gt;TDD by example&lt;/a&gt; is a good book on the basics of TDD and
how to use it, this is what takes that knowledge and puts it into a wider
context. Here the authors take us through the steps of writing a not
trivial software solution, from idea to deployment. This book is not just about
TDD, it is also about Continuous Integration (and to an extent also delivery)
and design. TDD will not teach you how to design good software, but this book has
a lot of good pointers on how you can do that. You will also learn what a
Walking Skeleton is and many other patters. There are a number of pointers on how
to inject this into a brown field code base as well.&lt;/p&gt;</description></item><item><title>On a road to nowhere</title><link>https://tomasmalmsten.com/art/on-a-road-to-nowhere/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/on-a-road-to-nowhere/</guid><description>&lt;p&gt;&lt;img src="on-a-road-to-nowhere.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 195mm&lt;/p&gt;</description></item><item><title>Refactoring, Improving the Design of Existing Code; Martin Fowler</title><link>https://tomasmalmsten.com/reading-list/refactoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/refactoring/</guid><description>&lt;p&gt;Author: Martin Fowler&lt;/p&gt;
&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="refactoring-improving-the-design-of-existing-code" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Refactoring, Improving the Design of Existing Code
&lt;a href="#refactoring-improving-the-design-of-existing-code" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;You will most certainly have heard of refactoring as a concept. You will most
likely also have said that you are refactoring your code, and heard others say
it. But I find that many don&amp;rsquo;t know the original definition of refactoring.
This book will teach you exactly that. This is the original piece that properly
defined the practice, and it also contains the many of the most common
refactoring patterns.&lt;/p&gt;</description></item><item><title>Studies in Architecture I</title><link>https://tomasmalmsten.com/art/studies-in-architecture-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/studies-in-architecture-1/</guid><description>&lt;p&gt;&lt;img src="studies-in-architecture-1.png" alt="Studies in Architecture I"&gt;&lt;br&gt;
Width: 340mm; Height: 240mm&lt;/p&gt;</description></item><item><title>Studies in Darkness I</title><link>https://tomasmalmsten.com/art/studies-in-darkness-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/studies-in-darkness-1/</guid><description>&lt;p&gt;&lt;img src="studies-in-darkness-1.png" alt="Studies in Darkness I"&gt;&lt;br&gt;
Width: 210mm; Height: 148mm&lt;/p&gt;</description></item><item><title>Test Driven Development, by example; by Kent Beck</title><link>https://tomasmalmsten.com/reading-list/tdd-by-example/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/tdd-by-example/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="test-driven-development-by-example" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Test Driven Development, by Example
&lt;a href="#test-driven-development-by-example" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Kent Beck&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This book takes the reader through the TDD cycles as Kent Beck does it. It is
a book that, like other books by Kent Beck, talks with the reader. I know
people who find this way of narrating very difficult. But if you are like
me, and like it when the author invites you to a conversation yo0u will find
this book very easy to read indeed. It is also one of the best books on how
to do TDD step by step. He uses two examples, one for beginners and one for
more intermediate readers.&lt;/p&gt;</description></item><item><title>The cat and the helmet</title><link>https://tomasmalmsten.com/art/the-cat-and-the-helmet/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/the-cat-and-the-helmet/</guid><description>&lt;p&gt;&lt;img src="the-cat-and-the-helmet.png" alt="Untitled"&gt;&lt;br&gt;
Width: 296mm; Height: 420mm&lt;/p&gt;</description></item><item><title>The Fifth Discipline; by Peter M. Senge</title><link>https://tomasmalmsten.com/reading-list/the-fifth-discipline/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/the-fifth-discipline/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="the-fifth-discipline" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;The Fifth Discipline
&lt;a href="#the-fifth-discipline" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Peter M. Senge&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is not a programming book. Some would even refer to it as a business or
management book. But it&amp;rsquo;s not that either in my opinion. It&amp;rsquo;s about systems
thinking, about how everything is connected, and about how no human is an island.
Peter M Senge is a system thinker and has worked with upper management in
several big organisations. Putting such organisations into a systems
perspective, both how they work from the inside and how they interact with
everything else, he lays out a path for how we can start to change things.
This is a book that really makes an impact, I think. There is so much wisdom
here that can be applied to most things in life even if the book is very much
oriented around managing organisations. I also think this is a great way to
understand systems thinking in a practical way, and how it can help us better
understand the interconnectedness of everything (and I mean that literary).&lt;/p&gt;</description></item><item><title>Untitled 0001</title><link>https://tomasmalmsten.com/art/0001/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0001/</guid><description>&lt;p&gt;&lt;img src="0001.png" alt="Untitled"&gt;&lt;br&gt;
Width: 419mm; Height: 296mm&lt;/p&gt;</description></item><item><title>Untitled 0003</title><link>https://tomasmalmsten.com/art/0003/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0003/</guid><description>&lt;p&gt;&lt;img src="0003.png" alt="Untitled"&gt;&lt;br&gt;
Watercolour by Amelie; Width: 298mm; Height: 210mm&lt;/p&gt;</description></item><item><title>Untitled 0004</title><link>https://tomasmalmsten.com/art/0004/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0004/</guid><description>&lt;p&gt;&lt;img src="0004.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 100mm&lt;/p&gt;</description></item><item><title>Untitled 0005</title><link>https://tomasmalmsten.com/art/0005/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0005/</guid><description>&lt;p&gt;&lt;img src="0005.png" alt="Untitled"&gt;&lt;br&gt;
Width: 305mm; Height: 229mm&lt;/p&gt;</description></item><item><title>Untitled 0006</title><link>https://tomasmalmsten.com/art/0006/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0006/</guid><description>&lt;p&gt;&lt;img src="0006.png" alt="Untitled"&gt;&lt;br&gt;
Width: 148mm; Height: 105mm&lt;/p&gt;</description></item><item><title>Untitled 0007</title><link>https://tomasmalmsten.com/art/0007/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0007/</guid><description>&lt;p&gt;&lt;img src="0007.png" alt="Untitled"&gt;&lt;br&gt;
Width: 190mm; Height: 148mm&lt;/p&gt;</description></item><item><title>Untitled 0008</title><link>https://tomasmalmsten.com/art/0008/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0008/</guid><description>&lt;p&gt;&lt;img src="0008.png" alt="Untitled"&gt;&lt;br&gt;
Watercolour by Amelie;
Width: 148mm; Height: 210mm&lt;/p&gt;</description></item><item><title>Untitled 0009</title><link>https://tomasmalmsten.com/art/0009/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0009/</guid><description>&lt;p&gt;&lt;img src="0009.png" alt="Untitled"&gt;&lt;br&gt;
Watercolour by Amelie
Width: 208mm; Height: 210mm&lt;/p&gt;</description></item><item><title>Untitled 0010</title><link>https://tomasmalmsten.com/art/0010/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0010/</guid><description>&lt;p&gt;&lt;img src="0010.png" alt="Untitled"&gt;&lt;br&gt;
Width: 148mm; Height: 210mm&lt;/p&gt;</description></item><item><title>Untitled 0011</title><link>https://tomasmalmsten.com/art/0011/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0011/</guid><description>&lt;p&gt;&lt;img src="0011.png" alt="Untitled"&gt;&lt;br&gt;
Width: 130mm; Height: 180mm&lt;/p&gt;</description></item><item><title>Untitled 0012</title><link>https://tomasmalmsten.com/art/0012/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0012/</guid><description>&lt;p&gt;&lt;img src="0012.png" alt="Untitled"&gt;&lt;br&gt;
Width: 210mm; Height: 149mm&lt;/p&gt;</description></item><item><title>Untitled 0013</title><link>https://tomasmalmsten.com/art/0013/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0013/</guid><description>&lt;p&gt;&lt;img src="0013.png" alt="Untitled"&gt;&lt;br&gt;
Width: 210mm; Height: 149mm&lt;/p&gt;</description></item><item><title>Untitled 0014</title><link>https://tomasmalmsten.com/art/0014/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0014/</guid><description>&lt;p&gt;&lt;img src="0014.png" alt="Untitled"&gt;&lt;br&gt;
Width: 228mm; Height: 305mm&lt;/p&gt;</description></item><item><title>Untitled 0015</title><link>https://tomasmalmsten.com/art/0015/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0015/</guid><description>&lt;p&gt;&lt;img src="0015.png" alt="Untitled"&gt;&lt;br&gt;
Width: 252mm; Height: 181mm&lt;/p&gt;</description></item><item><title>Untitled 0016</title><link>https://tomasmalmsten.com/art/0016/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0016/</guid><description>&lt;p&gt;&lt;img src="0016.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 105mm&lt;/p&gt;</description></item><item><title>Untitled 0017</title><link>https://tomasmalmsten.com/art/0017/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0017/</guid><description>&lt;p&gt;&lt;img src="0017.png" alt="Untitled"&gt;&lt;br&gt;
Width: 148mm; Height: 99mm&lt;/p&gt;</description></item><item><title>Untitled 0018</title><link>https://tomasmalmsten.com/art/0018/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0018/</guid><description>&lt;p&gt;&lt;img src="0018.png" alt="Untitled"&gt;&lt;br&gt;
Width: 148mm; Height: 99mm&lt;/p&gt;</description></item><item><title>Untitled 0019</title><link>https://tomasmalmsten.com/art/0019/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0019/</guid><description>&lt;p&gt;&lt;img src="0019.png" alt="Untitled"&gt;&lt;br&gt;
Width: 105mm; Height: 149mm&lt;/p&gt;</description></item><item><title>Untitled 0020</title><link>https://tomasmalmsten.com/art/0020/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0020/</guid><description>&lt;p&gt;&lt;img src="0020.png" alt="Untitled"&gt;&lt;br&gt;
Width: 240mm; Height: 321mm&lt;/p&gt;</description></item><item><title>Untitled 0021</title><link>https://tomasmalmsten.com/art/0021/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0021/</guid><description>&lt;p&gt;&lt;img src="0021.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 105mm&lt;/p&gt;</description></item><item><title>Untitled 0022</title><link>https://tomasmalmsten.com/art/0022/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0022/</guid><description>&lt;p&gt;&lt;img src="0022.png" alt="Untitled"&gt;&lt;br&gt;
Width: 210mm; Height: 149mm&lt;/p&gt;</description></item><item><title>Untitled 0023</title><link>https://tomasmalmsten.com/art/0023/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0023/</guid><description>&lt;p&gt;&lt;img src="0023.png" alt="Untitled"&gt;&lt;br&gt;
Width: 305mm; Height: 229mm&lt;/p&gt;</description></item><item><title>Untitled 0024</title><link>https://tomasmalmsten.com/art/0024/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0024/</guid><description>&lt;p&gt;&lt;img src="0024.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 195mm&lt;/p&gt;</description></item><item><title>Untitled 0025</title><link>https://tomasmalmsten.com/art/0025/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0025/</guid><description>&lt;p&gt;&lt;img src="0025.png" alt="Untitled"&gt;&lt;br&gt;
This is one side of the same paper as the Untitled 0026;
Width: 149mm; Height: 195mm&lt;/p&gt;</description></item><item><title>Untitled 0026</title><link>https://tomasmalmsten.com/art/0026/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0026/</guid><description>&lt;p&gt;&lt;img src="0026.png" alt="Untitled"&gt;&lt;br&gt;
This is one side of the same paper as the Untitled 0025;
Width: 149mm; Height: 195mm&lt;/p&gt;</description></item><item><title>Untitled 0028</title><link>https://tomasmalmsten.com/art/0028/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0028/</guid><description>&lt;p&gt;&lt;img src="0028.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 195mm&lt;/p&gt;</description></item><item><title>Untitled 0029</title><link>https://tomasmalmsten.com/art/0029/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0029/</guid><description>&lt;p&gt;&lt;img src="0029.png" alt="Untitled"&gt;&lt;br&gt;
Watercolour by Amelie;
Width: 148mm; Height: 210mm&lt;/p&gt;</description></item><item><title>Untitled 0031</title><link>https://tomasmalmsten.com/art/0031/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0031/</guid><description>&lt;p&gt;&lt;img src="0031.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 195mm&lt;/p&gt;</description></item><item><title>Untitled 0032</title><link>https://tomasmalmsten.com/art/0032/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0032/</guid><description>&lt;p&gt;&lt;img src="0032.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 195mm&lt;/p&gt;</description></item><item><title>Untitled 0033</title><link>https://tomasmalmsten.com/art/0033/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0033/</guid><description>&lt;p&gt;&lt;img src="0033.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 195mm&lt;/p&gt;</description></item><item><title>Untitled 0034</title><link>https://tomasmalmsten.com/art/0034/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0034/</guid><description>&lt;p&gt;&lt;img src="0034.png" alt="Untitled"&gt;&lt;br&gt;
Width: 149mm; Height: 195mm&lt;/p&gt;</description></item><item><title>Untitled 0036</title><link>https://tomasmalmsten.com/art/0036/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0036/</guid><description>&lt;p&gt;&lt;img src="0036.png" alt="Untitled"&gt;&lt;br&gt;
Width: 210mm; Height: 147mm&lt;/p&gt;</description></item><item><title>Untitled 0037</title><link>https://tomasmalmsten.com/art/0037/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0037/</guid><description>&lt;p&gt;&lt;img src="0037.png" alt="Untitled"&gt;&lt;br&gt;
Width: 420mm; Height: 296mm&lt;/p&gt;</description></item><item><title>Untitled 0038</title><link>https://tomasmalmsten.com/art/0038/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0038/</guid><description>&lt;p&gt;&lt;img src="0038.png" alt="Untitled"&gt;&lt;br&gt;
Width: 420mm; Height: 296mm&lt;/p&gt;</description></item><item><title>Untitled 0039</title><link>https://tomasmalmsten.com/art/0039/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0039/</guid><description>&lt;p&gt;&lt;img src="0039.png" alt="Untitled"&gt;&lt;br&gt;
Width: 317mm; Height: 237mm&lt;/p&gt;</description></item><item><title>Untitled 0040</title><link>https://tomasmalmsten.com/art/0040/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0040/</guid><description>&lt;p&gt;&lt;figure&gt;&lt;img src="0040.png"
alt="Untitled" width="200px"&gt;
&lt;/figure&gt;
Width: 50 mm; Height: 48 mm&lt;br&gt;
Water colour, inc, pencil&lt;br&gt;
2026&lt;/p&gt;</description></item><item><title>Untitled 0041</title><link>https://tomasmalmsten.com/art/0041/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0041/</guid><description>&lt;p&gt;&lt;figure&gt;&lt;img src="0041.png"
alt="Untitled" width="200px"&gt;
&lt;/figure&gt;
Width: 38 mm; Height: 45 mm&lt;br&gt;
Water colour, incl&lt;br&gt;
2025&lt;/p&gt;</description></item><item><title>Untitled 0042</title><link>https://tomasmalmsten.com/art/0042/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/art/0042/</guid><description>&lt;p&gt;&lt;figure&gt;&lt;img src="0042.png"
alt="Untitled" width="200px"&gt;
&lt;/figure&gt;
&lt;br&gt;
Width: 40 mm; Height: 45 mm&lt;br&gt;
Water colour, inc, pencil&lt;br&gt;
2025&lt;/p&gt;</description></item><item><title>Working effectively with legacy code; Michel Feathers</title><link>https://tomasmalmsten.com/reading-list/legacy-code/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tomasmalmsten.com/reading-list/legacy-code/</guid><description>&lt;!-- end-chunk --&gt;
&lt;!-- begin-chunk data-anchor="working-effectively-with-legacy-code" --&gt;
&lt;h1 class="header-anchor-wrapper"&gt;Working effectively with legacy code
&lt;a href="#working-effectively-with-legacy-code" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Michel Feathers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve all run into code bases that leave us in a sad state of despair. Code
bases that scare the wits out of us when we&amp;rsquo;ve got to change them. What I have
found is that this is something we can learn to overcome. And this is the book
that taught me. You will find loads of practical patterns and practices in this
book, both for low-level languages such as C and for higher level languages. And
even if your particular language is not represented in the book, the patterns it
teaches will be useful.&lt;/p&gt;</description></item></channel></rss>