<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="https://iamstelios.com/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>https:&#x2F;&#x2F;iamstelios.com&#x2F;</tabi:base_url>
        <tabi:separator>
            •
        </tabi:separator>
        <tabi:about_feeds>This is a web feed, also known as an Atom feed. Subscribe by copying the URL from the address bar into your newsreader</tabi:about_feeds>
        <tabi:visit_the_site>Visit website</tabi:visit_the_site>
        <tabi:recent_posts>Recent posts</tabi:recent_posts>
        <tabi:last_updated_on>Updated on $DATE</tabi:last_updated_on>
        <tabi:default_theme>light</tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>decision-making</tabi:current_section>
    </tabi:metadata><title>~/iam - decision-making</title>
        <subtitle>YOUR_SITE_DESCRIPTION</subtitle>
    <link href="https://iamstelios.com/tags/decision-making/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://iamstelios.com/tags/decision-making/" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2026-02-06T00:00:00+00:00</updated><id>https://iamstelios.com/tags/decision-making/atom.xml</id><entry xml:lang="en">
        <title>The Fastest Way to Be Done</title>
        <published>2026-02-06T00:00:00+00:00</published>
        <updated>2026-02-06T00:00:00+00:00</updated>
        <author>
            <name>Stelios</name>
        </author>
        <link rel="alternate" href="https://iamstelios.com/blog/clean-the-kitchen/" type="text/html"/>
        <id>https://iamstelios.com/blog/clean-the-kitchen/</id>
        
            <content type="html">&lt;p&gt;The fastest way to be done with dinner is to not clean the kitchen.&lt;&#x2F;p&gt;
&lt;p&gt;If you don’t clean the kitchen, a mess builds up. The pots and pans pile in the sink. The spoon you need is somewhere under something else. You may have to scrape dried spaghetti from last Tuesday or rinse peanut butter from a knife before you can use it. But eventually you will find what you need, and dinner will happen.&lt;&#x2F;p&gt;
&lt;p&gt;And still, the fastest way to be done with dinner is to not clean the kitchen.&lt;&#x2F;p&gt;
&lt;p&gt;That’s what makes this hard. You can always be done faster today if you don’t clean today. The time spent wiping the counter or putting the knife back is time not spent eating.&lt;&#x2F;p&gt;
&lt;p&gt;This is why skipping cleanup keeps winning. What’s measured is that dinner was made. The outcome. The visible result. Not how much effort it took to get there, and not how much harder it made the next dinner.&lt;&#x2F;p&gt;
&lt;p&gt;The same thing happens when decisions are made under pressure. There isn’t enough time. There isn’t enough understanding yet. You don’t have all the data, and you may not even know what the real problem is. But something has to ship, so choices are made with what’s available. Structure bends a little. Cleanup waits.&lt;&#x2F;p&gt;
&lt;p&gt;And it works. Dinner happens. Features ship.&lt;&#x2F;p&gt;
&lt;p&gt;If you cleaned the kitchen after dinner every day, the total time spent making dinner over a year would be far less. But that advantage only appears over time, and time over time is rarely what’s being measured. The mess doesn’t announce itself. It accumulates quietly and shows up later as friction.&lt;&#x2F;p&gt;
&lt;p&gt;At some point, more effort goes into working around the kitchen than into cooking. So things get rearranged. Shelves are moved. Tools are reorganized. The goal is to make tomorrow easier.&lt;&#x2F;p&gt;
&lt;p&gt;In software, this is when code gets refactored. In organizations, this is when teams and responsibilities get restructured. The kitchen is rearranged to make tomorrow feel possible.&lt;&#x2F;p&gt;
&lt;p&gt;This is what happens when we optimize for now, when we move before understanding has had time to catch up. If no one intervenes, things settle into whatever feels fastest.&lt;&#x2F;p&gt;
&lt;p&gt;Over time, you begin to notice this pattern. You see how small compromises accumulate. You feel when a name no longer fits, or when a boundary has grown heavier than it needs to be.&lt;&#x2F;p&gt;
&lt;p&gt;Over time, you realize software engineering is a craft. You rename things while they are still small. You adjust structure before it stiffens. You clean a little while the system is still warm.&lt;&#x2F;p&gt;
&lt;p&gt;A good chef doesn’t wait until the end of the night to discover the kitchen is unusable. They wipe the board between steps and reset the counter before reaching for the next ingredient. It doesn’t look dramatic. It simply keeps cooking straightforward.&lt;&#x2F;p&gt;
&lt;p&gt;And still, the fastest way to be done with dinner is to not clean the kitchen.&lt;&#x2F;p&gt;
&lt;p&gt;Eventually the way you move through the kitchen becomes the kind of cook you are — and the kind your future self has to work with.&lt;&#x2F;p&gt;
</content>
        <summary type="html">Why skipping cleanup feels faster now—and how the costs surface later.</summary>
        </entry><entry xml:lang="en">
        <title>Systems As Mirrors</title>
        <published>2025-06-21T00:00:00+00:00</published>
        <updated>2025-06-21T00:00:00+00:00</updated>
        <author>
            <name>Stelios</name>
        </author>
        <link rel="alternate" href="https://iamstelios.com/blog/systems-as-mirrors/" type="text/html"/>
        <id>https://iamstelios.com/blog/systems-as-mirrors/</id>
        
            <content type="html">&lt;p&gt;There’s something quietly unsettling about &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.wikiwand.com&#x2F;en&#x2F;articles&#x2F;Conway%27s_law&quot;&gt;Conway’s Law&lt;&#x2F;a&gt;. Most people who’ve worked in software long enough can sense its truth. What unsettles is what it reveals when you sit with it.&lt;&#x2F;p&gt;
&lt;p&gt;The law definition, in its original form, is:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.&lt;&#x2F;p&gt;
&lt;p&gt;— Melvin E. Conway, &lt;em&gt;How Do Committees Invent?&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;At first, it seems structural. Org charts become system diagrams. Split your teams by department, and the system splits the same way. But over time, the reflection deepens. The system doesn’t only mirror who talks to whom — it starts echoing what’s understood, and what’s avoided.&lt;&#x2F;p&gt;
&lt;p&gt;The most confusing systems I’ve seen don’t reflect complexity. They reflect ambiguity.&lt;&#x2F;p&gt;
&lt;p&gt;You see it in familiar places. One service checks a user’s admin flag. Another checks something else entirely. A third overrides both. A field like “approved” means one thing to scoring, another to compliance, and something looser to product. The code bends around uncertainty. But what it adapts to isn’t complexity — it’s a missing decision.&lt;&#x2F;p&gt;
&lt;p&gt;This gets worse when teams try to support everything. A lending flow starts with a clean path. Then you add freelancers, students, returning users. You don’t create new flows. You add flags: &lt;code&gt;hasPayslip&lt;&#x2F;code&gt;, &lt;code&gt;isStudent&lt;&#x2F;code&gt;, &lt;code&gt;incomeSource&lt;&#x2F;code&gt;. Logic branches. Models fork. Scenarios pile up.&lt;&#x2F;p&gt;
&lt;p&gt;Each rule makes sense in isolation. But together, they blur the center. “ApplicationApproved” starts meaning different things depending on the path taken. Eventually, no one can say what it means — only how it behaves under certain conditions.&lt;&#x2F;p&gt;
&lt;p&gt;The system still works. But its meaning doesn’t.&lt;&#x2F;p&gt;
&lt;p&gt;This is where outcome-driven modeling helps. &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.wikiwand.com&#x2F;en&#x2F;articles&#x2F;Outcome-Driven_Innovation&quot;&gt;Jobs To Be Done&lt;&#x2F;a&gt; is one approach. It shifts the focus from who the user is to what they’re trying to accomplish. It asks what outcome they’re hiring the system to deliver — and what tradeoffs they’re willing to make.&lt;&#x2F;p&gt;
&lt;p&gt;A persona tells you the user is a freelancer who prefers mobile and has irregular income. The job tells you: access a short-term loan using recent invoices. Suddenly, the model sharpens. Income is about pattern, not payslips. Risk is about volatility. Rejection isn’t the fallback — manual review is.&lt;&#x2F;p&gt;
&lt;p&gt;When you model from outcome, the system knows what it’s trying to do.&lt;&#x2F;p&gt;
&lt;p&gt;This is also where domain boundaries matter. &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;martinfowler.com&#x2F;bliki&#x2F;DomainDrivenDesign.html&quot;&gt;Domain-Driven Design&lt;&#x2F;a&gt; introduces the idea of &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;martinfowler.com&#x2F;bliki&#x2F;BoundedContext.html&quot;&gt;bounded contexts&lt;&#x2F;a&gt;: each part of the system defines its own meaning. Duplication isn’t always a mistake — it’s often how clarity is preserved. Reuse works best when meaning aligns.&lt;&#x2F;p&gt;
&lt;p&gt;Take the classic &lt;code&gt;User&lt;&#x2F;code&gt; model. In KYC, it means identity: documents, name, status. In Scoring, it means applicant: income, employment, credit history. In Auth, it means account: credentials, sessions, MFA. Reusing the ID is fine. Reusing the model leads to something brittle: dozens of nullable fields, conflicting assumptions, tangled dependencies.&lt;&#x2F;p&gt;
&lt;p&gt;Some say duplication is always bad. But that’s a narrow view. It depends on what’s being repeated. Echoing confusion spreads it. But repeating meaning reinforces clarity. Duplication isn’t the enemy — imprecision is.&lt;&#x2F;p&gt;
&lt;p&gt;Once each model speaks a single truth, everything downstream improves. The backend is easier to debug. The frontend becomes more predictable. Changes get safer. Teams stop negotiating the meaning of basic terms and start delivering again.&lt;&#x2F;p&gt;
&lt;p&gt;And that brings us back to the mirror.&lt;&#x2F;p&gt;
&lt;p&gt;Conway’s Law tells us systems mirror their makers. But reflections go further than structure. They echo our indecision, our shortcuts, the choices we didn’t make.&lt;&#x2F;p&gt;
&lt;p&gt;So the real question is:&lt;br &#x2F;&gt;
&lt;em&gt;If every system is a mirror — what part of ourselves are we willing to see?&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
</content>
        <summary type="html">Conway’s Law tells us systems reflect their makers. But what if they reveal more than structure — what if they surface what we didn’t define?</summary>
        </entry>
</feed>
