<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Platform Thinking</title>
    <subtitle>&quot;How&quot; you build is more important than &quot;What&quot; you build.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://daily.bec-systems.com/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://daily.bec-systems.com"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-03-12T00:00:00+00:00</updated>
    <id>https://daily.bec-systems.com/atom.xml</id>
    <entry xml:lang="en">
        <title>✅ Each release is 100% done</title>
        <published>2026-03-12T00:00:00+00:00</published>
        <updated>2026-03-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0314-each-release-is-100-done/"/>
        <id>https://daily.bec-systems.com/0314-each-release-is-100-done/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0314-each-release-is-100-done/">&lt;p&gt;One common problem in product development is developers not finishing a feature
or task. They get it to 70% done and rush off to the next thing. Bugs linger,
edge cases go unhandled, testing falls short, and the release process remains
incomplete. &quot;100% done&quot; does not mean the product is 100% done — it means each
release is complete, tested, and high quality. Quality products emerge from many
small high-quality steps, not from a pile of slop that somehow gets polished by
QA at the end of the development cycle.&lt;&#x2F;p&gt;
&lt;p&gt;Release First is a simple way to ensure each step in the journey is 100% done
and high quality.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;each-release-is-100-done.png&quot; alt=&quot;Each release is 100% done&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💡 A Simple Example</title>
        <published>2026-03-11T00:00:00+00:00</published>
        <updated>2026-03-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0313-a-simple-example/"/>
        <id>https://daily.bec-systems.com/0313-a-simple-example/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0313-a-simple-example/">&lt;p&gt;The Release First mindset starts with how you handle reasonably complex
information (a procedure, technical details, etc). There are two approaches:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Email or message the information.&lt;&#x2F;li&gt;
&lt;li&gt;Put it in Git and send a link or PR.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;The first is transient, inaccessible, and difficult to build on or improve.&lt;&#x2F;p&gt;
&lt;p&gt;The second is permanent, reusable, accessible, and something people can build on.
It is an asset.&lt;&#x2F;p&gt;
&lt;p&gt;Sure, there are times when email or messaging is the appropriate forum for
discussions. But the minute there is something of value, turn that into a
permanent, team-accessible asset. This is how teams build value.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;a-simple-example.png&quot; alt=&quot;A Simple Example&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏷️ The simple approach to versioning</title>
        <published>2026-03-10T00:00:00+00:00</published>
        <updated>2026-03-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0312-the-simple-approach-to-versioning/"/>
        <id>https://daily.bec-systems.com/0312-the-simple-approach-to-versioning/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0312-the-simple-approach-to-versioning/">&lt;p&gt;The biggest barrier to starting something is an unwillingness to start simple.
Let&#x27;s use versioning as an example. The natural tendency is to think that all
software components need their own version, which can be a daunting task to
implement, track, and manage. However, until a team is large enough to have
multiple groups dedicated to different tasks, instead put everything in a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;monoliths-and-monorepos&#x2F;202&quot;&gt;monorepo&lt;&#x2F;a&gt; and use a
single version for everything. Not every component needs to be released with
every version, only the ones that have changed. There are several advantages:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;There is a single changelog to review.&lt;&#x2F;li&gt;
&lt;li&gt;It is easy to coordinate things - components of the same version should work
well together.&lt;&#x2F;li&gt;
&lt;li&gt;Much easier to use AI to execute tasks that involve multiple components. If
there are several repos, you are always fighting security checks when crossing
repos (at least in Claude Code).&lt;&#x2F;li&gt;
&lt;li&gt;It is easy and simple.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&quot;But!!!,&quot; you say, &quot;The versions won&#x27;t always be sequential, some will be
skipped for various components!!!&quot; Why does this matter? If it bothers you,
release every component for every version. Automation can easily do this.&lt;&#x2F;p&gt;
&lt;p&gt;The resulting changelog looks something like this:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2026-03-06 v3.0.18&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[Server]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;- Fix mongo iterator stopping on decode errors instead of skipping bad documents&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  Add bson truncate tags to all int fields to handle float64 values from&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  JavaScript&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[GW]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;- Improve response of Modbus polling.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[Portal]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;- Add UI for e2e test status.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2026-03-06 v3.0.17&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[Server]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;- Log rule count each processing cycle to aid debugging&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2026-03-06 v3.0.16&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[E2E testing]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;- Improved ntfy error messages to include response body for easier debugging.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;- Reduced log noise: only log pump and cycle mirror state changes instead of&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  continuous tank level.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;- Added logging of test status on initial check and state changes.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Start simple, and add complexity when there is a need.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;simple-approach-to-versioning.png&quot; alt=&quot;Simple approach to versioning&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📦 The bare minimum to call something a release</title>
        <published>2026-03-09T00:00:00+00:00</published>
        <updated>2026-03-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0311-the-bare-minimum-to-call-something-a-release/"/>
        <id>https://daily.bec-systems.com/0311-the-bare-minimum-to-call-something-a-release/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0311-the-bare-minimum-to-call-something-a-release/">&lt;p&gt;What is the bare minimum to call something a release? Consider the following:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;A &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;semver.org&#x2F;&quot;&gt;version&lt;&#x2F;a&gt; that increments with every release.&lt;&#x2F;li&gt;
&lt;li&gt;A &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0114-who-is-a-changelog-for&#x2F;&quot;&gt;changelog&lt;&#x2F;a&gt;
that describes what has changed for every version and why it matters.&lt;&#x2F;li&gt;
&lt;li&gt;A clear identification of any assets
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;git-plm&#x2F;parts&#x2F;blob&#x2F;main&#x2F;partnumbers.md&quot;&gt;IPNs&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;Unique IDs for anything built
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bec-systems.com&#x2F;2563&#x2F;human-friendly-industrial-device-ids&#x2F;&quot;&gt;HFIDs&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;A place to store stuff where all this gets tracked over time
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0214-git-solves-the-problem-of-managing-files&#x2F;&quot;&gt;Git&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;The concrete benefits:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Exact knowledge of what exists.&lt;&#x2F;li&gt;
&lt;li&gt;Clear record of who did what when.&lt;&#x2F;li&gt;
&lt;li&gt;Clear communication to everyone involved.&lt;&#x2F;li&gt;
&lt;li&gt;Nothing gets lost.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Doing the above for all design assets (including documentation) from &lt;strong&gt;day one&lt;&#x2F;strong&gt;
in the development process improves thinking, communication, and
effectiveness — and reduces untold confusion and wasted time.&lt;&#x2F;p&gt;
&lt;p&gt;This does not need to be hard. Simple text files, spreadsheets, and CSV files
work great. It is perfectly fine to start small.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;bare-minimum-release.png&quot; alt=&quot;Bare minimum release&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>❓ Release Questions</title>
        <published>2026-03-06T00:00:00+00:00</published>
        <updated>2026-03-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0310-release-questions/"/>
        <id>https://daily.bec-systems.com/0310-release-questions/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0310-release-questions/">&lt;p&gt;Some questions to consider about a release:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;When is it created?&lt;&#x2F;li&gt;
&lt;li&gt;Where is it stored?&lt;&#x2F;li&gt;
&lt;li&gt;What does it contain?&lt;&#x2F;li&gt;
&lt;li&gt;How is it created?&lt;&#x2F;li&gt;
&lt;li&gt;Who uses it?&lt;&#x2F;li&gt;
&lt;li&gt;Why is it used?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;English_interrogative_words&quot;&gt;&quot;Wh- questions&quot;&lt;&#x2F;a&gt;
are a powerful technique for analyzing anything we do.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;release-questions.png&quot; alt=&quot;Release Questions&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤔 Two types of unknowns</title>
        <published>2026-03-05T00:00:00+00:00</published>
        <updated>2026-03-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0309-two-types-of-uknowns/"/>
        <id>https://daily.bec-systems.com/0309-two-types-of-uknowns/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0309-two-types-of-uknowns/">&lt;p&gt;There are two types of unknowns:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Things we don&#x27;t know.&lt;&#x2F;li&gt;
&lt;li&gt;Things we think are true, but are not. &lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Both can inflict havoc on our plans, but the second is the most damaging. Why?
The first is more associated with doing nothing. Bugs not known to be there,
etc. But the second prompts people to take action and go down a path that can be
difficult to undo (promised ship dates, features, etc.). It is not too hard to
say &quot;oops, I did not know about that problem - we&#x27;ll fix it.&quot; But it is really
hard to say &quot;sorry, I was completely wrong about that.&quot; - this takes a great
deal of humility.&lt;&#x2F;p&gt;
&lt;p&gt;While avoiding #1 is important, avoiding #2 is critical, because that forces
people to retrace their steps and admit they were wrong. While humbling oneself
is beneficial for character development, practically, it is difficult (if not
impossible) for most people to do, especially those in leadership positions. So
let&#x27;s
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0301-what-is-release-first&#x2F;&quot;&gt;Release First&lt;&#x2F;a&gt;, and
learn where we are wrong in little ways, rather than have a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0307-the-big-1-0-release&#x2F;&quot;&gt;BIG 1.0&lt;&#x2F;a&gt; humiliation.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;1&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;1&lt;&#x2F;sup&gt;
&lt;p&gt;&quot;It ain&#x27;t what you don&#x27;t know that gets you into trouble. It&#x27;s what you know
for sure that just ain&#x27;t so.&quot; - Mark Twain (maybe)&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;two-types-of-unknowns.png&quot; alt=&quot;Two types of unknowns&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧊 The hardest thing to manage</title>
        <published>2026-03-04T00:00:00+00:00</published>
        <updated>2026-03-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0308-the-hardest-thing-to-manage/"/>
        <id>https://daily.bec-systems.com/0308-the-hardest-thing-to-manage/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0308-the-hardest-thing-to-manage/">&lt;p&gt;The things we know and understand are easy to manage. We can hire managers who
are good at this. Tools can effectively track this. Life is good. The difficulty
arises in the unknown. The iceberg analogy illustrates this well. The things we
see, understand, and touch are above water. Everything else is underwater. This
is often where unexpected problems arise. As systems get more complex, the size
of the unknown grows. We can&#x27;t predict what will happen in the unknown; the only
thing we can do is release and integrate early.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;iceberg.png&quot; alt=&quot;The hardest thing to manage&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎉 The BIG 1.0 Release</title>
        <published>2026-03-03T00:00:00+00:00</published>
        <updated>2026-03-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0307-the-big-1-0-release/"/>
        <id>https://daily.bec-systems.com/0307-the-big-1-0-release/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0307-the-big-1-0-release/">&lt;p&gt;BIG releases are appealing — the magical moment when everything comes together.
The months or years of hard work that finally come to fruition. The excitement
and fanfare of the BIG announcement. The accolades and admiration of customers
and the press.&lt;&#x2F;p&gt;
&lt;p&gt;... except, it
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0305-symptoms-of-not-releasing-first&#x2F;&quot;&gt;rarely works this way&lt;&#x2F;a&gt;
unless you are Apple or Tesla. And what we don&#x27;t see with high-end consumer
products is the rigorous internal release and testing programs ... something
lower-volume industrial products don&#x27;t have the luxury and resources to do.&lt;&#x2F;p&gt;
&lt;p&gt;The BIG Release mindset assumes all the code and designs will magically ship
when the BIG day comes. It never goes this smoothly. Sure, we may build
prototypes and do testing, but unless we do these with release processes we can
reuse, it is hard to be confident we can do it again quickly, easily, and
accurately. One-off prototype processes don&#x27;t scale. Only release processes
scale. And the reality is that the rigor of releases in the prototype phase
works better anyway.&lt;&#x2F;p&gt;
&lt;p&gt;The solution is of course ... Release First. The problem is that The BIG 1.0
Release fits human nature better (procrastination, excitement, and glory).
Release First is boring, tedious at first, and no one cares. The effort is
invisible and rarely gets rewarded. Very few developers are wired for Release
First. Thus, Release First is not a technical problem, but rather a cultural
one.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;the-big-1-0-release.png&quot; alt=&quot;The BIG Release vs Release First&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>❓ What is the difference between &quot;releasing&quot; and &quot;shipping&quot;?</title>
        <published>2026-03-02T00:00:00+00:00</published>
        <updated>2026-03-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0306-what-is-the-difference-between-releasing-and-shipping/"/>
        <id>https://daily.bec-systems.com/0306-what-is-the-difference-between-releasing-and-shipping/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0306-what-is-the-difference-between-releasing-and-shipping/">&lt;p&gt;Someone asked: &quot;What is the difference between &lt;strong&gt;releasing&lt;&#x2F;strong&gt; and &lt;strong&gt;shipping&lt;&#x2F;strong&gt;?&quot;
Are they the same thing?&lt;&#x2F;p&gt;
&lt;p&gt;In one sense they are. However, drawing a distinction here—though somewhat
arbitrary—is helpful in this context.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Release:&lt;&#x2F;strong&gt; Make something available.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Ship:&lt;&#x2F;strong&gt; Deliver to the customer for sale.&lt;&#x2F;p&gt;
&lt;p&gt;Releasing is part of the process to get something to the point where it provides
enough value that customers will pay for it. Releasing is the way useful work
gets shared with others and the delivery process gets refined. Releasing enables
early feedback needed to know exactly what to build. The Release is the way
different disciplines communicate around what the team is building. Releases are
a concrete measure of development progress. Releases build confidence in the
product.&lt;&#x2F;p&gt;
&lt;p&gt;The problem arises when the two are considered equivalent—when there is no
release until ship. Then inevitable surprises pile up.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;releasing-vs-shipping.png&quot; alt=&quot;Releasing vs Shipping&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚨 Problems with not Releasing First</title>
        <published>2026-02-27T00:00:00+00:00</published>
        <updated>2026-02-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0305-symptoms-of-not-releasing-first/"/>
        <id>https://daily.bec-systems.com/0305-symptoms-of-not-releasing-first/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0305-symptoms-of-not-releasing-first/">&lt;p&gt;What is the downside of not
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0301-what-is-release-first&#x2F;&quot;&gt;Releasing First&lt;&#x2F;a&gt;?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Integration problems&lt;&#x2F;li&gt;
&lt;li&gt;Manufacturing issues&lt;&#x2F;li&gt;
&lt;li&gt;Last minute bugs appearing&lt;&#x2F;li&gt;
&lt;li&gt;Lack of product fit (does not solve customer&#x27;s problem)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The common theme is unforeseen problems that typically surface late in the
development cycle. The point of Release First is to expose unknowns early, when
there is still time to address them.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;symptoms-not-releasing-first.png&quot; alt=&quot;Symptoms of not releasing first&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌅 Why optimizing the user release experience early is so important</title>
        <published>2026-02-25T00:00:00+00:00</published>
        <updated>2026-02-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0304-why-optimizing-the-user-release-experience-early-is-so-important/"/>
        <id>https://daily.bec-systems.com/0304-why-optimizing-the-user-release-experience-early-is-so-important/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0304-why-optimizing-the-user-release-experience-early-is-so-important/">&lt;p&gt;With Release First, the goal is to optimize the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0303-the-big-blue-button&#x2F;&quot;&gt;Big Blue Button&lt;&#x2F;a&gt; (make
it easy for users to use a release) early. Why is this important? There are many
reasons, but the most important is so that users actually use the release and
provide needed feedback early.&lt;&#x2F;p&gt;
&lt;p&gt;Without optimizing the release experience early (when the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0298-the-release-circle&#x2F;&quot;&gt;circle&lt;&#x2F;a&gt; is small),
developers soon become inundated with support issues as the circle grows.
Pretty soon the developers are doing nothing but support. Optimizing the user
experience early enables scaling.&lt;&#x2F;p&gt;
&lt;p&gt;Fix things early, when the stakes are low, not after the BIG 1.0 Release.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;optimizing-release-experience-early.png&quot; alt=&quot;Optimize Early vs Late&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔵 The Big Blue Button</title>
        <published>2026-02-24T00:00:00+00:00</published>
        <updated>2026-02-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0303-the-big-blue-button/"/>
        <id>https://daily.bec-systems.com/0303-the-big-blue-button/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0303-the-big-blue-button/">&lt;p&gt;In the past days, we&#x27;ve been focusing on the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0299-the-big-green-button&#x2F;&quot;&gt;Big Green Button&lt;&#x2F;a&gt;,
but there is another side of this - what happens after the release? Does the
release get used? If not, why not? If a release does not get used, there is
little point in releasing.&lt;&#x2F;p&gt;
&lt;p&gt;There are several aspects to consider in the usability of a release:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Communicating to users that a release is available and relevant to them.&lt;&#x2F;li&gt;
&lt;li&gt;Making it easy to consume the release.&lt;&#x2F;li&gt;
&lt;li&gt;An efficient way to support and get feedback from users.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;We have a Big Green Button to create a release, so let&#x27;s continue the analogy
with a Big Blue Button that makes it easy for a user to consume a release. We
can&#x27;t just throw something over the wall (that may be technically very good and
complete) and expect magic to happen without any consideration for the user.
What does the Big Blue Button include?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Clear documentation, tutorials, videos.&lt;&#x2F;li&gt;
&lt;li&gt;Well organized assets that are consistent from release to release.&lt;&#x2F;li&gt;
&lt;li&gt;An easy way to obtain&#x2F;install&#x2F;update the release.&lt;&#x2F;li&gt;
&lt;li&gt;Built-in help functionality, diagnostics, automated error reporting.&lt;&#x2F;li&gt;
&lt;li&gt;A community where the user feels included, supported, and part of something
bigger than themselves. This is important to have, even early on when the
internal team is the only user base.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;One of the key warning flags is when a bunch of hand-holding and personalized
help is required for someone to use a release. Can manufacturing take what the
team produced and run with it? Can someone use a software service without
personalized support? Can someone set up and configure a product without a dozen
support calls? The point is not to avoid talking to users, but rather to talk to
them after they have used the product and can add value to the development
process.&lt;&#x2F;p&gt;
&lt;p&gt;There needs to be a symmetry between the Big Green Button and the Big Blue
Button - easy to produce and easy to consume, otherwise the flow will stall.
These are the factors that will differentiate developers and products in the AI
age.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;the-big-blue-button.png&quot; alt=&quot;Big Green Button to Big Blue Button flow with feedback loop&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧠 The Human Factors</title>
        <published>2026-02-23T00:00:00+00:00</published>
        <updated>2026-02-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0302-the-human-factors/"/>
        <id>https://daily.bec-systems.com/0302-the-human-factors/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0302-the-human-factors/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;gerald-weinberg&#x2F;1657&quot;&gt;Gerald M. Weinberg&lt;&#x2F;a&gt; once
said:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;No matter what the problem is, it&#x27;s always a people problem. — Gerald M.
Weinberg&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;At its heart, release-first addresses the human element:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Our propensity to procrastinate in getting releases out.&lt;&#x2F;li&gt;
&lt;li&gt;Our fear that something might be broken in the release.&lt;&#x2F;li&gt;
&lt;li&gt;Our tendency to think short-term instead of long-term.&lt;&#x2F;li&gt;
&lt;li&gt;Our tendency to rush on to the next feature before finishing the one we
started.&lt;&#x2F;li&gt;
&lt;li&gt;Our tendency to skip tests when writing code.&lt;&#x2F;li&gt;
&lt;li&gt;Our OCD in needing to perfect something before anyone else can see it.&lt;&#x2F;li&gt;
&lt;li&gt;And the list goes on &lt;em&gt;ad infinitum&lt;&#x2F;em&gt; ...&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Release-first at its core is a way to address human weaknesses. It is a simple
tweak in our behavior that anyone can do. It is a language that everyone can
understand. It can be measured by anyone without fancy tools. It is so absurdly
simple that most people will write it off as &quot;obvious&quot; or &quot;too simple&quot; and
instead reach to the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;world.hey.com&#x2F;dhh&#x2F;merchants-of-complexity-4851301b&quot;&gt;merchants of complexity&lt;&#x2F;a&gt;.
But true effectiveness comes when we reduce things to the simplest form
possible, and remove all the accidental complexity.&lt;&#x2F;p&gt;
&lt;p&gt;So the next time you&#x27;re struggling with a release process, a testing gap, or a
feature that never quite ships — remember Weinberg. The problem isn&#x27;t the tools,
the framework, or the process. It&#x27;s us. Release-first works because it doesn&#x27;t
try to engineer around human nature — it simply makes the right behavior the
default behavior.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;the-human-factors.png&quot; alt=&quot;The Human Factors&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>☝️ What do we mean by &quot;First&quot;?</title>
        <published>2026-02-20T00:00:00+00:00</published>
        <updated>2026-02-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0301-what-is-release-first/"/>
        <id>https://daily.bec-systems.com/0301-what-is-release-first/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0301-what-is-release-first/">&lt;p&gt;What do we mean by Release &quot;First&quot;? Several things:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;First in the &lt;strong&gt;timeline&lt;&#x2F;strong&gt; of development.&lt;&#x2F;li&gt;
&lt;li&gt;First thing we &lt;strong&gt;focus&lt;&#x2F;strong&gt; on during implementation.&lt;&#x2F;li&gt;
&lt;li&gt;First &lt;strong&gt;priority&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Simply put, implement the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0299-the-big-green-button&#x2F;&quot;&gt;Big Green Button&lt;&#x2F;a&gt;
before implementing the actual deliverable. This might include:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Tests&lt;&#x2F;li&gt;
&lt;li&gt;CI&#x2F;CD&lt;&#x2F;li&gt;
&lt;li&gt;Build automation&lt;&#x2F;li&gt;
&lt;li&gt;Deployment scripts&lt;&#x2F;li&gt;
&lt;li&gt;PCB release automation&lt;&#x2F;li&gt;
&lt;li&gt;Clear user documentation&lt;&#x2F;li&gt;
&lt;li&gt;etc.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This becomes part of the review process, part of the culture, part of the
expectation, and part of the daily habit — make it easy to release.&lt;&#x2F;p&gt;
&lt;p&gt;Because the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0299-the-big-green-button&#x2F;&quot;&gt;Big Green Button&lt;&#x2F;a&gt;
does not ship to customers, forgetting and neglecting this step comes naturally.
Release First is a simple hack to ensure it gets done before the rush to do
other things.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;what-is-release-first.png&quot; alt=&quot;Release First: release infrastructure before the deliverable&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🟢 What is in the Big Green Button?</title>
        <published>2026-02-18T00:00:00+00:00</published>
        <updated>2026-02-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0300-what-is-in-the-big-green-button/"/>
        <id>https://daily.bec-systems.com/0300-what-is-in-the-big-green-button/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0300-what-is-in-the-big-green-button/">&lt;p&gt;As previously stated, the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0299-the-big-green-button&#x2F;&quot;&gt;Big Green Button&lt;&#x2F;a&gt;
enables teams to quickly and confidently release. But what is the Big Green
Button? Several things come to mind:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Automation that translates code&#x2F;design&#x2F;docs&#x2F;models into assets others can use.&lt;&#x2F;li&gt;
&lt;li&gt;Automated testing that builds confidence in the release.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;These save developers time by avoiding repetitive, tedious tasks, avoiding
mistakes, and reducing support load. These investments have a very quick
payback.&lt;&#x2F;p&gt;
&lt;p&gt;The point with the Big Green Button analogy is that once we have a Big Green
Button, we don&#x27;t think about what is inside the button every time we release,
our minds are free to focus on other things.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;what-is-in-the-big-green-button.png&quot; alt=&quot;What is in the Big Green Button&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🟢 The Big Green Button</title>
        <published>2026-02-17T00:00:00+00:00</published>
        <updated>2026-02-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0299-the-big-green-button/"/>
        <id>https://daily.bec-systems.com/0299-the-big-green-button/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0299-the-big-green-button/">&lt;p&gt;The word &quot;release&quot; can be a noun (what gets released) or a verb (the process of
producing a release). &quot;What&quot; and &quot;How&quot;.&lt;&#x2F;p&gt;
&lt;p&gt;Many teams produce complete high-quality releases that allow them to produce or
deploy something at some point in time. However, each new release requires
significant manual effort:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Manually testing software to make sure it is solid.&lt;&#x2F;li&gt;
&lt;li&gt;Manually going through the process of generating output formats, and updating
drawings for manufacturing. This might involve double-checking the output
files.&lt;&#x2F;li&gt;
&lt;li&gt;Manually updating BOMs and top level information.&lt;&#x2F;li&gt;
&lt;li&gt;Manually updating instructions, manuals, and other released documentation.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;An alternative to the above is the &quot;Big Green Button&quot; - a single step that can
convert designs&#x2F;code&#x2F;models&#x2F;documentation into something others (manufacturing,
sales, customers, stakeholders, etc.) can use. This is the critical point - do
you have a &quot;Big Green Button&quot;? Without one, releases naturally get delayed until
the last minute — losing opportunities for critical early feedback and the
ability to quickly response to new issues or needs.&lt;&#x2F;p&gt;
&lt;p&gt;The Big Green Button is what gets the work from developers to users - quickly
and confidently. And this is something &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bec-systems.com&#x2F;&quot;&gt;BEC&lt;&#x2F;a&gt; can help
with.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;the-big-green-button.png&quot; alt=&quot;The Big Green Button&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 The release circle</title>
        <published>2026-02-16T00:00:00+00:00</published>
        <updated>2026-02-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0298-the-release-circle/"/>
        <id>https://daily.bec-systems.com/0298-the-release-circle/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0298-the-release-circle/">&lt;p&gt;As previously discussed, a release is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0278-what-is-a-release&#x2F;&quot;&gt;useful and quality&lt;&#x2F;a&gt;.
What counts as a release? One way to think about this is to view the release as
a circle with two attributes:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;What (it contains)&lt;&#x2F;li&gt;
&lt;li&gt;Who (it&#x27;s for)&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Initially, there is not much in the circle (perhaps only a specification), and
only the development team and a few others in the organization are interested.
But it is something that can be used and built upon. The team will change and
expand it, but it will continue to exist in some form in all future releases.
This might start with a spec, then a UI prototype in the cloud, then a device
prototype based on a single-board-computer, then a custom system-on-module PCB,
and so on. As time goes on, the functionality expands and improves.&lt;&#x2F;p&gt;
&lt;p&gt;The circle of who uses a release also expands over time, to include sales and
marketing, management, beta-customers, and finally a general product release.
Over time, the number of customers also grows to include more varied use cases.&lt;&#x2F;p&gt;
&lt;p&gt;The key point is to release a small slice of &lt;em&gt;permanent&lt;&#x2F;em&gt; functionality early,
and then continue to grow&#x2F;add slices and the number of people who use the
product &lt;em&gt;during the product development cycle&lt;&#x2F;em&gt;. Waiting until the BIG Release is
too late. It&#x27;s OK to start small. As long as it&#x27;s
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0278-what-is-a-release&#x2F;&quot;&gt;a release&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;But there are things that are not a release:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Emails&lt;&#x2F;li&gt;
&lt;li&gt;Messages&lt;&#x2F;li&gt;
&lt;li&gt;Meetings&lt;&#x2F;li&gt;
&lt;li&gt;Memos&lt;&#x2F;li&gt;
&lt;li&gt;Experiments&lt;&#x2F;li&gt;
&lt;li&gt;Prototypes (that are not released)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Why? Because this information is not permanent. While others consume it and find
it very useful, it is transitory and cannot be continually used, refined, and
improved over time. It is one-off communication.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;the-release-circle.png&quot; alt=&quot;The Release Circle&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧩 Why things fall apart at the end</title>
        <published>2026-02-11T00:00:00+00:00</published>
        <updated>2026-02-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0297-why-things-fall-apart-at-the-end/"/>
        <id>https://daily.bec-systems.com/0297-why-things-fall-apart-at-the-end/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0297-why-things-fall-apart-at-the-end/">&lt;p&gt;As discussed in the previous two posts, things often go haywire near the end of
a project cycle, right before the BIG Release. Why is this? Things seem to go so
well at the beginning of the project. While it is impossible to detail every
reason this happens, a few are listed below.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Technical debt&lt;&#x2F;strong&gt; occurs when problems are half-solved. Things appear to work,
but edge cases and inadequate testing lurk beneath the surface. As time
progresses, the system becomes more fragile, and significant amounts of time go
toward fighting bugs and unplanned problems.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Scope creep&lt;&#x2F;strong&gt; is a common phenomenon where features continually accumulate
throughout the project. Some of this is natural if it&#x27;s based on user feedback
and learning while implementing. However, there is an unnatural scope creep
rooted in engineering whims, just-in-case thinking, and a developer&#x27;s natural
propensity toward complexity. Just because something can be done does not mean
it should be.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Integration issues&lt;&#x2F;strong&gt; occur when one piece of work combines with another. This
is often when new edge cases surface.&lt;&#x2F;p&gt;
&lt;p&gt;Not correctly anticipating &lt;strong&gt;user needs&lt;&#x2F;strong&gt; is another problem. A team may build
something thinking the requirements are understood, but it is not until people
start using it that the real needs emerge.&lt;&#x2F;p&gt;
&lt;p&gt;Lastly, there are &lt;strong&gt;unknowns&lt;&#x2F;strong&gt; that simply cannot be anticipated. Complex
systems are just that — impossible to completely understand. People involved at
every level are fallible and unpredictable. A large amount of uncertainty simply
cannot be known or predicted up front.&lt;&#x2F;p&gt;
&lt;p&gt;The simplest way to address all of these issues is to move the end closer to the
beginning — Release First.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;why-things-fall-apart-at-the-end.png&quot; alt=&quot;Why things fall apart at the end&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🪞 The illusion of project meta-data</title>
        <published>2026-02-10T00:00:00+00:00</published>
        <updated>2026-02-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0296-the-illusion-of-project-meta-data/"/>
        <id>https://daily.bec-systems.com/0296-the-illusion-of-project-meta-data/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0296-the-illusion-of-project-meta-data/">&lt;p&gt;Many tools exist for managing and tracking projects: Jira, Trello, GitHub
projects&#x2F;issues, Notion, Airtable, Asana, MS Project, etc. These all can be very
useful. Why then does effective project tracking remain so elusive? As mentioned
in the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0295-what-is-the-1-problem-in-product-development&#x2F;&quot;&gt;previous post&lt;&#x2F;a&gt;,
in a typical scenario, things appear to progress well. Issues get checked off.
The burn-down chart tracks the line. But out of nowhere, monsters (bugs,
unanticipated feature requests, and integration problems) appear that catch
everyone off guard.&lt;&#x2F;p&gt;
&lt;p&gt;Several factors contribute to this problem. Foremost, the meta-data is exactly
that — &quot;meta.&quot; It is data about something; it is not the thing. There is no
guarantee it is complete and accurate. If the focus stays on the meta-data, the
meta-data will (perhaps unknowingly) be gamed to look good. If developers get
rewarded for checking issues off every sprint, they will eventually make sure
that happens, even though quality, maintainability, and other factors suffer.&lt;&#x2F;p&gt;
&lt;p&gt;I love tools, and use them every chance I get. I write
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;brun&quot;&gt;new tools&lt;&#x2F;a&gt; to solve problems. Tools are what
amplify our efforts. But tools in themselves don&#x27;t seem to be the answer. How
can we ensure our meta-data is accurate and not missing things? How can we know
our tools are not lying to us?&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;the-illusion-of-project-meta-data.png&quot; alt=&quot;The illusion of project meta-data&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚢 What is the #1 problem in product development?</title>
        <published>2026-02-09T00:00:00+00:00</published>
        <updated>2026-02-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0295-what-is-the-1-problem-in-product-development/"/>
        <id>https://daily.bec-systems.com/0295-what-is-the-1-problem-in-product-development/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0295-what-is-the-1-problem-in-product-development/">&lt;p&gt;I&#x27;ll go first ... a very common challenge is shipping on time and the resulting
uncertainty to the business. We often add a 2-3x factor on any estimates, but
sometimes even that is not enough.&lt;&#x2F;p&gt;
&lt;p&gt;Shipping (delivering value) is the bottom line — it generates revenue and
sustains the business. Delivering new products on time and providing subsequent
updates are critical. Without shipping, there is no value delivery. Often
businesses collaborate with customers throughout the development process. When
things are late, customers and partners lose confidence. Development team morale
tanks. It&#x27;s a downward spiral.&lt;&#x2F;p&gt;
&lt;p&gt;This problem has an even more painful manifestation — finding out just before the
BIG Release date that things are not coming together. As the saying goes, the
last 10% takes 90% of the time.
Surprises like this are devastating to everyone involved. Why do things fall
apart near the &quot;end&quot; of a project? Why don&#x27;t these issues surface sooner? These
are complex and perplexing problems, but worth exploring in the coming days.
Thoughts on this are always welcome.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;number-1-problem-product-dev.png&quot; alt=&quot;The #1 Problem in Product Development&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📦 More definitions of a release</title>
        <published>2026-02-04T00:00:00+00:00</published>
        <updated>2026-02-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0294-more-definitions-of-a-release/"/>
        <id>https://daily.bec-systems.com/0294-more-definitions-of-a-release/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0294-more-definitions-of-a-release/">&lt;p&gt;A release must be: &lt;em&gt;reliable, useful, repeatable, and predictable&lt;&#x2F;em&gt;. This
delivers outcomes of: &lt;em&gt;quality, value, timeliness, and consistency&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The second group is the outcome we want, the first group is what we focus on to
get there.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;release-definitions.png&quot; alt=&quot;Release definitions: focus on reliable, useful, repeatable, predictable to achieve quality, value, timeliness, and consistency&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛠️ Do things that don&#x27;t scale</title>
        <published>2026-02-03T00:00:00+00:00</published>
        <updated>2026-02-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0293-do-things-that-don-t-scale/"/>
        <id>https://daily.bec-systems.com/0293-do-things-that-don-t-scale/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0293-do-things-that-don-t-scale/">&lt;p&gt;From Paul Graham&#x27;s popular essay
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;paulgraham.com&#x2F;ds.html&quot;&gt;Do Things That Don&#x27;t Scale&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Over-engaging with early users is not just a permissible technique for getting
growth rolling. For most successful startups it&#x27;s a necessary part of the
feedback loop that makes the product good. Making a better mousetrap is not an
atomic operation. Even if you start the way most successful startups have, by
building something you yourself need, the first thing you build is never quite
right. And except in domains with big penalties for making mistakes, it&#x27;s
often better not to aim for perfection initially. In software, especially, it
usually works best to get something in front of users as soon as it has a
quantum of utility, and then see what they do with it. Perfectionism is often
an excuse for procrastination, and in any case your initial model of users is
always inaccurate, even if you&#x27;re one of
them. &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;paulgraham.com&#x2F;ds.html#f7n&quot;&gt;7&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The feedback you get from engaging directly with your earliest users will be
the best you ever get. When you&#x27;re so big you have to resort to focus groups,
you&#x27;ll wish you could go over to your users&#x27; homes and offices and watch them
use your stuff like you did when there were only a handful of them.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I should mention one sort of initial tactic that usually doesn&#x27;t work: &lt;strong&gt;the
Big Launch&lt;&#x2F;strong&gt;. I occasionally meet founders who seem to believe startups are
projectiles rather than powered aircraft, and that they&#x27;ll make it big if and
only if they&#x27;re launched with sufficient initial velocity. They want to launch
simultaneously in 8 different publications, with embargoes. And on a Tuesday,
of course, since they read somewhere that&#x27;s the optimum day to launch
something.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s easy to see how little launches matter. Think of some successful
startups. How many of their launches do you remember? All you need from a
launch is some initial core of users. How well you&#x27;re doing a few months later
will depend more on how happy you made those users than how many there were of
them. &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;paulgraham.com&#x2F;ds.html#f10n&quot;&gt;10&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;So why do founders think launches matter? A combination of solipsism and
laziness. They think what they&#x27;re building is so great that everyone who hears
about it will immediately sign up. Plus it would be so much less work if you
could get users merely by broadcasting your existence, rather than recruiting
them one at a time. But even if what you&#x27;re building really is great, getting
users will always be a gradual process — partly because great things are
usually also novel, but mainly because users have other things to think about.&lt;&#x2F;p&gt;
&lt;p&gt;Partnerships too usually don&#x27;t work. They don&#x27;t work for startups in general,
but they especially don&#x27;t work as a way to get growth started. It&#x27;s a common
mistake among inexperienced founders to believe that a partnership with a big
company will be their big break. Six months later they&#x27;re all saying the same
thing: that was way more work than we expected, and we ended up getting
practically nothing out of it. &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;paulgraham.com&#x2F;ds.html#f11n&quot;&gt;11&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s not enough just to do something extraordinary initially. You have to make
an extraordinary &lt;em&gt;effort&lt;&#x2F;em&gt; initially. Any strategy that omits the effort —
whether it&#x27;s expecting a big launch to get you users, or a big partner — is
ipso facto suspect.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;What Paul is talking about here is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0278-what-is-a-release&#x2F;&quot;&gt;Release First&lt;&#x2F;a&gt; — the
extremely tedious, manual effort required to get usable stuff in front of real
users. There is no substitute.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;do-things-that-dont-scale.png&quot; alt=&quot;Do things that don&amp;#39;t scale&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔮 Can we predict product development schedules?</title>
        <published>2026-02-02T00:00:00+00:00</published>
        <updated>2026-02-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0292-can-we-predict-product-development-schedules/"/>
        <id>https://daily.bec-systems.com/0292-can-we-predict-product-development-schedules/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0292-can-we-predict-product-development-schedules/">&lt;p&gt;Estimating or predicting product development is difficult. Teams often end up
adding a 2-3x padding to any estimate, because bitter experience has taught them
not to depend on their own estimates.&lt;&#x2F;p&gt;
&lt;p&gt;There will always be a high degree of variability in product development,
especially software development. Product development involves doing something
new. Teams discover exactly what they are building along the way. No one can
completely plan it up front.&lt;&#x2F;p&gt;
&lt;p&gt;However, we can do better. What is most damaging is not that a product is six
months late, rather it is that we did not figure this out until shortly before
the original anticipated release date.&lt;&#x2F;p&gt;
&lt;p&gt;Release First is a simple solution. By the time the planned release date comes
around, you have released dozens if not hundreds of releases. Some releases may
be documents, some may be hardware, and others software. But there have been
many opportunities for others to use something and provide feedback.
Additionally, you have had lots of practice releasing so there are no surprises.
We may have learned that it will take an extra 6 months to finish the product,
but we learned that early and the business has had time to adjust. Or we may
have gained so much efficiency through automation, and reduced wasted effort to
a level that we come out ahead of schedule (what we really want).&lt;&#x2F;p&gt;
&lt;p&gt;Release First eliminates surprises, and that is what matters in business.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;predict-schedules.png&quot; alt=&quot;Traditional vs Release First approach to product development schedules&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 How to make releases painless</title>
        <published>2026-01-29T00:00:00+00:00</published>
        <updated>2026-01-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0291-how-to-make-releases-painless/"/>
        <id>https://daily.bec-systems.com/0291-how-to-make-releases-painless/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0291-how-to-make-releases-painless/">&lt;p&gt;In the olden days, releases were a lot of work. The process involved manually
building&#x2F;testing, uploading to a distribution location, sending out
notifications to interested parties, etc. Supporting multiple platforms meant
even more work.&lt;&#x2F;p&gt;
&lt;p&gt;Today, there are better ways. With modern CI&#x2F;CD workflows, pushing a tag to a
repo triggers GitHub Actions to handle the rest.&lt;&#x2F;p&gt;
&lt;p&gt;As an example, in the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;brun&quot;&gt;BRun&lt;&#x2F;a&gt; project, there are
several key pieces:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;brun&#x2F;blob&#x2F;main&#x2F;.github&#x2F;workflows&#x2F;ci.yml&quot;&gt;Tests&lt;&#x2F;a&gt; run
on every PR commit to ensure nothing breaks.&lt;&#x2F;li&gt;
&lt;li&gt;Go makes it
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.perplexity.ai&#x2F;search&#x2F;how-to-build-a-go-app-for-othe-u_Mc7qLUTGy8bWASnzm5YA#0&quot;&gt;super easy&lt;&#x2F;a&gt;
to build for other platforms. Anyone who has cross-compiled C&#x2F;C++ knows the
pain.&lt;&#x2F;li&gt;
&lt;li&gt;The amazing &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;goreleaser.com&#x2F;&quot;&gt;GoReleaser&lt;&#x2F;a&gt; tool takes care of building
the release binaries and uploading them to GitHub.&lt;&#x2F;li&gt;
&lt;li&gt;A
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;brun&#x2F;blob&#x2F;main&#x2F;scripts&#x2F;extract-changelog.sh&quot;&gt;script&lt;&#x2F;a&gt;
automatically extracts the Changelog for the release that gets added to the
Release.&lt;&#x2F;li&gt;
&lt;li&gt;A GitHub action runs GoReleaser whenever the repo is tagged with &#x27;v*&#x27;.&lt;&#x2F;li&gt;
&lt;li&gt;GitHub sends notifications to watchers of the project. (Consider watching the
BRun project!)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The result is &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;brun&#x2F;releases&quot;&gt;beautiful releases&lt;&#x2F;a&gt; for
every platform (Windows, MacOS, Linux, ARM, x86, RISC-V) created whenever
anything is improved, no matter how small. There is no friction to creating a
release.&lt;&#x2F;p&gt;
&lt;p&gt;Part of making all this happen is choosing the right technology. When it comes
to release and deployment, Go makes things really easy (compared to C++, Python,
Ruby, Java, etc.). There are trade-offs so make sure release is factored into
technology decisions. One way to ensure this happens is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0277-shipping-faster-leads-to-predictability&#x2F;&quot;&gt;do it first&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;painless-releases.png&quot; alt=&quot;Painless releases diagram&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📖 When should you write the user manual?</title>
        <published>2026-01-27T00:00:00+00:00</published>
        <updated>2026-01-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0290-when-should-you-write-the-user-manual/"/>
        <id>https://daily.bec-systems.com/0290-when-should-you-write-the-user-manual/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0290-when-should-you-write-the-user-manual/">&lt;p&gt;Most of the time, teams write the user manual at the end of a product
development cycle right before the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0251-the-big-release-vs-a-continuous-flow-of-value&#x2F;&quot;&gt;Big 1.0 Release&lt;&#x2F;a&gt;.
It is one of those things that is not much fun, and teams subconsciously put it
off while fighting bigger fires. But what would happen if we write the user
manual first - even before the product spec? Some things that might happen:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;We might think a little more from the user&#x27;s perspective during the
development.&lt;&#x2F;li&gt;
&lt;li&gt;Our upfront thinking would improve through the process of writing.&lt;&#x2F;li&gt;
&lt;li&gt;Internal&#x2F;beta releases would have documentation, allowing others to use them
without a lot of hand-holding (saving developers time).&lt;&#x2F;li&gt;
&lt;li&gt;We would get feedback on the user manual early in the development process so
it could be improved before release.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Good user documentation is part of a good release - it helps make the release
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0278-what-is-a-release&#x2F;&quot;&gt;useful&lt;&#x2F;a&gt;. With
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tmpdir-org&#x2F;tmpdir-claude-code-marketplace&#x2F;blob&#x2F;main&#x2F;doc-driven-development&#x2F;README.md&quot;&gt;doc-driven development&lt;&#x2F;a&gt;,
I typically start at the repository
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;README&quot;&gt;README.md&lt;&#x2F;a&gt; or other documentation close
to the code, but why not start with the user manual and derive more from that.
Start with the experience you want the user to have. Reverse the process.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;user-manual-timing.png&quot; alt=&quot;User manual timing comparison&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎬 Is a Demo the same as a Release?</title>
        <published>2026-01-26T00:00:00+00:00</published>
        <updated>2026-01-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0289-is-a-demo-the-same-as-a-release/"/>
        <id>https://daily.bec-systems.com/0289-is-a-demo-the-same-as-a-release/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0289-is-a-demo-the-same-as-a-release/">&lt;p&gt;Some development teams have a weekly demo where they might show what they are
working on to others in the company or the customer, which is a great idea as it
encourages hitting milestones and early feedback. However, is the &quot;demo&quot; just
another name for an &quot;internal release?&quot;&lt;&#x2F;p&gt;
&lt;p&gt;The &quot;release&quot; and &quot;demo&quot; mindsets have some differences. For a demo, quality or
automation may not be a priority. Engineers may record a video or present the
demo. Again, all of these are great ideas and should be done, but they are not a
release.&lt;&#x2F;p&gt;
&lt;p&gt;The key thing about a release is that someone else, other than the developers,
uses it. And the developers are confident enough to let other people use it.
This difference seems small on the surface, but is huge underneath. A release
comes with an expectation that drives automation and quality. The demo can
become a crutch that allows teams to avoid the hard work of delivering something
others can use. The mindset matters.&lt;&#x2F;p&gt;
&lt;p&gt;Again, the first internal release need not be feature complete and polished, but
whatever slice of functionality the team delivers should be usable by others
without a lot of props and hand-holding. Beware of proxies for delivering real
value: demos, closing tickets, milestones, etc. While these are all useful
tools, they are not an end in themselves. Measure value, not proxies.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;demo-vs-release.png&quot; alt=&quot;Demo vs Release&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⏱️ How do you find time for higher value tasks?</title>
        <published>2026-01-23T00:00:00+00:00</published>
        <updated>2026-01-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0288-how-do-you-find-time-for-higher-value-tasks/"/>
        <id>https://daily.bec-systems.com/0288-how-do-you-find-time-for-higher-value-tasks/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0288-how-do-you-find-time-for-higher-value-tasks/">&lt;p&gt;Do you (and by extension your organization) find yourself mired in minutia and
struggling to find time for higher value tasks? What is the solution?&lt;&#x2F;p&gt;
&lt;p&gt;You can hire more people to do the lower-value stuff (a perfectly valid
approach). You can also own
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0018-what-is-a-platform-v2&#x2F;&quot;&gt;YOUR Platform&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;One of the goals of
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0277-shipping-faster-leads-to-predictability&#x2F;&quot;&gt;Release First&lt;&#x2F;a&gt;&#x2F;Platform
Thinking is to shift time from low-value tasks (tedious repetitive work) to
high-value tasks (creative, innovative work).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;higher-value-tasks.png&quot; alt=&quot;Platform Thinking shifts time from tedious work to creative work&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚖️ Reliability tradeoffs</title>
        <published>2026-01-22T00:00:00+00:00</published>
        <updated>2026-01-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0287-reliability-tradeoffs/"/>
        <id>https://daily.bec-systems.com/0287-reliability-tradeoffs/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0287-reliability-tradeoffs/">&lt;p&gt;Recently, one of our servers running Arch Linux refused to boot after updates.
The fix was to comment out a line in the &lt;code&gt;&#x2F;etc&#x2F;default&#x2F;grub&lt;&#x2F;code&gt; file. It took
about 15 minutes to find and everything was done in a rescue terminal — no need
to boot from a rescue image. This server has been running for several
years, been updated hundreds of times, and this is the only time it would not boot.&lt;&#x2F;p&gt;
&lt;p&gt;Many dismiss Arch as a server OS because there is supposedly a higher likelihood
of things like the above happening. But in practice, they rarely happen and are
fairly quick to fix. So on one side of the equation:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Easy to administer OS, latest software, no OS upgrades, etc. This saves a ton
of time.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;On the other side:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Occasional effort to fix an issue like the above.&lt;&#x2F;li&gt;
&lt;li&gt;Downtime while doing the above.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;For a high-profile eCommerce site, downtime would matter, but for a small
business, 30 minutes of downtime makes no practical difference. The time saved
running Arch greatly swamps (by an order of magnitude or two) the time spent
fixing things that break. Admin time is many times more valuable than server
up-time. Even spending half a day rebuilding the site from scratch (which is
mostly automated) would not matter.&lt;&#x2F;p&gt;
&lt;p&gt;There is no one-size-fits-all. Just because Summit Federal Bank runs Crucible
Linux Enterprise edition does not mean everyone else needs to. Always consider
the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0163-the-entire-story&#x2F;&quot;&gt;benefit-cost ratio (BCR)&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;reliability-tradeoffs.png&quot; alt=&quot;Reliability tradeoffs&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚖️ Reliability, Cost, and Value</title>
        <published>2026-01-19T00:00:00+00:00</published>
        <updated>2026-01-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0286-reliability-cost-and-value/"/>
        <id>https://daily.bec-systems.com/0286-reliability-cost-and-value/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0286-reliability-cost-and-value/">&lt;p&gt;Everything has a cost and value to the customer. How much value does the
customer put on 99.999% reliability vs the value of other features they need? If
one system out of a thousand fails every 3 years (0.033% failure rate per year),
what does that cost compared to a set of features that allows the customer to
reduce operating costs 10%, or improve their general yearly reliability by 1%?&lt;&#x2F;p&gt;
&lt;p&gt;Certainly, safety-critical systems where human lives are involved are impossible
to quantify with simple equations. But when considering operational equipment
involving machines, understanding the real concerns of the customer and
delivering the most value becomes paramount.
Reliability&#x2F;security&#x2F;performance&#x2F;whatever is just one factor in that equation,
especially when it costs them other things they need.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;reliability-cost-value.png&quot; alt=&quot;Reliability vs other value factors on a balance scale&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔗 What defines reliability?</title>
        <published>2026-01-16T00:00:00+00:00</published>
        <updated>2026-01-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0285-what-defines-reliability/"/>
        <id>https://daily.bec-systems.com/0285-what-defines-reliability/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0285-what-defines-reliability/">&lt;p&gt;Reliability is a common concern - this thing is critical - it needs to work!&lt;&#x2F;p&gt;
&lt;p&gt;Many things affect the reliability of a system:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Bugs in software we write&lt;&#x2F;li&gt;
&lt;li&gt;Bugs in 3rd party components (OSS, etc.)&lt;&#x2F;li&gt;
&lt;li&gt;Hardware failures&lt;&#x2F;li&gt;
&lt;li&gt;Edge condition failures (things we have not tested)&lt;&#x2F;li&gt;
&lt;li&gt;Tolerance stack-ups&lt;&#x2F;li&gt;
&lt;li&gt;Damage in the field&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;The list goes on ...&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Some common assumptions:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Hardware is more reliable than software.&lt;&#x2F;li&gt;
&lt;li&gt;Safety certified operating systems are more reliable than non-certified.&lt;&#x2F;li&gt;
&lt;li&gt;US-made components are more reliable than those from other countries.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Here&#x27;s the thing ... for 99% of products, most of the above does not matter. The
&lt;strong&gt;most likely source of bugs and reliability problems is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0061-where-do-reliability-stability-problems-typically-come-from&#x2F;&quot;&gt;the stuff we did&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt;.
If SafeRTOS is 99.999% verified and Zephyr is only 99.9% verified, it does not
make much difference if the software we wrote is only 90% verified. Likewise, if
the tricky analog hardware circuit has not been tested in every edge condition
and verified at every combination of component tolerances, it may not be as
reliable as a simpler RTOS application running in an MCU.&lt;&#x2F;p&gt;
&lt;p&gt;Practical reliability is what matters, not theoretical reliability. What defines
reliability in most systems is that the design can be verified. A common MCU and
RTOS (like Zephyr) has already been extensively verified and tested to be
reliable in most conditions by many different people. Writing a relatively
simple application on top of a complex, but verified system makes the job
easier. The difficult verification work gets pushed off on someone else. This
same analysis also applies to concerns like performance and security. The system
is only as good as the weakest link. Reliability does not always directly
correlate to system complexity, but rather what percent can be proven correct.&lt;&#x2F;p&gt;
&lt;p&gt;There are no easy answers here, but don&#x27;t strain at a gnat and swallow a camel -
latching onto theoretical reliability&#x2F;performance&#x2F;security&#x2F;whatever, but
ignoring the practical concerns.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;what-defines-reliability.png&quot; alt=&quot;What defines reliability&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 Shipping faster - what are the stakes?</title>
        <published>2026-01-14T00:00:00+00:00</published>
        <updated>2026-01-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0284-shipping-faster-what-are-the-stakes/"/>
        <id>https://daily.bec-systems.com/0284-shipping-faster-what-are-the-stakes/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0284-shipping-faster-what-are-the-stakes/">&lt;p&gt;What do project delays cost? The obvious thing is the loss of revenue. Time is
money.&lt;&#x2F;p&gt;
&lt;p&gt;However, there are other less tangible consequences:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Customers lose interest.&lt;&#x2F;li&gt;
&lt;li&gt;Team loses motivation.&lt;&#x2F;li&gt;
&lt;li&gt;Supporting organizations (vendors&#x2F;communities) may not take the team as seriously.&lt;&#x2F;li&gt;
&lt;li&gt;Automating and improving the process never happens as there is more and more
pressure to ship and no time to do anything else.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Think of this as a flywheel, either speeding up or slowing down. The forces on this flywheel are imperceptible - a small push here, some
drag there.&lt;&#x2F;p&gt;
&lt;p&gt;The simplest way to speed up the product development flywheel is to ship faster
by focusing on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;#release&quot;&gt;quality releases&lt;&#x2F;a&gt;.
Start by shipping quality
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0281-standards-for-internal-vs-external-releases&#x2F;&quot;&gt;internal releases&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;shipping-faster-stakes.png&quot; alt=&quot;Product development flywheel with accelerating and drag forces&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔍 It is often more work to review something than to do it</title>
        <published>2026-01-13T00:00:00+00:00</published>
        <updated>2026-01-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0283-it-is-often-more-work-to-review-something-than-to-do-it/"/>
        <id>https://daily.bec-systems.com/0283-it-is-often-more-work-to-review-something-than-to-do-it/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0283-it-is-often-more-work-to-review-something-than-to-do-it/">&lt;p&gt;As an experienced person, I am sometimes called on to review something. This can
be a frustrating, seemingly hopeless task. With one developer, I commented that
he could write code faster than I could review it. While there are some issues
you can spot from a cursory look, most issues are subtle in nature—otherwise the
original designer would have probably caught them. Therefore, you pretty much
have to go through the entire design exercise again (especially with hardware)
to find issues. In many cases, it would have been faster to simply do it
yourself. This is the quandary many experienced developers find themselves in
when working with junior people. They are responsible (because they are the
reviewer), but feel helpless to ensure quality.&lt;&#x2F;p&gt;
&lt;p&gt;This is also the quandary we find ourselves in with AI. AI agents can write code
much faster than any human can practically review. Therefore, the thought that
&quot;with AI code, as long as we review it, we&#x27;re good&quot; is delusional. We might
pretend we are doing it, but deep inside we know we are not. AI coding has
brought this into stark reality.&lt;&#x2F;p&gt;
&lt;p&gt;Too often, reviewers receive schematics or source code with little context. What
are the goals? What is the spec? What trade-offs were considered? What
calculations were done? What edge conditions were considered? What is the
architecture? Details without the big-picture context are very difficult to work
with. While I&#x27;ve not often been party to formal code reviews in a meeting
context, I suspect these could work better than offline asynchronous reviews
because you can ask the designer questions and perhaps get some insight into the
potentially weak areas of the system.&lt;&#x2F;p&gt;
&lt;p&gt;There are ways we can help reviewers:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Clear documentation about the requirements located in the same repository as
the design&#x2F;code.&lt;&#x2F;li&gt;
&lt;li&gt;All assumptions, decisions, calculations, etc. are documented. With
schematics, as much of this as possible should be included directly in the
schematic. Use more pages if needed.&lt;&#x2F;li&gt;
&lt;li&gt;Architecture is clearly defined and documented.&lt;&#x2F;li&gt;
&lt;li&gt;All testing is documented.&lt;&#x2F;li&gt;
&lt;li&gt;All assumptions are documented.&lt;&#x2F;li&gt;
&lt;li&gt;Automated tests are created where possible.&lt;&#x2F;li&gt;
&lt;li&gt;Performance metrics and resource usage are documented and automatically tested
if possible.&lt;&#x2F;li&gt;
&lt;li&gt;Any concerns, potential weak spots, or things we&#x27;re not sure of are clearly
documented. Often the designer is the only one who has insight into this.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The point many miss here is that if we do the above, we&#x27;re mostly helping
ourselves 6 months from now.&lt;&#x2F;p&gt;
&lt;p&gt;As systems become more complex, it seems the only practical path forward is
automated testing. Chip designers figured this out a long time ago as the cost
of errors is high with full-custom silicon. Software developers are pretty good
at this with TDD (test-driven development). But, the industry needs to go one
step further and embrace end-to-end testing (which includes both hardware and
software). Perhaps the most important role of a reviewer going forward is to
ensure adequate documentation exists and tests are in place. Anything else is
futile and we&#x27;re just pretending.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;review-work-imbalance.png&quot; alt=&quot;Review work imbalance&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 How far do you take releases?</title>
        <published>2026-01-12T00:00:00+00:00</published>
        <updated>2026-01-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0282-how-far-do-you-take-releases/"/>
        <id>https://daily.bec-systems.com/0282-how-far-do-you-take-releases/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0282-how-far-do-you-take-releases/">&lt;p&gt;Thus far, we have defined a release as something that is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0278-what-is-a-release&#x2F;&quot;&gt;useful and high-quality&lt;&#x2F;a&gt;.
Typically, we think of a release as something formal - v1.3.8 that is packaged,
built, and announced. But we can push this further. What about pull requests? Is
every pull request that is merged at the same standard? Or do we merge them and
hope that something later in the process will magically transform the work into
something better? &quot;Later never comes&quot; - especially in complex systems.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;how-far-do-you-take-releases.png&quot; alt=&quot;How far do you take releases?&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Open-source projects have figured this out. The standard for getting a PR merged
is incredibly high in most projects. Why? Because there is no business pressure
to merge it, but rather the fear of having to maintain something that is
substandard. The maintainers are looking out for their own selfish interests,
but these interests happen to align with the realities of this kind of work.
Fixing something after the fact is so much harder than doing it right in the
first place. As a result, most OSS projects maintain fairly high quality at any
point in their development. This is one reason Arch Linux
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0125-how-can-arch-linux-get-by-without-releases&#x2F;&quot;&gt;works so well&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;While there is a place for brainstorming, prototyping, experimenting, etc., this
will not get you very far developing a real product. The earlier you push the
&quot;release mentality&quot; into the development process, the faster you&#x27;ll move. Maybe
not in the initial steps, but for sure once you are a third of the way through
the development cycle. Do you want to save time on the first third, or the last
two thirds of the development cycle? Hint, the Law of Compounding is at work
here ...&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;compounding-time-savings.png&quot; alt=&quot;Compounding time savings&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎯 Standards for internal vs external releases</title>
        <published>2026-01-09T00:00:00+00:00</published>
        <updated>2026-01-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0281-standards-for-internal-vs-external-releases/"/>
        <id>https://daily.bec-systems.com/0281-standards-for-internal-vs-external-releases/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0281-standards-for-internal-vs-external-releases/">&lt;p&gt;It is natural to think of internal releases as &quot;low stakes&quot; - if it crashes and
burns, no big deal. It&#x27;s just an experiment, right? Near production release,
we&#x27;ll toss it over the wall to QA&#x2F;Manufacturing and find all the issues.&lt;&#x2F;p&gt;
&lt;p&gt;This is partly true, and partly false. While it is true a product should get
better over the development cycle, it is helpful to apply the same standards for
internal releases as external for the following reasons:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;It forces an emphasis on quality early.&lt;&#x2F;li&gt;
&lt;li&gt;It results in automated testing.&lt;&#x2F;li&gt;
&lt;li&gt;There will be fewer surprises late in the development cycle.&lt;&#x2F;li&gt;
&lt;li&gt;Integration with other groups happens earlier (Quality, Sales, Manufacturing,
Customers).&lt;&#x2F;li&gt;
&lt;li&gt;It is much easier to build prototypes when quality is high.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This does not mean the entire product needs to be perfect on day one - that is
impossible, as the product is not done - just the work already completed,
however small that may be. Is this tiny bit of work done to high standards? Is
it testable, manufacturable, etc.? Is it
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0278-what-is-a-release&#x2F;&quot;&gt;useful&lt;&#x2F;a&gt; to someone?&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s the thing - it is much easier to apply high standards to small bits of
work as you go, than retroactively fix it late in the game. It is not a waste of
time, rather it is only way that works in developing modern systems.&lt;&#x2F;p&gt;
&lt;p&gt;If internal releases are not at the same standard as external releases, they are
not releases, they are something else.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;internal-vs-external-releases.png&quot; alt=&quot;Internal vs External Releases&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📦 What do we release?</title>
        <published>2026-01-08T00:00:00+00:00</published>
        <updated>2026-01-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0280-what-do-we-release/"/>
        <id>https://daily.bec-systems.com/0280-what-do-we-release/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0280-what-do-we-release/">&lt;p&gt;&lt;strong&gt;Everything!&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Documentation&lt;&#x2F;li&gt;
&lt;li&gt;Hardware&lt;&#x2F;li&gt;
&lt;li&gt;Software&lt;&#x2F;li&gt;
&lt;li&gt;Prototypes&lt;&#x2F;li&gt;
&lt;li&gt;Products&lt;&#x2F;li&gt;
&lt;li&gt;Lunch&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Engineering is fundamentally the act of creating something new. And that
something new needs to be useful to someone or something. And the way we deliver
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0278-what-is-a-release&#x2F;&quot;&gt;&quot;useful&quot; is the release.&lt;&#x2F;a&gt;
If we&#x27;re not releasing, we&#x27;re not delivering.&lt;&#x2F;p&gt;
&lt;p&gt;We might be polishing, researching, thinking, perfecting, stalling, loafing,
dreaming, but we&#x27;re not delivering.&lt;&#x2F;p&gt;
&lt;p&gt;The &quot;release&quot; mindset brings the focus to delivering value.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;what-do-we-release.png&quot; alt=&quot;What do we release - items flowing into releases, delivering products, lunch, and value&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤝 A release is what unifies Engineering and Business</title>
        <published>2026-01-07T00:00:00+00:00</published>
        <updated>2026-01-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0279-a-release-is-what-unifies-engineering-and-business/"/>
        <id>https://daily.bec-systems.com/0279-a-release-is-what-unifies-engineering-and-business/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0279-a-release-is-what-unifies-engineering-and-business/">&lt;p&gt;Some feedback on yesterday&#x27;s post
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0278-what-is-a-release&#x2F;&quot;&gt;What is a release&lt;&#x2F;a&gt;):&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;What specifically flows into the two points? Value? Effort?&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Perhaps a better way to phrase this is these are the two points of focus that
unify the development team with the rest of the business organization. And the
release is the container.&lt;&#x2F;p&gt;
&lt;p&gt;Documentation, specifications, innovation, new technology, etc. flow into the
&lt;strong&gt;useful&lt;&#x2F;strong&gt; point.&lt;&#x2F;p&gt;
&lt;p&gt;Testing and automation flow into the &lt;strong&gt;confidence&lt;&#x2F;strong&gt; point.&lt;&#x2F;p&gt;
&lt;p&gt;The business value that flows out of the &lt;strong&gt;useful&lt;&#x2F;strong&gt; point is user value, profit,
increasing sales, etc.&lt;&#x2F;p&gt;
&lt;p&gt;From the &lt;strong&gt;confidence&lt;&#x2F;strong&gt; point flows quality and responsiveness.&lt;&#x2F;p&gt;
&lt;p&gt;But these two points give us a simple way to focus and evaluate a release - is
it any good? Is everything we are doing as engineers contributing to these
points?&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;release-unifies-engineering-business.png&quot; alt=&quot;Release unifies engineering and business&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📦 What is a release?</title>
        <published>2026-01-06T00:00:00+00:00</published>
        <updated>2026-01-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0278-what-is-a-release/"/>
        <id>https://daily.bec-systems.com/0278-what-is-a-release/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0278-what-is-a-release/">&lt;p&gt;There are two aspects of a product release:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Something &lt;strong&gt;useful&lt;&#x2F;strong&gt; that others can experience.&lt;&#x2F;li&gt;
&lt;li&gt;Produced with a high level of &lt;strong&gt;confidence&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Everything flows into these two points.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;what-is-a-release.png&quot; alt=&quot;What is a release&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 Shipping faster leads to predictability</title>
        <published>2026-01-05T00:00:00+00:00</published>
        <updated>2026-01-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0277-shipping-faster-leads-to-predictability/"/>
        <id>https://daily.bec-systems.com/0277-shipping-faster-leads-to-predictability/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0277-shipping-faster-leads-to-predictability/">&lt;p&gt;Shipping faster does not only mean getting to v1.0 faster (or even on time), but
also many internal releases at a good rate. This is the &lt;strong&gt;only way&lt;&#x2F;strong&gt; to bring
predictability into the development process.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;shipping-faster-predictability.png&quot; alt=&quot;Shipping faster leads to predictability&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔗 Platform thinking does not mean we don&#x27;t use other platforms</title>
        <published>2026-01-02T00:00:00+00:00</published>
        <updated>2026-01-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0276-platform-thinking-does-not-mean-we-don-t-use-other-platforms/"/>
        <id>https://daily.bec-systems.com/0276-platform-thinking-does-not-mean-we-don-t-use-other-platforms/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0276-platform-thinking-does-not-mean-we-don-t-use-other-platforms/">&lt;p&gt;On the contrary, platform thinking readily embraces other tools and platforms.
The difference is:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;We add our own tooling, integration, and workflows into the mix.&lt;&#x2F;li&gt;
&lt;li&gt;We own the integration points so we can readily swap out&#x2F;in 3rd party
components as needed.&lt;&#x2F;li&gt;
&lt;li&gt;We are not overly dependent on someone else&#x27;s platform that we don&#x27;t have
control over.&lt;&#x2F;li&gt;
&lt;li&gt;We value openness and flexibility.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Too often, the tendency is to lean toward all-encompassing platforms that we
think will solve all of our problems. This rarely gets us to where we need to be
to provide exceptional value.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;platform-integration.png&quot; alt=&quot;Platform integration concept&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔍 AI coding requires better inputs and robust verification</title>
        <published>2025-12-31T00:00:00+00:00</published>
        <updated>2025-12-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0275-ai-coding-requires-better-inputs-and-robust-verification/"/>
        <id>https://daily.bec-systems.com/0275-ai-coding-requires-better-inputs-and-robust-verification/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0275-ai-coding-requires-better-inputs-and-robust-verification/">&lt;p&gt;Some great feedback on
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0274-impressive-is-not-always-effective&#x2F;&quot;&gt;the previous post (Impressive is not always effective)&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;I agree. It would be interesting, however, to compare the progression of AI
code generation with that of compilers - were there star assembly-code
engineers saying that compilers were just a way to brute force the generation
of assembly code?&quot;&lt;&#x2F;p&gt;
&lt;p&gt;&quot;I feel like there is a fundamental difference — perhaps that AI always lacks
the determinism of a good compiler. And it can completely ignore the best of
documentation without throwing an error code.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Having lived through several of these transitions (Assembly -&amp;gt; C -&amp;gt; C++ -&amp;gt;
Python -&amp;gt; Go -&amp;gt; Rust -&amp;gt; Zig -&amp;gt; AI ...) there are always those who prefer to
stick with the current technology thinking the new adds no value or is even
detrimental.&lt;&#x2F;p&gt;
&lt;p&gt;AI is more just an example in the original article as it can make an impressive
mess much quicker than any human. Humans can make messes as well (made plenty
myself). So the point is not so much that AI is bad (or good), but rather
question: &quot;Are values in place?&quot; And, is there a process&#x2F;system&#x2F;platform
(whatever you want to call it) to ensure these values happen. AI can do good
work with the proper constraints and workflows, as can humans. But neither does
very good work without them.&lt;&#x2F;p&gt;
&lt;p&gt;That all said, as the above feedback suggested, AI is much less deterministic
than any compiler (two consecutive runs do not produce the same result), thus
needs clear guidance and robust verification to ensure the end result is
quality. All this can be accomplished, but needs to be thought through.&lt;&#x2F;p&gt;
&lt;p&gt;While compile warnings, linters, code review, and unit tests help ensure
compiled code is quality, AI is a different beast. If humans are too slow to
write the code originally, they are for sure too slow to review it. It is like
reviewing machine code from compilers - at some point you need to trust the
compiler. The errors from AI generated code will likely be more architectural
deficiencies or logical errors at a macro level. Bad architecture can bury you
in technical debt, but it takes time - initially it works fine. Thus several
things are critical:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Getting started with a good architecture. AI can help with this, but an
experienced developer needs to have input.&lt;&#x2F;li&gt;
&lt;li&gt;Good, concise documentation. As opposed to machine generated code, humans can
review this.&lt;&#x2F;li&gt;
&lt;li&gt;Automated end-to-end testing is critical. This is the only way to prove and
maintain correctness.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;With AI development, better inputs and more verification are critical. Trying to
work in the middle of the AI coding process is futile and exhausting. The
beginning and the end of the process need shored up. But this requires
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;claude-plugins&#x2F;blob&#x2F;main&#x2F;doc-driven-development&#x2F;README.md&quot;&gt;better workflows&lt;&#x2F;a&gt;
and more discipline. While undisciplined traditional development is a nightmare,
undisciplined AI development is a train wreck.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;ai-coding-verification.png&quot; alt=&quot;AI Coding Verification&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✨ Impressive is not always effective</title>
        <published>2025-12-30T00:00:00+00:00</published>
        <updated>2025-12-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0274-impressive-is-not-always-effective/"/>
        <id>https://daily.bec-systems.com/0274-impressive-is-not-always-effective/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0274-impressive-is-not-always-effective/">&lt;p&gt;When AI generates something, the result is often &quot;impressive.&quot; We might marvel
at how quickly lots of code is generated that mostly works. Generated
documentation is extremely detailed and well formatted. AI-created diagrams are
colorful, use emojis effectively and every last detail is included. However,
&quot;impressive&quot; is often the antithesis of &quot;effective&quot; for one simple reason -
simplicity is missing.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;It is difficult to understand the architecture of the code because there is so
much of it.&lt;&#x2F;li&gt;
&lt;li&gt;&quot;Why&quot; is nearly impossible to draw from the expansive details in the
documentation. Who has time to dig it out?&lt;&#x2F;li&gt;
&lt;li&gt;A quick glance at a diagram reveals nothing about the big-picture without
laboriously processing many details.&lt;&#x2F;li&gt;
&lt;li&gt;The complexity of machine-generated designs is often a brute-force approach
that lacks style, elegance, and consistency.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Architecture, Why, Big-picture, and Elegance - these are still the foundations
of great work. Learn to look past impressive things. Is the architecture clear?
Are the reasons obvious? Is it easy to understand at a high-level what is going
on? Is the design and implementation clean and simple? There are two paths:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&quot;Impressive&quot; is the route to compounding technical debt.&lt;&#x2F;li&gt;
&lt;li&gt;&quot;Effective&quot; is the only way to compounding improvements.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;impressive-vs-effective.png&quot; alt=&quot;Impressive vs Effective&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🥄 The beauty of human creativity</title>
        <published>2025-12-29T00:00:00+00:00</published>
        <updated>2025-12-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0273-the-beauty-of-human-creativity/"/>
        <id>https://daily.bec-systems.com/0273-the-beauty-of-human-creativity/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0273-the-beauty-of-human-creativity/">&lt;p&gt;In this age of machine-generated perfection, something is still deeply rewarding
about grabbing a stick of wood and making something by hand. This past
Christmas, with the help of kids and grandkids, we made a few mixing spoons for
gifts. Starting from the same pattern but with varying levels of skill and
technique, each spoon turned out a bit different. However, each one is special
and beautiful because it has a human touch. And sometimes with variety and
imperfection, a new pattern emerges that actually works better. This is one
source of innovation.&lt;&#x2F;p&gt;
&lt;p&gt;In an age of AI-generated code, preserving the human touch remains important.
Perhaps it is the well-thought-out documentation that explains exactly how this
feature will help the user. Or the hand-coded API that is a pleasure to use.
Explorations in new data structures and algorithms coded by hand sometimes
result in amazing discoveries because thinking accompanies the creative process.
Machines (including AI) can mostly only do what has been done before. But the
real value lies in the new connections, the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0124-truth-is-discovered-not-invented&#x2F;&quot;&gt;newly discovered truths&lt;&#x2F;a&gt;,
the well-understood needs of the user, and the exceptional quality. These still
require human impetus.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;spoons.png&quot; alt=&quot;image-20251229211200569&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📖 The definition of the word &#x27;Platform&#x27;</title>
        <published>2025-12-24T00:00:00+00:00</published>
        <updated>2025-12-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0272-the-definition-of-the-word-platform/"/>
        <id>https://daily.bec-systems.com/0272-the-definition-of-the-word-platform/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0272-the-definition-of-the-word-platform/">&lt;p&gt;The definition of the word &quot;platform&quot; includes things like the following:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Acts as foundational for other products or services, not the final end product
itself.&lt;&#x2F;li&gt;
&lt;li&gt;Provides a stable base.&lt;&#x2F;li&gt;
&lt;li&gt;Typically supports multiple, distinct applications or use cases.&lt;&#x2F;li&gt;
&lt;li&gt;A formal declaration of the principles of a group.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;What are the aspects of a physical platform?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Provide a supporting surface: Examples include train station platforms,
stages, loading docks, scaffolds, and cargo pallets, all of which physically
support people or objects at a useful height or position.&lt;&#x2F;li&gt;
&lt;li&gt;Enable safe and efficient interaction: Platforms make boarding, loading,
performing, or working safer and more efficient by aligning heights, improving
visibility, and organizing space.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Stable, foundational, supportive, efficient, visibility, safety, organization
... does this provide any inspiration for YOUR Platform?&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;definition-of-platform.png&quot; alt=&quot;A platform supporting multiple products and services&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Platform Thinking is a habit</title>
        <published>2025-12-23T00:00:00+00:00</published>
        <updated>2025-12-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0271-platform-thinking-is-a-habit/"/>
        <id>https://daily.bec-systems.com/0271-platform-thinking-is-a-habit/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0271-platform-thinking-is-a-habit/">&lt;p&gt;Platform Thinking in the context of product development has many parallels to
effective habits in personal life. With personal exercise, healthy eating, getting
enough sleep, and reading good books - these are difficult to start, but easy once
started, and rewarding once finished. These things work best when they are
habits - a regular behavior pattern that a person tends to do automatically,
often without much thought.&lt;&#x2F;p&gt;
&lt;p&gt;Documentation, testing, and automation in a product development context are
similar. It won&#x27;t just happen. A framework is required to nudge us into a
pattern that turns into an effective habit. In many ways, Platform Thinking is
just &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;jamesclear.com&#x2F;atomic-habits&quot;&gt;Atomic Habits&lt;&#x2F;a&gt; for product
development teams.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;platform-thinking-habit.png&quot; alt=&quot;Platform Thinking is a habit - showing parallel between personal habits like exercise, healthy eating, sleep, and reading with platform thinking habits like documentation, testing, automation, and process&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎯 Who is Platform Thinking for?</title>
        <published>2025-12-22T00:00:00+00:00</published>
        <updated>2025-12-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0270-who-is-platform-thinking-for/"/>
        <id>https://daily.bec-systems.com/0270-who-is-platform-thinking-for/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0270-who-is-platform-thinking-for/">&lt;p&gt;Platform Thinking is for anyone who wants to take the friction out of creating,
publishing, testing, integrating, and deploying products.&lt;&#x2F;p&gt;
&lt;p&gt;The result? Value. Quality. Timeliness.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;platform-thinking-for.png&quot; alt=&quot;Platform Thinking removes friction from creating, publishing, testing, integrating, and deploying to deliver value, quality, and timeliness&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⏳ The long-term compression timeline</title>
        <published>2025-12-18T00:00:00+00:00</published>
        <updated>2025-12-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0269-the-long-term-compression-timeline/"/>
        <id>https://daily.bec-systems.com/0269-the-long-term-compression-timeline/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0269-the-long-term-compression-timeline/">&lt;p&gt;Below are several timelines illustrating
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0257-the-long-term-may-be-closer-than-you-think&#x2F;&quot;&gt;long-term compression&lt;&#x2F;a&gt;
comparing a product development timeline:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;20 years ago&lt;&#x2F;li&gt;
&lt;li&gt;Today&lt;&#x2F;li&gt;
&lt;li&gt;Today with Platform Thinking&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;The big effect of long-term compression is that negative consequences can hit
much earlier, delaying initial shipment (the middle timeline).&lt;&#x2F;p&gt;
&lt;p&gt;While it is very difficult to compress a product development timeline to initial
release, with Platform Thinking, v1.0 can still arrive in a year as in the olden
days. The big difference is subsequent releases ship much quicker than in any
previous scenario.&lt;&#x2F;p&gt;
&lt;p&gt;So while the complexity of modern technology presents new challenges and
requires a different approach, leveraging technology to build a platform can
produce even better results than any previous scenario.&lt;&#x2F;p&gt;
&lt;p&gt;Long-term compression can have both compounding negative or compounding positive
effects. Both the negative costs and the positive benefits come back much
quicker. Which comes back depends on YOUR Platform.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;timeline-compression.png&quot; alt=&quot;timeline compression&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🗜️ Long-term compression</title>
        <published>2025-12-17T00:00:00+00:00</published>
        <updated>2025-12-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0268-long-term-compression/"/>
        <id>https://daily.bec-systems.com/0268-long-term-compression/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0268-long-term-compression/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;long-term-compression.png&quot; alt=&quot;Long-term compression - comparing traditional mindset, today&amp;#39;s compressed timeline reality, and platform thinking approach&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;One reality of developing products with modern technology is the compression of
the short and long-term. Today, the consequences of actions come back on the
timeframe of months instead of years, as it might have been ten or twenty years
ago. No longer does it work to take shortcuts with the hope of shipping v1.0,
making some money, and cleaning things up later. The product may never even see
v1.0.&lt;&#x2F;p&gt;
&lt;p&gt;This is why YOUR Platform is so important. Platform thinking enables you to
reach the v1.0 release in a timely manner, and efficiently maintain and improve
beyond that.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 Platforms are not just for developers</title>
        <published>2025-12-16T00:00:00+00:00</published>
        <updated>2025-12-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0267-platforms-are-not-just-for-developers/"/>
        <id>https://daily.bec-systems.com/0267-platforms-are-not-just-for-developers/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0267-platforms-are-not-just-for-developers/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;platforms-not-just-for-developers.png&quot; alt=&quot;Platforms are not just for developers&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This is an
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.linkedin.com&#x2F;feed&#x2F;update&#x2F;urn:li:activity:7404499127998402562&#x2F;&quot;&gt;interesting post&lt;&#x2F;a&gt;
from a Marketing person creating website pages:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;I built 19 website pages in a single day while my team was out for US
thanksgiving. Not mockups. Not placeholders. Actual, shippable pages: a full
partner ecosystem landing page plus individual pages for every major partner
we’re building with right now. It felt surreal. Mostly because &lt;strong&gt;a year+ ago,
there’s no universe in which I would’ve believed I could do that&lt;&#x2F;strong&gt;. And it
definitely wouldn’t have happened without the engineers around me who’ve
taught me how to think more like a builder—patiently walking me through GitHub
(😒), tools, workflows, and a way of working that used to feel miles outside
my world.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;I then asked how long it took before she stopped hating Git?&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;I mean it took about 5 pull requests before I finally managed to create one
without an error 🥵… it’s been two weeks and I finally feel like the
lightbulbs are going off and I’m understanding the flow (pulling things from
main, branches, commits, PRs, basic commands I have on a sticky note lol,
etc).&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This is a great example of someone who took ownership of their website creation,
editing, and publishing workflow. Using
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0242-local-first-dev&#x2F;&quot;&gt;local files&lt;&#x2F;a&gt; and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0191-text-based-formats-and-command-line-tools-are-the-future&#x2F;&quot;&gt;text based formats&lt;&#x2F;a&gt;
unleashed the power of AI resulting in the productivity described above. Using
AI,
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0210-anyone-can-write-scripts-now&#x2F;&quot;&gt;anyone can now write scripts&lt;&#x2F;a&gt;,
create web pages, and code to some level. Text based formats and command-line
tools are now within reach for anyone willing to learn a bit. All it takes is a
willingness to break out of the cozy cocoon of GUI based tools, learn how to use
an editor and terminal, and invest a little effort in creating a workflow.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Breaking the AI slop cycle</title>
        <published>2025-12-15T00:00:00+00:00</published>
        <updated>2025-12-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0266-breaking-the-ai-slop-cycle/"/>
        <id>https://daily.bec-systems.com/0266-breaking-the-ai-slop-cycle/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0266-breaking-the-ai-slop-cycle/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;breaking-ai-slop-cycle.png&quot; alt=&quot;Breaking the AI Slop Cycle&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&quot;AI Slop&quot; is a common expression describing a familiar phenomenon. It refers to
sloppy code (or other assets) generated by AI that mostly works, lacks proper
review, and may be poorly architected or implemented. The primary characteristic
of AI Slop is that it is hard to read, understand, and maintain.&lt;&#x2F;p&gt;
&lt;p&gt;Like anything else, fixing problems early in the cycle works best—not generating
slop in the first place instead of trying to clean it up later. Even AI tools,
as powerful as they are, have trouble cleaning up slop. Once the slop is cast in
code, AI (like a human) is very reluctant to throw away all the hard work and
start over.&lt;&#x2F;p&gt;
&lt;p&gt;So how does one break the cycle? The best method I&#x27;ve found is a lightweight
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;claude-plugins&#x2F;blob&#x2F;main&#x2F;doc-driven-development&#x2F;README.md&quot;&gt;formal documentation and planning workflow&lt;&#x2F;a&gt;.
The documentation ensures good thinking about what the problem is, what needs to
be built, and why. The planning stage helps ensure the architecture is good. It
is much easier to think about and rework a plan than code.&lt;&#x2F;p&gt;
&lt;p&gt;The documentation&#x2F;planning steps also clearly delineate the responsibility of
humans and AI. While AI can help explore options, it still does not have the
entire context that humans have when it comes to clearly defining the problem.&lt;&#x2F;p&gt;
&lt;p&gt;When slop appears, this means the up-front thinking was not very good. One of
the most useful skills when working with AI is recognizing when the slop zone is
approaching, backing up, and getting more formal.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤔 Isn&#x27;t this just agile?</title>
        <published>2025-12-12T00:00:00+00:00</published>
        <updated>2025-12-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0265-isn-t-this-just-agile/"/>
        <id>https://daily.bec-systems.com/0265-isn-t-this-just-agile/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0265-isn-t-this-just-agile/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;agile-vs-platform-thinking.png&quot; alt=&quot;Agile vs Platform Thinking comparison&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;A reader responded to the last post with a comment:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Isn&#x27;t &quot;agile&quot; a part of product thinking too? That doesn&#x27;t seem linear?&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This is a good question. Agile covers a lot of ground. The Agile Manifesto
states:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;We are uncovering better ways of developing software by doing it and helping
others do it. Through this work we have come to value:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Individuals and interactions over processes and tools&lt;&#x2F;li&gt;
&lt;li&gt;Working software over comprehensive documentation&lt;&#x2F;li&gt;
&lt;li&gt;Customer collaboration over contract negotiation&lt;&#x2F;li&gt;
&lt;li&gt;Responding to change over following a plan&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;That is, while there is value in the items on the right, we value the items on
the left more.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Typically agile focuses on fast iterations and quick feedback, which is
definitely part of platform thinking. Most software methodologies focus on
creating software. Platform thinking expands to include more of product
development including mechanical, hardware, and integration. Much of development
these days is integration of complex systems, including vast amounts of
open-source software. As system complexity grows, teams need ways to deal with
this complexity. Individual interactions are great and very important, but they
don&#x27;t scale with complexity. And perhaps the real goal of YOUR Platform is to
free people from tedious repetitious work, so individuals will have more time to
interact in creative ways.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏗️ Platform thinking vs 📦 Product thinking</title>
        <published>2025-12-10T00:00:00+00:00</published>
        <updated>2025-12-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0264-platform-thinking-vs-product-thinking/"/>
        <id>https://daily.bec-systems.com/0264-platform-thinking-vs-product-thinking/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0264-platform-thinking-vs-product-thinking/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;platform-vs-product-thinking.png&quot; alt=&quot;Platform thinking vs Product thinking&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Platform vs. product thinking is a difference in perspective. Platform thinking
does not ignore the product, but rather approaches it from a slightly different
angle.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏆 What is the ultimate platform success?</title>
        <published>2025-12-09T00:00:00+00:00</published>
        <updated>2025-12-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0263-what-is-the-ultimate-platform-success/"/>
        <id>https://daily.bec-systems.com/0263-what-is-the-ultimate-platform-success/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0263-what-is-the-ultimate-platform-success/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;platform-success-evolution.png&quot; alt=&quot;Platform success evolution diagram&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The ultimate platform success is when an internal platform turns into a sellable
product&#x2F;service, or an open source project.&lt;&#x2F;p&gt;
&lt;p&gt;Perhaps some companies succeed by starting out building a platform as a product,
but the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.perplexity.ai&#x2F;search&#x2F;provide-examples-of-commercial-35vCdIRBSMWQOW0rYlu2yg&quot;&gt;greatest platform successes&lt;&#x2F;a&gt;
started as internal platforms:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;AWS&lt;&#x2F;li&gt;
&lt;li&gt;Kafka&lt;&#x2F;li&gt;
&lt;li&gt;Kubernetes&lt;&#x2F;li&gt;
&lt;li&gt;Slack&lt;&#x2F;li&gt;
&lt;li&gt;Shopify&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Why does this work? Perhaps because developers building internal platforms have
the &quot;platform mindset.&quot; Starting out building a platform to sell means building
with the &quot;product&quot; mindset instead of the &quot;platform&quot; mindset.&lt;&#x2F;p&gt;
&lt;p&gt;Compare AWS, Azure, and GCP. Amazon and Microsoft use these platforms
extensively internally. Google
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;inside-googles-engineering-culture&#x2F;1599&#x2F;3?u=cbrake&quot;&gt;does not&lt;&#x2F;a&gt;.
Google likely has valid reasons for this as GCP is not their primary product
(compared to search, YouTube, etc.). But the results speak for themselves:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Feature&lt;&#x2F;th&gt;&lt;th&gt;&lt;strong&gt;AWS (Amazon)&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;&lt;strong&gt;Microsoft Azure&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;&lt;strong&gt;Google Cloud (GCP)&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Market Share&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;~29-31%&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;strong&gt;~20%&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;strong&gt;~13%&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Revenue Run Rate&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;~$132 Billion&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;strong&gt;~$123 Billion&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;strong&gt;~$61 Billion&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Primary Internal Use&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;High.&lt;&#x2F;strong&gt; Amazon.com is heavily migrated to AWS, including retail databases and Prime Video.&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;strong&gt;High.&lt;&#x2F;strong&gt; LinkedIn, Office 365, and GitHub are actively migrating or fully migrated to Azure.&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;strong&gt;Mixed.&lt;&#x2F;strong&gt; Core search&#x2F;ads&#x2F;YouTube&#x2F;Gmail&#x2F;Docs runs on internal-only PROD infrastructure.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔀 The division between group and personal workflow</title>
        <published>2025-12-05T00:00:00+00:00</published>
        <updated>2025-12-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0262-the-division-between-group-and-personal-workflow/"/>
        <id>https://daily.bec-systems.com/0262-the-division-between-group-and-personal-workflow/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0262-the-division-between-group-and-personal-workflow/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;personal-group-workflow-division.png&quot; alt=&quot;Personal and Group Workflow Division&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;When thinking about developer workflows, tools, and resources, dividing them
into two categories proves useful: &lt;strong&gt;personal&lt;&#x2F;strong&gt; and &lt;strong&gt;group&lt;&#x2F;strong&gt;. A group resource
is something that multiple people use (or should use): SDKs, libraries, linters,
formatters, AI commands&#x2F;context, etc. Personal tools are things that others do
not use: pencil, computer, phone, editor, notes system, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Why is this so important? Why not just make it simple and force everyone to use
the same computer, editor, notes system, chair, desk, etc.?&lt;&#x2F;p&gt;
&lt;p&gt;Humans are users and creators of tools—naturally inclined to make, modify, and
optimize tools for specific needs. Innovation happens where there is freedom.
Many improvements start from a single person scratching their own itch. Over
time it becomes apparent that a tool or improvement will benefit the group, so
it migrates to a container or some other shared resource and is integrated into
the group workflow.&lt;&#x2F;p&gt;
&lt;p&gt;As previously mentioned, any shared resource should
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0261-cdpd-container-driven-product-development&#x2F;&quot;&gt;be containerized&lt;&#x2F;a&gt;
when possible. Containers allow the personal computer to be the dividing line
between personal and group workflows.&lt;&#x2F;p&gt;
&lt;p&gt;No two humans do exactly the same thing. No two humans think and work in exactly
the same way. While there are many benefits to having group workflows, the
personal workflows must also be nourished, as these are a primary source of
innovation. The key is to have a culture where the migration from personal
workflow to group workflow is encouraged, supported, and rewarded.&lt;&#x2F;p&gt;
&lt;p&gt;To scale, an organization must have:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;A clear division between personal and group workflows.&lt;&#x2F;li&gt;
&lt;li&gt;An efficient way to reuse personal workflows as group workflows where
appropriate.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📦 CDPD - Container Driven Product Development</title>
        <published>2025-12-04T00:00:00+00:00</published>
        <updated>2025-12-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0261-cdpd-container-driven-product-development/"/>
        <id>https://daily.bec-systems.com/0261-cdpd-container-driven-product-development/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0261-cdpd-container-driven-product-development/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;cdpd-workflow.png&quot; alt=&quot;Container Driven Product Development workflow comparing traditional scattered tools vs containerized approach&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;When updating the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;docs.simpleiot.org&#x2F;&quot;&gt;Simple IoT documentation&lt;&#x2F;a&gt;, the
question arose - how to install &lt;code&gt;mdbook&lt;&#x2F;code&gt; and a few plugins? Of course &lt;code&gt;pacman&lt;&#x2F;code&gt;
has part of what is needed. In the past &lt;code&gt;cargo&lt;&#x2F;code&gt; has been used, but that is slow
and not a good fit for shared tools. Then it became clear:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Any shared tools used by the team (build, linting, formatting, CI&#x2F;CD) etc.
should be put in containers up front (before development starts)&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;.. and use them for development builds as well as CI&#x2F;CD.
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;simpleiot&#x2F;docker-mdbook&quot;&gt;this container&lt;&#x2F;a&gt; is the result)&lt;&#x2F;p&gt;
&lt;p&gt;Why?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;It is pretty easy these days with Claude Code.&lt;&#x2F;li&gt;
&lt;li&gt;Gitea, GitHub, and likely other Git hosting platforms now provide convenient
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;docs.gitea.com&#x2F;usage&#x2F;packages&#x2F;overview&quot;&gt;&quot;package&quot; registries&lt;&#x2F;a&gt;. You no
longer need to go through the hassle of using the Docker registry.&lt;&#x2F;li&gt;
&lt;li&gt;It is easy to onboard new devs - no need to spend time installing SDKs and a
host of tools.&lt;&#x2F;li&gt;
&lt;li&gt;Versions are locked down, eliminating the possibility of different people
using different versions.&lt;&#x2F;li&gt;
&lt;li&gt;They get exercised a lot, so quality is high.&lt;&#x2F;li&gt;
&lt;li&gt;It is much easier to move into CI&#x2F;CD.&lt;&#x2F;li&gt;
&lt;li&gt;A Dockerfile is easier to maintain than a long document describing how to
manually install all the tools needed.&lt;&#x2F;li&gt;
&lt;li&gt;NPM and Python packages are a pain to install locally, so why not just
eliminate that pain?&lt;&#x2F;li&gt;
&lt;li&gt;It is easier to get everyone on the team using the entire toolset (linting,
formatting, etc.).&lt;&#x2F;li&gt;
&lt;li&gt;No longer fighting differences between developers&#x27; machines. If one developer
wants to run Arch and another Ubuntu, no problem.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Developers are still free to use their favorite editor, Git client, and other
local tools.&lt;&#x2F;p&gt;
&lt;p&gt;This is &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0256-ddpd-tdpd-rdpd&#x2F;&quot;&gt;another case&lt;&#x2F;a&gt; where
a little time spent up front is quickly regained, then compounded by not
continually redoing stuff, and fighting problems that can be solved once.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📝 Tips for working with Markdown</title>
        <published>2025-11-26T00:00:00+00:00</published>
        <updated>2025-11-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0260-tips-for-working-with-markdown/"/>
        <id>https://daily.bec-systems.com/0260-tips-for-working-with-markdown/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0260-tips-for-working-with-markdown/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;markdown-workflow.png&quot; alt=&quot;Markdown Workflow &amp;amp; Tools&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Markdown is now a nearly universal format for documentation in many workflows.
A few tips for being effective with Markdown:&lt;&#x2F;p&gt;
&lt;p&gt;Use a standard editor most of the time (VS Code, Vim, Helix, etc.). This is
faster than graphical &quot;Markdown&quot; editors for most things. Additionally, this
builds familiarity with Markdown formatting codes, which aids in creating nicely
formatted comments in Jira, GitHub, Trello, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Use &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;typora.io&#x2F;&quot;&gt;Typora&lt;&#x2F;a&gt; to create more complex things like tables and
images. This tool is well worth the few $ it costs.&lt;&#x2F;p&gt;
&lt;p&gt;Put images in an &lt;code&gt;&#x2F;assets&lt;&#x2F;code&gt; sub-directory and name image files descriptively
(Typora makes this easy).&lt;&#x2F;p&gt;
&lt;p&gt;Use &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;prettier.io&#x2F;&quot;&gt;prettier&lt;&#x2F;a&gt; to format the file and wrap long lines. Add
a &lt;code&gt;.prettierrc&lt;&#x2F;code&gt; to every repo with the following contents: &lt;code&gt;proseWrap: always&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Use &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;writewithharper.com&#x2F;&quot;&gt;Harper&lt;&#x2F;a&gt;
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;writewithharper.com&#x2F;docs&#x2F;integrations&#x2F;language-server&quot;&gt;language server&lt;&#x2F;a&gt;
in your editor is best) to check for grammar and formatting issues. One
unexpected side effect of this is that it encourages marking technical words
that don&#x27;t have standard spelling as code, rather than adding them all to your
dictionary.&lt;&#x2F;p&gt;
&lt;p&gt;Add dictionary words to a &lt;code&gt;.harper-dictionary.txt&lt;&#x2F;code&gt; in the repo that contains the
markdown file. This way others can benefit from a common dictionary. Again, this
is easy with a &lt;code&gt;harper-ls&lt;&#x2F;code&gt; quick-action.&lt;&#x2F;p&gt;
&lt;p&gt;Add a TOC if the file is long (the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;writewithharper.com&#x2F;docs&#x2F;integrations&#x2F;language-server&quot;&gt;&lt;code&gt;harper-ls&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;
quick-action makes this easy).&lt;&#x2F;p&gt;
&lt;p&gt;Use the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;artempyanykh&#x2F;marksman&quot;&gt;Marksman&lt;&#x2F;a&gt; language server.
This makes navigating and refactoring in your editor easy.&lt;&#x2F;p&gt;
&lt;p&gt;Use &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;markdown-here.com&#x2F;&quot;&gt;Markdown Here&lt;&#x2F;a&gt; or
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;addons.thunderbird.net&#x2F;en-US&#x2F;thunderbird&#x2F;addon&#x2F;markdown-here-revival&#x2F;&quot;&gt;Markdown Here Revival&lt;&#x2F;a&gt;
in your browser or email client to write better emails.&lt;&#x2F;p&gt;
&lt;p&gt;While Markdown has its formatting limitations, with a little tooling it is much
easier and faster to work with than anything else.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤔 Why &gt; How &gt; What</title>
        <published>2025-11-25T00:00:00+00:00</published>
        <updated>2025-11-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0259-why-how-what/"/>
        <id>https://daily.bec-systems.com/0259-why-how-what/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0259-why-how-what/">&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Why?&lt;&#x2F;strong&gt; Is this the right thing to build?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;How?&lt;&#x2F;strong&gt; Can it be done efficiently, repeatedly?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;What?&lt;&#x2F;strong&gt; The deliverable.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;These are listed in order of importance, which also corresponds to the level of
difficulty.&lt;&#x2F;p&gt;
&lt;p&gt;The trouble with &quot;How&quot; and &quot;Why&quot; is these are less visible, which contributes to
their difficulty as it takes discipline to prioritize and do them.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;what-how-why.png&quot; alt=&quot;why-how-what&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🥉 Good, fast, cheap - choose three</title>
        <published>2025-11-24T00:00:00+00:00</published>
        <updated>2025-11-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0258-good-fast-cheap-choose-three/"/>
        <id>https://daily.bec-systems.com/0258-good-fast-cheap-choose-three/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0258-good-fast-cheap-choose-three/">&lt;p&gt;A familiar phrase states:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Good, fast, cheap. Choose two.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This is similar to the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;development-triangle&#x2F;71&quot;&gt;development triangle&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;development-triangle.png&quot; alt=&quot;dev triangle&quot; style=&quot;zoom:100%;&quot; &#x2F;&gt;
&lt;p&gt;Which states that everything is a tradeoff.&lt;&#x2F;p&gt;
&lt;p&gt;However, improving all three becomes possible when doing things differently.
That is the fundamental purpose of YOUR platform - to improve &quot;how&quot; teams build
things. To develop a synergistic relationship between
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0256-ddpd-tdpd-rdpd&#x2F;&quot;&gt;value, timeliness, and quality,&lt;&#x2F;a&gt;
without compromise.&lt;&#x2F;p&gt;
&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;ddpd-tdpd-rdpd.png&quot; alt=&quot;all three&quot; style=&quot;zoom:35%;&quot; &#x2F;&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⏳ The &quot;long-term&quot; may be closer than you think...</title>
        <published>2025-11-21T00:00:00+00:00</published>
        <updated>2025-11-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0257-the-long-term-may-be-closer-than-you-think/"/>
        <id>https://daily.bec-systems.com/0257-the-long-term-may-be-closer-than-you-think/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0257-the-long-term-may-be-closer-than-you-think/">&lt;p&gt;A common objection to &quot;Platform Thinking&quot; (proactively build your platform
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0256-ddpd-tdpd-rdpd&#x2F;&quot;&gt;from the start&lt;&#x2F;a&gt;) is: there
isn&#x27;t time right now; this can be done after the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0251-the-big-release-vs-a-continuous-flow-of-value&#x2F;&quot;&gt;1.0 release&lt;&#x2F;a&gt;
when there is ample time and resources.&lt;&#x2F;p&gt;
&lt;p&gt;The &quot;long-term&quot; can be defined as when the consequences of actions come back -
when the seeds sown are reaped.&lt;&#x2F;p&gt;
&lt;p&gt;When building complex systems with modern technology, the gap between the short-
and long-term is &lt;strong&gt;months instead of years&lt;&#x2F;strong&gt;. There is a compression of the
short- and long-term. Neglecting the platform may have worked a decade or two
ago, but with the complexity of even basic embedded systems today (Zephyr,
Embedded Linux, connectivity, data, etc.), the &quot;long-term&quot; is much more
imminent. The pain from shortcuts emerges in months instead of years. The slope
of the technical debt curve is much steeper.&lt;&#x2F;p&gt;
&lt;p&gt;The reality with complex systems today is there is no short- and long-term -
they have morphed into one and the same. Without building for the long-term now,
there will not be even a short-term, let alone a long-term.&lt;&#x2F;p&gt;
&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;short-long-term-compression.png&quot; alt=&quot;short&#x2F;long compression&quot; style=&quot;zoom:50%;&quot; &#x2F;&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📝 DDPD - 🧪 TDPD - 🚀 RDPD</title>
        <published>2025-11-20T00:00:00+00:00</published>
        <updated>2025-11-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0256-ddpd-tdpd-rdpd/"/>
        <id>https://daily.bec-systems.com/0256-ddpd-tdpd-rdpd/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0256-ddpd-tdpd-rdpd/">&lt;p&gt;We have been discussing document, test, and release-driven development (doing
these things first before implementing features).&lt;&#x2F;p&gt;
&lt;p&gt;This ensures the product:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Meets the customer&#x27;s needs
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0255-ddpd-document-driven-product-development&#x2F;&quot;&gt;DDPD&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;Is quality (&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0253-tdpd&#x2F;&quot;&gt;TDPD&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;Can be modified any time and released quickly
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0254-rdpd&#x2F;&quot;&gt;RDPD&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Without these, teams can quickly become buried in mundane repetitive work, bugs,
and technical debt.&lt;&#x2F;p&gt;
&lt;p&gt;But perhaps the less obvious fact is these things often go undone if not
prioritized from the start. Why? Because once a feature is done, there is
pressure to move on to the next one. There is no time for &quot;cleaning things up.&quot;
To ensure these things happen, they must be done first.&lt;&#x2F;p&gt;
&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;ddpd-tdpd-rdpd.png&quot; alt=&quot;image-20251120101418691&quot; style=&quot;zoom:50%;&quot; &#x2F;&gt;
&lt;p&gt;(2025-12-05 update: And we now also have
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0261-cdpd-container-driven-product-development&quot;&gt;CDPD&lt;&#x2F;a&gt;.)&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📝 DDPD - Document Driven Product Development</title>
        <published>2025-11-17T00:00:00+00:00</published>
        <updated>2025-11-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0255-ddpd-document-driven-product-development/"/>
        <id>https://daily.bec-systems.com/0255-ddpd-document-driven-product-development/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0255-ddpd-document-driven-product-development/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;ddpd.png&quot; alt=&quot;ddpd&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Building on &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0253-tdpd&#x2F;&quot;&gt;TDPD&lt;&#x2F;a&gt; and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0254-rdpd&#x2F;&quot;&gt;RDPD&lt;&#x2F;a&gt;, Document-driven product
development (DDPD) offers another perspective.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Ideas:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Document the feature from the user&#x27;s perspective before implementing anything.&lt;&#x2F;li&gt;
&lt;li&gt;Keep the documentation close to the code (same repo, etc.).&lt;&#x2F;li&gt;
&lt;li&gt;Use a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;claude-plugins&#x2F;blob&#x2F;main&#x2F;doc-driven-development&#x2F;README.md&quot;&gt;doc-driven&lt;&#x2F;a&gt;
AI plugin when applicable.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Benefits:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Better thought-through features.&lt;&#x2F;li&gt;
&lt;li&gt;Non-technical people can review before implementation.&lt;&#x2F;li&gt;
&lt;li&gt;Higher likelihood of implementing what users actually need.&lt;&#x2F;li&gt;
&lt;li&gt;Documentation becomes a pleasant&#x2F;creative&#x2F;thinking task, rather than a boring
requirement after implementation.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 RDPD - Release Driven Product Development</title>
        <published>2025-11-13T00:00:00+00:00</published>
        <updated>2025-11-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0254-rdpd/"/>
        <id>https://daily.bec-systems.com/0254-rdpd/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0254-rdpd/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;rdpd.png&quot; alt=&quot;rdpd&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Yesterday we talked about
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0253-tdpd&#x2F;&quot;&gt;Test-Driven Product Development&lt;&#x2F;a&gt;.
Release-driven product development is another perspective.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Build the release&#x2F;deployment mechanism before implementing the design.&lt;&#x2F;li&gt;
&lt;li&gt;Automate as much of the release as possible.&lt;&#x2F;li&gt;
&lt;li&gt;This includes all assets needed to build&#x2F;deploy the product.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;While this idea is somewhat common in cloud software (continuous delivery),
embedded, hardware, and mechanical release mechanisms are usually lacking.&lt;&#x2F;p&gt;
&lt;p&gt;The benefits:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;More prototypes will be built (because it is easy).&lt;&#x2F;li&gt;
&lt;li&gt;More testing will occur early (because prototypes are available).&lt;&#x2F;li&gt;
&lt;li&gt;Lots will be learned (happens when people are using prototypes).&lt;&#x2F;li&gt;
&lt;li&gt;Releasing to manufacturing becomes easy (because it has already been done many
times).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Implementing release mechanisms first is a strategic approach, because without
doing it first, it likely won&#x27;t get done. Once something is &quot;finished,&quot; there is
pressure (from above) to move on to the next development.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧪 TDPD - Test Driven Product Development</title>
        <published>2025-11-12T00:00:00+00:00</published>
        <updated>2025-11-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0253-tdpd/"/>
        <id>https://daily.bec-systems.com/0253-tdpd/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0253-tdpd/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tdpd.png&quot; alt=&quot;tdpd&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;re familiar with TDD (test-driven development) in the software world.
Basically the idea is to create unit tests before implementing a feature.&lt;&#x2F;p&gt;
&lt;p&gt;What if we extend this to systems, hardware, and even mechanical?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Write end-to-end system tests before developing a feature.&lt;&#x2F;li&gt;
&lt;li&gt;Design&#x2F;build test fixtures before designing the PCB. PCBs are
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0186-how-to-iterate-quickly-on-hardware&#x2F;&quot;&gt;cheap and fast&lt;&#x2F;a&gt;
to build now - so build an additional one for testing.&lt;&#x2F;li&gt;
&lt;li&gt;Create automated checks on 3D CAD models for fit&#x2F;clearance, etc. Does the new
PCB fit in the product?&lt;&#x2F;li&gt;
&lt;li&gt;Do you have additional ideas?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;And then automate all these so they run continually. This takes the tedium out
of testing and helps ensure every development change is a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0251-the-big-release-vs-a-continuous-flow-of-value&#x2F;&quot;&gt;BIG Release&lt;&#x2F;a&gt;.
Testing first also leads to better design.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🍄 Mushroom Management</title>
        <published>2025-11-07T00:00:00+00:00</published>
        <updated>2025-11-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0252-mushroom-management/"/>
        <id>https://daily.bec-systems.com/0252-mushroom-management/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0252-mushroom-management/">&lt;p&gt;I recall a quote from the book &lt;em&gt;The Soul of a New Machine&lt;&#x2F;em&gt; that describes
&quot;Mushroom Management&quot; and goes something like this:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Keep them in the dark, feed them sh**, and watch them grow.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;(This book chronicles the experiences of a computer engineering team racing to
build the next-generation computer at a blistering pace under tremendous
pressure at Data General in the late 1970s.)&lt;&#x2F;p&gt;
&lt;p&gt;Contrast this with &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;cEg8cOx7UZk&quot;&gt;Jensen Huang&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;They never hear me say something to them that is only for them to know. There
is not one piece of information that I secretly tell the staff that I don&#x27;t
tell the rest of the company. In that way, our company was designed for
agility, for information to flow as quickly as possible, for people to be
empowered by &lt;strong&gt;what they are able to do, not what they know&lt;&#x2F;strong&gt;. That&#x27;s the
architecture of our company.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Where is Data General today? Where is Nvidia? Perhaps this is comparing apples
and oranges though, because as system complexity grows, Huang&#x27;s approach is even
more necessary. Systems in the 2020s are many times more complex than those of
the 1970s.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 The BIG Release vs. 🌊 a Continuous flow of Value</title>
        <published>2025-11-05T00:00:00+00:00</published>
        <updated>2025-11-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0251-the-big-release-vs-a-continuous-flow-of-value/"/>
        <id>https://daily.bec-systems.com/0251-the-big-release-vs-a-continuous-flow-of-value/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0251-the-big-release-vs-a-continuous-flow-of-value/">&lt;p&gt;How do we look at a product release? As a big one-time event, where we spend
heroic efforts to pull it over the finish line? Or as a continuous flow of
high-quality value into the product (even before the customer ever sees it) that
is maintained with every change?&lt;&#x2F;p&gt;
&lt;p&gt;This is a mindset difference that leads to two different approaches:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;The BIG v1.0 Release:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Quality is not a priority during development, and gets hammered in with
extreme effort right before the BIG Release.&lt;&#x2F;li&gt;
&lt;li&gt;Tools that make releasing a product easy are not built, rather everything is
done manually before the BIG Release.&lt;&#x2F;li&gt;
&lt;li&gt;Because there is so much work to do for the BIG Release, much of it is not
anticipated so schedules slip.&lt;&#x2F;li&gt;
&lt;li&gt;Issues surface late in the process, which causes further delays.&lt;&#x2F;li&gt;
&lt;li&gt;Stakes are high, pressure mounts, and people become stressed.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Continuous flow of Value:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Every pull request (PR) and internal release is treated like an important
customer release.&lt;&#x2F;li&gt;
&lt;li&gt;Tools automatically check quality, eliminating manual verification.&lt;&#x2F;li&gt;
&lt;li&gt;Releases are automated to enable frequent deployments without mistakes.&lt;&#x2F;li&gt;
&lt;li&gt;As a result, the product is always ready to release - internally or to
customers.&lt;&#x2F;li&gt;
&lt;li&gt;Releases happen often (full manufacturing package) because it is easy.&lt;&#x2F;li&gt;
&lt;li&gt;Test fixtures are already done because they are created to test each feature
when the feature was developed.&lt;&#x2F;li&gt;
&lt;li&gt;Prototypes (which are just scaled back manufacturing) are easy to build and
test because a manufacturing release process already exists.&lt;&#x2F;li&gt;
&lt;li&gt;More prototypes get built and more gets learned from actually using the
product.&lt;&#x2F;li&gt;
&lt;li&gt;Issues and manufacturing problems surface early in the design cycle.&lt;&#x2F;li&gt;
&lt;li&gt;Beta releases can be sent to early customers for feedback without hesitation
because the finished features are high quality.&lt;&#x2F;li&gt;
&lt;li&gt;Production release is not a big engineering event, but rather a point where
people start paying for the product.&lt;&#x2F;li&gt;
&lt;li&gt;Schedules are predictable because there is no extra work for production
release, but rather just a focus on the features needed for that incremental
release.&lt;&#x2F;li&gt;
&lt;li&gt;Stress is low, people are happy.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The second scenario is desirable, but what is perhaps not so obvious is the
mindset shift required to get there - a relentless focus on quality throughout
the development process, automating anything done repeatedly, and thorough
testing early in the process. Every internal release, every PR, every day is a
BIG Release.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔀 The Power of Git* workflows</title>
        <published>2025-11-04T00:00:00+00:00</published>
        <updated>2025-11-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0250-the-genius-of-git-workflows/"/>
        <id>https://daily.bec-systems.com/0250-the-genius-of-git-workflows/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0250-the-genius-of-git-workflows/">&lt;p&gt;Git +
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0149-git-the-new-standard-for-workflow&#x2F;&quot;&gt;Git hosting platforms&lt;&#x2F;a&gt;
enable &lt;strong&gt;both&lt;&#x2F;strong&gt; local and cloud-based workflows.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Local:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Lightning fast access to files - leverage the power of your local computer&lt;&#x2F;li&gt;
&lt;li&gt;Use powerful native tools (editor, e-cad, m-cad, AI agents, command-line
tools, scripts, etc.)&lt;&#x2F;li&gt;
&lt;li&gt;Test on local hardware&lt;&#x2F;li&gt;
&lt;li&gt;Work offline&lt;&#x2F;li&gt;
&lt;li&gt;Organize&#x2F;document changes&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Cloud:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Collaboration&lt;&#x2F;li&gt;
&lt;li&gt;Distributed development&lt;&#x2F;li&gt;
&lt;li&gt;CI&#x2F;CD&lt;&#x2F;li&gt;
&lt;li&gt;Secure storage&lt;&#x2F;li&gt;
&lt;li&gt;Immutability&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;These approaches are not mutually exclusive - both can be leveraged
simultaneously. Software developers take this for granted, but other disciplines
can also benefit from better file management tools. It is beneficial to consider
how both cloud and local domains can be utilized to their fullest potential. In
the end, design assets (data) need to be created, documented, managed, verified,
tested, deployed, secured, and easily &lt;strong&gt;synchronized&lt;&#x2F;strong&gt; between both domains.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✍️ Why writing is important</title>
        <published>2025-11-03T00:00:00+00:00</published>
        <updated>2025-11-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0249-why-writing-is-important/"/>
        <id>https://daily.bec-systems.com/0249-why-writing-is-important/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0249-why-writing-is-important/">&lt;p&gt;Some people are wildly successful without writing. So, if the goal is only to
make a lot of money or have a lot of power, this advice may not apply.&lt;&#x2F;p&gt;
&lt;p&gt;However, for those who want to:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Think better&lt;&#x2F;li&gt;
&lt;li&gt;Scale ideas beyond direct personal contact&lt;&#x2F;li&gt;
&lt;li&gt;Capture and preserve ideas&lt;&#x2F;li&gt;
&lt;li&gt;Grow by building new ideas on old ones&lt;&#x2F;li&gt;
&lt;li&gt;Have influence beyond force and charisma&lt;&#x2F;li&gt;
&lt;li&gt;Effectively
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;good-communication-for-engineers-with-wes-kao-maven-altmba&#x2F;1578&#x2F;2&quot;&gt;manage up&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Not have to redo things over and over&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Then capturing your ideas in a permanent, organized, discoverable place is
essential.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Three levels of workflow</title>
        <published>2025-10-31T00:00:00+00:00</published>
        <updated>2025-10-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0248-three-levels-of-workflow/"/>
        <id>https://daily.bec-systems.com/0248-three-levels-of-workflow/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0248-three-levels-of-workflow/">&lt;p&gt;There are three levels of workflow:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Personal (what you do to get things done)&lt;&#x2F;li&gt;
&lt;li&gt;Department&#x2F;Discipline (How multiple people who do the same thing get things
done – Example: PCB design)&lt;&#x2F;li&gt;
&lt;li&gt;Cross-functional (How people who do different jobs interact - Example:
Engineering, Support, Manufacturing, Sales, and Marketing)&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Effective workflow is increasingly difficult to implement as you go from 1 to 3,
as perspectives, needs, and comfort with various tools differ more. But
cross-functional workflows are also where the &lt;strong&gt;greatest value&lt;&#x2F;strong&gt; lies.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤝 The benefits of sharing</title>
        <published>2025-10-30T00:00:00+00:00</published>
        <updated>2025-10-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0247-the-benefits-of-sharing/"/>
        <id>https://daily.bec-systems.com/0247-the-benefits-of-sharing/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0247-the-benefits-of-sharing/">&lt;p&gt;I wrote my first &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;claude-plugins&quot;&gt;Claude plugin&lt;&#x2F;a&gt; that
packages up some commands that I use in about every project I work on. This
plugin allows me to have these commands globally so I don&#x27;t have to keep copying
them from project to project.&lt;&#x2F;p&gt;
&lt;p&gt;Although the commands originally worked pretty well, the process of releasing
them publicly made them a lot better. A new &lt;code&gt;implement-tests&lt;&#x2F;code&gt; command was added.
And the commands themselves were cleaned up to be clearer, which will likely
help Claude do a better job.&lt;&#x2F;p&gt;
&lt;p&gt;I am continually amazed by this process. Even if no one else uses or contributes
to this project, I have a better tool for myself, because I shared it.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛠️ The new Artisan Age</title>
        <published>2025-10-29T00:00:00+00:00</published>
        <updated>2025-10-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0246-the-new-artisan-age/"/>
        <id>https://daily.bec-systems.com/0246-the-new-artisan-age/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0246-the-new-artisan-age/">&lt;p&gt;We live in a world of powerful tools. Milwaukee battery-powered hand tools,
high-end PCB design suites, cloud platforms, open-source tools, etc. And while
these tools get us a good way toward the goal, they do not do everything.
Additionally, if all you ever use is the mainstream tools, what differentiates
you from anyone else? What prevents others from doing exactly what you are
doing - at a lower cost?&lt;&#x2F;p&gt;
&lt;p&gt;In a previous era, artisan woodworkers built many of their own tools (fixtures,
jigs, squares, planes, storage systems, etc.). As a result, they could highly
optimize for their needs and projects. Tools were not very complex, so it was
possible to make them. Today, things are much more complex. The things we can
buy, or in the case of Open Source use for free, are endless. Many of them are
very useful, but not always exactly what is needed. There is still friction,
waste, manual steps, things that don&#x27;t work together, integration pain points,
etc.&lt;&#x2F;p&gt;
&lt;p&gt;In the past, it was very time-consuming to solve integration and automation
problems in complex systems. However, today we are entering a new era where we
can again build tools for complex systems - with AI. AI is excellent at
scripting, automation, testing, configuration, using APIs, generating fixtures,
processing data, etc. Things that would have taken days to implement and figure
out, we can now do in a few minutes. In many ways, we are entering a new artisan
age where we can once again craft custom tools tailored to our specific needs
and workflows. The biggest win with AI is not building your products, but rather
using it to build a custom platform to build your products.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏗️ The difference between Product and Platform</title>
        <published>2025-10-27T00:00:00+00:00</published>
        <updated>2025-10-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0245-the-difference-between-product-and-platform/"/>
        <id>https://daily.bec-systems.com/0245-the-difference-between-product-and-platform/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0245-the-difference-between-product-and-platform/">&lt;p&gt;Product is &lt;strong&gt;what&lt;&#x2F;strong&gt; you build.&lt;&#x2F;p&gt;
&lt;p&gt;Platform is &lt;strong&gt;how&lt;&#x2F;strong&gt; you build.&lt;&#x2F;p&gt;
&lt;p&gt;Most people build the first and outsource the second. After all, the product has
the IP—the secret sauce—the valuable part.&lt;&#x2F;p&gt;
&lt;p&gt;However, we
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;shopify-has-a-culture-of-building-internal-software&#x2F;1613&quot;&gt;observe in successful companies&lt;&#x2F;a&gt;
a focus on their internal platform. They build their own tools and workflows
optimized for them. How you build is where the rubber hits the road. If you
don&#x27;t master the &quot;how,&quot; getting the &quot;what&quot; done is frustratingly difficult. YOUR
Platform is the engine that keeps product development running smoothly and
allows you to keep ahead of the game. It does not matter so much if someone
steals your ideas because you are already implementing the next ones.&lt;&#x2F;p&gt;
&lt;p&gt;It is relatively easy to copy a physical product. It is nearly impossible to
copy the internal process, culture, workflows, and tools—even if they are freely
shared. Why? Because so few companies have the discipline and will to
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;#platform&quot;&gt;own their platform&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎯 A single source of truth</title>
        <published>2025-10-23T00:00:00+00:00</published>
        <updated>2025-10-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0244-a-single-source-of-truth/"/>
        <id>https://daily.bec-systems.com/0244-a-single-source-of-truth/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0244-a-single-source-of-truth/">&lt;p&gt;An intense discussion about &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;tlsl01uxUfE&quot;&gt;part&#x2F;version numbers&lt;&#x2F;a&gt;
driving application logic surfaced an idea to create a simplified version of the
product metadata that simplified the programming logic. However, this rarely
works out long-term, because several things happen:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;The two sets of data must be related and kept in sync.&lt;&#x2F;li&gt;
&lt;li&gt;This approach ends up replicating the first set of data with the second.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Fix the problems with the first set of data, rather than trying to band-aid it
with additional data. Data can be derived by machine, but it should never be
created in parallel. There needs to be a single source of truth. Otherwise
mistakes will happen. More mistakes than just dealing with the first set of
data, no matter how painful.&lt;&#x2F;p&gt;
&lt;p&gt;Manually duplicating data is symptomatic of organizational, not technical
problems. Duplicated data often indicates that organizational silos exist caused
by a lack of:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;transparency&lt;&#x2F;li&gt;
&lt;li&gt;collaboration&lt;&#x2F;li&gt;
&lt;li&gt;cross functional teams&lt;&#x2F;li&gt;
&lt;li&gt;common standards&lt;&#x2F;li&gt;
&lt;li&gt;common workflows&lt;&#x2F;li&gt;
&lt;li&gt;common tools&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Don&#x27;t make excuses for these, fix them.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📈 Scale vs. Value</title>
        <published>2025-10-17T00:00:00+00:00</published>
        <updated>2025-10-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0243-scale-vs-value/"/>
        <id>https://daily.bec-systems.com/0243-scale-vs-value/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0243-scale-vs-value/">&lt;p&gt;As scale increases (# of people, # of technologies, # of products, # of teams,
life cycle of product, experience, amount of knowledge, etc.), what does the
value produced look like?&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Metcalfe%27s_law&quot;&gt;Metcalfe&#x27;s law&lt;&#x2F;a&gt; states that
the financial value or influence of a telecommunications network is
proportional to the square of the number of connected users of the system.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;In communication and economic systems, we often find Metcalfe&#x27;s law to be true.
However, personally and organizationally, the results often plateau as
projects&#x2F;systems&#x2F;organizations grow.&lt;&#x2F;p&gt;
&lt;p&gt;Which of the below graphs describes you personally or organizationally? How do
we get from average -&amp;gt; great?&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;scale-value-average.png&quot; alt=&quot;average&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;scale-value-good.png&quot; alt=&quot;good&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;scale-value-great.png&quot; alt=&quot;great&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💻 Local First Dev</title>
        <published>2025-10-14T00:00:00+00:00</published>
        <updated>2025-10-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0242-local-first-dev/"/>
        <id>https://daily.bec-systems.com/0242-local-first-dev/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0242-local-first-dev/">&lt;p&gt;In the last couple decades, we&#x27;ve observed the success of SaaS web applications
(Google Docs, Salesforce, Basecamp, Trello, etc.). These applications have
unleashed collaboration using the web platform. Before this, users might have
emailed documents around (many still do this) or shared access to a file-server
or used a terminal server to access common infrastructure. However, nothing can
match the web for low friction&#x2F;cost access.&lt;&#x2F;p&gt;
&lt;p&gt;One of the downsides of SaaS is that users need to re-create the context of
whatever they are doing in the web application (upload files, copy images,
etc.). For many applications, the benefits to collaboration greatly outweighed
the cost of re-creating context. For things like issue tracking, SaaS
applications work well.&lt;&#x2F;p&gt;
&lt;p&gt;However, for more complex workflows (like CI&#x2F;CD&#x2F;PDM&#x2F;PLM), the drawbacks of SaaS
become more apparent because they require much more context. Some products,
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;jon-hirschtick-founder-of-solidworks-and-onshape&#x2F;1575&quot;&gt;like Onshape&lt;&#x2F;a&gt;,
solve this problem by moving everything to the cloud. This works great for pure
mechanical products, but what about electrical and software? Should these all
operate in their own silos?&lt;&#x2F;p&gt;
&lt;p&gt;A more compelling vision is a mixture of SaaS and local tooling. Examples
include:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;claude-claude-code&#x2F;1534&quot;&gt;Claude Code&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt;: while
using AI in web sites is very useful, running AI locally in your terminal is a
huge step-level improvement for actually doing work (not just answering
questions).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;modelcontextprotocol.io&#x2F;&quot;&gt;Model Context Protocol (MCP)&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt;: allows AI
to connect to local applications and data.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0149-git-the-new-standard-for-workflow&#x2F;&quot;&gt;Git hosting apps&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt;:
Gitea&#x2F;Github&#x2F;Gitlab have demonstrated amazing utility for software developers by
mixing local tooling (Git, Actions, etc.) with an accessible cloud web
application.&lt;&#x2F;p&gt;
&lt;p&gt;Pushing data to the edge is how to scale, and files are the obvious way to do
this. While this has
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0192-why-gui-development-tools-don-t-scale&#x2F;&quot;&gt;always been true&lt;&#x2F;a&gt;,
the rise of AI is making this fact crystal clear.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💬 The importance of effective communication</title>
        <published>2025-10-13T00:00:00+00:00</published>
        <updated>2025-10-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0241-the-importance-of-effective-communication/"/>
        <id>https://daily.bec-systems.com/0241-the-importance-of-effective-communication/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0241-the-importance-of-effective-communication/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0205-effective-communication-written&#x2F;&quot;&gt;Recently&lt;&#x2F;a&gt;,
effective communication has been discussed. But let&#x27;s step back -- why is
communication so important? As developers, isn&#x27;t coding what we do? Think for a
minute -- how much time gets spent coding&#x2F;designing vs. everything else? For
most, it is probably too little time on producing and way too much on everything
else. Becoming a more effective communicator is the one way to spend less time
on &quot;everything else&quot; leaving more time to produce.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧠 Context is everything</title>
        <published>2025-10-10T00:00:00+00:00</published>
        <updated>2025-10-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0240-context-is-everything/"/>
        <id>https://daily.bec-systems.com/0240-context-is-everything/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0240-context-is-everything/">&lt;p&gt;In conversation, I find myself saying: &quot;what is the context of your comment?&quot; At
times we find ourselves responding before we really understand something.&lt;&#x2F;p&gt;
&lt;p&gt;AI does the same thing -- it just spouts off, even if it does not understand
your context.&lt;&#x2F;p&gt;
&lt;p&gt;This is one reason local agents like Claude Code work so well, vs AI in a web
browser. Local agents at least have the context of your code and local files.
However, it still does not have access to your complete domain context -- that
is your part.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💡 Reflections from AI-coding a 10,000 line app</title>
        <published>2025-10-08T00:00:00+00:00</published>
        <updated>2025-10-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0239-reflections-from-ai-coding-a-10-000-line-app/"/>
        <id>https://daily.bec-systems.com/0239-reflections-from-ai-coding-a-10-000-line-app/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0239-reflections-from-ai-coding-a-10-000-line-app/">&lt;p&gt;Lessons from AI-coding a 10,000 line app&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;brun&quot;&gt;BRun&lt;&#x2F;a&gt; is getting usable. Claude Code wrote
almost all of it using
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0218-close-the-loop-with-ai&#x2F;&quot;&gt;Doc-driven development&lt;&#x2F;a&gt;
(manually write&#x2F;update the docs, and have Claude write the code).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Some thoughts:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Claude is fast -- there is no way I could have written this app manually in a
day or so.&lt;&#x2F;li&gt;
&lt;li&gt;Large changes are easy with AI.&lt;&#x2F;li&gt;
&lt;li&gt;Keeping docs up to date is easy.&lt;&#x2F;li&gt;
&lt;li&gt;Having AI do the coding freed up more time to think about the app user
interface, etc.&lt;&#x2F;li&gt;
&lt;li&gt;Claude is a nice partner to bounce ideas off of.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Some things to watch out for:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Look out for duplicated&#x2F;unnecessary code. There were multiple cases where
Claude was calling the same function multiple times.&lt;&#x2F;li&gt;
&lt;li&gt;Refactoring is not always complete. If things get restructured, check that
everything got cleaned up.&lt;&#x2F;li&gt;
&lt;li&gt;Check the tests -- Claude really goes crazy generating tests. A lot of work
remains on this repo reviewing and cleaning up tests.&lt;&#x2F;li&gt;
&lt;li&gt;Claude often tends toward complex approaches and a lot more code than needed
-- like many junior devs. Close monitoring is needed to ensure the
architecture takes the simple path.
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0230-code-is-a-liability-not-an-asset&#x2F;&quot;&gt;Code is a liability, not an asset&lt;&#x2F;a&gt;
-- even with AI.&lt;&#x2F;li&gt;
&lt;li&gt;Docs updated by Claude tend to be overly verbose. I was continually trimming
them down to remove duplicated&#x2F;unnecessary content.&lt;&#x2F;li&gt;
&lt;li&gt;Critical things like life-cycle and state management often get overlooked.&lt;&#x2F;li&gt;
&lt;li&gt;Race conditions are also easy to miss in AI-generated code.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;In the end, this project went well, but it still needed expert guidance at
times. Perhaps some of the above could have been improved with more specific
rules. Like many things, the greatest strength is also the greatest weakness.
Claude is really good at generating code -- so good that it tends to generate
way too much at times. The hardest part of an app like this is figuring out what
it should do, how it should be configured, what the UI looks like, and debugging
problems when it does not work. This takes experience and is still a lot of work
to get right.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📏 Less code is not the ultimate goal</title>
        <published>2025-10-03T00:00:00+00:00</published>
        <updated>2025-10-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0238-less-code-is-not-the-ultimate-goal/"/>
        <id>https://daily.bec-systems.com/0238-less-code-is-not-the-ultimate-goal/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0238-less-code-is-not-the-ultimate-goal/">&lt;p&gt;Less code is not the ultimate goal&lt;&#x2F;p&gt;
&lt;p&gt;Consider the following
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.ioccc.org&#x2F;2020&#x2F;burton&#x2F;index.html&quot;&gt;byte to binary C program&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;c&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;int&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;int&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; b&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;char&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;i&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;long&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; long&lt;&#x2F;span&gt;&lt;span&gt; n&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt;B&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt;a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt;I&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;^&lt;&#x2F;span&gt;&lt;span&gt;n&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span&gt;b&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span&gt;a&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;&amp;gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt;y&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;atoi&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;++&lt;&#x2F;span&gt;&lt;span&gt;i&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;^&lt;&#x2F;span&gt;&lt;span&gt;n&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span&gt;b&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;y&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;&amp;gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;T&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;|&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;y&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;&amp;gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;S&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;^&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;printf&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;%.8s&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;\n&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;char&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Unless you are trying to win the International Obfuscated C Code Contest, this
is not good code. In spite of what I&#x27;ve
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0230-code-is-a-liability-not-an-asset&#x2F;&quot;&gt;said before&lt;&#x2F;a&gt;,
less code is not always better. The highest goal is readable maintainable code.
Sometimes we have to write more code to have readable code. An example is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0236-align-the-happy&#x2F;&quot;&gt;aligning the happy path&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Less code is more about not implementing unneeded features, cleaning up dead
code, refactoring to simplify and eliminate duplicated code, etc. The goal of
less code should never sacrifice readability or maintainability.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>😊 Other ways to align the happy path</title>
        <published>2025-10-01T00:00:00+00:00</published>
        <updated>2025-10-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0237-other-ways-to-align-the-happy-path/"/>
        <id>https://daily.bec-systems.com/0237-other-ways-to-align-the-happy-path/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0237-other-ways-to-align-the-happy-path/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0236-align-the-happy&#x2F;&quot;&gt;Yesterday&lt;&#x2F;a&gt;, we discussed
aligning the happy path in code. Are there other ways to align the &quot;happy path&quot;?
&lt;em&gt;(The happy path is the desired path where things are functioning as expected.)&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Some thoughts:&lt;&#x2F;p&gt;
&lt;p&gt;Focus on your productive people - as a manager focus your efforts on making life
better for the productive 95% of your team, rather than trying to fix the
unproductive 5% who probably cannot be helped anyway. At least make your efforts
proportional. We should be willing to help people who sincerely want help, but
trying to help those who do not want help drains our soul.&lt;&#x2F;p&gt;
&lt;p&gt;Processes should focus on making the primary work go faster and easier. Sure,
problems must be addressed, but returns are higher on improving the work
desired, vs. knocking down problems. If the former is done better, less time
will be spent on the latter.&lt;&#x2F;p&gt;
&lt;p&gt;Proactively write tests to ensure the system is doing what you want it to do,
rather than wait for bugs to appear and then write tests to cover those.&lt;&#x2F;p&gt;
&lt;p&gt;In summary, if energy is proactively focused on what is wanted to happen, a lot
less time will be spent battling things not wanted.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>😊 Align the &quot;happy path&quot; in your code</title>
        <published>2025-09-30T00:00:00+00:00</published>
        <updated>2025-09-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0236-align-the-happy/"/>
        <id>https://daily.bec-systems.com/0236-align-the-happy/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0236-align-the-happy/">&lt;p&gt;An idiom that I learned in the Go community is to align the happy path. An
example in C below:&lt;&#x2F;p&gt;
&lt;h2 id=&quot;happy-path-not-aligned&quot;&gt;happy path not aligned&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;c&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;int&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; process_file&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;const&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; char&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; filename&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span&gt; f &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; fopen&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;filename&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;!=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; NULL&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        char&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; buffer&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;100&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        if&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;fgets&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;buffer&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; sizeof&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;buffer&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; !=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; NULL&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;            &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; process buffer&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;            fclose&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            return&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; success&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        }&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;            fclose&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            return&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; error: unable to read&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        return&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; error: unable to open&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;happy-path-aligned&quot;&gt;happy path aligned&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;c&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;int&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; process_file&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;const&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; char&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; filename&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span&gt; f &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; fopen&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;filename&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; NULL&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        return&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; error: unable to open&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    char&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; buffer&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;100&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;fgets&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;buffer&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; sizeof&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;buffer&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; NULL&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;        fclose&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        return&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; error: unable to read&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; process buffer&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;    fclose&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    return&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; success&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;In the first example, it is more difficult to follow the logic due to nested if
statements. In the second example, it is easy to scan down through the code
aligned to the left and sequentially see what it is supposed to do.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔓 You should not be needed</title>
        <published>2025-09-29T00:00:00+00:00</published>
        <updated>2025-09-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0235-you-should-not-be-needed/"/>
        <id>https://daily.bec-systems.com/0235-you-should-not-be-needed/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0235-you-should-not-be-needed/">&lt;p&gt;An effective process, team, or organization should be able to continue on if any
individual steps away for a bit, or forever. But, most people are insecure and
like to be needed, so subconsciously structure things to require them to be
present for things to proceed -- the gatekeeper or authoritarian mindset.&lt;&#x2F;p&gt;
&lt;p&gt;A few ideas:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;nathanbarry.com&#x2F;89697-reasons-to-teach&#x2F;&quot;&gt;Share everything you know&lt;&#x2F;a&gt;
with the widest possible audience.&lt;&#x2F;li&gt;
&lt;li&gt;Document &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;#why&quot;&gt;why&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Automate tedious processes so anyone can execute them. This also serves as
good documentation.&lt;&#x2F;li&gt;
&lt;li&gt;Encourage others to do things you do.&lt;&#x2F;li&gt;
&lt;li&gt;Prefer transparency for accountability rather than oversight or status
reports.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Creating a process or culture that can function just fine without a single point
of dependency makes that person more valuable than ever, and frees them up to do
other higher-value things.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚧 Three things that hinder product development</title>
        <published>2025-09-24T00:00:00+00:00</published>
        <updated>2025-09-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0234-three-things-that-hinder-product-development/"/>
        <id>https://daily.bec-systems.com/0234-three-things-that-hinder-product-development/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0234-three-things-that-hinder-product-development/">&lt;ol&gt;
&lt;li&gt;Not using new tech when applicable.&lt;&#x2F;li&gt;
&lt;li&gt;Doing the same work over and over again instead of automating.&lt;&#x2F;li&gt;
&lt;li&gt;Lack of collaboration.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚙️ Three aspects of product development</title>
        <published>2025-09-23T00:00:00+00:00</published>
        <updated>2025-09-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0233-three-aspects-of-product-development/"/>
        <id>https://daily.bec-systems.com/0233-three-aspects-of-product-development/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0233-three-aspects-of-product-development/">&lt;ol&gt;
&lt;li&gt;Finding and leveraging existing technology.&lt;&#x2F;li&gt;
&lt;li&gt;Developing some of your own technology.&lt;&#x2F;li&gt;
&lt;li&gt;Mixing it together.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;All three are necessary.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚖️ Technical debt compounds with you doing nothing</title>
        <published>2025-09-22T00:00:00+00:00</published>
        <updated>2025-09-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0232-technical-debt-compounds-with-you-doing-nothing/"/>
        <id>https://daily.bec-systems.com/0232-technical-debt-compounds-with-you-doing-nothing/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0232-technical-debt-compounds-with-you-doing-nothing/">&lt;p&gt;Technical debt is like any other kind of debt -- it accrues when nothing is
done. This is perhaps the most insidious aspect of debt.&lt;&#x2F;p&gt;
&lt;p&gt;How does technical debt work? Mainly that software (and technology in general)
moves on (especially OSS), and we do not keep up.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;It works, why do we need to update? That just introduces risk.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;But the longer we put this off, it becomes exponentially harder to ever catch up
-- just like compound interest on financial debt never receiving payments.&lt;&#x2F;p&gt;
&lt;p&gt;The other aspect of doing nothing is that infrastructure rots -- the tools,
automation, testing, and know-how that even allow making changes and improve
things. So when the gap is huge and there is no infrastructure (way to close the
gap), it is nearly impossible, so we declare bankruptcy and start over.&lt;&#x2F;p&gt;
&lt;p&gt;There is another path: keep up-to-date. This forces the infrastructure to stay
fresh. Iterations expose areas that can be automated and improved. Investing in
YOUR platform compounds benefits over time.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📚 Without docs</title>
        <published>2025-09-12T00:00:00+00:00</published>
        <updated>2025-09-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0231-without-docs/"/>
        <id>https://daily.bec-systems.com/0231-without-docs/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0231-without-docs/">&lt;p&gt;Design files (mechanical, electrical, or software) contain the technical details
that allow us to manufacture something in the moment, but they often don&#x27;t
contain the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0223-document-why-not-how&#x2F;&quot;&gt;&quot;why&quot;&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Why is this mechanical feature present?&lt;&#x2F;li&gt;
&lt;li&gt;Why is this circuit necessary?&lt;&#x2F;li&gt;
&lt;li&gt;Why is the code structured this way?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Most designs exist this way -- without adequate documentation. What happens two
years later when something quits working? What happens when a new feature needs
added? What happens when someone leaves?&lt;&#x2F;p&gt;
&lt;p&gt;World-class engineering requires world-class documentation. There is no other
way.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚖️ Code is a liability, not an asset</title>
        <published>2025-09-11T00:00:00+00:00</published>
        <updated>2025-09-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0230-code-is-a-liability-not-an-asset/"/>
        <id>https://daily.bec-systems.com/0230-code-is-a-liability-not-an-asset/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0230-code-is-a-liability-not-an-asset/">&lt;p&gt;A wise developer
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;gist.github.com&#x2F;stettix&#x2F;5bb2d99e50fdbbd15dd9622837d14e2b&quot;&gt;once said&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Code is a liability, not an asset. Aim to have as little of it as possible.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This is perhaps the #1 rule for clean code. Some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Don&#x27;t implement &quot;just in case&quot; features. Remember
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0229-yagni&#x2F;&quot;&gt;YAGNI&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0087-abstractions-and-platforms&#x2F;&quot;&gt;Premature abstractions&lt;&#x2F;a&gt;
often do more harm than good.&lt;&#x2F;li&gt;
&lt;li&gt;Premature optimization is the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0078-architecture-vs-optimization&#x2F;&quot;&gt;root of all evil&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bec-systems.com&#x2F;2432&#x2F;struggling-to-scale-your-iot-system-simplify-your-data&#x2F;&quot;&gt;Simple data structures scale&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0034-seeing-patterns&#x2F;&quot;&gt;Find patterns&lt;&#x2F;a&gt; and
refactor often.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Just-in-case development (implementing stuff not needed right now) is a powerful
force, especially with less experienced developers who have not spent
significant time maintaining software.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Understand the problem before starting implementation.&lt;&#x2F;li&gt;
&lt;li&gt;If at all possible, reproduce the bug before trying to fix it.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✂️ YAGNI</title>
        <published>2025-09-10T00:00:00+00:00</published>
        <updated>2025-09-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0229-yagni/"/>
        <id>https://daily.bec-systems.com/0229-yagni/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0229-yagni/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;You_aren&amp;#x27;t_gonna_need_it&quot;&gt;YAGNI&lt;&#x2F;a&gt; - &quot;You ain&#x27;t
gonna need it!&quot;&lt;&#x2F;p&gt;
&lt;p&gt;If you don&#x27;t need it now, the chances you&#x27;ll need it in the future are small, or
at least not the current implementation. Do the simplest thing that works now. Get
feedback. Repeat.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0178-how-to-define-an-iteration&#x2F;&quot;&gt;Iterations&lt;&#x2F;a&gt; are
the key -- get better at doing iterations faster (including testing, and
feedback), not implementing more stuff now.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🐛Kernighan&#x27;s Law</title>
        <published>2025-09-09T00:00:00+00:00</published>
        <updated>2025-09-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0228-kernighan-s-law/"/>
        <id>https://daily.bec-systems.com/0228-kernighan-s-law/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0228-kernighan-s-law/">&lt;p&gt;&lt;strong&gt;Kernighan&#x27;s Law:&lt;&#x2F;strong&gt; &lt;em&gt;Debugging is twice as hard as writing the code in the
first place. Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Cliff&#x27;s Law:&lt;&#x2F;strong&gt; &lt;em&gt;In three months, it will be three times harder to read the
code you just wrote than writing the code in the first place. With AI, add a 10x
factor.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Maintaining code over a product lifecycle is many times harder than the initial
implementation. With AI,
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0218-close-the-loop-with-ai&#x2F;&quot;&gt;doc&lt;&#x2F;a&gt; or
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;github&#x2F;spec-kit&quot;&gt;spec&lt;&#x2F;a&gt; driven development is critical.
Otherwise, you will bury yourself in technical debt. Make it easy on others and
your future self.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌀 Complex systems are hard to predict</title>
        <published>2025-09-08T00:00:00+00:00</published>
        <updated>2025-09-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0227-complex-systems-are-hard-to-predict/"/>
        <id>https://daily.bec-systems.com/0227-complex-systems-are-hard-to-predict/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0227-complex-systems-are-hard-to-predict/">&lt;p&gt;My wife makes sourdough, which is a multi-day process and at times
unpredictable. Recently, the current batch was a little sluggish and not
expanding like it should, so she &quot;fed&quot; it and left it on the counter. It took
off during the night and was all over the counter in the morning.&lt;&#x2F;p&gt;
&lt;p&gt;Sourdough is a complex living system. Because of this, sourdough is difficult to
predict 100% of the time. As computer systems become more complex, they take on
some of the same characteristics of living systems. You can&#x27;t completely predict
everything. What worked yesterday may not work today, due to various external
factors that cannot be controlled or fully understood. Especially with networked
systems -- we cannot control everything else on the network, or involved with
the network. We cannot control what new feature customers are going to ask for
that might require us to update dependencies. We can&#x27;t predict what new edge
case will trigger a bug we have not seen before.&lt;&#x2F;p&gt;
&lt;p&gt;The best we can do is keep tools and processes flexible, up-to-date, and as
automated as possible (YOUR Platform). This enhances the ability to adapt to the
external forces that cannot be controlled.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📊 Simple data formats + powerful tools scale</title>
        <published>2025-09-04T00:00:00+00:00</published>
        <updated>2025-09-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0226-simple-formats-powerful-tools/"/>
        <id>https://daily.bec-systems.com/0226-simple-formats-powerful-tools/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0226-simple-formats-powerful-tools/">&lt;p&gt;There is an ongoing shift in data analysis tools. Another example is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;datavzrd.github.io&#x2F;&quot;&gt;datavzrd&lt;&#x2F;a&gt;. datavzrd is a zero&#x2F;low-code,
interactive, visual, server-free, browser-based reporting tool for tabular
datasets.&lt;&#x2F;p&gt;
&lt;p&gt;The
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;journals.plos.org&#x2F;plosone&#x2F;article?id=10.1371&#x2F;journal.pone.0323079&quot;&gt;paper&lt;&#x2F;a&gt;
makes an interesting statement:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Most spreadsheet applications, including Excel, lack the capability to quickly
and easily visualize different columns of a dataset. They also &lt;strong&gt;do not
support reproducibility of results for similar datasets without repeating the
work&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This last point is key. For example, if data needs monthly review, tools like
this make a lot of sense. Complete automation becomes possible. Manual
spreadsheet work every month becomes unnecessary, eliminating tedious and
error-prone processes.&lt;&#x2F;p&gt;
&lt;p&gt;This is another example of the trend toward
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0191-text-based-formats-and-command-line-tools-are-the-future&#x2F;&quot;&gt;simple data formats&lt;&#x2F;a&gt;
and flexible tools.&lt;&#x2F;p&gt;
&lt;p&gt;YAML, CSV, and Markdown are the file formats of the future.&lt;&#x2F;p&gt;
&lt;p&gt;Simple data formats + powerful tools is the formula that scales.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📚 Documentation never has to go out of date again</title>
        <published>2025-09-03T00:00:00+00:00</published>
        <updated>2025-09-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0225-documentation-never-has-to-go-out-of-date-again/"/>
        <id>https://daily.bec-systems.com/0225-documentation-never-has-to-go-out-of-date-again/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0225-documentation-never-has-to-go-out-of-date-again/">&lt;p&gt;AI is really good at updating documentation after implementation. While I
strongly advocate
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0218-close-the-loop-with-ai&#x2F;&quot;&gt;writing the documentation to drive AI&lt;&#x2F;a&gt;,
inevitably, the implementation takes some unanticipated turns, so making sure
everything is in sync after implementation is a good task for AI.&lt;&#x2F;p&gt;
&lt;p&gt;Are the docs up to date? With Claude Code (or something similar), there is
really no excuse.&lt;&#x2F;p&gt;
&lt;p&gt;However, it helps to standardize on the format the AI knows best:
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;#markdown&quot;&gt;Markdown&lt;&#x2F;a&gt;, and it helps a lot to
keep the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0224-keep-documentation-close-to-the-design-code&#x2F;&quot;&gt;docs close to the design&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📚 Keep documentation close to the design&#x2F;code</title>
        <published>2025-09-02T00:00:00+00:00</published>
        <updated>2025-09-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0224-keep-documentation-close-to-the-design-code/"/>
        <id>https://daily.bec-systems.com/0224-keep-documentation-close-to-the-design-code/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0224-keep-documentation-close-to-the-design-code/">&lt;p&gt;I find it works best to keep documentation as close to the code or design files
as possible. There are several benefits:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;You can update, commit, and review documentation as part of the standard
working process (pull requests, CI, etc.)&lt;&#x2F;li&gt;
&lt;li&gt;You can use tools you are already using (like your favorite editor)&lt;&#x2F;li&gt;
&lt;li&gt;It encourages the use of Markdown (the format AI works with)&lt;&#x2F;li&gt;
&lt;li&gt;Claude Code, which you run from your working directory, has access to it. This
has always been important, but with AI tools, it is even more important—more
on that in future.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📝 Document &quot;why&quot; not &quot;how&quot;</title>
        <published>2025-08-29T00:00:00+00:00</published>
        <updated>2025-08-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0223-document-why-not-how/"/>
        <id>https://daily.bec-systems.com/0223-document-why-not-how/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0223-document-why-not-how/">&lt;p&gt;Be kind to others (and your future self) and document why you did something.&lt;&#x2F;p&gt;
&lt;p&gt;AI is pretty good at generating the &quot;how&quot; any time you need it, but only you
know the &quot;why&quot; because you have that context.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Closed-loop engineering</title>
        <published>2025-08-28T00:00:00+00:00</published>
        <updated>2025-08-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0222-closed-loop-engineering/"/>
        <id>https://daily.bec-systems.com/0222-closed-loop-engineering/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0222-closed-loop-engineering/">&lt;p&gt;What are some ways we can close the loop in engineering efforts?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Systematic testing&lt;&#x2F;li&gt;
&lt;li&gt;User feedback&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;These ensure whatever we build &lt;strong&gt;works&lt;&#x2F;strong&gt; and is &lt;strong&gt;useful&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚴 The power of movement</title>
        <published>2025-08-27T00:00:00+00:00</published>
        <updated>2025-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0221-the-power-of-movement/"/>
        <id>https://daily.bec-systems.com/0221-the-power-of-movement/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0221-the-power-of-movement/">&lt;p&gt;Rod&#x27;s thoughts on
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;rodaparicio.kit.com&#x2F;posts&#x2F;riding-a-bike&quot;&gt;Riding a Bike&lt;&#x2F;a&gt; are thought
provoking.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;... A decision that might be bad. Yet, with it, you can steer. Just like
riding a bike. If it&#x27;s standing with no movement, you can direct the handle
and still be where you are. It&#x27;s when you&#x27;re moving on the bike that you give
direction.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;I&#x27;ve often experienced this in software development where I don&#x27;t really know
how I&#x27;m going to solve a problem until I start coding, and then things start to
emerge. The same happens with
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;writing&#x2F;&quot;&gt;writing&lt;&#x2F;a&gt; and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;drawing&#x2F;&quot;&gt;sketching&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;There is value in up-front planning, but there is power in movement, especially
when you &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;iteration&#x2F;&quot;&gt;iterate&lt;&#x2F;a&gt; and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;closed-loop&#x2F;&quot;&gt;close-the-loop&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Closed-loop humans</title>
        <published>2025-08-26T00:00:00+00:00</published>
        <updated>2025-08-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0220-closed-loop-humans/"/>
        <id>https://daily.bec-systems.com/0220-closed-loop-humans/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0220-closed-loop-humans/">&lt;p&gt;What are some ways we as humans can close the loop?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Listen&lt;&#x2F;li&gt;
&lt;li&gt;Reflect&lt;&#x2F;li&gt;
&lt;li&gt;Write&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Without these, we operate in a largely open-loop mode without the feedback we
need to improve or correct our course.&lt;&#x2F;p&gt;
&lt;p&gt;Action bias is good, but it helps to know we are doing the right things and
going in the right direction.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Look for closed loops</title>
        <published>2025-08-25T00:00:00+00:00</published>
        <updated>2025-08-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0219-look-for-closed-loops/"/>
        <id>https://daily.bec-systems.com/0219-look-for-closed-loops/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0219-look-for-closed-loops/">&lt;p&gt;Closed loop systems are stable. Why? Because they learn and self-correct.&lt;&#x2F;p&gt;
&lt;p&gt;In any system, process, person, or organization, look for closed loops. If
something is not working, chances are there is an open loop.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Close the loop with AI</title>
        <published>2025-08-22T00:00:00+00:00</published>
        <updated>2025-08-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0218-close-the-loop-with-ai/"/>
        <id>https://daily.bec-systems.com/0218-close-the-loop-with-ai/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0218-close-the-loop-with-ai/">&lt;p&gt;There is a fascinating statement in a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;state-of-ai-in-business-2025-report&#x2F;1584&quot;&gt;recent MIT study&lt;&#x2F;a&gt;
that claims 95% of organizations are getting zero return from GenAI investments.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;The core barrier to scaling is not infrastructure, regulation, or talent. It
is learning. Most GenAI systems do not retain feedback, adapt to context, or
improve over time.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;AI proves useful to software developers, perhaps because so much context is
available, giving it a better starting point than in most other industries.&lt;&#x2F;p&gt;
&lt;p&gt;However, I think we can still do better by closing the loop. The below workflow
is currently working well for me:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;ai-closed-loop-workflow.png&quot; alt=&quot;image.png&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Closing the loop means retaining and re-using what you have learned.
Interestingly, it does not really matter if humans or AI are doing the work—the
same process works well with both.&lt;&#x2F;p&gt;
&lt;p&gt;Notice the absence of AI prompts -- while an AI tool may remember prompts for a
session, they are lost on the next. They are &quot;open-loop&quot;.&lt;&#x2F;p&gt;
&lt;p&gt;Code is not the most valuable asset you own, but rather the ability to generate,
maintain, and improve it—the process. It is kind of like personal wealth and
skills. Even if we lose the first, we can always generate more with the second.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💰 Ways to reduce your AI costs</title>
        <published>2025-08-21T00:00:00+00:00</published>
        <updated>2025-08-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0217-ways-to-reduce-your-ai-costs/"/>
        <id>https://daily.bec-systems.com/0217-ways-to-reduce-your-ai-costs/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0217-ways-to-reduce-your-ai-costs/">&lt;p&gt;AI is not free, as there are significant costs associated with training and
hosting modern AI models. Some ideas on how to reduce costs with tools like
Claude Code:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;If you do something that is somewhat repetitive, have AI generate scripts or
programs that do the work instead of using AI directly. AI excels at creating
automation tools.&lt;&#x2F;li&gt;
&lt;li&gt;Capture context. Instead of relying solely on prompts, update documentation
and have AI implement the doc changes. This approach captures a lot of context
instead of losing context in prompts.&lt;&#x2F;li&gt;
&lt;li&gt;Start with more complete and accurate descriptions of what needs to be done.&lt;&#x2F;li&gt;
&lt;li&gt;Use cheaper models. In my experience, Claude Sonnet performs just as well as
Claude Opus for most tasks I need to complete. Sonnet is 1&#x2F;5 the cost and is
generally faster.&lt;&#x2F;li&gt;
&lt;li&gt;If the agent is spinning its wheels, stop it, provide more details, and
resume.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💰 What is the cheapest PDM tool out there?</title>
        <published>2025-08-19T00:00:00+00:00</published>
        <updated>2025-08-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0216-what-is-the-cheapest-pdm-tool-out-there/"/>
        <id>https://daily.bec-systems.com/0216-what-is-the-cheapest-pdm-tool-out-there/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0216-what-is-the-cheapest-pdm-tool-out-there/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Product_data_management&quot;&gt;Product Data Management (PDM)&lt;&#x2F;a&gt;
is how you manage and publish your product data. The goal is to ensure all the
stakeholders share a common understanding, confusion is minimized, and quality
is maintained.&lt;&#x2F;p&gt;
&lt;p&gt;The simplest PDM system is to put a bunch of files on a fileserver and talk
about them in meetings, emails, or other messages. This is a start, but it is
error-prone and does not scale.&lt;&#x2F;p&gt;
&lt;p&gt;There are many commercial PDM tools available. CAD systems,
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;jon-hirschtick-founder-of-solidworks-and-onshape&#x2F;1575&quot;&gt;like Onshape&lt;&#x2F;a&gt;,
provide PDM features. Software developers have been doing PDM to various degrees
for decades using open-source tools. You have SCCS (1972), RCS (1982), CVS
(1986), SVN (2000), and Git (2005).&lt;&#x2F;p&gt;
&lt;p&gt;Git and its various
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0149-git-the-new-standard-for-workflow&#x2F;&quot;&gt;hosting platforms&lt;&#x2F;a&gt;
support a number of the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0214-git-solves-the-problem-of-managing-files&#x2F;&quot;&gt;features&lt;&#x2F;a&gt;
needed for PDM. The cost is minimal and you probably already have people on
staff who are experts at using it. For small teams, Git may just be the PDM
solution you need. However, there is a learning curve, and some additional
tooling may be required to make it accessible—more on that in the future.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🗂️ Git has an unfortunate name</title>
        <published>2025-08-18T00:00:00+00:00</published>
        <updated>2025-08-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0215-git-has-an-unfortunate-name/"/>
        <id>https://daily.bec-systems.com/0215-git-has-an-unfortunate-name/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0215-git-has-an-unfortunate-name/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Git&quot;&gt;Git&lt;&#x2F;a&gt;, which was created 20 years, and
various
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0149-git-the-new-standard-for-workflow&#x2F;&quot;&gt;hosting platforms&lt;&#x2F;a&gt;,
has &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bec-systems.com&#x2F;723&#x2F;why-git&#x2F;&quot;&gt;revolutionized&lt;&#x2F;a&gt; software development
workflow and collaboration. The name Git was chosen by its creator, Linus
Torvalds, and has a humorous backstory rooted in both practicality and
world-class trolling. In British slang, &quot;git&quot; is an insult meaning
an unpleasant or silly person, which Torvalds acknowledged with characteristic
Finnish bluntness: “I&#x27;m an egotistical &lt;strong&gt;___&lt;&#x2F;strong&gt;, and I name all my projects
after myself. First Linux, now Git.”&lt;&#x2F;p&gt;
&lt;p&gt;Most of us software developers, especially in OSS culture, appreciate a little
humor and self-deprecation (it&#x27;s basically a job requirement at this point).
However, those from other disciplines seem to have an inexplicable aversion to
anything with the word &quot;git&quot; in it. Perhaps this is understandable -- why would
I ever use a tool that literally calls me stupid in the name? That must mean I&#x27;m
stupid if I use it, right? This appears to be a subconscious psychological
defense mechanism that is surprisingly hard to overcome. It unfolds something
like this:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Developer (D)&lt;&#x2F;strong&gt;: Hey, why don&#x27;t we use
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0149-git-the-new-standard-for-workflow&#x2F;&quot;&gt;Git*&lt;&#x2F;a&gt;
for this project? It handles all our
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0214-git-solves-the-problem-of-managing-files&#x2F;&quot;&gt;file management problems&lt;&#x2F;a&gt;
with some project management tools thrown in.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Project Manager (P)&lt;&#x2F;strong&gt;: Great idea! (Famous last words)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;D&lt;&#x2F;strong&gt;: Can you comment on that &quot;Git&quot; PR I just posted?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;P&lt;&#x2F;strong&gt;: Sure.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;deafening silence&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;D&lt;&#x2F;strong&gt;: Can you push the new product specification you wrote to the &quot;Git&quot; repo
in Markdown so we can track and review changes?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;P&lt;&#x2F;strong&gt;: Sure! (Proceeds to email a Word doc like it&#x27;s still 2003)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;developer dies a little inside&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;D&lt;&#x2F;strong&gt;: Can you test the new release in &quot;Git&quot;? (link to Git* release).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;P&lt;&#x2F;strong&gt;: (a little while later) Can you just email the files to Nick? (Git? What
Git?)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;D&lt;&#x2F;strong&gt;: &lt;code&gt;&amp;lt;internal screaming intensifies&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;D&lt;&#x2F;strong&gt;: (at the weekly status meeting) Why am I the only one tracking my tasks
in &quot;GitHub&quot; issues?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;P:&lt;&#x2F;strong&gt; Good question, we should all do that. (Immediately forgets and goes
back to sticky notes)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;the sound of one developer crying&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;D:&lt;&#x2F;strong&gt; Why don&#x27;t people use &quot;Git&quot; when it has most of the file management,
collaboration, and PM tools we need?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;P:&lt;&#x2F;strong&gt; It&#x27;s too hard. (Says the person who maintains a 47-tab Gantt chart in
Excel)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;D:&lt;&#x2F;strong&gt; It&#x27;s a lot simpler than a mega Gantt chart in Excel, or a 3D model in
SolidWorks.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;P:&lt;&#x2F;strong&gt; True. (Goes back to Excel anyway)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;the void stares back&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The only rational conclusion I can come up with is that the word &quot;Git&quot; somehow
triggers a Pavlovian response in most people&#x27;s brains that makes them physically
unable to click on anything Git-related. It&#x27;s like some kind of linguistic
kryptonite. Only a minority of battle-hardened software nerds, especially those
who&#x27;ve been sufficiently traumatized by OSS projects, have managed to overcome
the existential crisis of using a tool that openly mocks them.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📁 Git* solves the problem of managing files</title>
        <published>2025-08-15T00:00:00+00:00</published>
        <updated>2025-08-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0214-git-solves-the-problem-of-managing-files/"/>
        <id>https://daily.bec-systems.com/0214-git-solves-the-problem-of-managing-files/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0214-git-solves-the-problem-of-managing-files/">&lt;p&gt;The thing you get with &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;git&#x2F;&quot;&gt;Git*&lt;&#x2F;a&gt; is a
sane way to manage files:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;organization&lt;&#x2F;strong&gt; (team&#x2F;repo&#x2F;directories)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;documentation&lt;&#x2F;strong&gt; (excellent support for Markdown)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;efficient navigation&lt;&#x2F;strong&gt; (links in READMEs and other markdown files)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;history&lt;&#x2F;strong&gt; (who changed what when)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;collaboration&lt;&#x2F;strong&gt; (issues, pull requests)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;distributed&lt;&#x2F;strong&gt; (anyone can work anywhere)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;automation&lt;&#x2F;strong&gt; (continuous integreation (CI), continuous deployment (CD),
hooks, etc.)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;reviews&lt;&#x2F;strong&gt; (PRs)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;workflow&lt;&#x2F;strong&gt; (enforces workflow such as requiring PRs, approvals, etc.)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;versions&lt;&#x2F;strong&gt; (feature and maintenance branches)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;releases&lt;&#x2F;strong&gt; (built in way to do formal releases)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;security&lt;&#x2F;strong&gt; (granular access controls and workflow permissions, bank level
security for web access (https), and better for Git operations (ssh keys))&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Git* is not primarily a way to manage projects, but rather a way to manage and
collaborate around files, with some project management thrown in. It is centered
around the work, which is the main point.&lt;&#x2F;p&gt;
&lt;p&gt;Other tools have more advanced project management features, which are needed at
times. But they are missing a key ingredient: tight integration with your files.
The closer you can keep your project management and other metadata to the actual
work, the better.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📁 The file dilemma</title>
        <published>2025-08-14T00:00:00+00:00</published>
        <updated>2025-08-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0213-the-file-dilemma/"/>
        <id>https://daily.bec-systems.com/0213-the-file-dilemma/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0213-the-file-dilemma/">&lt;p&gt;There is this movement against files in most disciplines. Files are hard to
manage, track, version, and secure (unless you use Git). Thus, a lot of tools
have moved to SaaS (software-as-a-service) applications in the cloud. Jon
Hirschtick
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;jon-hirschtick-founder-of-solidworks-and-onshape&#x2F;1575&quot;&gt;articulates this point of view&lt;&#x2F;a&gt;
very well. Cloud and APIs are the new &quot;file.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;d like to present a few counterpoints.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Integration:&lt;&#x2F;strong&gt; One of the ways we add value fast is integrating systems.
This is due to the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Network_effect&quot;&gt;network effect&lt;&#x2F;a&gt;, where
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Metcalfe&amp;#x27;s_law&quot;&gt;Metcalfe&lt;&#x2F;a&gt; defines the value as
the square of the number of nodes (or in our case integrated systems or types
of data). When we can integrate multiple types of data (say hardware,
software, and mechanical), the value increase is much greater than just
linear.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;AI&lt;&#x2F;strong&gt;: AI needs context to be effective. The easiest way to provide context
is to run a local agent that has access to files that are in an open format.
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;modelcontextprotocol.io&#x2F;&quot;&gt;MCP&lt;&#x2F;a&gt; (Model Context Protocol) may be
another way.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Accessibility:&lt;&#x2F;strong&gt; One of the problems with SaaS and APIs is you don&#x27;t really
own the data. Ten years down the road, are you still going to have access to
it? Are you still going to have the tools needed to use the data?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Files are flexible and scale. The success of Linux evidences this
(which adopts the Unix philosophy that everything is a file), the web (it still uses a
bunch of plain-text files for every site), and software development (anyone
ever heard of source code?). Software is by far the largest and most complex systems
humans have created, and it is still 99% based on the lowly text file. Since its
inception in 1991, the Linux kernel has had more than 20,000 contributors.
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;jon-hirschtick-founder-of-solidworks-and-onshape&#x2F;1575&quot;&gt;Onshape&lt;&#x2F;a&gt;
is impressive, but it is a long way from scaling to projects of this size and
longevity.&lt;&#x2F;p&gt;
&lt;p&gt;The reality is that a mix of files and APIs is no doubt required. However, if
you want scalability and flexibility, I&#x27;m not sure you want to throw out files. GUI
technologies have been trying to do this for decades, but
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0191-text-based-formats-and-command-line-tools-are-the-future&#x2F;&quot;&gt;HTML and friends&lt;&#x2F;a&gt;
are still king (anyone remember Flash?).&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 AI and documentation - close the loop</title>
        <published>2025-08-13T00:00:00+00:00</published>
        <updated>2025-08-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0212-ai-and-documentation-close-the-loop/"/>
        <id>https://daily.bec-systems.com/0212-ai-and-documentation-close-the-loop/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0212-ai-and-documentation-close-the-loop/">&lt;p&gt;Starting with good documentation is often a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0211-ai-is-the-new-compiler&#x2F;&quot;&gt;better way to use AI&lt;&#x2F;a&gt;.
However, you can also close the loop and have AI update the documentation when
it is finished. It can fill in details, clean things up, etc. This closes the
loop. Then repeat.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;ai-doc-loop.png&quot; alt=&quot;ai-doc-loop&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤖 AI is the new compiler</title>
        <published>2025-08-12T00:00:00+00:00</published>
        <updated>2025-08-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0211-ai-is-the-new-compiler/"/>
        <id>https://daily.bec-systems.com/0211-ai-is-the-new-compiler/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0211-ai-is-the-new-compiler/">&lt;p&gt;There are two ways to use AI:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Start with a vague prompt and keep prompting until we get the result we want.&lt;&#x2F;li&gt;
&lt;li&gt;Point the AI at documentation, and keep updating the documentation until it is
clear enough that AI can do the right thing.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Even though it takes more time up front, in the end, the second approach will be
faster and more efficient because building a cohesive picture from a long string
of sloppy prompts is difficult, even with something as capable as AI. AI coding
engines are not free, so efficiency matters.&lt;&#x2F;p&gt;
&lt;p&gt;AI is the new compiler -- IF we choose to use it that way.&lt;&#x2F;p&gt;
&lt;p&gt;Writing clean code is a skill. So is writing clean documentation.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✨ Anyone can write scripts now</title>
        <published>2025-08-11T00:00:00+00:00</published>
        <updated>2025-08-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0210-anyone-can-write-scripts-now/"/>
        <id>https://daily.bec-systems.com/0210-anyone-can-write-scripts-now/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0210-anyone-can-write-scripts-now/">&lt;p&gt;With Claude Code (and likely many other AI technologies), anyone can write
scripts now. Instead of writing in a technical language like Python or Bash, you
can now write a sequence of commands with some rules in plain English, and
Claude transforms these into the technical bits to make it happen.
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Low-code_development_platform&quot;&gt;Low-code&lt;&#x2F;a&gt; is
finally a reality. You can keep these as Claude commands, or have Claude write
permanent scripts, programs, tools, etc.&lt;&#x2F;p&gt;
&lt;p&gt;It is now easier than ever to build YOUR Platform.&lt;&#x2F;p&gt;
&lt;p&gt;See
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.perplexity.ai&#x2F;search&#x2F;how-to-create-rules-for-claude-KlzVkYwVTn2DZCyUP89QJw?1=d&quot;&gt;this summary&lt;&#x2F;a&gt;
or
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0204-how-i-use-claude-code-to-help-publish-this-blog&#x2F;&quot;&gt;this example&lt;&#x2F;a&gt;
for more information.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✏️ Effective Communication (Sketching)</title>
        <published>2025-08-08T00:00:00+00:00</published>
        <updated>2025-08-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0209-effective-communication-sketching/"/>
        <id>https://daily.bec-systems.com/0209-effective-communication-sketching/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0209-effective-communication-sketching/">&lt;p&gt;Sketching is kind of like writing cursive—it engages a dynamic in our brains
that inspires creativity. As we mostly use computers, it takes extra effort to
pick up pen or pencil, but surprising things happen when we do. It engages
broader areas of our brain, and there is a flow that comes from the lack of
restraints our digital tools have. So perhaps sketching is mostly about
communicating with ourselves, but we can still easily snap a photo with a phone
and share it. This is perhaps the lowest friction form of drawing.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;simpleiot&#x2F;simpleiot&#x2F;issues&#x2F;294&quot;&gt;Here is an example&lt;&#x2F;a&gt; in
thinking through a hard problem where sketching really helped.&lt;&#x2F;p&gt;
&lt;p&gt;One thing that helps me cultivate a sketching habit is to always have paper and
a pencil or pen out on the desk when working. The
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;emergent-task-timer&#x2F;1421&quot;&gt;daily worksheet&lt;&#x2F;a&gt; is
always on my desk—the back is a good place to sketch and write notes. I also
need to get into the habit of using a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;book-review-bullet-journal&#x2F;391&#x2F;7?u=cbrake&quot;&gt;journal&lt;&#x2F;a&gt;
more.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎨 Effective Communication (Drawing)</title>
        <published>2025-08-07T00:00:00+00:00</published>
        <updated>2025-08-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0208-effective-communication-drawing/"/>
        <id>https://daily.bec-systems.com/0208-effective-communication-drawing/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0208-effective-communication-drawing/">&lt;p&gt;We&#x27;ve already explored 4 modes of
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;communication&#x2F;&quot;&gt;communication&lt;&#x2F;a&gt; (audio,
written, images, video). Drawings are another, and today it is even easier to do
with tools like &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;excalidraw.com&#x2F;&quot;&gt;Excalidraw&lt;&#x2F;a&gt; and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http:&#x2F;&#x2F;draw.io&#x2F;&quot;&gt;Draw.io&lt;&#x2F;a&gt;. It is easy to copy drawings from both into other
applications.&lt;&#x2F;p&gt;
&lt;p&gt;A clean drawing&#x2F;diagram brings another level of professionalism to your work.&lt;&#x2F;p&gt;
&lt;p&gt;Drawing with AI is another option, but I have not figured out how to use that
yet.&lt;&#x2F;p&gt;
&lt;p&gt;One thing that has worked well for me is to use a single Excalidraw drawing as
an infinite canvas. This way I can easily see content I&#x27;ve created before, reuse
it, or use it for inspiration.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;uploads&#x2F;default&#x2F;original&#x2F;2X&#x2F;a&#x2F;ad720f3be3088fc0c85202fe188123e99be03289.png&quot; alt=&quot;excalidraw drawing&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📹 Effective Communication (Video)</title>
        <published>2025-08-06T00:00:00+00:00</published>
        <updated>2025-08-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0207-effective-communication-video/"/>
        <id>https://daily.bec-systems.com/0207-effective-communication-video/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0207-effective-communication-video/">&lt;p&gt;Video is now an important way to communicate. The most obvious type is Zoom
calls. But there are other ways we can use video such as screencasting,
recording demos, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Position a decent camera at a good angle. Shooting up your nose probably isn&#x27;t a
good camera position.&lt;&#x2F;p&gt;
&lt;p&gt;Screencasts are a scaling superpower. Record how you do something and share it
with people learning. Have them write the documentation or checklist.&lt;&#x2F;p&gt;
&lt;p&gt;Screencasts may be a better way to demo. Record and share the demo ahead of
time, then discuss it in a meeting.&lt;&#x2F;p&gt;
&lt;p&gt;With a screencast, it&#x27;s even more important to have good audio. In a meeting,
people will overlook bad audio because you have a captive audience. But in a
recorded video, people will likely quit watching if the audio is bad. So get a
decent
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;audio-technica-at2020usb-microphone-review&#x2F;578&quot;&gt;podcasting mic&lt;&#x2F;a&gt;
or &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;video-conferencing-notes&#x2F;117&quot;&gt;headset&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Learn OBS Studio - this is a professional way to record screencasts that is
free. I&#x27;ve found that
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;how-to-record-screencasts-using-obs&#x2F;1048&quot;&gt;setting up a 1080p (1920x1080) section&lt;&#x2F;a&gt;
of my screen to record works well. Drag, resize, and stack the applications you
want to display in this section of the screen, then just record that single
scene. This is much simpler than setting up a separate scene for every
application.&lt;&#x2F;p&gt;
&lt;p&gt;If you are working with hardware, get a document camera to video stuff on the
lab bench.&lt;&#x2F;p&gt;
&lt;p&gt;And don&#x27;t forget your phone takes excellent video - we all should probably make
better use of this capability.&lt;&#x2F;p&gt;
&lt;p&gt;When possible, record in MP4 format. This format plays easily in most browsers,
so you can simply upload a file to a file sharing site, and people can
automatically play it in their browser.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve yet to figure out lighting, green screens, etc. - lots to learn yet.
Systems like this can always be improved, so keep improving.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📸 Effective Communication (Images)</title>
        <published>2025-08-05T00:00:00+00:00</published>
        <updated>2025-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0206-effective-communication-images/"/>
        <id>https://daily.bec-systems.com/0206-effective-communication-images/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0206-effective-communication-images/">&lt;blockquote&gt;
&lt;p&gt;&quot;A picture is worth a thousand words.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;There are many times when a screenshot or a photograph can drastically improve
the rate of communication. Therefore, figure out ways to do this efficiently.&lt;&#x2F;p&gt;
&lt;p&gt;Make sure your computer system has an efficient way to capture and mark up
screenshots -- preferably in the same application. Spectacle in KDE is
excellent. I&#x27;m sure there are good options for other environments.&lt;&#x2F;p&gt;
&lt;p&gt;Also have a quick way to get photographs off your phone into a message. I use
the Google Magnifier app on Android, sharing to a &quot;Note to self&quot; in
Signal, then copying the image in Signal desktop on my PC. This is much faster
than waiting for the image to upload to Google Photos.&lt;&#x2F;p&gt;
&lt;p&gt;What works for you?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✍️ Effective communication (Written)</title>
        <published>2025-08-04T00:00:00+00:00</published>
        <updated>2025-08-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0205-effective-communication-written/"/>
        <id>https://daily.bec-systems.com/0205-effective-communication-written/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0205-effective-communication-written/">&lt;p&gt;For starters, consider Michael Lynch&#x27;s
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;refactoringenglish.com&#x2F;chapters&#x2F;techniques-for-writing-emails&#x2F;&quot;&gt;&quot;Underused Techniques for Effective Emails&quot;&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;A few points in summary:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Put the most important information first.&lt;&#x2F;li&gt;
&lt;li&gt;Use headings, code blocks, and other formatting.&lt;&#x2F;li&gt;
&lt;li&gt;Be succinct.&lt;&#x2F;li&gt;
&lt;li&gt;Provide context by quoting and replying
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0202-top-vs-bottom-posting-in-email&#x2F;&quot;&gt;bottom posting&lt;&#x2F;a&gt;
in emails and quoting in PR&#x2F;issue threads). Don&#x27;t make your readers read the
entire discussion and try to extrapolate the context of what you are trying to
say.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤖 How I use Claude Code to help publish this blog</title>
        <published>2025-08-01T00:00:00+00:00</published>
        <updated>2025-08-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0204-how-i-use-claude-code-to-help-publish-this-blog/"/>
        <id>https://daily.bec-systems.com/0204-how-i-use-claude-code-to-help-publish-this-blog/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0204-how-i-use-claude-code-to-help-publish-this-blog/">&lt;p&gt;I have been using Claude Code to help with the following tasks on this blog:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;proofread (including detecting
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;refactoringenglish.com&#x2F;chapters&#x2F;passive-voice-considered-harmful&#x2F;&quot;&gt;passive voice&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;add tags&lt;&#x2F;li&gt;
&lt;li&gt;add an emoji to the title&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;These are not rocket science, but they also take time and are something AI does
pretty well.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;IcOl5dIrWP8&quot;&gt;This video&lt;&#x2F;a&gt; shows how the process works.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎧 Effective communication (Audio)</title>
        <published>2025-07-31T00:00:00+00:00</published>
        <updated>2025-07-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0203-effective-communication-audio/"/>
        <id>https://daily.bec-systems.com/0203-effective-communication-audio/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0203-effective-communication-audio/">&lt;p&gt;Effective communication requires that those receiving information from us can
easily process it. I&#x27;ve been on way too many calls where you can barely hear the
speaker due to echo, background noise, or other audio problems. Some things I&#x27;ve
found helpful:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Use a headset. This eliminates any possibility of feedback from speakers into
the mic.&lt;&#x2F;li&gt;
&lt;li&gt;Use a good noise-canceling&#x2F;rejecting mic, especially in noisy environments.
Some headsets (like the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;video-conferencing-notes&#x2F;117&quot;&gt;Sennheiser SC series&lt;&#x2F;a&gt;)
block background noise amazingly well. Good podcast mics (like the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;audio-technica-at2020usb-microphone-review&#x2F;578&#x2F;2&quot;&gt;AT2020&lt;&#x2F;a&gt;)
are usually directional and block noise pretty well, especially when
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;audio-technica-at8700-mic-boom-review&#x2F;1573&quot;&gt;positioned close to your mouth&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Use a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;video-conferencing-notes&#x2F;117&#x2F;9?u=cbrake&quot;&gt;Bluetooth headset&lt;&#x2F;a&gt;
with your phone that has noise blocking in the microphone. Most
noise-canceling headsets focus on blocking background noise for your benefit.
On calls, optimize for your listener&#x27;s benefit.&lt;&#x2F;li&gt;
&lt;li&gt;Pro tip: never use the speakers and mic in your laptop, even if it is a Mac.&lt;&#x2F;li&gt;
&lt;li&gt;Pro tip 2: don&#x27;t use speakerphone mode on your phone -- especially for group
calls.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Don&#x27;t be the one who disrupts a group call with crummy audio. You are a
professional -- use professional gear.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📧 Top vs bottom posting in email</title>
        <published>2025-07-29T00:00:00+00:00</published>
        <updated>2025-07-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0202-top-vs-bottom-posting-in-email/"/>
        <id>https://daily.bec-systems.com/0202-top-vs-bottom-posting-in-email/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0202-top-vs-bottom-posting-in-email/">&lt;p&gt;I was thinking about computing history this morning, and I wonder how many young
people even know that
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Posting_style&quot;&gt;bottom posting in email&lt;&#x2F;a&gt; is even a
thing? Some of the older OSS projects
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;lore.kernel.org&#x2F;rust-for-linux&#x2F;2025021954-flaccid-pucker-f7d9@gregkh&#x2F;&quot;&gt;still have this culture&lt;&#x2F;a&gt;,
but I suspect that most emails sent today use top posting.&lt;&#x2F;p&gt;
&lt;p&gt;I find myself getting lazy and top posting, but it is so much more considerate
of the reader (especially with modern email readers that thread messages) to
bottom post and only keep the text needed to understand the context or your
reply. The old emails are still in the thread and easily viewable -- there is no
reason to repeat the entire discussion chain in every email.&lt;&#x2F;p&gt;
&lt;p&gt;Smart clients like Gmail somewhat alleviate this concern by hiding previous
message details, but it often hides too much, and you have to expand parts of
the old message to see what a response is referencing. And with top posting, you
often have to repeat the context of your reply vs. just including your reply
directly below the relevant context.&lt;&#x2F;p&gt;
&lt;p&gt;This is one reason discussions in Git* issues and other forum type threads can
be so much more effective -- you can more easily follow the discussion over
time. But you can get near the same efficiency with email if you take a little
care.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎉 200 posts</title>
        <published>2025-07-28T00:00:00+00:00</published>
        <updated>2025-07-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0201-200-posts/"/>
        <id>https://daily.bec-systems.com/0201-200-posts/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0201-200-posts/">&lt;p&gt;This marks the 201st post I&#x27;ve sent -- 2&#x2F;3&#x27;s of the way through the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;jonathanstark.com&#x2F;daily&#x2F;20250512-1745-weekly-vs-daily&quot;&gt;300 bad posts&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;How is it going? I still enjoy the process and the thinking it brings. However,
it is getting a little bit more difficult recently to keep the discipline,
especially with busy project and summer schedules.&lt;&#x2F;p&gt;
&lt;p&gt;I continue to have many more ideas than time to write, so coming up with ideas
is not a problem.&lt;&#x2F;p&gt;
&lt;p&gt;The publishing process has been further streamlined using Claude Code -- will
share more details on that in the near future.&lt;&#x2F;p&gt;
&lt;p&gt;If you have any feedback, please reply -- always welcome!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔗 Integration, not isolation (part 2)</title>
        <published>2025-07-24T00:00:00+00:00</published>
        <updated>2025-07-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0200-integration-not-isolation-part-2/"/>
        <id>https://daily.bec-systems.com/0200-integration-not-isolation-part-2/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0200-integration-not-isolation-part-2/">&lt;p&gt;We recently
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0199-integration-not-isolation&#x2F;&quot;&gt;discussed integration&lt;&#x2F;a&gt;,
not isolation from a technical perspective.&lt;&#x2F;p&gt;
&lt;p&gt;In an organizational context, we can have integrated cross-functional teams, or
isolated silos.&lt;&#x2F;p&gt;
&lt;p&gt;And the easiest way to
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0173-what-is-the-easiest-way-to-avoid-silos&#x2F;&quot;&gt;avoid silos&lt;&#x2F;a&gt;
is transparency and common systems. These things are hard -- they don&#x27;t just
happen automatically.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔗 Integration, not isolation</title>
        <published>2025-07-23T00:00:00+00:00</published>
        <updated>2025-07-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0199-integration-not-isolation/"/>
        <id>https://daily.bec-systems.com/0199-integration-not-isolation/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0199-integration-not-isolation/">&lt;p&gt;In a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;046&#x2F;&quot;&gt;recent discussion&lt;&#x2F;a&gt;, the comment was made that
containers are not always a good fit for edge&#x2F;embedded devices, as they are
designed for isolation (which is useful at times for cloud workloads), but with
embedded, we want tight integration. Justin Schneck advocates file-system layers
as an alternative. Isolation from the kernel is a feature in the cloud, but in
embedded systems, we often need direct access to the kernel (integration).&lt;&#x2F;p&gt;
&lt;p&gt;We, as an industry, perhaps focus too much on isolation (security, protection,
every app bundles its own stack of dependencies, etc.). Short term, this is
convenient. Long term, this can lead to bloat, inefficiencies, and brittle
systems.&lt;&#x2F;p&gt;
&lt;p&gt;Can we have integration AND decoupling? That is a topic for future thinking...&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📈 What do we mean by scaling?</title>
        <published>2025-07-22T00:00:00+00:00</published>
        <updated>2025-07-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0198-what-do-we-mean-by-scaling/"/>
        <id>https://daily.bec-systems.com/0198-what-do-we-mean-by-scaling/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0198-what-do-we-mean-by-scaling/">&lt;p&gt;This can mean many things:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;More units sold&lt;&#x2F;li&gt;
&lt;li&gt;More customers served&lt;&#x2F;li&gt;
&lt;li&gt;More people doing the work&lt;&#x2F;li&gt;
&lt;li&gt;More features&lt;&#x2F;li&gt;
&lt;li&gt;More innovation&lt;&#x2F;li&gt;
&lt;li&gt;More models produced&lt;&#x2F;li&gt;
&lt;li&gt;More model options&lt;&#x2F;li&gt;
&lt;li&gt;More quality&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We could go on, but basically we mean more of something over time. And the &quot;over
time&quot; part means we need to be thinking long-term. You cannot scale with
short-term thinking—this is a logical fallacy. This is why YOUR Platform is so
important.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Open loops -&gt; technical debt</title>
        <published>2025-07-21T00:00:00+00:00</published>
        <updated>2025-07-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0197-open-loops-technical-debt/"/>
        <id>https://daily.bec-systems.com/0197-open-loops-technical-debt/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0197-open-loops-technical-debt/">&lt;p&gt;If something is corrected, it needs to be fed back and incorporated, so you
don&#x27;t keep redoing the same stuff over and over and eventually bury yourself in
technical debt.&lt;&#x2F;p&gt;
&lt;p&gt;Effective organizations close the loop.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧩 Composing is hard, complexity is easy</title>
        <published>2025-07-18T00:00:00+00:00</published>
        <updated>2025-07-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0196-composing-is-hard-complexity-is-easy/"/>
        <id>https://daily.bec-systems.com/0196-composing-is-hard-complexity-is-easy/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0196-composing-is-hard-complexity-is-easy/">&lt;p&gt;We&#x27;ve recently explored the idea that
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0194-simplicity-scales&#x2F;&quot;&gt;composing simple things is the way to scale&lt;&#x2F;a&gt;.
But this is harder than just cranking something out. Some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;It is much easier to create an Excel spreadsheet than write a Python script to
process a CSV file and create a chart which can be later automated in a CI
process.&lt;&#x2F;li&gt;
&lt;li&gt;It is much easier to create lots of custom structs with lots of fields than to
create simple structs that can be used for multiple purposes.&lt;&#x2F;li&gt;
&lt;li&gt;It is much easier to add additional functions to an interface than to create
additional well-thought-out interfaces.&lt;&#x2F;li&gt;
&lt;li&gt;It is quicker to hack on a Raspbian image than to set up a proper Yocto build
for a Raspberry Pi single board computer that can be more easily maintained
long-term.&lt;&#x2F;li&gt;
&lt;li&gt;It is quicker to draw a schematic with generic parts and manually assign
manufacturer part numbers&#x2F;footprints, than set up a proper parts library that
will make subsequent designs and changes easier.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If your task is a one-off project, or something only you will ever interact
with, then the easy path may be fine. However, if you want to scale, the hard
path is the way forward.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎼 Compose software like music</title>
        <published>2025-07-17T00:00:00+00:00</published>
        <updated>2025-07-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0195-compose-software-like-music/"/>
        <id>https://daily.bec-systems.com/0195-compose-software-like-music/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0195-compose-software-like-music/">&lt;p&gt;Music is an interesting thing -- a beautiful arrangement is composed of very
simple constructs -- a handful of simple notes on a relatively simple scale. The
brilliance is in how these simple constructs are arranged.&lt;&#x2F;p&gt;
&lt;p&gt;Likewise, brilliant software is composed of simple data structures and
interfaces. Just like music, there is no limit to the ways these simple
constructs can be arranged.&lt;&#x2F;p&gt;
&lt;p&gt;Conversely, complex constructs are very limited in how they can be used.&lt;&#x2F;p&gt;
&lt;p&gt;Put the complexity in the arrangement, not the constructs.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌱📈 Simplicity scales</title>
        <published>2025-07-16T00:00:00+00:00</published>
        <updated>2025-07-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0194-simplicity-scales/"/>
        <id>https://daily.bec-systems.com/0194-simplicity-scales/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0194-simplicity-scales/">&lt;p&gt;When programming, we learn that
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.thoughtworks.com&#x2F;en-us&#x2F;insights&#x2F;blog&#x2F;programming-languages&#x2F;mistakes-to-avoid-when-coming-from-an-object-oriented-language&quot;&gt;simple interfaces&lt;&#x2F;a&gt;
and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bec-systems.com&#x2F;2432&#x2F;struggling-to-scale-your-iot-system-simplify-your-data&#x2F;&quot;&gt;simple data structures&lt;&#x2F;a&gt;
are good, because they are flexible.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0191-text-based-formats-and-command-line-tools-are-the-future&#x2F;&quot;&gt;Simple file formats&lt;&#x2F;a&gt;
are the same. We can do way more with a CSV or Markdown file in terms of
presentation and automation than we can with Excel or Word documents.&lt;&#x2F;p&gt;
&lt;p&gt;This seems counterintuitive -- Excel is a very powerful tool, and the right
tool for many uses. However, an Excel file is not as composable as simple
formats. As an example, consider the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.perplexity.ai&#x2F;search&#x2F;im-planning-a-family-trip-to-s-zg96NEdJRA6Ekwt7vvxioQ?0=a&quot;&gt;assets&lt;&#x2F;a&gt;
of a Perplexity labs project. They are Python scripts, CSV, Markdown, etc. Why?
Because a powerful tool, like AI, can do more with simple formats.&lt;&#x2F;p&gt;
&lt;p&gt;Complex formats (Ex: Excel) allow a single person to do a lot in the short term,
but simple formats allow a team and automation to do way more over time.&lt;&#x2F;p&gt;
&lt;p&gt;The way to scale YOUR Platform is to compose simple interfaces, data structures,
and file formats. A little more work short term, but way more powerful
long-term.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📏 Goodhart&#x27;s law</title>
        <published>2025-07-15T00:00:00+00:00</published>
        <updated>2025-07-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0193-goodhart-s-law/"/>
        <id>https://daily.bec-systems.com/0193-goodhart-s-law/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0193-goodhart-s-law/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Goodhart&amp;#x27;s_law&quot;&gt;Goodhart&#x27;s law&lt;&#x2F;a&gt; states: &quot;When a
measure becomes a target, it ceases to be a good measure&quot;.&lt;&#x2F;p&gt;
&lt;p&gt;Metrics are useful, but they are just a tool, not the goal. If Metrics become
the goal, then they undermine collaboration, trust, and transparency.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📈 Why GUI development tools don&#x27;t scale</title>
        <published>2025-07-10T00:00:00+00:00</published>
        <updated>2025-07-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0192-why-gui-development-tools-don-t-scale/"/>
        <id>https://daily.bec-systems.com/0192-why-gui-development-tools-don-t-scale/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0192-why-gui-development-tools-don-t-scale/">&lt;p&gt;This is an interesting read:
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;mtlynch.io&#x2F;notes&#x2F;guis-are-antisocial&#x2F;&quot;&gt;GUIs are Antisocial&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This hits on an important point... GUI tools don&#x27;t scale, because they are not
social. Two of the most complex efforts humans have accomplished are chip design
and software development -- both are firmly entrenched in
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0191-text-based-formats-and-command-line-tools-are-the-future&#x2F;&quot;&gt;text based formats and command line tools&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔭 Text based formats and command-line tools are the future</title>
        <published>2025-07-08T00:00:00+00:00</published>
        <updated>2025-07-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0191-text-based-formats-and-command-line-tools-are-the-future/"/>
        <id>https://daily.bec-systems.com/0191-text-based-formats-and-command-line-tools-are-the-future/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0191-text-based-formats-and-command-line-tools-are-the-future/">&lt;p&gt;For the past three decades, we have been told that graphical user interfaces
(GUIs) will revolutionize computer use and even programming. In many ways, they
have made computers very accessible for the average person -- especially phone
UIs.&lt;&#x2F;p&gt;
&lt;p&gt;However, the command-line tools and text files are still the standard for
building stuff. Most useful programming is done in text based programming
languages. Even most UIs are still implemented in text based languages such as
HTML and CSS. In spite of the many graphical options that have come and gone --
HTML remains the king.&lt;&#x2F;p&gt;
&lt;p&gt;Why do text based formats and command line tools work so well?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Text-based formats are easy to work with (collaborate, edit, tooling).&lt;&#x2F;li&gt;
&lt;li&gt;Command-line based tools are easy to automate (build systems, CI, CD).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The coming AI storm makes these factors even more important. Because AI coding
is all about tooling, collaboration, and automation.&lt;&#x2F;p&gt;
&lt;p&gt;If we dig a little deeper, text-based formats and command-line tools are &quot;open&quot;
-- you can do things that were not originally planned. Open formats and tools do
not lock you into a single paradigm, but rather allow you to build YOUR Platform
to meet your needs.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Flipping the playbook for AI coding</title>
        <published>2025-07-02T00:00:00+00:00</published>
        <updated>2025-07-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0190-flipping-the-playbook-for-ai-coding/"/>
        <id>https://daily.bec-systems.com/0190-flipping-the-playbook-for-ai-coding/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0190-flipping-the-playbook-for-ai-coding/">&lt;p&gt;A lot of focus these days is on &quot;good AI prompts.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;Some of the best prompts may be documentation and tests. Write your
&lt;code&gt;CHANGELOG.md&lt;&#x2F;code&gt; entries first, then update the documentation, then write the
tests, then tell the AI to update the code to match.&lt;&#x2F;p&gt;
&lt;p&gt;We tend to get it backwards—asking AI to generate tests and documentation
after the code. Flip this and do the docs and tests first.&lt;&#x2F;p&gt;
&lt;p&gt;Your thinking will be better, and you&#x27;ll move faster.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧑‍💻 The first step in AI coding</title>
        <published>2025-07-01T00:00:00+00:00</published>
        <updated>2025-07-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0189-the-first-step-in-ai-coding/"/>
        <id>https://daily.bec-systems.com/0189-the-first-step-in-ai-coding/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0189-the-first-step-in-ai-coding/">&lt;p&gt;✔️ Should be &quot;How does this work?&quot;&lt;&#x2F;p&gt;
&lt;p&gt;❌ NOT &quot;Implement this feature.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;Understanding should precede any work, especially in complex systems.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👥 Alternatives to meetings</title>
        <published>2025-06-26T00:00:00+00:00</published>
        <updated>2025-06-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0188-alternatives-to-meetings/"/>
        <id>https://daily.bec-systems.com/0188-alternatives-to-meetings/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0188-alternatives-to-meetings/">&lt;p&gt;✔️ Instead of presenting in a meeting, record a screencast and share it.&lt;&#x2F;p&gt;
&lt;p&gt;✔️ &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0099-the-importance-of-git-commit-push-often&#x2F;&quot;&gt;Publish your work often.&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;✔️ Utilize notifications in workflow tools.&lt;&#x2F;p&gt;
&lt;p&gt;✔️ Utilize a team chat tool such as Signal, Slack, Discourse chat, Discord, etc.. This does wonders for bonding teams (especially distributed teams). You can always mute it when doing deep work.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🥣 The two ingredients for agility</title>
        <published>2025-06-24T00:00:00+00:00</published>
        <updated>2025-06-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0187-the-two-ingredients-for-agility/"/>
        <id>https://daily.bec-systems.com/0187-the-two-ingredients-for-agility/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0187-the-two-ingredients-for-agility/">&lt;p&gt;✔️ &lt;strong&gt;Low friction&lt;&#x2F;strong&gt;: tooling and workflows that allow anyone to make changes
easily. (good build systems, clean libraries, release automation, etc.)&lt;&#x2F;p&gt;
&lt;p&gt;✔️ &lt;strong&gt;Confidence&lt;&#x2F;strong&gt;: what we are doing is not going to break things. (CI,
end-to-end testing, review, etc.)&lt;&#x2F;p&gt;
&lt;p&gt;#1 is obvious. #2 is subtle -- if we don&#x27;t have confidence in the work, we
will avoid it.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>♻️ How to iterate quickly on hardware</title>
        <published>2025-06-23T00:00:00+00:00</published>
        <updated>2025-06-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0186-how-to-iterate-quickly-on-hardware/"/>
        <id>https://daily.bec-systems.com/0186-how-to-iterate-quickly-on-hardware/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0186-how-to-iterate-quickly-on-hardware/">&lt;p&gt;Today, we mostly think of iterating quickly on software, but it is becoming
increasingly possible to also do this with hardware. A few ideas:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Printed circuit boards (PCBs) are now relatively cheap and quick to
manufacture in low quantities from companies like JLCPCB (you can have a new
PCB in less than a week at a very reasonable cost).&lt;&#x2F;li&gt;
&lt;li&gt;Companies like JLCPCB and Macrofab offer prototype assembly services.&lt;&#x2F;li&gt;
&lt;li&gt;It is practical to
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;building-pcb-assembly-prototypes&#x2F;1486&quot;&gt;assemble your own&lt;&#x2F;a&gt;
prototype PCBs quickly.&lt;&#x2F;li&gt;
&lt;li&gt;You can now do more CI&#x2F;CD type things with PCB design tools. KiCad has a
powerful DRC rules engine and the ability to script a lot of operations
(including generating outputs) from the command line. Run ERC&#x2F;DRC in CI and
generate outputs in CD. This allows you to make and deploy changes with a high
level of confidence.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;git-plm&#x2F;parts&quot;&gt;Verified parts libraries&lt;&#x2F;a&gt; allow you to
easily reuse electrical components in new designs.&lt;&#x2F;li&gt;
&lt;li&gt;Spice simulation tools allow you to verify designs before building a PCB --
again, you can have a higher confidence that things will work.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;036&#x2F;&quot;&gt;3D printing in production&lt;&#x2F;a&gt; allows you to make
mechanical improvements without expensive tooling changes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;tlsl01uxUfE&quot;&gt;Intelligent part numbering schemes&lt;&#x2F;a&gt; and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;git-plm&#x2F;gitplm&quot;&gt;PLM tools&lt;&#x2F;a&gt; allow you to efficiently and
reliably manage changes.&lt;&#x2F;li&gt;
&lt;li&gt;Use OSS tools
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bec-systems.com&#x2F;1670&#x2F;reflections-on-kicad-and-eda-tools&#x2F;&quot;&gt;like KiCad&lt;&#x2F;a&gt;
where possible so anyone can make changes.&lt;&#x2F;li&gt;
&lt;li&gt;Use &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;git&#x2F;&quot;&gt;Git workflows&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The above is YOUR Platform. Here&#x27;s the thing -- the more complex and the higher
value your product is, the more important it is to be able to iterate quickly
and confidently on both hardware and software. As an example, Tesla updates the
software in their cars frequently and continuously makes mechanical improvements
(sometimes as many as 120-160 changes per week). If Tesla can do it with cars,
you can probably do it with your low-volume industrial product.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤝 Modern product development is a collaborative endeavor</title>
        <published>2025-06-20T00:00:00+00:00</published>
        <updated>2025-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0185-modern-product-development-is-a-collaborative-endeavor/"/>
        <id>https://daily.bec-systems.com/0185-modern-product-development-is-a-collaborative-endeavor/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0185-modern-product-development-is-a-collaborative-endeavor/">&lt;p&gt;There is no way around this -- even if you are a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;book-review-company-of-one&#x2F;1544&quot;&gt;Company of One&lt;&#x2F;a&gt;.
You must collaborate with:&lt;&#x2F;p&gt;
&lt;p&gt;▶ OSS communities who provide the tools and software you use,&lt;&#x2F;p&gt;
&lt;p&gt;▶ Your customers -- if you are not learning from them, you probably won&#x27;t
understand and fulfill their needs,&lt;&#x2F;p&gt;
&lt;p&gt;▶ and Your team.&lt;&#x2F;p&gt;
&lt;p&gt;While the last item on the list is obvious, the first two are less obvious, but
perhaps just as important.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✨ Use the most advanced technology that is comfortable in your product design</title>
        <published>2025-06-19T00:00:00+00:00</published>
        <updated>2025-06-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0184-use-the-most-advanced-technology-that-is-comfortable-in-your-product-design/"/>
        <id>https://daily.bec-systems.com/0184-use-the-most-advanced-technology-that-is-comfortable-in-your-product-design/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0184-use-the-most-advanced-technology-that-is-comfortable-in-your-product-design/">&lt;p&gt;Some examples:&lt;&#x2F;p&gt;
&lt;p&gt;▶ When designing a PCB, put down the smallest packages you are comfortable
working with. Example: put down 0603&#x27;s instead of 0805&#x27;s, even if you don&#x27;t need
the space right now.&lt;&#x2F;p&gt;
&lt;p&gt;▶ Use a MCU with the most performance and RAM&#x2F;Flash that is reasonable. Use a
STM32 instead of a PIC16.&lt;&#x2F;p&gt;
&lt;p&gt;▶ Everything else being pretty much equal, use Go instead of Python.&lt;&#x2F;p&gt;
&lt;p&gt;Why?&lt;&#x2F;p&gt;
&lt;p&gt;✅ You may not need the space now, but the next iteration or variant of the
product will likely be smaller, so why not plan for that now if it does not cost
you anything?&lt;&#x2F;p&gt;
&lt;p&gt;✅ Modern embedded systems that support field updates are flexible and can do a
lot. New features will be requested. Plan for that now.&lt;&#x2F;p&gt;
&lt;p&gt;✅ Python may be good enough now, but what happens when you need to add a
handful more threads, more features, deploy to other architectures, and need
higher performance?&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s the thing -- it is impossible to predict all the directions a product
will take. Set yourself up now to be able to reuse what you&#x27;re doing.&lt;&#x2F;p&gt;
&lt;p&gt;🔭 Product VISION == Smart technology choices&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 When to update application dependencies?</title>
        <published>2025-06-18T00:00:00+00:00</published>
        <updated>2025-06-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0183-when-to-update-application-dependencies/"/>
        <id>https://daily.bec-systems.com/0183-when-to-update-application-dependencies/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0183-when-to-update-application-dependencies/">&lt;p&gt;Most modern languages (Node.js, Python, Rust, Go, Zig, Elm, etc.) have their own
package manager. So when should we update package dependencies? How about at the
beginning of every PR cycle? I&#x27;m working on making this my standard practice
when starting a new feature in an application -- first, update all dependencies.
There are several advantages to this flow:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Updating frequently means you are dealing with small changes.&lt;&#x2F;li&gt;
&lt;li&gt;Updating at the start of a dev cycle also gives you a standard time to do
this. Otherwise, things like updating dependencies tend to get neglected.&lt;&#x2F;li&gt;
&lt;li&gt;Updating at the start of a dev cycle (vs end) gives you some time to exercise
new modules during development before merging.&lt;&#x2F;li&gt;
&lt;li&gt;You automatically get security updates without having to track these too
closely.&lt;&#x2F;li&gt;
&lt;li&gt;It feels right.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This also requires good tests, so that you can update with confidence. There
might also be an issue with a team if multiple developers are updating
dependencies at the same time. So in larger teams, perhaps one person or an
automated process should do this. The key thing is that it does get done, and
implement the needed automation to make this easy.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>➡️ Frontload the boring stuff</title>
        <published>2025-06-16T00:00:00+00:00</published>
        <updated>2025-06-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0182-frontload-the-boring-stuff/"/>
        <id>https://daily.bec-systems.com/0182-frontload-the-boring-stuff/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0182-frontload-the-boring-stuff/">&lt;p&gt;Some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Think about and write tests &lt;em&gt;before&lt;&#x2F;em&gt; implementing a new software feature.&lt;&#x2F;li&gt;
&lt;li&gt;Automate deployment of a new service &lt;em&gt;before&lt;&#x2F;em&gt; developing it.&lt;&#x2F;li&gt;
&lt;li&gt;Create eCAD libraries &lt;em&gt;before&lt;&#x2F;em&gt; doing the schematic&#x2F;layout work.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;architecture-decision-records&#x2F;334&quot;&gt;Document the architecture&lt;&#x2F;a&gt;
&lt;em&gt;before&lt;&#x2F;em&gt; implementing it.&lt;&#x2F;li&gt;
&lt;li&gt;Open a PR &lt;em&gt;before&lt;&#x2F;em&gt; doing the work, and explain what is going to be done.&lt;&#x2F;li&gt;
&lt;li&gt;Create a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;keepachangelog.com&#x2F;&quot;&gt;Changelog&lt;&#x2F;a&gt; entry describing the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;refactoringenglish.com&#x2F;chapters&#x2F;release-announcements&#x2F;&quot;&gt;benefit to the user&lt;&#x2F;a&gt;
of what you are doing, &lt;em&gt;before&lt;&#x2F;em&gt; writing the code.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;In the end, you will go faster and do better work. Why? Because you are
frontloading the tedious details that are difficult to find time for &lt;em&gt;after&lt;&#x2F;em&gt; the
work is done.&lt;&#x2F;p&gt;
&lt;p&gt;This is the difference between the prototyping and product development mindset.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌿 A natural way to get more testing&#x2F;automation</title>
        <published>2025-06-06T00:00:00+00:00</published>
        <updated>2025-06-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0181-a-natural-way-to-get-more-testing-automation/"/>
        <id>https://daily.bec-systems.com/0181-a-natural-way-to-get-more-testing-automation/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0181-a-natural-way-to-get-more-testing-automation/">&lt;p&gt;One thing I&#x27;ve noticed is when I release more frequently, I tend to automate. If
releases only happen once every year, it is easy to neglect automation, CI&#x2F;CD,
etc. Automated tests are not needed as it is just quicker to manually test
everything. But, with frequent releases, there is a subtle push toward scripting
stuff, getting CI&#x2F;CD running, etc. Instead of demanding more tests&#x2F;automation,
perhaps decide to release more often, and the automation will naturally follow.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌒🌓🌔The four phases of product development</title>
        <published>2025-06-05T00:00:00+00:00</published>
        <updated>2025-06-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0180-the-four-phases-of-product-development/"/>
        <id>https://daily.bec-systems.com/0180-the-four-phases-of-product-development/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0180-the-four-phases-of-product-development/">&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;uploads&#x2F;default&#x2F;original&#x2F;2X&#x2F;9&#x2F;917a9784cd1abd3d34fee35e1fedc4ecc78e41c8.png&quot; alt=&quot;phases&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Each phase is produced by someone or something. And the problems arise when we
mix up who does what.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Great&#x2F;innovative ideas usually don&#x27;t come out of a committee. Truth is a solo
pursuit. Evaluate ideas in meetings, but don&#x27;t try to come up with them there.&lt;&#x2F;li&gt;
&lt;li&gt;When a team is involved, collaboration is required. The better your
collaboration culture&#x2F;workflow, the more efficient your team will be.&lt;&#x2F;li&gt;
&lt;li&gt;Manually building, testing, and deploying software is a waste of human time --
leave that to machines when possible.&lt;&#x2F;li&gt;
&lt;li&gt;Developers are horribly inept at testing&#x2F;evaluating their own work. Any
outside viewpoint is useful -- especially with user interfaces.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The faster you can do this loop, the faster you&#x27;ll learn, and the quicker you
can build something useful.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⏩ Get on with it ...</title>
        <published>2025-06-04T00:00:00+00:00</published>
        <updated>2025-06-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0180-get-on-with-it/"/>
        <id>https://daily.bec-systems.com/0180-get-on-with-it/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0180-get-on-with-it/">&lt;p&gt;While many great ideas and algorithms germinate in deep work and solo thinking,
bringing a modern product (especially one containing software) to life require
many iterations with feedback and learning. So lets propose a new release
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;iterate-hardware-like-software&#x2F;139&quot;&gt;every week&lt;&#x2F;a&gt;.
But, the common objection is: we can&#x27;t do a quality release every week? A
monthly release seems more reasonable, then we have plenty of time to get it
right.&lt;&#x2F;p&gt;
&lt;p&gt;You can&#x27;t build a great product until you&#x27;ve built 52 bad ones.* If you only do
an iteration every month, then you are looking at 4.3 years to get to good. If
you do an iteration every week, then it only takes 1 year.&lt;&#x2F;p&gt;
&lt;p&gt;So instead of pining away about how can I possibly build a good iteration every
week, quit worrying about building a perfect release, and instead focus on
getting through the bad ones as quickly as possible.&lt;&#x2F;p&gt;
&lt;p&gt;This is a parody on Jonathan Stark&#x27;s
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;jonathanstark.com&#x2F;daily&#x2F;20250512-1745-weekly-vs-daily&quot;&gt;&quot;Weekly vs. Daily&quot;&lt;&#x2F;a&gt;
post.&lt;&#x2F;p&gt;
&lt;p&gt;* This may be an exaggeration, but if we are honest with ourselves, it is often
astounding how many revisions it takes to get something working, let alone
great.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👥 Who are users?</title>
        <published>2025-06-03T00:00:00+00:00</published>
        <updated>2025-06-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0179-who-are-users/"/>
        <id>https://daily.bec-systems.com/0179-who-are-users/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0179-who-are-users/">&lt;p&gt;To get really valuable feedback, we need users. If the product has not been
released yet, find someone -- external CI system, CEO, beta users, manufacturing
people, accountants, your mom ...&lt;&#x2F;p&gt;
&lt;p&gt;Often, when it leaves the developer&#x27;s computer, we find it does not even build,
let alone run and do something useful!&lt;&#x2F;p&gt;
&lt;p&gt;A user is &lt;strong&gt;&lt;em&gt;anyone&lt;&#x2F;em&gt;&lt;&#x2F;strong&gt; other than the developer.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>♻️ How to define an iteration?</title>
        <published>2025-06-02T00:00:00+00:00</published>
        <updated>2025-06-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0178-how-to-define-an-iteration/"/>
        <id>https://daily.bec-systems.com/0178-how-to-define-an-iteration/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0178-how-to-define-an-iteration/">&lt;p&gt;I&#x27;ve found it useful to define an iteration as a formal release (software that
is packaged and users use, a PCB that you build, a prototype, a web app that you
deploy, etc.). You don&#x27;t learn many things until you build and, more
importantly, others use - even if your users are only internal. Practice formal
releases during development, and then the process will be polished when you go
into production.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧑‍💻 How can we increase developer productivity?</title>
        <published>2025-05-29T00:00:00+00:00</published>
        <updated>2025-05-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0177-how-can-we-increase-developer-productivity/"/>
        <id>https://daily.bec-systems.com/0177-how-can-we-increase-developer-productivity/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0177-how-can-we-increase-developer-productivity/">&lt;blockquote&gt;
&lt;p&gt;&quot;The way you get programmer productivity is not by increasing the lines of
code per programmer per day. That doesn’t work. The way you get programmer
productivity is by eliminating lines of code you have to write.The line of
code that’s the fastest to write, that never breaks, that doesn’t need
maintenance, is the line you never had to write.&quot; --
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;3LEXae1j6EY&quot;&gt;Apple WWDC &#x27;97 Steve Jobs Closing Keynote&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;How can we reduce the lines of code we need to write? Several ways come to mind:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Use OSS components&lt;&#x2F;li&gt;
&lt;li&gt;Build on someone else&#x27;s platform&lt;&#x2F;li&gt;
&lt;li&gt;Don&#x27;t implement &quot;just-in-case&quot; features&lt;&#x2F;li&gt;
&lt;li&gt;Removed unused code (linting tools can find this for you)&lt;&#x2F;li&gt;
&lt;li&gt;Don&#x27;t implement unnecessary abstractions&lt;&#x2F;li&gt;
&lt;li&gt;Simplify&lt;&#x2F;li&gt;
&lt;li&gt;Reuse what you have already done (YOUR Platform)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📈 What is the quickest way to store and track data?</title>
        <published>2025-05-28T00:00:00+00:00</published>
        <updated>2025-05-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0176-what-is-the-quickest-way-to-store-and-track-data/"/>
        <id>https://daily.bec-systems.com/0176-what-is-the-quickest-way-to-store-and-track-data/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0176-what-is-the-quickest-way-to-store-and-track-data/">&lt;p&gt;Do you need a quick way to track some data? Serial numbers, part numbers, test
results, defect metrics, etc.?&lt;&#x2F;p&gt;
&lt;p&gt;There are many ways, but one of the quickest and most flexible is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Comma-separated_values&quot;&gt;CSV&lt;&#x2F;a&gt; files in Gitea. You
are already using
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0149-git-the-new-standard-for-workflow&#x2F;&quot;&gt;Git*&lt;&#x2F;a&gt;,
right?&lt;&#x2F;p&gt;
&lt;p&gt;With CSV files in Gitea, you can:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;View the data as a table&lt;&#x2F;li&gt;
&lt;li&gt;Easily edit the data using a variety of tools (Libreoffice, Gitea web UI,
etc.)&lt;&#x2F;li&gt;
&lt;li&gt;Track and review changes&lt;&#x2F;li&gt;
&lt;li&gt;Manage access&#x2F;permissions&lt;&#x2F;li&gt;
&lt;li&gt;Work in a distributed fashion&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Additionally, it is easy to add automation to CSV files in Go or Python. While
databases can be very useful for larger datasets, they are often overkill for a
lot of things today, as most datasets (especially human-generated ones) now
easily fit in memory. And when it comes time to use a database, it is easy to
import your existing CSV data into a database.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌱 OSS can decrease or increase your code liability</title>
        <published>2025-05-27T00:00:00+00:00</published>
        <updated>2025-05-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0175-oss-can-decrease-or-increase-your-code-liability/"/>
        <id>https://daily.bec-systems.com/0175-oss-can-decrease-or-increase-your-code-liability/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0175-oss-can-decrease-or-increase-your-code-liability/">&lt;p&gt;A wise person
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;gist.github.com&#x2F;stettix&#x2F;5bb2d99e50fdbbd15dd9622837d14e2b&quot;&gt;once said&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Code is a liability, not an asset. Aim to have as little of it as possible.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Whether the open-source code in your projects is an asset or a liability depends
on how you handle it. Almost all code in complex systems
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0008-the-long-game&#x2F;&quot;&gt;needs to be maintained&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;If you do not update the OSS code in your projects, you are essentially
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;039&#x2F;&quot;&gt;forking it&lt;&#x2F;a&gt;, and it is now &quot;your code&quot; and you own it.
It is a static entity that is not gaining value unless you put direct effort
into it. Additionally, there will likely be issues that you now need to solve.
Very few OSS project maintainers are going to be interested in helping you fix a
problem in a 5-year-old snapshot.&lt;&#x2F;p&gt;
&lt;p&gt;Alternatively, if you keep the OSS code in your projects up-to-date, then many
issues automatically get fixed (security, compatibility, performance, bugs, new
features, etc.). Additionally, if there is a problem, then maintainers will
likely work with you to fix it. In this scenario, OSS code is an asset -- it is
gaining much more value than your direct effort. However, you must commit to:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;updating OSS components regularly&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;having an automated way to comprehensively test the system&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;engage with the OSS projects you use, build relationships, and contribute
where you can (documentation and bug reports are contributions)&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Some effort is required on your part -- it&#x27;s not a free lunch. However, if you
do this right, the benefit-cost ratio (BCR) is high --
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.himvis.com&#x2F;0169-open-source-mindset-is-for-long-term&#x2F;&quot;&gt;well worth it in the long term&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤝🔍 Trust, but verify</title>
        <published>2025-05-23T00:00:00+00:00</published>
        <updated>2025-05-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0174-trust-but-verify/"/>
        <id>https://daily.bec-systems.com/0174-trust-but-verify/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0174-trust-but-verify/">&lt;p&gt;Apparently, this is an
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.perplexity.ai&#x2F;search&#x2F;who-said-trust-but-verify-dm_2ZmH1RTG70CFTUjcNlA&quot;&gt;old Russian proverb that Ronald Reagan popularized&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;This is good general advice in life -- don&#x27;t automatically distrust people and
go looking for problems, but when something does not look or feel right, verify.&lt;&#x2F;p&gt;
&lt;p&gt;As engineers, when we are building something new, this is important.&lt;&#x2F;p&gt;
&lt;p&gt;✅ Are our assumptions correct?&lt;&#x2F;p&gt;
&lt;p&gt;✅ Have we checked the edge conditions?&lt;&#x2F;p&gt;
&lt;p&gt;✅ Did this change break anything else?&lt;&#x2F;p&gt;
&lt;p&gt;✅ What are we missing?&lt;&#x2F;p&gt;
&lt;p&gt;As systems become more complex, two tools come to mind:&lt;&#x2F;p&gt;
&lt;p&gt;▶ Simulation (a faster&#x2F;cheaper way to verify)&lt;&#x2F;p&gt;
&lt;p&gt;▶ Automation (testing, deployment, etc. -- do things humans don&#x27;t have time
for)&lt;&#x2F;p&gt;
&lt;p&gt;In complex systems, blind trust does not get us very far, especially in
ourselves. As engineers, the work we should verify the most is our own.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌽 What is the easiest way to avoid silos?</title>
        <published>2025-05-21T00:00:00+00:00</published>
        <updated>2025-05-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0173-what-is-the-easiest-way-to-avoid-silos/"/>
        <id>https://daily.bec-systems.com/0173-what-is-the-easiest-way-to-avoid-silos/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0173-what-is-the-easiest-way-to-avoid-silos/">&lt;p&gt;Silos occur when a person or group of people operate in isolation from the rest
of the organization. One of the reasons you have failure in organizations is one
silo does not know that the other silo is doing.&lt;&#x2F;p&gt;
&lt;p&gt;Silos are deadly in our organizations. How can we avoid them? The efficient way
is to use open, transparent, and common systems where possible for:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Issue&#x2F;project tracking&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;tlsl01uxUfE&quot;&gt;Part number management&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Information storage (design files should be versioned in Git)&lt;&#x2F;li&gt;
&lt;li&gt;Releases&lt;&#x2F;li&gt;
&lt;li&gt;Change control and review (Pull requests)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;handbook.tmpdir.org&#x2F;documentation.html&quot;&gt;Documentation&lt;&#x2F;a&gt; (Markdown,
CSV, etc)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Software developers build really good workflow tools. Why, because they can
build their OWN tools. For this reason, no matter what your discipline, I
recommend starting with
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0149-git-the-new-standard-for-workflow&#x2F;&quot;&gt;Git*&lt;&#x2F;a&gt;.
For small teams, this can get you most of the way there. For larger teams, you
may need something more comprehensive like &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.odoo.com&#x2F;&quot;&gt;odoo&lt;&#x2F;a&gt;. But,
start small with Git*, cover the basics, and add more complex systems when
needed.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤖 The biggest problem with AI</title>
        <published>2025-05-20T00:00:00+00:00</published>
        <updated>2025-05-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0172-the-biggest-problem-with-ai/"/>
        <id>https://daily.bec-systems.com/0172-the-biggest-problem-with-ai/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0172-the-biggest-problem-with-ai/">&lt;blockquote&gt;
&lt;p&gt;&quot;It ain&#x27;t what you don&#x27;t know that gets you into trouble. It&#x27;s what you know
for sure that just ain&#x27;t so.&quot; - Mark Twain (maybe)&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;AI is really good at summarizing existing information. It is less good at
thinking, although it can do some amazing things. The biggest deficiency I see
right now is AI does not know how to ask questions and doesn&#x27;t know what it
doesn&#x27;t know. It just makes assumptions and pretends like it knows what it is
doing. People like this are some of the hardest ones to work with. They act like
they know everything and never think they are wrong. Smart people, blind to
their own weaknesses, make the subtlest, hardest problems to find.&lt;&#x2F;p&gt;
&lt;p&gt;Until AI is self-aware of its own weaknesses and knows how to ask questions, we
cannot fully trust it to operate like a professional human. It needs watched
very carefully. AI can still be very useful, and it will likely get better, but
for now, I think this is the current state.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤖 What is AI good for?</title>
        <published>2025-05-19T00:00:00+00:00</published>
        <updated>2025-05-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0171-what-ai-is-good-for/"/>
        <id>https://daily.bec-systems.com/0171-what-ai-is-good-for/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0171-what-ai-is-good-for/">&lt;p&gt;AI is really good at summarizing existing information -- Perplexity Pro mostly
has replaced Google&#x2F;Duckduckgo, etc., and is worth every penny. AI is really
good at finding API documentation -- much quicker than searching through docs,
and often provides a useful snippet of how to use an API. Occasionally, I&#x27;ll use
AI to write a quick Python script where I don&#x27;t care how it works.&lt;&#x2F;p&gt;
&lt;p&gt;The most useful scenario is when you are having an intelligent back-and-forth
conversation with AI, and you understand what is going on. What does not work is
just lazily expecting it to do all your work so you don&#x27;t have to understand it
-- especially the hard parts like architecture. If AI is doing things that you
don&#x27;t understand, ask it to teach you. Write tests so you can be sure it is
right. Trust, but verify.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m currently working on a project with a smart intern working on the frontend
code. He is working fast and appears to be vibe coding some of it. Some of it is
a bit of a mess, but it mostly works. Some parts have obviously never even been
tested. Is vibe coding in this case a net gain? Probably, but I&#x27;m not sure yet
-- will know more once we try to maintain this code.&lt;&#x2F;p&gt;
&lt;p&gt;On a project that is complex enough to require some architecture,
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;world.hey.com&#x2F;dhh&#x2F;coding-should-be-a-vibe-50908f49&quot;&gt;coding is not the hard part&lt;&#x2F;a&gt;.
Architecture, requirements, integration, testing, debugging, support ... all
this stuff that is required to get it right swamps any coding effort. As
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;gist.github.com&#x2F;stettix&#x2F;5bb2d99e50fdbbd15dd9622837d14e2b&quot;&gt;one person said&lt;&#x2F;a&gt;,
&quot;Code is a liability, not an asset. Aim to have as little of it as possible.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;At this point, don&#x27;t aim to have AI write all your code for you. Use AI to help
you write better code faster that YOU understand.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📝 What is my process for capturing experience? (part 3)</title>
        <published>2025-05-16T00:00:00+00:00</published>
        <updated>2025-05-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0170-what-is-my-process-for-capturing-experience-part-3/"/>
        <id>https://daily.bec-systems.com/0170-what-is-my-process-for-capturing-experience-part-3/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0170-what-is-my-process-for-capturing-experience-part-3/">&lt;p&gt;Reflection is another important aspect of the experience capture process. Do we
carefully evaluate and critically think about what happened? We don&#x27;t do this to
blame ourselves or others, but rather to recognize areas where we might improve.
Reflection can also include recognizing things that went well and what we need
to keep doing.&lt;&#x2F;p&gt;
&lt;p&gt;Some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Personally spend 5m journalling at the end of each day. What went well? What
did not? What are we thankful for?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;sre.google&#x2F;sre-book&#x2F;postmortem-culture&#x2F;&quot;&gt;Blameless postmortems&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Periodic project review -- what have we learned? Is what we learned captured?&lt;&#x2F;li&gt;
&lt;li&gt;Pull requests -- have we captured everything we have learned when we did this
work? Are there documentation and tests so the work can be extended and
reused?&lt;&#x2F;li&gt;
&lt;li&gt;Look for opportunities to automate. Automation is one of the best ways to
capture experience.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If we do not reflect, we are destined to keep repeating the same mistakes and
needlessly doing the same work over and over.&lt;&#x2F;p&gt;
&lt;p&gt;One of the most tragic and common forms of human nature is to just keep doing
what we are doing, even if it is not working.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📝 What is my process for capturing experience? (part 2)</title>
        <published>2025-05-15T00:00:00+00:00</published>
        <updated>2025-05-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0169-what-is-my-process-for-capturing-experience-part-2/"/>
        <id>https://daily.bec-systems.com/0169-what-is-my-process-for-capturing-experience-part-2/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0169-what-is-my-process-for-capturing-experience-part-2/">&lt;p&gt;In
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0168-what-is-my-process-for-capturing-experience&#x2F;&quot;&gt;part 1&lt;&#x2F;a&gt;,
we discussed the importance of getting information into permanent mediums. Below
are a some that I use:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Workflowy. This is my 2nd brain with 1000&#x27;s of notes, links, howtos, etc. It
is easy to share Workflowy notes with others as needed and multiple people can
collaborate on a note with just a link -- no account needed. I can&#x27;t recommend
Workflowy enough -- it is so flexible and powerful.&lt;&#x2F;li&gt;
&lt;li&gt;Checklists&lt;&#x2F;li&gt;
&lt;li&gt;Templates (typically a Google Doc)&lt;&#x2F;li&gt;
&lt;li&gt;OSS projects
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&quot;&gt;Github&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;simpleiot&quot;&gt;Simple IoT&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;YoeDistro&quot;&gt;Yoe Distro&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;git-plm&quot;&gt;GitPLM&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;&quot;&gt;My daily newsletter&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;&quot;&gt;TMPDIR Community Forum&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;&quot;&gt;TMPDIR Podcast&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;excalidraw-collaborative-whiteboarding-made-easy&#x2F;1058&#x2F;3?u=cbrake&quot;&gt;Sketches&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Youtube
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;@cliffbrake&quot;&gt;General&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;@simple-iot&quot;&gt;SimpleIoT&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;@yoedistro&quot;&gt;Yoe Distro&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Automation (Ansible, scripts, CI, CD, etc.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;I try to not directly email useful information if possible, but rather write it
down somewhere permanent and then share the link.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📝 What is my process for capturing experience?</title>
        <published>2025-05-14T00:00:00+00:00</published>
        <updated>2025-05-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0168-what-is-my-process-for-capturing-experience/"/>
        <id>https://daily.bec-systems.com/0168-what-is-my-process-for-capturing-experience/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0168-what-is-my-process-for-capturing-experience/">&lt;p&gt;After
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0167-how-to-leverage-experience&#x2F;&quot;&gt;yesterday&#x27;s post&lt;&#x2F;a&gt;,
I was asked: &quot;What&#x27;s your process to capture experience?&quot;&lt;&#x2F;p&gt;
&lt;p&gt;The most important thing is to get information out of transient mediums into
permanent mediums.&lt;&#x2F;p&gt;
&lt;p&gt;What are the attributes of a permanent medium?&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Searchable&lt;&#x2F;li&gt;
&lt;li&gt;Persistent (exists over time, backed up)&lt;&#x2F;li&gt;
&lt;li&gt;Easily accessible to all relevant parties over time, even those who join late&lt;&#x2F;li&gt;
&lt;li&gt;Well organized&lt;&#x2F;li&gt;
&lt;li&gt;Has context&lt;&#x2F;li&gt;
&lt;li&gt;Improved over time&lt;&#x2F;li&gt;
&lt;li&gt;Turned into automation where possible&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;The first two attributes are the easiest. While email, chat, and meetings are
useful in teams for communication and notifications, they are NOT permanent
mediums for information. Even though they may be persistent and searchable, they
fail on the other attributes.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧠 How to leverage experience?</title>
        <published>2025-05-13T00:00:00+00:00</published>
        <updated>2025-05-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0167-how-to-leverage-experience/"/>
        <id>https://daily.bec-systems.com/0167-how-to-leverage-experience/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0167-how-to-leverage-experience/">&lt;p&gt;To leverage experience, we need to capture it. And to capture it, we need
process. Without this, leveraging the experience of our best people is at best
random. If we can capture experience, then we have it forever, even when our
best people inevitably move on.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔭 How to encourage vision?</title>
        <published>2025-05-09T00:00:00+00:00</published>
        <updated>2025-05-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0166-how-to-encourage-vision/"/>
        <id>https://daily.bec-systems.com/0166-how-to-encourage-vision/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0166-how-to-encourage-vision/">&lt;p&gt;Innovation is fueled by vision. Without vision, things can be directionless,
drifting toward obscurity. So, how to encourage vision? Perhaps the first thing
is not to discourage it. Ironically, the more successful an organization is, the
more likely this is to happen. This happens when people mistakenly confuse
experience with vision. In the realm of technology, how things were done
yesterday, while a useful guide and foundation, will not get us to where we need
to go tomorrow.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧠🔭 The tension of experience and vision</title>
        <published>2025-05-08T00:00:00+00:00</published>
        <updated>2025-05-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0165-the-tension-of-experience-and-vision/"/>
        <id>https://daily.bec-systems.com/0165-the-tension-of-experience-and-vision/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0165-the-tension-of-experience-and-vision/">&lt;p&gt;🧠 &lt;strong&gt;Experience&lt;&#x2F;strong&gt;: Guardrails for our journey, temperament for our actions.&lt;&#x2F;p&gt;
&lt;p&gt;🔭 &lt;strong&gt;Vision&lt;&#x2F;strong&gt;: The view of where we are going, the source of energy and
enthusiasm for our enterprise.&lt;&#x2F;p&gt;
&lt;p&gt;Experience is negative, a restraint. Vision is positive, a motivator. Both are
necessary in the right balance.&lt;&#x2F;p&gt;
&lt;p&gt;Again, dysfunction ensues when we mix these up.&lt;&#x2F;p&gt;
&lt;p&gt;Guardrails based purely on what we think will happen (vision) are not very
effective.&lt;&#x2F;p&gt;
&lt;p&gt;Building a product only on what has worked in the past (experience) is not very
compelling.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛣️ Two approaches to life</title>
        <published>2025-05-07T00:00:00+00:00</published>
        <updated>2025-05-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0164-two-approaches-to-life/"/>
        <id>https://daily.bec-systems.com/0164-two-approaches-to-life/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0164-two-approaches-to-life/">&lt;p&gt;There are two ways we can approach life:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Take responsibility and try to solve some of our own problems.&lt;&#x2F;li&gt;
&lt;li&gt;Expect others to solve all of our problems.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Owning the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0046-your-platform-vs-others&#x2F;&quot;&gt;integration points&lt;&#x2F;a&gt;
in our product vs. outsourcing everything.&lt;&#x2F;li&gt;
&lt;li&gt;Critically evaluate what we hear vs. blind trust.&lt;&#x2F;li&gt;
&lt;li&gt;Growing&#x2F;raising some of our food vs. buying all of it.&lt;&#x2F;li&gt;
&lt;li&gt;Learning to find fulfillment in doing vs. allowing others to fulfill us by
entertaining.&lt;&#x2F;li&gt;
&lt;li&gt;Making&#x2F;building some of what we need vs. buying everything.&lt;&#x2F;li&gt;
&lt;li&gt;Running Arch Linux on our computers, where we control the system vs. an OS
vendor.&lt;&#x2F;li&gt;
&lt;li&gt;Proactively learning about nutrition and health vs. total dependence on
mainstream medicine.&lt;&#x2F;li&gt;
&lt;li&gt;Owning YOUR Platform vs. expecting someone else&#x27;s platform to solve all our
needs.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;In the short term, the first approach rarely makes business sense. However,
long-term, we learn that the second approach is an illusion.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏆 The entire story</title>
        <published>2025-05-06T00:00:00+00:00</published>
        <updated>2025-05-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0163-the-entire-story/"/>
        <id>https://daily.bec-systems.com/0163-the-entire-story/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0163-the-entire-story/">&lt;p&gt;In debates about technology, people
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;linux&#x2F;comments&#x2F;1ka5xyb&#x2F;am_i_crazy_or_is_arch_linux_the_easiest_distro_to&#x2F;&quot;&gt;bring up points&lt;&#x2F;a&gt;,
such as an Arch Linux update occasionally breaking and not booting; thus, Arch
Linux is bad.&lt;&#x2F;p&gt;
&lt;p&gt;While the above point is true, it is also irrelevant because it is not the
entire story. What about:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The hours upon hours I&#x27;ve saved updating and installing stuff because pacman
is so fast.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The 100&#x27;s of packaged tools and applications that save me from installing them
manually.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The AUR, which has everything that is not already packaged, making it easy to
install even the most obscure piece of software.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The benefits of using the latest and best versions of everything. After all,
if something is getting better, may as well benefit from it now vs later.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The simplicity of PKGBUILD, which allows me to create and modify my own
packages easily.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;I could go on, but you get the point. After running Arch for over 10 years,
let&#x27;s conservatively say I&#x27;ve saved an hour a week by using Arch -- that is 520
hours. I&#x27;ve spent maybe 5 hours working through broken stuff in Arch in 10
years. That is a benefit-cost ratio (BCR) of 104. So yes, the 5 hours are real,
but they are irrelevant.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👤 It&#x27;s all about the people</title>
        <published>2025-05-05T00:00:00+00:00</published>
        <updated>2025-05-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0162-it-s-all-about-the-people/"/>
        <id>https://daily.bec-systems.com/0162-it-s-all-about-the-people/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0162-it-s-all-about-the-people/">&lt;p&gt;It is very true, we need great people in our organizations. And I have the
utmost respect for those who can motivate and lead people. I also have the
utmost respect for the capabilities of humans -- that divine spark of creativity
and the ability of the human brain to solve problems and make new connections.&lt;&#x2F;p&gt;
&lt;p&gt;However, to do much in this age requires people to work together and build on
the work of the past. What one person does, another person needs to continue.
The lone accomplishments of any one individual may be impressive, but without
continuity and scale, there is likely to be very little lasting impact. Without
systems in place (YOUR Platform), the brilliant work of your people will not be
utilized to their full potential.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧠🔭 Experience and Vision</title>
        <published>2025-04-29T00:00:00+00:00</published>
        <updated>2025-04-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0161-experience-and-vision/"/>
        <id>https://daily.bec-systems.com/0161-experience-and-vision/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0161-experience-and-vision/">&lt;p&gt;In the realm of product development, there are two powerful forces -- experience
and vision.&lt;&#x2F;p&gt;
&lt;p&gt;Experience (the past) is a guide -- a help to avoid serious blunders and
mistakes. Experience can help us avoid dead-end tangents. Experience gives us a
gut feel that is critical at times. Experience helps us be more efficient if we
can make fewer mistakes.&lt;&#x2F;p&gt;
&lt;p&gt;Vision (the future) is where we are going. It is seeing things that have not
been done before. It is exploring new combinations of technology to build
compelling products. It is adopting new technology, including tools, software,
components, and workflows. It is about understanding the needs of your
customers.&lt;&#x2F;p&gt;
&lt;p&gt;Without experience, we are on the path to collapse.&lt;&#x2F;p&gt;
&lt;p&gt;Without vision, we are on the path to obscurity.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📊 Past performance ...</title>
        <published>2025-04-28T00:00:00+00:00</published>
        <updated>2025-04-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0160-past-performance/"/>
        <id>https://daily.bec-systems.com/0160-past-performance/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0160-past-performance/">&lt;blockquote&gt;
&lt;p&gt;&quot;past performance is not indicative of future results&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The above phrase is a disclaimer we often see associated with investments.&lt;&#x2F;p&gt;
&lt;p&gt;However, this applies to more than investments ...&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;A technology that was cutting edge in the past may not be the best option for
the future (example building web applications in PHP vs Go).&lt;&#x2F;li&gt;
&lt;li&gt;People who did good work in the past usually continue to do good work, but not
always. (people can lose interest, suffer burnout, have personal problems,
etc.)&lt;&#x2F;li&gt;
&lt;li&gt;Workflows used in the past are not always the best option for the future
(example, requiring patches on mail-lists will probably alienate a significant
portion of the developer population who were raised on pull-requests).&lt;&#x2F;li&gt;
&lt;li&gt;As the level of integration in integrated circuits continues, the IC we used
in the past may not be the best solution compared to more integrated solutions
available in the future.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;How we proceed in the future needs to be a combination of what we learned in the
past (experience) and the technology available in the future (vision). Again,
dysfunction arises when we mix these two modes up.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✔️ Legacy code</title>
        <published>2025-04-25T00:00:00+00:00</published>
        <updated>2025-04-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0159-legacy-code/"/>
        <id>https://daily.bec-systems.com/0159-legacy-code/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0159-legacy-code/">&lt;p&gt;Michael Feathers defines legacy code as code without tests. He further
elaborates in
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.oreilly.com&#x2F;library&#x2F;view&#x2F;working-effectively-with&#x2F;0131177052&#x2F;&quot;&gt;his book&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Code without tests is bad code. It doesn’t matter how well written it is; it
doesn’t matter how pretty or object-oriented or how well-encapsulated it is.
With tests, we can change the behavior of our code quickly and verifiably.
Without them, we really don’t know if our code is getting better or worse.”&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Without automated tests, any modification to the codebase is risky, as there is
no reliable way to know if a change introduces defects. This lack of feedback
forces us to rely on manual testing or institutional knowledge -- often lost
over time -- which makes maintenance difficult and error-prone. It is not about
the age of the code or who wrote it, but about whether the code can be changed
safely. If you cannot verify behavior through tests, the code is &quot;legacy&quot;
regardless of its age or origin.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 Git driven CD -- you know what got deployed</title>
        <published>2025-04-24T00:00:00+00:00</published>
        <updated>2025-04-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0158-git-driven-cd-you-know-what-got-deployed/"/>
        <id>https://daily.bec-systems.com/0158-git-driven-cd-you-know-what-got-deployed/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0158-git-driven-cd-you-know-what-got-deployed/">&lt;p&gt;Git driven CD (Continuous Deployment) typically means whenever you merge to
&lt;code&gt;main&lt;&#x2F;code&gt; , or tag a repo, something automatically gets deployed. It can be
something as simple as a static website being updated.&lt;&#x2F;p&gt;
&lt;p&gt;One of the biggest advantages to this is that you know for sure the code was
checked in and tagged. And you know exactly what code was deployed. There is no
manual process involved to mess it up.&lt;&#x2F;p&gt;
&lt;p&gt;This may not seem like a big deal, but it is. As humans, we get lazy and forget
to do the simple things like manually tagging a repo -- especially on small
teams where process is not emphasized. However, CD is a way to have a process
without having a process. You do it in the name of saving time, but it also
gives you enough process that things are now also consistent.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💸 Technical debt</title>
        <published>2025-04-23T00:00:00+00:00</published>
        <updated>2025-04-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0157-technical-debt/"/>
        <id>https://daily.bec-systems.com/0157-technical-debt/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0157-technical-debt/">&lt;p&gt;I like the definition of technical debt from
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;seths.blog&#x2F;2025&#x2F;04&#x2F;technical-debt-and-ai-slop&#x2F;&quot;&gt;this article:&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Technical debt is anything that slows down your ability to update and upgrade
your work&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛠️ Another reason to self-host Gitea</title>
        <published>2025-04-22T00:00:00+00:00</published>
        <updated>2025-04-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0156-another-reason-to-self-host-gitea/"/>
        <id>https://daily.bec-systems.com/0156-another-reason-to-self-host-gitea/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0156-another-reason-to-self-host-gitea/">&lt;p&gt;You own your data -- forever. You don&#x27;t need to keep paying monthly fees if you
decide to switch to a different system just to access your historical data and
conversations.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve been advocating that development discussions should happen in
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0149-git-the-new-standard-for-workflow&#x2F;&quot;&gt;Git*&lt;&#x2F;a&gt;
issues&#x2F;PRs&#x2F;projects whenever possible, so the conversations have context. One
requirement for this to work long term is that you need access to these
conversations for the duration of a product, and perhaps beyond.&lt;&#x2F;p&gt;
&lt;p&gt;There is a hosting cost, but it is minimal ($5&#x2F;mo on a Linode server). There is
also some ops cost to keep things running and up to date, but in my experience,
Gitea is cake to self-host compared to things like WordPress or Email. The
benefit-to-effort ratio is huge.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👷 The tension between solo and collaborative work</title>
        <published>2025-04-21T00:00:00+00:00</published>
        <updated>2025-04-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0155-the-tension-between-solo-and-collaborative-work/"/>
        <id>https://daily.bec-systems.com/0155-the-tension-between-solo-and-collaborative-work/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0155-the-tension-between-solo-and-collaborative-work/">&lt;p&gt;As systems become more complex, we emphasize collaboration more and more. But we
must also remember that truth is still largely a solo pursuit. Truth by
committee is almost an oxymoron. The new algorithms, the keen insights, and the
disruptive inventions are usually not the work of a committee, but rather a lone
person exploring the boundaries of knowledge, careful observation, and making
new connections from what already exists. And really, invention is not anything
new, but rather a discovery of the universal truths that exist in our universe
-- the laws of nature.&lt;&#x2F;p&gt;
&lt;p&gt;Increasingly, we need to be good at both -- the focus and solitude required for
deep work, and the collaboration required to build complex systems. The great
ideas will generally come from the former, but the ability to do anything useful
with them requires the latter.&lt;&#x2F;p&gt;
&lt;p&gt;Dysfunction arises when we mix these two modes up.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🕹️ What can we control?</title>
        <published>2025-04-18T00:00:00+00:00</published>
        <updated>2025-04-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0154-what-can-we-control/"/>
        <id>https://daily.bec-systems.com/0154-what-can-we-control/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0154-what-can-we-control/">&lt;p&gt;There are some things we can control:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Products have a robust field update mechanism.&lt;&#x2F;li&gt;
&lt;li&gt;Automated testing is in place.&lt;&#x2F;li&gt;
&lt;li&gt;We have automated deployments.&lt;&#x2F;li&gt;
&lt;li&gt;We have processes to quickly and confidently make and release hardware
changes.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;And some things we can&#x27;t control:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;A customer asking for a new feature we did not anticipate.&lt;&#x2F;li&gt;
&lt;li&gt;Bugs showing up in the field.&lt;&#x2F;li&gt;
&lt;li&gt;Security problems in a dependency.&lt;&#x2F;li&gt;
&lt;li&gt;Cloud vendor infrastructure problems.&lt;&#x2F;li&gt;
&lt;li&gt;Supply chain issues (have we forgotten COVID already)?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;But if we do the first list, then we are prepared to handle the second. However,
we tend to focus most of our energy on the 2nd list (onerous contracts with
vendors, extensive manual testing of the &quot;final&quot; release, etc.) and think we are
controlling the situation, when in reality we are not -- it&#x27;s just an illusion.
Really, it is change that we fear, as change is associated with a lack of
control. But it is change that gives us control.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>😩 Boring, error-prone, repetitive, tedious work</title>
        <published>2025-04-17T00:00:00+00:00</published>
        <updated>2025-04-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0153-boring-error-prone-repetitive-tedious-work/"/>
        <id>https://daily.bec-systems.com/0153-boring-error-prone-repetitive-tedious-work/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0153-boring-error-prone-repetitive-tedious-work/">&lt;p&gt;Some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;manually testing software&lt;&#x2F;li&gt;
&lt;li&gt;manually constructing a bill of materials&lt;&#x2F;li&gt;
&lt;li&gt;searching your email for some bit of information&lt;&#x2F;li&gt;
&lt;li&gt;scrolling through logs looking for potential problems&lt;&#x2F;li&gt;
&lt;li&gt;manually configuring a new server&lt;&#x2F;li&gt;
&lt;li&gt;manually deploying software updates&lt;&#x2F;li&gt;
&lt;li&gt;manually checking for spacing violations in a PCB layout&lt;&#x2F;li&gt;
&lt;li&gt;building physical prototype circuits and trying a range of different
components&lt;&#x2F;li&gt;
&lt;li&gt;organizing parts or physical materials without an easy way to identify or sort
them&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If this describes what we are doing, there may be an opportunity for workflow or
automation improvements. This is the kind of work computers do best -- to free
us up for what humans do best.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧑‍💻 Will AI cause coding to disappear?</title>
        <published>2025-04-16T00:00:00+00:00</published>
        <updated>2025-04-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0152-will-ai-cause-coding-to-disappear/"/>
        <id>https://daily.bec-systems.com/0152-will-ai-cause-coding-to-disappear/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0152-will-ai-cause-coding-to-disappear/">&lt;p&gt;AI is not a binary off&#x2F;on thing, like many of the industry commentators like to
think. Many of us are already using AI to improve our productivity. For me,
Perplexity has largely replaced Google search.&lt;&#x2F;p&gt;
&lt;p&gt;Technology has always brought productivity gains: ASM -&amp;gt; C -&amp;gt; Code generators -&amp;gt;
Libraries -&amp;gt; OSS -&amp;gt; Google search -&amp;gt; Zephyr -&amp;gt; etc. AI is just another step.&lt;&#x2F;p&gt;
&lt;p&gt;Coding has always been the easy part. Requirements, innovation, collaboration,
architecture, integration, debugging, etc. -- these are the hard parts. There
will always be a place for skilled humans ... people with intuition, creativity,
experience, taste, vision, and style. People who see and can do what does not
already exist.&lt;&#x2F;p&gt;
&lt;p&gt;If all you do is translate well-defined requirements into code, then yeah, I&#x27;d
be worried. However, there is a lot more that needs to be done that is of much
higher value, and not enough people to do it. Step up!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✅ Guarantees</title>
        <published>2025-04-15T00:00:00+00:00</published>
        <updated>2025-04-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0151-guarantees/"/>
        <id>https://daily.bec-systems.com/0151-guarantees/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0151-guarantees/">&lt;p&gt;Sometimes we want guarantees:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Are you sure this will work?&lt;&#x2F;li&gt;
&lt;li&gt;Can we lock this down to a rock-solid stable release?&lt;&#x2F;li&gt;
&lt;li&gt;Is it fully tested?&lt;&#x2F;li&gt;
&lt;li&gt;Will this vendor be able to provide this part forever?&lt;&#x2F;li&gt;
&lt;li&gt;Do we have all the features the product will ever need?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The reality is that in complex systems, nothing is guaranteed. There will be
problems, especially during integration and new use scenarios. No supplier is
guaranteed. We can&#x27;t anticipate all the use cases of a complex system.&lt;&#x2F;p&gt;
&lt;p&gt;So the more important questions are:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Can we start integration and testing earlier?&lt;&#x2F;li&gt;
&lt;li&gt;Do we have automated testing?&lt;&#x2F;li&gt;
&lt;li&gt;Can we easily update deployed systems?&lt;&#x2F;li&gt;
&lt;li&gt;Can we pivot to new components as required?&lt;&#x2F;li&gt;
&lt;li&gt;Do we have processes and workflows in place to quickly and confidently make
any needed changes (hardware or software)?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 The 2nd key to effective process</title>
        <published>2025-04-14T00:00:00+00:00</published>
        <updated>2025-04-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0150-the-2nd-secret-to-effective-processes/"/>
        <id>https://daily.bec-systems.com/0150-the-2nd-secret-to-effective-processes/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0150-the-2nd-secret-to-effective-processes/">&lt;p&gt;If the people at the top don&#x27;t use the process, hardly anyone else will either.
What we do often speaks way louder than what we say.&lt;&#x2F;p&gt;
&lt;p&gt;(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0140-the-secret-to-process&#x2F;&quot;&gt;1st key ...&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛠️ Git* -- the new standard for workflow</title>
        <published>2025-04-11T00:00:00+00:00</published>
        <updated>2025-04-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0149-git-the-new-standard-for-workflow/"/>
        <id>https://daily.bec-systems.com/0149-git-the-new-standard-for-workflow/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0149-git-the-new-standard-for-workflow/">&lt;p&gt;It started with Github, a place to host your OSS projects. Over time, several
other options emerged, and each has its place:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;&quot;&gt;Github&lt;&#x2F;a&gt;: excellent for OSS projects where you want to
attract the most developers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;&quot;&gt;Gitlab&lt;&#x2F;a&gt;: great for a large hosted enterprise solution.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;about.gitea.com&#x2F;&quot;&gt;Gitea&lt;&#x2F;a&gt;: a great solution for small&#x2F;midsize teams
building products. Can be run on a $5&#x2F;mo Linode or Digital Ocean cloud server.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;forgejo.org&#x2F;&quot;&gt;Forgejo&lt;&#x2F;a&gt;: is a fork of Gitea focused more on community
and security.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;I&#x27;ll call the above &lt;strong&gt;Git*&lt;&#x2F;strong&gt;. These tools set a new standard for workflow
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0148-the-defining-characteristic-of-a-good-workflow-tool&#x2F;&quot;&gt;integration&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛠️ The defining characteristic of a good workflow tool</title>
        <published>2025-04-10T00:00:00+00:00</published>
        <updated>2025-04-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0148-the-defining-characteristic-of-a-good-workflow-tool/"/>
        <id>https://daily.bec-systems.com/0148-the-defining-characteristic-of-a-good-workflow-tool/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0148-the-defining-characteristic-of-a-good-workflow-tool/">&lt;p&gt;As mentioned in the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0147-the-critical-features-of-workflow-tools&#x2F;&quot;&gt;previous post&lt;&#x2F;a&gt;,
modern workflow tools provide efficient access to information, collaboration,
and automation.&lt;&#x2F;p&gt;
&lt;p&gt;The real power is when these &lt;strong&gt;three things come together&lt;&#x2F;strong&gt; in one environment.
The defining characteristic of a good workflow tool is ... &lt;strong&gt;integration&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;There are powerful project board tools like Jira or Trello. There are great
communication tools like Discourse, Discord, Slack, and Email. There are popular
code review tools like Gerrit. But good things happen when you bring all these
things together into one workflow tool, which I will call Git*: Github, Gitlab,
Gitea, or Forgejo. Then everything has context, and relationships between
different types of information are easy to create. Integration in a tool is a
powerful thing where the overall value is much greater than the sum of the
individual features.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛠️ The critical features of workflow tools</title>
        <published>2025-04-09T00:00:00+00:00</published>
        <updated>2025-04-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0147-the-critical-features-of-workflow-tools/"/>
        <id>https://daily.bec-systems.com/0147-the-critical-features-of-workflow-tools/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0147-the-critical-features-of-workflow-tools/">&lt;p&gt;Tools are what enable knowledge work in the information age. Several critical
features:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Efficient access to information&lt;&#x2F;li&gt;
&lt;li&gt;Collaboration&lt;&#x2F;li&gt;
&lt;li&gt;Automation&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;We&#x27;ll discuss more in the future posts ...&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✉️ Email filters</title>
        <published>2025-04-08T00:00:00+00:00</published>
        <updated>2025-04-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0146b-email-filters/"/>
        <id>https://daily.bec-systems.com/0146b-email-filters/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0146b-email-filters/">&lt;p&gt;Email is an amazing technology -- the only widespread decentralized
communication tool we have. But most of us are flooded with email. The
fundamental problem is when we get emails from so many different sources,
projects, and contexts flowing into one inbox. The context switching as we go
from one email to the next is very expensive.&lt;&#x2F;p&gt;
&lt;p&gt;Email filters which automatically put emails into folders can help tame this
problem. Gmail already tries to do this automatically with their Primary,
Promotions, Social, and Updates. However, we can also do things like the
following:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;filter emails for every project&#x2F;context into a separate folder. You can
trigger of senders, subject, etc.&lt;&#x2F;li&gt;
&lt;li&gt;filter notifications from workflow tools (Github, Trello, etc.) into folders.
If there are separate projects, then create separate folders for each project.&lt;&#x2F;li&gt;
&lt;li&gt;filter email newsletters into two folders: news-high-priority, and
news-low-priority -- the former is the ones you want to read, and the latter
you just browse occasionally.&lt;&#x2F;li&gt;
&lt;li&gt;create a &quot;personal&quot; folder that emails outside of work get filtered into.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This is automation that makes information easier to process. Of course some
emails will still slip into your inbox, but for most of our email, everything is
grouped into a single context. This greatly improves our efficiency in
processing them.&lt;&#x2F;p&gt;
&lt;p&gt;The critical thing is to use an email client that makes it easy to create
filters. Thunderbird &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;WZDpk73X5Vs&quot;&gt;works pretty well&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👥 Everybody Works and the impact on meetings</title>
        <published>2025-04-07T00:00:00+00:00</published>
        <updated>2025-04-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0146-everybody-works/"/>
        <id>https://daily.bec-systems.com/0146-everybody-works/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0146-everybody-works/">&lt;p&gt;In a recent podcast titled
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;37signals.com&#x2F;podcast&#x2F;everybody-works&#x2F;&quot;&gt;Everybody Works&lt;&#x2F;a&gt;, the owners of
a 60-person company discuss the impact of full-time managers and one of them is
more meetings:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;And the primary problem with management is when it’s full time and it’s only
that it can’t do anything by itself. So the way 40 hours are manifested is
through other people. It’s, hey, can you join this meeting? Hey, can we do a
one-on-one? Hey, can we do some planning? Hey, can we do? Every bit of it is
something that pulls someone who’s actually working on things away from that
work and into the managerial orb. And I think we just finally came to the
realization we did not need that. We do not need that at our scale, that we
can supplement the work that we’re doing with a handful of managerial
practices or protocols, things that don’t even require human to run.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The following article also discusses the subject:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;world.hey.com&#x2F;dhh&#x2F;we-once-more-have-no-full-time-managers-at-37signals-f8611085&quot;&gt;We once more have no full-time managers at 37signals&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👥 Efficient meetings</title>
        <published>2025-04-04T00:00:00+00:00</published>
        <updated>2025-04-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0145-efficient-meetings/"/>
        <id>https://daily.bec-systems.com/0145-efficient-meetings/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0145-efficient-meetings/">&lt;p&gt;There are a lot of good ideas for effective meetings:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;seths.blog&#x2F;2018&#x2F;04&#x2F;whos-meeting-is-this-a-simple-checklist&#x2F;&quot;&gt;Whose meeting is this? A simple checklist&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;nav.al&#x2F;who-has-time-for-meetings&quot;&gt;Who has time for meetings?&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;There are good reasons to have a meeting (hanging out, brainstorming, setting
priorities, making decisions), but in this age sharing information is probably
not one of them. People should have access to information before the meeting.
The goal of the meeting should also be known ahead of time. It is like planning
your day the night before — your subconscious has time to work on it and you are
prepared. Prepared people are efficient.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👥 Meetings and human relationships</title>
        <published>2025-04-03T00:00:00+00:00</published>
        <updated>2025-04-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0144-meetings-and-personal-relationships/"/>
        <id>https://daily.bec-systems.com/0144-meetings-and-personal-relationships/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0144-meetings-and-personal-relationships/">&lt;p&gt;Improving human relationships is sometimes used as a justification for meetings,
and face-to-face meetings can certainly improve human relationships.&lt;&#x2F;p&gt;
&lt;p&gt;But more generally, we can say that positive interactions improve human
relationships. And the more positive interactions we have, the stronger our
relationships will be.&lt;&#x2F;p&gt;
&lt;p&gt;Modern workflow tools provide a tremendous opportunity for human interactions at
a scale that is impossible to accomplish with meetings. They provide
transparency. The stream of activity is visible to all, and anyone can
participate (or ignore) at any time. There are so many more opportunities for
positive interaction than a weekly, or even daily status meeting.&lt;&#x2F;p&gt;
&lt;p&gt;However, it is necessary to have a culture that encourages and promotes
transparency and frequent, positive interactions. It starts with the example of
those at the top. Do you provide positive feedback, give helpful suggestions,
and ask thoughtful questions in the course of work? Do you follow the
development activity and use the communication features of the workflow tools
such as Issue&#x2F;PRs&#x2F;project boards comments?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👥 Why meetings?</title>
        <published>2025-04-02T00:00:00+00:00</published>
        <updated>2025-04-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0143-why-meetings/"/>
        <id>https://daily.bec-systems.com/0143-why-meetings/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0143-why-meetings/">&lt;p&gt;There are many reasons to call meetings:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Accountability&lt;&#x2F;li&gt;
&lt;li&gt;Knowledge transfer&lt;&#x2F;li&gt;
&lt;li&gt;Transparency&lt;&#x2F;li&gt;
&lt;li&gt;Status&lt;&#x2F;li&gt;
&lt;li&gt;Review&lt;&#x2F;li&gt;
&lt;li&gt;Oversight&lt;&#x2F;li&gt;
&lt;li&gt;Improve&#x2F;maintain relationships&lt;&#x2F;li&gt;
&lt;li&gt;Brainstorming&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;However, in this age of excellent collaboration tools (Git workflows, project
boards, etc.), meetings are an inefficient way to handle the first 6 items on
the above list. If our workflow does not provide complete transparency into what
everyone is doing, then there may be opportunities to improve our workflow.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚖️ Horizontal vs Vertical Scaling</title>
        <published>2025-04-01T00:00:00+00:00</published>
        <updated>2025-04-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0142-horizontal-vs-vertical-scaling/"/>
        <id>https://daily.bec-systems.com/0142-horizontal-vs-vertical-scaling/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0142-horizontal-vs-vertical-scaling/">&lt;p&gt;In the context of product development:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Horizontal Scaling&lt;&#x2F;strong&gt;: Selling more units, getting more customers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Vertical Scaling&lt;&#x2F;strong&gt;: Add value to already sold&#x2F;deployed units.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Bigger vs. Better -- both are valid ways to scale and produce value. In this age
of powerful connected devices, vertical scaling is becoming increasingly
important. And that is where YOUR Platform matters.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👌 Struggling to scale your IoT system? Simplify your data.</title>
        <published>2025-03-31T00:00:00+00:00</published>
        <updated>2025-03-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0141-struggling-to-scale-your-iot-system-simplify-your-data/"/>
        <id>https://daily.bec-systems.com/0141-struggling-to-scale-your-iot-system-simplify-your-data/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0141-struggling-to-scale-your-iot-system-simplify-your-data/">&lt;p&gt;I recently published a new blog article about IoT data. Have you struggled with
adapting your IoT system to new applications and requirements? Is handling
configuration updates at both the cloud and edge a challenge? Is synchronizing
required data between cloud and edge instances a challenge? This article
describes a simple way to model data that eliminates many of these difficulties.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bec-systems.com&#x2F;2432&#x2F;struggling-to-scale-your-iot-system-simplify-your-data&#x2F;&quot;&gt;Read here ...&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 The secret to process</title>
        <published>2025-03-28T00:00:00+00:00</published>
        <updated>2025-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0140-the-secret-to-process/"/>
        <id>https://daily.bec-systems.com/0140-the-secret-to-process/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0140-the-secret-to-process/">&lt;p&gt;Process&#x2F;workflows&#x2F;tools should be good enough that they help the people doing
the work. They are not just an administrative tool. Some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Git helps me manage my own work, so I use it even on personal projects where
collaboration is not needed.&lt;&#x2F;li&gt;
&lt;li&gt;Gitea issues are so fast and easy to use that when working on hard problems, I
automatically create an issue to log progress. It is easier and faster than
keeping notes anywhere else.&lt;&#x2F;li&gt;
&lt;li&gt;Gitea releases are so quick and easy to use that I use them even for internal
releases there rather than composing an email.&lt;&#x2F;li&gt;
&lt;li&gt;Jitsi Meet is easier than a phone call, so we use it for most calls and have
the benefit of screen sharing, video, multiple participants, etc.&lt;&#x2F;li&gt;
&lt;li&gt;Code formatting tools help me as a developer, so I gladly integrate them into
my editor.&lt;&#x2F;li&gt;
&lt;li&gt;Part numbers are so easy to pull and use that they help me manage parts and
assemblies for my prototype builds, so I pull them early in the design process
and integrate them in CAD libraries.&lt;&#x2F;li&gt;
&lt;li&gt;Tests are easy to create and run locally, so I create them as part of my
development process.&lt;&#x2F;li&gt;
&lt;li&gt;Documentation is integrated with the design files and easy to create, edit,
and track. Thus, documentation is an integral part of the development process
vs. an afterthought.&lt;&#x2F;li&gt;
&lt;li&gt;End to end tests are easy to run by anyone, so when there are issues to debug,
they are tool that is regularly used by developers.&lt;&#x2F;li&gt;
&lt;li&gt;It is easy to purchase things needed to do my job and improve the company as
everyone is issued a credit card, and expense reports are generated
automatically. There is no motivation to bypass the process.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Tools&#x2F;workflows&#x2F;process should help the people doing the work go faster, not
slow them down. If this is the case, you won&#x27;t need to force them on people. If
this is not the case, the process needs work.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚙️ Fix systems, not people</title>
        <published>2025-03-27T00:00:00+00:00</published>
        <updated>2025-03-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0139-fix-systems-not-people/"/>
        <id>https://daily.bec-systems.com/0139-fix-systems-not-people/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0139-fix-systems-not-people/">&lt;p&gt;We can rarely &quot;fix&quot; other people. Short of a divine conversion experience or a
life-changing event, people don&#x27;t fundamentally change, no matter how much we
plead, beg, threaten, cajole, encourage, etc. Certainly, some are more gifted
with the ability to motivate, nurture, and mentor others. But, even this has
limits. So we are left with two options:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.jimcollins.com&#x2F;concepts&#x2F;first-who-then-what.html&quot;&gt;Get the right people on the bus.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Work on the systems and processes that help all of us work and communicate
more effectively.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📈 Scaling</title>
        <published>2025-03-26T00:00:00+00:00</published>
        <updated>2025-03-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0138-scaling/"/>
        <id>https://daily.bec-systems.com/0138-scaling/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0138-scaling/">&lt;p&gt;We often think of scaling as growing a company&#x27;s size or the number of units
sold&#x2F;deployed&#x2F;etc. That is one way to provide value to the world.&lt;&#x2F;p&gt;
&lt;p&gt;However, there are other ways to scale:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;improving the experience&lt;&#x2F;li&gt;
&lt;li&gt;improving reliability&#x2F;security&lt;&#x2F;li&gt;
&lt;li&gt;new markets&lt;&#x2F;li&gt;
&lt;li&gt;deploying updates to existing systems&lt;&#x2F;li&gt;
&lt;li&gt;better customer support&lt;&#x2F;li&gt;
&lt;li&gt;giving users more control&#x2F;flexibility&#x2F;customization&lt;&#x2F;li&gt;
&lt;li&gt;higher profit margins&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Think carefully about this as scaling in one dimension often limits how far you
can scale in another.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌅 Simple stuff is boring</title>
        <published>2025-03-25T00:00:00+00:00</published>
        <updated>2025-03-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0137-simple-stuff-is-boring/"/>
        <id>https://daily.bec-systems.com/0137-simple-stuff-is-boring/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0137-simple-stuff-is-boring/">&lt;p&gt;That may be. But doing the simple stuff well is also rewarding. And which is
better: exciting or rewarding?&lt;&#x2F;p&gt;
&lt;p&gt;To do the simple stuff well feels good. It feels right. That is because it is
right. And what gets the simple stuff done? YOUR Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👌 The simple&#x2F;basic things are the most important to get right</title>
        <published>2025-03-24T00:00:00+00:00</published>
        <updated>2025-03-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0136-wqthe-simple-basic-things-are-the-most-important-to-get-right/"/>
        <id>https://daily.bec-systems.com/0136-wqthe-simple-basic-things-are-the-most-important-to-get-right/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0136-wqthe-simple-basic-things-are-the-most-important-to-get-right/">&lt;p&gt;It pretty much any endeavor, consistently doing the simple things are what make
the difference.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Doing simple exercises consistently.&lt;&#x2F;li&gt;
&lt;li&gt;Eating whole foods.&lt;&#x2F;li&gt;
&lt;li&gt;Not overeating.&lt;&#x2F;li&gt;
&lt;li&gt;Taking time to share and communicate.&lt;&#x2F;li&gt;
&lt;li&gt;Showing up.&lt;&#x2F;li&gt;
&lt;li&gt;Being on time.&lt;&#x2F;li&gt;
&lt;li&gt;Meeting commitments.&lt;&#x2F;li&gt;
&lt;li&gt;Not overcomitting.&lt;&#x2F;li&gt;
&lt;li&gt;Using a headset when communicating.&lt;&#x2F;li&gt;
&lt;li&gt;Fixing bugs.&lt;&#x2F;li&gt;
&lt;li&gt;Keeping code clean.&lt;&#x2F;li&gt;
&lt;li&gt;Following the process.&lt;&#x2F;li&gt;
&lt;li&gt;Having a process.&lt;&#x2F;li&gt;
&lt;li&gt;Working transparently.&lt;&#x2F;li&gt;
&lt;li&gt;Making things easier for others.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Simple things are foundational -- if you don&#x27;t get these right, the rest
crumbles.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✅ The problem with software</title>
        <published>2025-03-21T00:00:00+00:00</published>
        <updated>2025-03-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0135-the-problem-with-software/"/>
        <id>https://daily.bec-systems.com/0135-the-problem-with-software/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0135-the-problem-with-software/">&lt;p&gt;I&#x27;m currently reading
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;atulgawande.com&#x2F;book&#x2F;the-checklist-manifesto&#x2F;&quot;&gt;The Checklist Manifesto &lt;&#x2F;a&gt;
by Atul Gawande. Gawande is a surgeon who wants to find a way to reduce the
mistakes and their catastrophic consequences during surgery. So he investigates
other industries such as air travel and the construction of large buildings.
What he finds is the checklist is at the center of their processes. (more on
this later ...)&lt;&#x2F;p&gt;
&lt;p&gt;With software, our failures (with some exceptions) are usually not as
catastrophic as people dying in surgery, airplanes falling out of the sky, and
large buildings collapsing. Another difference with software is that is easy and
cheap to fix by deploying an update (hence the prefix &quot;soft&quot;). People,
airplanes, and buildings are not this way.&lt;&#x2F;p&gt;
&lt;p&gt;Thus we can get sloppy. Motivation to &quot;get it right&quot; can wane as pressure to
ship increases and we can &quot;always fix it later.&quot; The problem is that this
approach encourages accumulating technical debt. Technical debt will just as
surely crush the soul of a programmer and eventually the company, just not in
dramatic news-catching ways.&lt;&#x2F;p&gt;
&lt;p&gt;Building a sustainable technology company requires an extreme level of
discipline because there is no external force requiring you to do it right. For
many technology industries, there is not any regulatory agency watching over
them -- it is entirely up to YOU, and that is where YOUR Platform comes in.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌻 Downstream, things should be better</title>
        <published>2025-03-20T00:00:00+00:00</published>
        <updated>2025-03-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0134-downstream-things-should-be-better/"/>
        <id>https://daily.bec-systems.com/0134-downstream-things-should-be-better/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0134-downstream-things-should-be-better/">&lt;p&gt;For everyone downstream of us who uses or is influenced by what we create or do,
things should be simpler&#x2F;better&#x2F;easier -- because we did something. This is the
formula for creating wealth.&lt;&#x2F;p&gt;
&lt;p&gt;The alternative is that we produce no value for others. It would be easier for
someone to do whatever we&#x27;re doing themselves, or in extreme cases what we are
doing should not be done at all. This is the formula for debt.&lt;&#x2F;p&gt;
&lt;p&gt;Wealth can include more than money -- good will, positive energy, intellectual
property, spiritual well-being, relationships, community, health, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Whenever debt creation is greater than wealth creation for too long, the
family&#x2F;organization&#x2F;company&#x2F;country we&#x27;re a part of collapses.&lt;&#x2F;p&gt;
&lt;p&gt;In whatever sphere we&#x27;re a part of, do we create wealth or debt.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🪙 Complexity and Simplicity -- two sides of the same coin</title>
        <published>2025-03-19T00:00:00+00:00</published>
        <updated>2025-03-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0133-complexity-and-simplicity-two-sides-of-the-same-coin/"/>
        <id>https://daily.bec-systems.com/0133-complexity-and-simplicity-two-sides-of-the-same-coin/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0133-complexity-and-simplicity-two-sides-of-the-same-coin/">&lt;p&gt;To get to simple for someone, it often has to get more complex for someone else.&lt;&#x2F;p&gt;
&lt;p&gt;An elegant, easy to use UI was a lot of work for someone to design.&lt;&#x2F;p&gt;
&lt;p&gt;A powerful, modern programming language that makes it easy for software
developers was no doubt very complex to implement.&lt;&#x2F;p&gt;
&lt;p&gt;Modern CPUs that allow us to do so much are very complex to design and
manufacture.&lt;&#x2F;p&gt;
&lt;p&gt;In technology, anything that appears simple&#x2F;nice&#x2F;easy likely has something very
complex behind the scenes.&lt;&#x2F;p&gt;
&lt;p&gt;Again, this makes business sense if many people can benefit from the simplicity
for every person that deals with the complexity.&lt;&#x2F;p&gt;
&lt;p&gt;What does not work is if we push complexity onto our users&#x2F;customers in an
effort to keep things simple for ourselves.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⬆️ The business case for improvement</title>
        <published>2025-03-18T00:00:00+00:00</published>
        <updated>2025-03-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0132-the-business-case-for-improvement/"/>
        <id>https://daily.bec-systems.com/0132-the-business-case-for-improvement/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0132-the-business-case-for-improvement/">&lt;p&gt;As discussed previously, improvement is sometimes hard -- really hard. So how do
we justify it?&lt;&#x2F;p&gt;
&lt;p&gt;The payback comes when we improve something once, and then something else gets
lots easier many times.&lt;&#x2F;p&gt;
&lt;p&gt;An example might be automating a release process. If it takes 1 hour to manually
do a release, and it takes 6 hours to automate it, then in 6 releases we break
even and releases after that is gain.&lt;&#x2F;p&gt;
&lt;p&gt;We want the balance to tip heavily toward the gains from repeatedly using the
improvement, not the effort spent implementing improvements.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;uploads&#x2F;default&#x2F;original&#x2F;2X&#x2F;a&#x2F;aea3b179c43e38f66bc9860a3d4c9e253e74c84a.png&quot; alt=&quot;balance&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;For this to work out, we need a way to leverage improvements in the future. We
need tools, workflows, automation, and processes to capture improvements -- YOUR
Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⬆️ The path of improvement</title>
        <published>2025-03-17T00:00:00+00:00</published>
        <updated>2025-03-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0131-the-path-of-improvement/"/>
        <id>https://daily.bec-systems.com/0131-the-path-of-improvement/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0131-the-path-of-improvement/">&lt;p&gt;Improvement is not always easy, actually it is usually hard -- really hard, and
sometimes a complex path. But in the end, something likely
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0130-what-is-improvement&#x2F;&quot;&gt;got simpler for someone&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Getting to complex is easy and the natural state of things (chaos).&lt;&#x2F;p&gt;
&lt;p&gt;The path and the resulting state are two different things.&lt;&#x2F;p&gt;
&lt;p&gt;We can do the hard&#x2F;complex things and get to a simple&#x2F;nice&#x2F;sustainable state.&lt;&#x2F;p&gt;
&lt;p&gt;Or we can only do the the easy things which results in a
complex&#x2F;messy&#x2F;unsustainable state.&lt;&#x2F;p&gt;
&lt;p&gt;Take your pick.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;uploads&#x2F;default&#x2F;original&#x2F;2X&#x2F;c&#x2F;cbce40d3004bbed62fe1959b9c86ebc7d037df8f.png&quot; alt=&quot;path vs state&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⬆️ What is improvement?</title>
        <published>2025-03-14T00:00:00+00:00</published>
        <updated>2025-03-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0130-what-is-improvement/"/>
        <id>https://daily.bec-systems.com/0130-what-is-improvement/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0130-what-is-improvement/">&lt;p&gt;Improvement often means something got simpler for someone:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;We refactored the code and it is now easier to read.&lt;&#x2F;li&gt;
&lt;li&gt;The build system is more reliable.&lt;&#x2F;li&gt;
&lt;li&gt;The automated tests are better, so less manual testing is needed.&lt;&#x2F;li&gt;
&lt;li&gt;The documentation is better, so it is easier to understand something.&lt;&#x2F;li&gt;
&lt;li&gt;The circuit is more reliable, so support has less field problems to deal with.&lt;&#x2F;li&gt;
&lt;li&gt;A product has more needed features, so it is easier to sell.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If things are not getting simpler for someone, we need to question -- are they
improving?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👷 Make less work for others, part 2</title>
        <published>2025-03-13T00:00:00+00:00</published>
        <updated>2025-03-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0129-make-less-work-for-others-part-2/"/>
        <id>https://daily.bec-systems.com/0129-make-less-work-for-others-part-2/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0129-make-less-work-for-others-part-2/">&lt;p&gt;A few examples of how to make &quot;less work&quot; for others:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;try not to introduce bugs or break stuff&lt;&#x2F;li&gt;
&lt;li&gt;communicate in workflows like Tickets&#x2F;PRs where there is context and messages
can be easily processed&lt;&#x2F;li&gt;
&lt;li&gt;document your work -- including &quot;why&quot;&lt;&#x2F;li&gt;
&lt;li&gt;focus on the business priorities&lt;&#x2F;li&gt;
&lt;li&gt;be self-directed -- see what needs done and do it&lt;&#x2F;li&gt;
&lt;li&gt;work in public
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0101-the-importance-of-small-git-commits-pull-requests&#x2F;&quot;&gt;commit early and often&lt;&#x2F;a&gt;
and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0099-the-importance-of-git-commit-push-often&#x2F;&quot;&gt;release your work often&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;document how work was tested&lt;&#x2F;li&gt;
&lt;li&gt;better yet, provide examples&#x2F;scripts&#x2F;tests of how to use&#x2F;test your work&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;It should be obvious:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;what we are doing&lt;&#x2F;li&gt;
&lt;li&gt;why we are doing it&lt;&#x2F;li&gt;
&lt;li&gt;how we did it&lt;&#x2F;li&gt;
&lt;li&gt;how we tested&#x2F;verified it&lt;&#x2F;li&gt;
&lt;li&gt;and how to use it&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👷 Do we make more work for others or less?</title>
        <published>2025-03-12T00:00:00+00:00</published>
        <updated>2025-03-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0128-do-we-make-more-work-for-others-or-less/"/>
        <id>https://daily.bec-systems.com/0128-do-we-make-more-work-for-others-or-less/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0128-do-we-make-more-work-for-others-or-less/">&lt;p&gt;This question really gets to the heart of our value to others. In everything we
do, we need to think -- am I delivering this work or information in a way that
is easy for others to understand and use? Or do they need to do a bunch of
unneeded&#x2F;extra work?&lt;&#x2F;p&gt;
&lt;p&gt;Organizations composed of people who make less work for others scale.&lt;&#x2F;p&gt;
&lt;p&gt;Organizations composed of people who make more work for others collapse.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 The business model for updates</title>
        <published>2025-03-11T00:00:00+00:00</published>
        <updated>2025-03-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0127-the-business-model-for-updates/"/>
        <id>https://daily.bec-systems.com/0127-the-business-model-for-updates/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0127-the-business-model-for-updates/">&lt;p&gt;In the old&#x27;n days, a project was shipped and done, and we moved on to the next
one.&lt;&#x2F;p&gt;
&lt;p&gt;However, with modern connected systems, we can
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0123-connected-systems-are-different&#x2F;&quot;&gt;deliver a lot of value&lt;&#x2F;a&gt;
after the initial release. Most of our engineering effort may be spent after the
initial release maintaining and improving a product. How do we fund this? Some
ideas:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Build the cost into the product up front (many consumer products use this
model)&lt;&#x2F;li&gt;
&lt;li&gt;Pay for maintenance with new sales (be careful this is not a pyramid scheme)&lt;&#x2F;li&gt;
&lt;li&gt;Monthly&#x2F;yearly subscription fees (might include a cloud service)&lt;&#x2F;li&gt;
&lt;li&gt;Fees for add-on features (high-end test equipment like oscilloscopes often use
this model)&lt;&#x2F;li&gt;
&lt;li&gt;Pay for every update (hard to get customer buy-in)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The biggest mistake is not to plan for maintenance costs, or to surprise your
customers with them. Be up front with the costs, but be more up front by
communicating the value that you are continuously delivering.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 What is the best software release frequency?</title>
        <published>2025-03-10T00:00:00+00:00</published>
        <updated>2025-03-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0126-what-is-the-best-software-release-frequency/"/>
        <id>https://daily.bec-systems.com/0126-what-is-the-best-software-release-frequency/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0126-what-is-the-best-software-release-frequency/">&lt;p&gt;Different projects&#x2F;products have different needs, but generally the trend in our
industry is to release new software more often. There are several reasons for
this:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Modern processors (even embedded microcontrollers) are very powerful and
expandable, so it is possible to add additional features after the initial
release.&lt;&#x2F;li&gt;
&lt;li&gt;Many devices are now connected, so updates can be deployed &quot;over the air&quot;
automatically, rather than executing some manual operation.&lt;&#x2F;li&gt;
&lt;li&gt;Continuous Integration (CI) and other workflows are improving the quality of
software such that we are more confident the software is always tested and
working. Long manual testing&#x2F;QA periods are no longer the best practice.&lt;&#x2F;li&gt;
&lt;li&gt;People are used to software updating on their phones&#x2F;computers, so it is
generally more accepted.&lt;&#x2F;li&gt;
&lt;li&gt;Connected systems
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0123-connected-systems-are-different&#x2F;&quot;&gt;need more updates&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Connected systems bring security concerns which require updates.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Perhaps the main reason the release frequency is increasing is more cultural
than anything. In previous times, software updates were perceived as &quot;breaking
things.&quot; Especially in embedded systems, the mantra was: test it extensively,
get it right, and lock things down. Updates are risky. However, the world has
changed.&lt;&#x2F;p&gt;
&lt;p&gt;In the end, a software release means more value is being delivered to your
users. And if our goal is to deliver value, then that includes releasing new
software more often.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 How can Arch Linux get by without releases?</title>
        <published>2025-03-07T00:00:00+00:00</published>
        <updated>2025-03-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0125-how-can-arch-linux-get-by-without-releases/"/>
        <id>https://daily.bec-systems.com/0125-how-can-arch-linux-get-by-without-releases/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0125-how-can-arch-linux-get-by-without-releases/">&lt;p&gt;Arch Linux does not have discrete releases -- it is a rolling distribution where
individual packages are continuously updated. Most people still raise an eyebrow
at the mention of Arch Linux -- how can that possibly work and be stable?&lt;&#x2F;p&gt;
&lt;p&gt;Having run Arch for many years, I can affirm
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;022&#x2F;&quot;&gt;it works very well&lt;&#x2F;a&gt;. It is fast, efficient, and lets
me run the latest software of everything with minimal fuss.&lt;&#x2F;p&gt;
&lt;p&gt;Today, a Linux distribution release is an artificial notion. A distribution&#x27;s
main job is to deliver a collection of software to a computer. Each application
has its own release cadence. Imposing a distribution release cadence on top of
the package release cycle does not make sense.&lt;&#x2F;p&gt;
&lt;p&gt;But the distribution&#x27;s job is ensuring everything is stable and works together?
Really? Does a distribution really test every one of the 1000&#x27;s of packages
before every release?&lt;&#x2F;p&gt;
&lt;p&gt;If there is a serious problem in an application, it will be fixed soon in the
main development branch. Requiring these fixes to be back-ported to an old
release in a distribution is a lot of work. In some cases, it is nearly
impossible to backport a change if things have changed significantly in the
codebase.&lt;&#x2F;p&gt;
&lt;p&gt;A Linux distribution delivers the most value when each software package can be
deployed to its users as soon as it is ready. Arch does this and then gets out
of the way.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚖️ Truth is discovered, not invented</title>
        <published>2025-03-06T00:00:00+00:00</published>
        <updated>2025-03-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0124-truth-is-discovered-not-invented/"/>
        <id>https://daily.bec-systems.com/0124-truth-is-discovered-not-invented/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0124-truth-is-discovered-not-invented/">&lt;p&gt;I once advised a young man -- If you have some down time on a plane, in a hotel,
etc., you might consider writing an essay or two about some of the issues facing
you personally, or your organization. This is one of the best ways to think and
discover truths. I&#x27;m often surprised and amazed what comes out.&lt;&#x2F;p&gt;
&lt;p&gt;Meetings would be much more effective if writing were part of the preparation
(&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;telcoldtakes.substack.com&#x2F;p&#x2F;a-case-for-the-amazon-6-pager&quot;&gt;Amazon does this&lt;&#x2F;a&gt;).
But, alas, most think we can make progress by more discussion, meetings, emails,
etc.&lt;&#x2F;p&gt;
&lt;p&gt;Truth is discovered, not invented. Truth cannot be forced. It is only when we
approach the creative process with this humility that we can make progress.
Designs devoid of truth are unwieldy, unreliable, hard to maintain, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Modern, powerful tools like AI, CAD, computer languages, etc, may give us the
illusion that great inventions start with us, but truly great
designs&#x2F;algorithms&#x2F;processes are discovered, a simple reflection of truths that
have existed for eternity. In the process of simplifying our designs, we often
come closer to truth.&lt;&#x2F;p&gt;
&lt;p&gt;I wish I had understood the power of writing and the essence of truth earlier in
my career.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔗 Connected systems are different</title>
        <published>2025-03-05T00:00:00+00:00</published>
        <updated>2025-03-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0123-connected-systems-are-different/"/>
        <id>https://daily.bec-systems.com/0123-connected-systems-are-different/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0123-connected-systems-are-different/">&lt;p&gt;In distributed computer systems, change is the constant.&lt;&#x2F;p&gt;
&lt;p&gt;Because a system can be networked, its capabilities are endless. The ability to
connect to new and different systems means new systems (and value) can always be
created, and &lt;strong&gt;&lt;em&gt;things will change&lt;&#x2F;em&gt;&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;If you don&#x27;t, somebody else will.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛡️ How to get to secure and reliable</title>
        <published>2025-03-04T00:00:00+00:00</published>
        <updated>2025-03-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0122-how-to-get-to-secure-and-reliable/"/>
        <id>https://daily.bec-systems.com/0122-how-to-get-to-secure-and-reliable/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0122-how-to-get-to-secure-and-reliable/">&lt;p&gt;The best way to get to secure and reliable software is to fix the core issues.&lt;&#x2F;p&gt;
&lt;p&gt;If your programming language is not reasonably secure and reliable, adding more
external tools to check and track down problems is helpful, but is likely not
the most direct approach.&lt;&#x2F;p&gt;
&lt;p&gt;Likewise with architecture -- getting the core architecture right is important.
Adding external &quot;watchers&quot; and &quot;fixers&quot; to compensate for an architectural
problem only complicates things, and complexity is the #1 enemy to both security
and reliability.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏭 Semi-structured part numbers</title>
        <published>2025-02-28T00:00:00+00:00</published>
        <updated>2025-02-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0121-semi-structured-part-numbers/"/>
        <id>https://daily.bec-systems.com/0121-semi-structured-part-numbers/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0121-semi-structured-part-numbers/">&lt;p&gt;Some time back I recorded a video on Semi-structured part numbers.&lt;&#x2F;p&gt;
&lt;p&gt;https:&#x2F;&#x2F;youtu.be&#x2F;tlsl01uxUfE&lt;&#x2F;p&gt;
&lt;p&gt;Be more efficient.&lt;&#x2F;p&gt;
&lt;p&gt;Make less mistakes.&lt;&#x2F;p&gt;
&lt;p&gt;We tend to ignore simple things like part numbering systems.&lt;&#x2F;p&gt;
&lt;p&gt;But doing the simple things right is what frees us up to work on the hard
things.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👤 Who is our &quot;customer&quot;?</title>
        <published>2025-02-27T00:00:00+00:00</published>
        <updated>2025-02-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0120-who-is-our-customer/"/>
        <id>https://daily.bec-systems.com/0120-who-is-our-customer/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0120-who-is-our-customer/">&lt;p&gt;Your &quot;customer&quot; is someone who derives value and uses what you produce.
Customers are both internal and external to your organization.&lt;&#x2F;p&gt;
&lt;p&gt;While it is good to focus on the flow of primary business value to the
end-customer (that is what pays the bills), we can also think of everyone in the
organization as being our customer. How can we provide value to everyone?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚠️ Toward a Theory of Medical Fallibility</title>
        <published>2025-02-26T00:00:00+00:00</published>
        <updated>2025-02-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0119-toward-a-theory-of-medical-fallibility/"/>
        <id>https://daily.bec-systems.com/0119-toward-a-theory-of-medical-fallibility/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0119-toward-a-theory-of-medical-fallibility/">&lt;p&gt;I recently skimmed an essay from 1975 titled
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.jstor.org&#x2F;stable&#x2F;3560992&quot;&gt;Toward a Theory of Medical Fallibility&lt;&#x2F;a&gt;.
A few quotes from the article:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Therefore, where there is scientific activity, there is a partial ignorance
-- the ignorance that exists as a precondition for scientific progress. And
since ignorance is a precondition of progress, where there is the
possibility of progress there is the possibility of error. This ignorance of
what is not yet known is the permanent state of all science and a source of
error even when all the internal norms of science have been fully respected.&lt;&#x2F;li&gt;
&lt;li&gt;Error may indeed arise from the present state of scientific ignorance or
from willfulness or negligence. But it may also arise precisely from this
third factor which we have called necessary fallibility in respect to
particulars.&lt;&#x2F;li&gt;
&lt;li&gt;The encouragement of this inflated belief in the competence of the physician
is of course reinforced by the practice of not keeping systematic and
accessible records of medical error. Yet everyone knows that this is a false
confidence.&lt;&#x2F;li&gt;
&lt;li&gt;Indeed, the only profession of which we know which fully and publicly
documents predictive successes and failures is that of horse-racing
correspondents in Great Britain.&lt;&#x2F;li&gt;
&lt;li&gt;The first reaction of physicians to the invitation to dispense with the
masks of infallibility is likely to be a humane alarm at the insecurity
which a frank acceptance of medical fallibility might engender in the
patient. But we wonder whether the present situation, in which the
expectations of patients are so very often disappointed during medical
treatment, is not a worse source of insecurity.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;As computer&#x2F;software systems get more complex, are there parallels?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛤️ Two paths with experience</title>
        <published>2025-02-24T00:00:00+00:00</published>
        <updated>2025-02-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0118-two-paths-with-experience/"/>
        <id>https://daily.bec-systems.com/0118-two-paths-with-experience/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0118-two-paths-with-experience/">&lt;p&gt;As we gain experience, we can take two paths:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;learn from mistakes and all the things that went wrong, and apply this
knowledge to do better in the future.&lt;&#x2F;li&gt;
&lt;li&gt;assume because we&#x27;ve done something before the next time we do something
similar it will &quot;just work.&quot;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;If I&#x27;ve learned anything working in technology, things rarely &quot;just work.&quot;
Nothing is easy.&lt;&#x2F;p&gt;
&lt;p&gt;Some can accomplish #1 because they have a great memory. For the rest of us, we
need some process to capture what we have learned and a mechanism for applying
this in the future.&lt;&#x2F;p&gt;
&lt;p&gt;A checklist is a great place to start.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛤️ Two paths</title>
        <published>2025-02-21T00:00:00+00:00</published>
        <updated>2025-02-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0117-two-paths/"/>
        <id>https://daily.bec-systems.com/0117-two-paths/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0117-two-paths/">&lt;p&gt;There are two paths we can follow as a team or an organization:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;what we do makes it &lt;strong&gt;easier&lt;&#x2F;strong&gt; for everyone else to do their job.&lt;&#x2F;li&gt;
&lt;li&gt;what we do makes it &lt;strong&gt;harder&lt;&#x2F;strong&gt; for everyone else to do their job.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;#1 is the formula for &lt;strong&gt;scaling&lt;&#x2F;strong&gt;. #2 is the formula for stagnation and
&lt;strong&gt;technical debt&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;And which path a team or organization takes depends on &lt;strong&gt;culture&lt;&#x2F;strong&gt;. What are the
&lt;strong&gt;expectations&lt;&#x2F;strong&gt;? Are they &lt;strong&gt;documented&lt;&#x2F;strong&gt;? And most importantly, what
&lt;strong&gt;example&lt;&#x2F;strong&gt; do we set?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👥 Your team as the customer</title>
        <published>2025-02-20T00:00:00+00:00</published>
        <updated>2025-02-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0116-your-team-as-the-customer/"/>
        <id>https://daily.bec-systems.com/0116-your-team-as-the-customer/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0116-your-team-as-the-customer/">&lt;p&gt;Previously we
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0113-who-is-the-customer-in-organizational-hierarchy&#x2F;&quot;&gt;defined our &quot;customer&quot;&lt;&#x2F;a&gt;
as someone who derives value from what we do. While it is useful to think of how
the primary business value is flowing, hopefully we are providing value to our
team as well as people outside our team. Some ideas:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Are Git commit messages helpful and easy to understand?&lt;&#x2F;li&gt;
&lt;li&gt;Are commits and PRs small enough to comprehend?&lt;&#x2F;li&gt;
&lt;li&gt;Is our work transparent?&lt;&#x2F;li&gt;
&lt;li&gt;Do we deliver what we said we would?&lt;&#x2F;li&gt;
&lt;li&gt;Is the code we write easy to follow and maintain?&lt;&#x2F;li&gt;
&lt;li&gt;Do we document what we are doing and why?&lt;&#x2F;li&gt;
&lt;li&gt;Do we share tests scripts and other automation that helps people use what we
created?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 Why are releases important?</title>
        <published>2025-02-19T00:00:00+00:00</published>
        <updated>2025-02-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0115-why-are-releases-important/"/>
        <id>https://daily.bec-systems.com/0115-why-are-releases-important/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0115-why-are-releases-important/">&lt;p&gt;Since many products&#x2F;systems run software these days, they can be improved after
the initial release. Most software projects have &quot;releases&quot; when a new version
of the software is deployed or made available.&lt;&#x2F;p&gt;
&lt;p&gt;Why are releases so important? Some reasons:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Communicates to customers an update is available and what changed.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Provides a cadence for doing work.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Encourages development teams to &quot;ship&quot;. Shipping is motivating.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Delivers more value to the customer.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Helps us isolate problems if we know what is running and what changed.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📄 Who is a changelog for?</title>
        <published>2025-02-18T00:00:00+00:00</published>
        <updated>2025-02-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0114-who-is-a-changelog-for/"/>
        <id>https://daily.bec-systems.com/0114-who-is-a-changelog-for/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0114-who-is-a-changelog-for/">&lt;p&gt;Most projects have releases, and with each release, we describe what is
new&#x2F;changed&#x2F;fixed in a changelog file.
&lt;a href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0114-who-is-a-changelog-for&#x2F;%5Bhttps:&#x2F;&#x2F;keepachangelog.com%5D(https:&#x2F;&#x2F;keepachangelog.com&#x2F;)&quot;&gt;keep a changelog&lt;&#x2F;a&gt;
has a lot of good ideas.&lt;&#x2F;p&gt;
&lt;p&gt;Who is a changelog for? It is for our customers -- those who use whatever we
produce. The changelog communicates to our customers what is new and valuable
&lt;strong&gt;&lt;em&gt;for them&lt;&#x2F;em&gt;&lt;&#x2F;strong&gt; in each release.&lt;&#x2F;p&gt;
&lt;p&gt;Once we realize who the changelog is for, then this can influence how we write
changelog entries. A few ideas:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;keep it is as succinct as possible (don&#x27;t waste people&#x27;s time)&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;don&#x27;t use technical jargon that our customers don&#x27;t understand&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;be humble -- if there are bugs that got fixed, acknowledge they were bugs.
Don&#x27;t try to embellish or gloss over bug fixes by calling them features, etc.
People can see right through this.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;explain changes from the lens of benefits to the customer&#x2F;user, not from the
developer&#x27;s perspective&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👥 Who is the customer in organizational hierarchy?</title>
        <published>2025-02-17T00:00:00+00:00</published>
        <updated>2025-02-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0113-who-is-the-customer-in-organizational-hierarchy/"/>
        <id>https://daily.bec-systems.com/0113-who-is-the-customer-in-organizational-hierarchy/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0113-who-is-the-customer-in-organizational-hierarchy/">&lt;p&gt;In a business organization hierarchy, where E (engineer) reports to M (manager),
who is the customer in the E - M relationship?&lt;&#x2F;p&gt;
&lt;p&gt;Our first inclination may be to think M is the customer -- M is the boss, E
should make M happy. But, lets think about this a bit more. Who does E create
business value for? Is E writing code that benefits M, or producing a printed
circuit board that M will directly use?&lt;&#x2F;p&gt;
&lt;p&gt;Hmm, does not seem so. E&#x27;s customer is probably purchasing and manufacturing (in
the case of a PCB). M does not directly produce tangible outputs. M&#x27;s job is to
help E get the job done. Therefore, it would follow that E is M&#x27;s customer.
Certainly, M has authority and needs to make decisions at times. But, in the
end, the job must get done. Business value must be produced. In product
development, authority or decision-making in themselves do not produce business
value. The more people we have under us, the more people we serve.&lt;&#x2F;p&gt;
&lt;p&gt;Do we exist to serve, or be served? The higher up we go, the more important it
is to understand &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;035&#x2F;&quot;&gt;servant-leadership&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👤 Confusion about when we are the customer</title>
        <published>2025-02-06T00:00:00+00:00</published>
        <updated>2025-02-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0112-confusion-about-when-we-are-the-customer/"/>
        <id>https://daily.bec-systems.com/0112-confusion-about-when-we-are-the-customer/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0112-confusion-about-when-we-are-the-customer/">&lt;p&gt;In our modern, entitled, self-serving consumer culture, we tend to be confused
about when we are the customer or not. If we work for pay, our job is to do
something to benefit someone else -- our customer. We are not the customer in
this scenario, someone else is. We are supposed to make someone else&#x27;s life
easier or better. In our job role, are we serving our customer, or do we expect
to be served? This mindset probably does more than anything to determine if we
are useful.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🕊️ Simple -- from whose perspective?</title>
        <published>2025-02-05T00:00:00+00:00</published>
        <updated>2025-02-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0111-simple-from-whose-perspective/"/>
        <id>https://daily.bec-systems.com/0111-simple-from-whose-perspective/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0111-simple-from-whose-perspective/">&lt;p&gt;&quot;Just keep it simple&quot; -- we sometimes hear this. But from whose perspective?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Legal&#x2F;IP&lt;&#x2F;li&gt;
&lt;li&gt;Management&lt;&#x2F;li&gt;
&lt;li&gt;IT&lt;&#x2F;li&gt;
&lt;li&gt;Financial&lt;&#x2F;li&gt;
&lt;li&gt;R&amp;amp;D&lt;&#x2F;li&gt;
&lt;li&gt;Security&lt;&#x2F;li&gt;
&lt;li&gt;Sustaining engineering&lt;&#x2F;li&gt;
&lt;li&gt;Purchasing&lt;&#x2F;li&gt;
&lt;li&gt;Manufacturing&lt;&#x2F;li&gt;
&lt;li&gt;Quality&lt;&#x2F;li&gt;
&lt;li&gt;Sales&#x2F;Marketing&lt;&#x2F;li&gt;
&lt;li&gt;Customer support&lt;&#x2F;li&gt;
&lt;li&gt;End User&#x2F;Customer&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;How do we prioritize simplicity for the above list?&lt;&#x2F;p&gt;
&lt;p&gt;Hint, the one at the bottom is probably the most important. Do you constantly
keep your customers in mind as you make decisions? &quot;Customer&quot; may include
multiple from the above list.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🕊️ Simple to maintain vs simple to implement</title>
        <published>2025-02-04T00:00:00+00:00</published>
        <updated>2025-02-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0110-simple-to-maintain-vs-simple-to-implement/"/>
        <id>https://daily.bec-systems.com/0110-simple-to-maintain-vs-simple-to-implement/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0110-simple-to-maintain-vs-simple-to-implement/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0108-simple-to-use-vs-simple-to-implement&#x2F;&quot;&gt;Recently&lt;&#x2F;a&gt;
we talked about the tension between simple to use vs. simple to implement.&lt;&#x2F;p&gt;
&lt;p&gt;Maintenance is similar. If you want something that is easy to maintain, you need
to put in the work upfront.&lt;&#x2F;p&gt;
&lt;p&gt;The Elm programming is a classic example of this. The initial coding takes
longer than generating some Javascript from AI prompt. You need to figure out
how to best represent the problem with Types. But after you get it right, it is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;do-you-want-easier-to-maintain-frontend-code&#x2F;1258&quot;&gt;so easy to maintain&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤝 Integrate early</title>
        <published>2025-02-03T00:00:00+00:00</published>
        <updated>2025-02-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0109-integrate-early/"/>
        <id>https://daily.bec-systems.com/0109-integrate-early/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0109-integrate-early/">&lt;p&gt;Integration is where we bring together separate parts of a system.&lt;&#x2F;p&gt;
&lt;p&gt;When things come together, problems appear: performance problems, stability
problems, electromagnetic noise issues, mechanical interference,
incompatibilities, manufacturing issues, usability issues, aesthetic issues,
etc.&lt;&#x2F;p&gt;
&lt;p&gt;It is much better to discover these problems early, and the only way to do this
is to integrate everything early in the project. And the only way this happens
is if it is prioritized by management and supported by process.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.bradfordembedded.com&#x2F;2012&#x2F;03&#x2F;iterate-hardware-like-software&quot;&gt;Iterate Hardware Like Software&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🕊️ Simple to use vs simple to implement</title>
        <published>2025-01-30T00:00:00+00:00</published>
        <updated>2025-01-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0108-simple-to-use-vs-simple-to-implement/"/>
        <id>https://daily.bec-systems.com/0108-simple-to-use-vs-simple-to-implement/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0108-simple-to-use-vs-simple-to-implement/">&lt;p&gt;To make something simple to use, often it is not simple to implement. For
example, in the SimpleIoT UI, the following line of code is all that is required
to add a text input field to a node. No handlers need to be attached, etc.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;textInput Point.typeDescription &quot;Description&quot; &quot;&quot;&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;However, the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;simpleiot&#x2F;simpleiot&#x2F;blob&#x2F;master&#x2F;frontend&#x2F;src&#x2F;UI&#x2F;NodeInputs.elm&quot;&gt;code that implements the textInput&lt;&#x2F;a&gt;
function is a little more involved.&lt;&#x2F;p&gt;
&lt;p&gt;Generally, the better you want the user experience to be (even if your users are
developers using your API or library), the more work you&#x27;ll need to put into
things behind the scenes. There is a fundamental tension between &quot;Simple to use&quot;
vs. &quot;Simple to implement&quot; -- you can have one or the other -- usually not both.
We all use many &quot;components&quot; in product development, but an excessive
off-the-shelf mental, especially at the top hardware and software levels of your
product, won&#x27;t get you very far.&lt;&#x2F;p&gt;
&lt;p&gt;Simple != Easy&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤏 Handling the small details</title>
        <published>2025-01-29T00:00:00+00:00</published>
        <updated>2025-01-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0107-handling-the-small-details/"/>
        <id>https://daily.bec-systems.com/0107-handling-the-small-details/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0107-handling-the-small-details/">&lt;p&gt;We&#x27;ve &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0086-keeping-commitments&#x2F;&quot;&gt;discussed&lt;&#x2F;a&gt; the
necessity to fulfill your small commitments as a stepping stone for fulfilling
larger commitments. We can expand this thinking -- handling the small details
well enables you to focus on bigger things.&lt;&#x2F;p&gt;
&lt;p&gt;In product development, we have many details to be concerned about:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;consistent code formatting&lt;&#x2F;li&gt;
&lt;li&gt;testing new code&lt;&#x2F;li&gt;
&lt;li&gt;testing the system&lt;&#x2F;li&gt;
&lt;li&gt;ensuring there are no errors or DRC violations on a PCB layout&lt;&#x2F;li&gt;
&lt;li&gt;generating a documentation package (including BOM) for each PCB release&lt;&#x2F;li&gt;
&lt;li&gt;generating documentation for each project release&lt;&#x2F;li&gt;
&lt;li&gt;notifying relevant people when things change&lt;&#x2F;li&gt;
&lt;li&gt;reviewing code changes&lt;&#x2F;li&gt;
&lt;li&gt;organizing parts in the lab and in production&lt;&#x2F;li&gt;
&lt;li&gt;deploying software updates&lt;&#x2F;li&gt;
&lt;li&gt;publishing various communications&lt;&#x2F;li&gt;
&lt;li&gt;ensuring everyone on the team has access to needed information&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We can do all of the above manually, and it is not a big deal to do once.
However, these details soon start to pile up until pretty soon that can be all a
person does. Fortunately, there is a better way -- all of the above can be
handled to some degree with intelligent workflow, automation, and tooling.&lt;&#x2F;p&gt;
&lt;p&gt;We have so many good options for automation available today -- scripting
languages, APIs, CI&#x2F;CD systems, flexible DRC engines in CAD tools, Git based
workflows, commercial tools and services, etc. Implementing and using these
tools is not always easy and requires an investment in time and learning.
However, this is much easier than manually managing tons of details forever and
frees you to focus on more important things.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛠️ Selecting tools</title>
        <published>2025-01-28T00:00:00+00:00</published>
        <updated>2025-01-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0106-selecting-tools/"/>
        <id>https://daily.bec-systems.com/0106-selecting-tools/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0106-selecting-tools/">&lt;p&gt;There are many considerations when selecting a tool:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;will it do the job?&lt;&#x2F;li&gt;
&lt;li&gt;what does it cost?&lt;&#x2F;li&gt;
&lt;li&gt;can I get support?&lt;&#x2F;li&gt;
&lt;li&gt;is there a community around it?&lt;&#x2F;li&gt;
&lt;li&gt;will it be available and maintained long-term?&lt;&#x2F;li&gt;
&lt;li&gt;what does the future look like for new features?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;is it accessible&#x2F;available to others?&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The last point is often overlooked -- &quot;That is not my problem.&quot; However, if you
are building a platform, this should be a primary consideration as tool
accessibility is important for collaboration and maintenance. This is the
difference between a sustainable business and a few talented individuals.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛠️ Two classes of tools</title>
        <published>2025-01-27T00:00:00+00:00</published>
        <updated>2025-01-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0105-two-classes-of-tools/"/>
        <id>https://daily.bec-systems.com/0105-two-classes-of-tools/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0105-two-classes-of-tools/">&lt;p&gt;There are two classes of tools: &lt;strong&gt;Personal&lt;&#x2F;strong&gt; tools and &lt;strong&gt;Common&lt;&#x2F;strong&gt; tools.&lt;&#x2F;p&gt;
&lt;p&gt;A personal tool might be your editor -- each developer has his own preferences
and what editor one person uses does not affect another.&lt;&#x2F;p&gt;
&lt;p&gt;However, it is important to have a common tool for formatting code. So you
decide on a formatting tool and everyone configures their editor to use that.&lt;&#x2F;p&gt;
&lt;p&gt;Some more examples:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Personal&lt;&#x2F;th&gt;&lt;th&gt;Common&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Computer OS&lt;&#x2F;td&gt;&lt;td&gt;File&#x2F;doc formats&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Phone&lt;&#x2F;td&gt;&lt;td&gt;Git PR&#x2F;Issue system&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Notes system&lt;&#x2F;td&gt;&lt;td&gt;Build systems&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Email client&lt;&#x2F;td&gt;&lt;td&gt;CI&#x2F;CD&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Browser&lt;&#x2F;td&gt;&lt;td&gt;CAD Tools&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Git client&#x2F;setup&lt;&#x2F;td&gt;&lt;td&gt;Compilers&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;Sometimes sticking with the common stuff is slightly less convenient than doing
it &quot;my way.&quot; However, you need to decide if you want to be part of a sustainable
business or just a few talented individuals.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📝 Documentation is part of the process, not an afterthought</title>
        <published>2025-01-24T00:00:00+00:00</published>
        <updated>2025-01-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0104-documentation-is-part-of-the-process-not-an-afterthought/"/>
        <id>https://daily.bec-systems.com/0104-documentation-is-part-of-the-process-not-an-afterthought/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0104-documentation-is-part-of-the-process-not-an-afterthought/">&lt;p&gt;One of the best productivity hacks ever is to change your thinking about
documentation. Most documentation is done after the fact, which is a rather
distasteful task at this phase.&lt;&#x2F;p&gt;
&lt;p&gt;If we learn to use documentation as part of our thinking&#x2F;design&#x2F;implementation
process, it can be enjoyable, and help us do a better job in the first place. A
few ideas:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Write code comments before we write the code, describe what we are going to
do, etc.&lt;&#x2F;li&gt;
&lt;li&gt;In a schematic, document constraints and design criteria as a note in the
schematic before drawing a new section of the schematic. As you go, think in
your notes.&lt;&#x2F;li&gt;
&lt;li&gt;Write the user documentation before implementing a feature -- this may help us
think more from the user perspective upfront.&lt;&#x2F;li&gt;
&lt;li&gt;If we are stuck on a problem, write documentation about it and check it into
Git. This allows us to still
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0098-thinking-designing-developing-engineering&#x2F;&quot;&gt;ship something&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;As we are doing something, create careful notes about all the resources we
need to do the job, summarize important parts with screenshots, etc. It will
be much easier next time.&lt;&#x2F;li&gt;
&lt;li&gt;Create a checklist before you do something.&lt;&#x2F;li&gt;
&lt;li&gt;When someone asks you about something, instead of writing an answer in an
email, create a document and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0096-effective-email-is-either-a-pointer-or-notification&#x2F;&quot;&gt;point them do it&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;A small shift in our habits can have a big impact!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✨ Demos vs. Products</title>
        <published>2025-01-23T00:00:00+00:00</published>
        <updated>2025-01-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0103-demos-vs-products/"/>
        <id>https://daily.bec-systems.com/0103-demos-vs-products/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0103-demos-vs-products/">&lt;p&gt;I&#x27;m a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;020&#x2F;&quot;&gt;huge fan&lt;&#x2F;a&gt; of demos --
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.himvis.com&#x2F;0088-power-of-demo&#x2F;&quot;&gt;so is Khem&lt;&#x2F;a&gt;. They are a very
important part of product development. They are a way to ship early and get
critical feedback. Demos during the course of real product development are
essential.&lt;&#x2F;p&gt;
&lt;p&gt;There are some challenges or risks with demos. One is that when managers see a
demo, they sometimes assume the product is nearly done when this is rarely the
case.&lt;&#x2F;p&gt;
&lt;p&gt;Other demos are for the purpose of evaluating some technology with little
concern as to how it is implemented. The world has exploded with &quot;maker&quot; stuff
(Arduinos, Raspberry PIs, etc). These are very useful for one-off lab
experiments, but experience has taught me that it is generally a bad idea to
ship products (at least industrial products) based on &quot;maker&quot; technology.&lt;&#x2F;p&gt;
&lt;p&gt;Products have considerations like cost, manufacturability, maintainability,
reliability, and availability over a lifecycle that can be 5, 10, or more years
for industrial products. We can ignore these concerns for the demo, but they
can&#x27;t be ignored for the product.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧩 The three legs of YOUR Platform</title>
        <published>2025-01-22T00:00:00+00:00</published>
        <updated>2025-01-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0102-the-three-legs-of-your-platform/"/>
        <id>https://daily.bec-systems.com/0102-the-three-legs-of-your-platform/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0102-the-three-legs-of-your-platform/">&lt;p&gt;&lt;strong&gt;Automation&lt;&#x2F;strong&gt; -- start with a checklist.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Collaboration&lt;&#x2F;strong&gt; -- #1 rule is don&#x27;t view email as a permanent place to store
information.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Process&lt;&#x2F;strong&gt; -- the habits of your organization.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔍 The importance of small Git commits&#x2F;pull-requests</title>
        <published>2025-01-21T00:00:00+00:00</published>
        <updated>2025-01-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0101-the-importance-of-small-git-commits-pull-requests/"/>
        <id>https://daily.bec-systems.com/0101-the-importance-of-small-git-commits-pull-requests/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0101-the-importance-of-small-git-commits-pull-requests/">&lt;p&gt;Why are small Git commits&#x2F;pull-requests important?&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;small changes are easier to review. Large PRs are painful to review, thus
they tend to be rubber-stamped and not reviewed, or rejected in OSS projects.&lt;&#x2F;li&gt;
&lt;li&gt;you get to
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0099-the-importance-of-git-commit-push-often&#x2F;&quot;&gt;ship more often&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;other people are motivated by seeing work get done (positive peer pressure).&lt;&#x2F;li&gt;
&lt;li&gt;if we are heading down the wrong path, this can be corrected earlier before
wasting a lot of time.&lt;&#x2F;li&gt;
&lt;li&gt;our work is more transparent, and transparency is a powerful tool.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Even if we are working on a personal project that no one else sees, small
commits helps us organize our thoughts, reflect on what we&#x27;ve done, and receive
the motivation boost that comes from incrementally shipping, even if only to
ourself.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎆 100 daily emails</title>
        <published>2025-01-20T00:00:00+00:00</published>
        <updated>2025-01-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0100-100-daily-emails/"/>
        <id>https://daily.bec-systems.com/0100-100-daily-emails/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0100-100-daily-emails/">&lt;p&gt;Today marks the 100th &quot;daily&quot; email I&#x27;ve sent out. (I don&#x27;t actually send on
weekends, or days when I&#x27;m out of the office). Some observations:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Daily is easier than weekly -- I was skeptical when others said this, but I
think it is true.&lt;&#x2F;li&gt;
&lt;li&gt;If I skip a few days, it can be hard to get going again. There is something
about the process of doing something daily that energizes the creative
process and keeps it going.&lt;&#x2F;li&gt;
&lt;li&gt;Ideas are everywhere -- when I write consistently, the mind starts to see
ideas everywhere. There are 32 article ideas in my backlog -- Ideas come in
much faster than they go out.&lt;&#x2F;li&gt;
&lt;li&gt;I spend 10-20 minutes a day writing these posts. Often writing one will spur
the idea for the next, and I&#x27;ll write that one too. I think it could be even
faster.&lt;&#x2F;li&gt;
&lt;li&gt;Tooling is important. I have scripts that automate creating a post and
publishing it. Kit is configured to pick up the post from my site&#x27;s RSS feed
and then mail it out. There is nothing slow or painful about the process that
pushes me away from doing it.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;If you have feedback, please let me know! I&#x27;d love to know what topics are
interesting to you or not.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔁 The importance of Git Commit&#x2F;Push often</title>
        <published>2025-01-15T00:00:00+00:00</published>
        <updated>2025-01-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0099-the-importance-of-git-commit-push-often/"/>
        <id>https://daily.bec-systems.com/0099-the-importance-of-git-commit-push-often/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0099-the-importance-of-git-commit-push-often/">&lt;p&gt;There are many forms of &quot;shipping&quot; your work as we
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0098-thinking-designing-developing-engineering&#x2F;&quot;&gt;recently discussed&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Shipping does not necessarily mean a product release, but rather releasing your
work external to you. It can be a Git push, running tests in CI, a prototype, a
document that others can read -- basically something of &lt;strong&gt;&lt;em&gt;lasting value&lt;&#x2F;em&gt;&lt;&#x2F;strong&gt; that
others can interact with. (Email does not count).&lt;&#x2F;p&gt;
&lt;p&gt;As a developer, the simplest way to ship your work is a Git push. It does not
have to be perfect. In most cases, it does not even have to be done. That is the
beauty of software, it is soft -- it can be improved&#x2F;finished later. A Git
commit does not even have to be code -- it can be documentation, specs, etc. A
Git commit&#x2F;push is the simplest and most effective way to demonstrate you are
providing value to the project or organization. Yet how many of us are consumed
with ephemeral activities that in the end provide no lasting value?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💭 Thinking, Designing, Developing, Engineering ...</title>
        <published>2025-01-13T00:00:00+00:00</published>
        <updated>2025-01-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0098-thinking-designing-developing-engineering/"/>
        <id>https://daily.bec-systems.com/0098-thinking-designing-developing-engineering/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0098-thinking-designing-developing-engineering/">&lt;p&gt;If we are thinking without writing, are we really thinking?&lt;&#x2F;p&gt;
&lt;p&gt;If we are designing without sketching&#x2F;drawing, are we really designing?&lt;&#x2F;p&gt;
&lt;p&gt;If we are developing software without iterations&#x2F;testing, are we really
developing?&lt;&#x2F;p&gt;
&lt;p&gt;If we are engineering without building prototypes, are we really engineering?&lt;&#x2F;p&gt;
&lt;p&gt;Something happens when our work is implemented in an external form that is
staring back at us. It speaks to us, exposes the flaws, and shows us where
improvements are possible. When our work is good, we can recognize it and find
motivation for the next phase.&lt;&#x2F;p&gt;
&lt;p&gt;Yes, it is possible to do some things without shipping, but when we ship our
work in the form of writing, drawing, prototyping, and iterating, a world opens
up that we could never see before. New connections are made.&lt;&#x2F;p&gt;
&lt;p&gt;Optimize your habits&#x2F;processes for shipping something -- your work will get
better.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔧 envsetup.sh -- a very useful automation technique</title>
        <published>2025-01-10T00:00:00+00:00</published>
        <updated>2025-01-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0097-envsetup-sh-a-very-useful-automation-technique/"/>
        <id>https://daily.bec-systems.com/0097-envsetup-sh-a-very-useful-automation-technique/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0097-envsetup-sh-a-very-useful-automation-technique/">&lt;p&gt;During a Android development stint, I learned about the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.perplexity.ai&#x2F;search&#x2F;what-is-this-history-of-envset-gMmZ_weeQueW5i8TIrKDHA&quot;&gt;&lt;code&gt;envsetup.sh&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;
concept. This is a script that contains numerous functions get populated in a
shell envrionment when the script is sourced. There two ways to source the file
-- you can type:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;source envsetup.sh&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Or use a &#x27;.&#x27; for a shortcut for source and type:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;. envsetup.sh&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Most of my projects and Git repos now contain a &lt;code&gt;envsetup.sh&lt;&#x2F;code&gt; file (examples:
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;simpleiot&#x2F;simpleiot&#x2F;blob&#x2F;master&#x2F;envsetup.sh&quot;&gt;Simple IoT&lt;&#x2F;a&gt;,
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;YoeDistro&#x2F;yoe-distro&#x2F;blob&#x2F;master&#x2F;envsetup.sh&quot;&gt;Yoe&lt;&#x2F;a&gt;,
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;tmpdir&#x2F;tmpdir.org&#x2F;-&#x2F;blob&#x2F;master&#x2F;envsetup.sh&quot;&gt;TMPDIR Podcast&lt;&#x2F;a&gt;).
Typically all of the functions in the file have a common prefix. This gives them
a namespace and allows you to see all the functions quickly in your terminal by
typing &lt;code&gt;&amp;lt;prefix&amp;gt;&amp;lt;tab&amp;gt;&amp;lt;tab&amp;gt;&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Why shell functions instead of something like Make, Earthly, Nix, Task, Mage,
Pants, Bazel, Python ...? Shell script is about the simplest abstraction on top
of typing commands. Thus, if mostly what you need to do is execute a sequence of
terminal commands, then shell functions are very efficient at doing this. A
shell function is often the best documentation for how to do something -- it is
almost like a powerful checklist. There are no dependencies -- every Linux and
MacOS system comes with a shell built-in. &lt;code&gt;envsetup.sh&lt;&#x2F;code&gt; functions can often be
used directly in CI&#x2F;CD and other build systems (like Yocto&#x2F;Bitbake tasks).&lt;&#x2F;p&gt;
&lt;p&gt;There are some common objections ...&lt;&#x2F;p&gt;
&lt;p&gt;Shell is not cross-platform to Windows. That is unfortunate, but I rarely use
Windows, and most developers I interact with use either Linux or MacOS systems.
However, this may change with Zephyr as MCU developers traditionally have used
Windows.&lt;&#x2F;p&gt;
&lt;p&gt;Why not use something more powerful like Make? With modern programming languages
and build systems like Go, Rust, and Yocto, the is no need for yet another build
system. The complex issues like dependencies are already handled. Thus, all you
need to do is remember how to kick it off.&lt;&#x2F;p&gt;
&lt;p&gt;Why not use Python -- everyone uses Python for everything -- it is the most
popular programming language ever! Python is great if you need to do something
more complex, but it is a more complex programming abstraction. And mostly what
you need to do is record a sequence of commands, any abstraction costs you more
than benefits.&lt;&#x2F;p&gt;
&lt;p&gt;Why not a shell script that you execute instead of sourcing a script that
populates functions? I&#x27;m not sure -- the sourcing just seems more ergonomic to
me and simpler. If you need to run a script to execute a command, then you need
to process command line arguments, etc. You are now programming, and programming
is what we are trying to avoid in &lt;code&gt;envsetup.sh.&lt;&#x2F;code&gt; Also, the functions are not as
discoverable as when they are populated in your environment.&lt;&#x2F;p&gt;
&lt;p&gt;Shell scripting is not without its tradeoffs -- when you do need to program
something in shell, it can be very painful and errors can be subtle and hard to
catch. However, AI tools are very effective at writing shell script, so this can
be a big help. Linters and formatters are also very good at catching problems
early and making your scripts more readable (more on this later).&lt;&#x2F;p&gt;
&lt;p&gt;In summary, think of your &lt;code&gt;envsetup.sh&lt;&#x2F;code&gt; file primarily as documentation. Create
one in every project and instead of documentation how to do something, create a
shell function. Your future self will thank you.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📧 Effective email is either a pointer or notification</title>
        <published>2025-01-08T00:00:00+00:00</published>
        <updated>2025-01-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0096-effective-email-is-either-a-pointer-or-notification/"/>
        <id>https://daily.bec-systems.com/0096-effective-email-is-either-a-pointer-or-notification/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0096-effective-email-is-either-a-pointer-or-notification/">&lt;p&gt;Email is the only decentralized communication platform that has widespread
usage. And this is more amazing considering it was invented in 1971. Email is an
amazing technology and has stood the test of time.&lt;&#x2F;p&gt;
&lt;p&gt;However, there are challenges with email:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;It can be difficult to find information in emails at a later date.&lt;&#x2F;li&gt;
&lt;li&gt;Visibility is limited to the recipes of the email.&lt;&#x2F;li&gt;
&lt;li&gt;Discussions often don&#x27;t happen in the context of the work being done.&lt;&#x2F;li&gt;
&lt;li&gt;Information is not organized very well.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;I follow a few rules regarding email:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Whenever possible, don&#x27;t send information in email, but rather point people to
information in a more permanent location (Git repo, Wiki, Discourse forum,
etc.). If the information does not exist, create it, and then send the email.&lt;&#x2F;li&gt;
&lt;li&gt;Keep project-related discussions in Git pull requests, issues, forums, etc.&lt;&#x2F;li&gt;
&lt;li&gt;For transient discussions, use chat tools like Discourse chat, Signal,
Discord, Slack, etc. This is more fun, and keeps email from clogging up with
chatty stuff. This keeps the information accessible to everyone involved. It
is also way more efficient as discussions and information are stored in the
context of the work.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;It is still very useful to receive email notifications when a piece of
information or a discussion is updated. This is quick to process and gives
everyone interested the opportunity to watch the stream of activity as it flows
by. Most systems give you options for tuning how many email notifications you
receive based on your time&#x2F;interest.&lt;&#x2F;p&gt;
&lt;p&gt;Accessibility and context -- the keys to effective communication and
information.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎓 The problem with experts</title>
        <published>2025-01-07T00:00:00+00:00</published>
        <updated>2025-01-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0095-the-problem-with-experts/"/>
        <id>https://daily.bec-systems.com/0095-the-problem-with-experts/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0095-the-problem-with-experts/">&lt;p&gt;At a recent family holiday gathering, we happened to be discussing how crazy
family life gets at times -- you are halfway through cooking something and
realize you don&#x27;t have the ingredients on hand, so you need to improvise. Some
of the men in the group described how they always get everything out first
before starting, which ironically
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0094-preparation-lessons-from-the-kitchen&#x2F;&quot;&gt;I also do&lt;&#x2F;a&gt;.
Some of the females commented this was unnecessary as they had done it thousands
of times, so it was easier to get stuff as needed. They have a pretty good sense
of where stuff is and what they have on hand -- 99.9% of the time it works
pretty well.&lt;&#x2F;p&gt;
&lt;p&gt;Perhaps this is a general difference between men and women -- women are
generally better at multitasking. But I think there is also another factor at
play -- with food preparation, the women in our families are experts, and the
men are amateurs. Experts are very good at what they do. They don&#x27;t need a
process to prop them up. However, in the cooking example it is more difficult to
scale these methods to their husbands or children.&lt;&#x2F;p&gt;
&lt;p&gt;The real value in expertise is in scaling it. Do we document what we do? Can we
make it easy for others to follow? Can we make it easy to find the things we
need? Can we create processes that reduce errors and blockers? In the kitchen,
these differences between the amateurs and experts are mostly amusing and not
all that critical, but in business and product development it is. Experts need
to be creating and contributing to platforms. This is the difference between a
sustainable business and a few talented individuals. Unfortunately, many experts
don&#x27;t personally feel they need a platform, so have little motivation to
contribute to one.&lt;&#x2F;p&gt;
&lt;p&gt;When you hire, expertise is important, but so is Platform Thinking.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🍳 Preparation - lessons from the kitchen</title>
        <published>2025-01-06T00:00:00+00:00</published>
        <updated>2025-01-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0094-preparation-lessons-from-the-kitchen/"/>
        <id>https://daily.bec-systems.com/0094-preparation-lessons-from-the-kitchen/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0094-preparation-lessons-from-the-kitchen/">&lt;p&gt;Most Sunday mornings, I make gluten-free waffles for breakfast (see recipe at
the end of this post). I like to get everything out (ingredients and utensils)
before I start.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;uploads&#x2F;default&#x2F;original&#x2F;2X&#x2F;0&#x2F;0a0dfc7f57c40b138df10008b17933f83b0b167a.jpeg&quot; alt=&quot;prep&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This seems to make the process go faster and smoother. There is an efficiency in
focusing on getting everything first, and then cooking.&lt;&#x2F;p&gt;
&lt;p&gt;So I was wondering if there is an analogy to product development. What are the
ingredients for product development?&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;clear definition of the goal and next steps&lt;&#x2F;li&gt;
&lt;li&gt;any relevant documentation&lt;&#x2F;li&gt;
&lt;li&gt;tools (editor, CAD tool, issue tracking systems, build systems, tests,
release processes, etc.)&lt;&#x2F;li&gt;
&lt;li&gt;collaboration with others on the team (issues, PRs, discussions, etc.)&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Is this scattered all over the place, or can you quickly assemble all of this
and hit the ground running?&lt;&#x2F;p&gt;
&lt;p&gt;It helps to
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;habit-note-taking-while-working-on-a-task&#x2F;601&quot;&gt;organize your work in a notes system&lt;&#x2F;a&gt;.
This has links to relevant information and notes so you immediately have all the
relevant context.&lt;&#x2F;p&gt;
&lt;p&gt;For some tasks like code review, tools can prepare the task for us.
Github&#x2F;Gitea&#x2F;Gitlab pull request (PR) workflows have the code, discussion, and
proposed changes all in one place.&lt;&#x2F;p&gt;
&lt;p&gt;With any task, having all the ingredients at hand makes for a nice result!
Preparation leads to focus.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;uploads&#x2F;default&#x2F;original&#x2F;2X&#x2F;f&#x2F;fc87021d485b91e47c14a6e5f2536e6135015bd9.jpeg&quot; alt=&quot;waffles&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Gluten-free waffle recipe:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;uploads&#x2F;default&#x2F;original&#x2F;2X&#x2F;1&#x2F;14d4be6673b848cfb619a83c41edcf477c46d121.png&quot; alt=&quot;waffle recipe&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>😊 Joy</title>
        <published>2025-01-03T00:00:00+00:00</published>
        <updated>2025-01-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0093-joy/"/>
        <id>https://daily.bec-systems.com/0093-joy/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0093-joy/">&lt;p&gt;Platforms help bring the joy back into engineering.&lt;&#x2F;p&gt;
&lt;p&gt;How? -- by assisting you with the tedious error-prone tasks, and freeing you to
focus on the valuable creative work.&lt;&#x2F;p&gt;
&lt;p&gt;Satisfaction comes from being useful and creating value. We need to get to the
place where we can do that work.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🪞 Platform reflection</title>
        <published>2025-01-02T00:00:00+00:00</published>
        <updated>2025-01-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0092-platform-reflection/"/>
        <id>https://daily.bec-systems.com/0092-platform-reflection/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0092-platform-reflection/">&lt;p&gt;How has YOUR Platform done this past year?&lt;&#x2F;p&gt;
&lt;p&gt;Have you burned down technical debt?&lt;&#x2F;p&gt;
&lt;p&gt;Have you automated repetitious or tedious tasks?&lt;&#x2F;p&gt;
&lt;p&gt;Is your test coverage increasing or decreasing?&lt;&#x2F;p&gt;
&lt;p&gt;Are you releasing more often?&lt;&#x2F;p&gt;
&lt;p&gt;Are deployments getting easier?&lt;&#x2F;p&gt;
&lt;p&gt;Are you deploying with more confidence?&lt;&#x2F;p&gt;
&lt;p&gt;Is your documentation getting better?&lt;&#x2F;p&gt;
&lt;p&gt;Is it easier for new people to get up to speed?&lt;&#x2F;p&gt;
&lt;p&gt;Do you have any new checklists?&lt;&#x2F;p&gt;
&lt;p&gt;Have any existing checklists been automated?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🙏 Humility</title>
        <published>2024-12-27T00:00:00+00:00</published>
        <updated>2024-12-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0091-humility/"/>
        <id>https://daily.bec-systems.com/0091-humility/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0091-humility/">&lt;p&gt;An essential mindset for platform thinking is humility -- the realization that
we as humans are finite, we make mistakes, we don&#x27;t always perform at the same
level, we get lazy and tend to take shortcuts.&lt;&#x2F;p&gt;
&lt;p&gt;YOUR Platform can compensate for much of this as it does the boring tedious
work, checks for mistakes, deploys reliably, provides structure, etc.&lt;&#x2F;p&gt;
&lt;p&gt;But we need to acknowledge this first, and that is the first step.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 The biggest benefit to frequent updates</title>
        <published>2024-12-23T00:00:00+00:00</published>
        <updated>2024-12-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0090-the-biggest-benefit-to-frequent-updates/"/>
        <id>https://daily.bec-systems.com/0090-the-biggest-benefit-to-frequent-updates/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0090-the-biggest-benefit-to-frequent-updates/">&lt;p&gt;Perhaps the biggest benefit of frequent updates is that the changes are small,
making them easier for humans to absorb and adapt to.&lt;&#x2F;p&gt;
&lt;p&gt;The conventional wisdom in our industry is that frequent updates mean things are
always breaking. This has not been my experience; rather, things are
continuously improving in small ways, and the changes are much easier to adapt
to.&lt;&#x2F;p&gt;
&lt;p&gt;Arch Linux is a classic example -- always improving, rarely breaks, and when it
does, you can usually find a fix in a few minutes. Zephyr is another example --
always improving, and rarely problems merging in the new changes.&lt;&#x2F;p&gt;
&lt;p&gt;When things break or change unexpectedly, you are only dealing with one issue at
a time, not dozens or even hundreds.&lt;&#x2F;p&gt;
&lt;p&gt;This is more organic and enjoyable -- the way natural systems work. Small
continuous changes (either good or bad) are better than large step changes and
much easier on the system.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📅 Dates in filenames</title>
        <published>2024-12-20T00:00:00+00:00</published>
        <updated>2024-12-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0089-dates-in-filenames/"/>
        <id>https://daily.bec-systems.com/0089-dates-in-filenames/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0089-dates-in-filenames/">&lt;p&gt;One of the most common labels we use today is dates. We use them in file names,
reports, database fields, etc. There are many ways to enter a date:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;2024-12-20&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;20 Dec 24&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;12&#x2F;20&#x2F;2024&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;20&#x2F;12&#x2F;2024&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;Dec 20, 2024&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;etc.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.rfc-editor.org&#x2F;rfc&#x2F;rfc3339&quot;&gt;RFC 3339&lt;&#x2F;a&gt; (&lt;code&gt;YYYY-MM-DDTHH:MM:SS+HH:MM&lt;&#x2F;code&gt;)
is increasingly becoming an international standard. Many programming languages
(Go, Rust, Javascript, Elm) support RFC 3339.&lt;&#x2F;p&gt;
&lt;p&gt;What about when naming files? It is often helpful to put a date in directory or
file names so you can easily sort to find the latest or construct a timeline of
events. In this case it makes sense to format the date
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0052-how-do-you-consistently-name-things&#x2F;&quot;&gt;general to specific&lt;&#x2F;a&gt;
YYYY-MM-DD and put the date at the beginning of the filename:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;2024-10-20_project-requirements.docx&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;2023-11-01_architecture-rev1.pdf&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;2024-11-11_architecture-rev2.pdf&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;2024-12-15_release-v1&#x2F;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;With a little thought, even simple things like file and directory names can
become useful metadata that is easy to sort and query. Consistency and standards
-- simple things you can do to make things better.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Lifecycle management in dynamic systems</title>
        <published>2024-12-18T00:00:00+00:00</published>
        <updated>2024-12-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0088-lifecycle-management-in-dynamic-systems/"/>
        <id>https://daily.bec-systems.com/0088-lifecycle-management-in-dynamic-systems/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0088-lifecycle-management-in-dynamic-systems/">&lt;p&gt;One of the hard parts of dynamic systems is the lifecycle management of various
bits of running code.&lt;&#x2F;p&gt;
&lt;p&gt;It is easy to create stuff, but are you cleaning up properly when things
disappear or change?&lt;&#x2F;p&gt;
&lt;p&gt;We can order these in difficulty:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Create something: (easy)&lt;&#x2F;li&gt;
&lt;li&gt;Delete something: (hard)&lt;&#x2F;li&gt;
&lt;li&gt;Change something already running: (very hard)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;On the surface, this looks easy -- what is the big deal, right?&lt;&#x2F;p&gt;
&lt;p&gt;But we soon realize differently. Have you ever heard of memory&#x2F;resource leaks
and race conditions? Even worse, code that we don&#x27;t know is still running.&lt;&#x2F;p&gt;
&lt;p&gt;Implementations usually start simple -- no problem.&lt;&#x2F;p&gt;
&lt;p&gt;But the scope grows, the system becomes more dynamic, and we start to scale.
Scaling requires concurrency. Concurrency is hard, but when the system changes
while running, concurrency gets really hard.&lt;&#x2F;p&gt;
&lt;p&gt;This is the nature of IoT systems -- because they reflect the real world, and
the real world is always changing.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧪 Abstractions and Platforms</title>
        <published>2024-12-17T00:00:00+00:00</published>
        <updated>2024-12-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0087-abstractions-and-platforms/"/>
        <id>https://daily.bec-systems.com/0087-abstractions-and-platforms/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0087-abstractions-and-platforms/">&lt;p&gt;I&#x27;ve come to appreciate the Go communities advice on abstractions.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Avoid creating abstractions prematurely. Every abstraction has a cost, and
often duplicated code is simpler and easier to maintain than a premature
abstraction.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Don&#x27;t take DRY (Don&#x27;t Repeat Yourself) to an extreme. It is perfectly fine to
duplicate code several times and only create an abstraction once you see a clear
pattern and understand better the problem the abstraction is solving.&lt;&#x2F;p&gt;
&lt;p&gt;For instance, in Simple IoT, we implemented a number of subsystems (rules,
modbus, 1-wire, etc.) before we noticed a pattern -- all of these systems needed
lifecycle management, which is very tricky to get right. So it made sense to
create a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;simpleiot&#x2F;simpleiot@v0.18.1&#x2F;client#Client&quot;&gt;client abstraction&lt;&#x2F;a&gt;
that handled lifecycle in one place. But it was not clear what we really needed
until we had implemented several subsystems.&lt;&#x2F;p&gt;
&lt;p&gt;Follow the YAGNI (You Ain&#x27;t Gonna Need It) principle -- only create abstractions
when you need them, not for hypothetical future use cases.&lt;&#x2F;p&gt;
&lt;p&gt;The same applies to platforms.&lt;&#x2F;p&gt;
&lt;p&gt;Other than avoiding architectural pitfalls and selecting the wrong technology,
focus on building out YOUR Platform to solve your current needs, not your future
needs. This is one of the best ways to know if your architecture and technology
are right.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms for the sake of platforms are detrimental and counter-productive --
kind of like the IT department that loses its focus that they are there to serve
the business needs and becomes a barrier to getting things done. They must serve
the business goals, not themselves.&lt;&#x2F;p&gt;
&lt;p&gt;A platform in itself provides no value if you are not shipping something of
value.&lt;&#x2F;p&gt;
&lt;p&gt;The same can be said of any supporting role or metric -- finance, performance,
etc.&lt;&#x2F;p&gt;
&lt;p&gt;If you are not shipping (internal prototypes and test versions count as
shipping), nothing else matters.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤝 Keeping commitments</title>
        <published>2024-12-16T00:00:00+00:00</published>
        <updated>2024-12-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0086-keeping-commitments/"/>
        <id>https://daily.bec-systems.com/0086-keeping-commitments/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0086-keeping-commitments/">&lt;p&gt;When we commit to something, do we follow through? How do we get better at this
when we always have more to do than time to do it?&lt;&#x2F;p&gt;
&lt;p&gt;The thought came recently that it probably starts with keeping commitments to
ourselves, which is the essence of self-discipline. If we can&#x27;t keep promises to
ourselves, likely we won&#x27;t keep them to others either.&lt;&#x2F;p&gt;
&lt;p&gt;If we plan to get up at 6 AM, do we?&lt;&#x2F;p&gt;
&lt;p&gt;If we plan to walk every day, do we?&lt;&#x2F;p&gt;
&lt;p&gt;If we plan to work on something today, do we block out the time and make it
happen?&lt;&#x2F;p&gt;
&lt;p&gt;Seemingly simple things, but important and sometimes hard in this busy life.&lt;&#x2F;p&gt;
&lt;p&gt;If we can&#x27;t do the small things, we&#x27;ll likely not succeed in the bigger things.&lt;&#x2F;p&gt;
&lt;p&gt;This is foundational in Platform Thinking -- at the personal, group, or
organization level. If you do the small things right, this will enable you to do
the big things.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📝 Personal vs. collaborative documentation</title>
        <published>2024-12-13T00:00:00+00:00</published>
        <updated>2024-12-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0085-personal-vs-collaborative-documentation/"/>
        <id>https://daily.bec-systems.com/0085-personal-vs-collaborative-documentation/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0085-personal-vs-collaborative-documentation/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0084-what-is-your-most-important-tool&#x2F;&quot;&gt;Yesterday&lt;&#x2F;a&gt;,
we discussed the importance of a personal note-taking tool. We can also extend
this concept to a team or company using Wikis, Markdown in Git, shared Google
Docs, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Collaborative documentation is very valuable -- IF you can get group
participation. Over the years at various companies, I&#x27;ve set up Wikis as
collaborative documentation efforts. Most of them resulted in only me
contributing. Group initiatives like this need to come from the top, otherwise
there is very little incentive for people to contribute. As a result, I&#x27;ve
pretty much given up on Wikis for small teams&#x2F;companies -- it is nearly
impossible to get momentum and maintain the information. This is sad because so
much knowledge is lost and effort wasted as the same things are rehashed,
relearned, and re-communicated.&lt;&#x2F;p&gt;
&lt;p&gt;As a result, I now focus primarily on:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;My own personal notes system&lt;&#x2F;li&gt;
&lt;li&gt;Markdown in project Git repos&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If I&#x27;m going to be the only one creating and reading notes, it may as well be in
my own personal notes system which is most convenient for me.&lt;&#x2F;p&gt;
&lt;p&gt;For project documentation, this is best maintained in the Git repo as close as
possible to the source code or design files. There it has a better chance of
documentation being maintained if it is worked into the PR workflow and review
process.&lt;&#x2F;p&gt;
&lt;p&gt;In the course of product development, documentation is the hardest deliverable
to produce because its effects are hard to measure. Initially, the product still
functions without documentation. Documentation costs short-term but produces
compounding gains long-term. It is an investment in the future. If your team or
organization is not interested in making this investment, you can always make it
personally.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔧 What is your most important tool?</title>
        <published>2024-12-12T00:00:00+00:00</published>
        <updated>2024-12-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0084-what-is-your-most-important-tool/"/>
        <id>https://daily.bec-systems.com/0084-what-is-your-most-important-tool/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0084-what-is-your-most-important-tool/">&lt;p&gt;Your editor? Your CAD tool? Your 2GHz oscilloscope? Your phone? Your computer?&lt;&#x2F;p&gt;
&lt;p&gt;In the information age, we are flooded with information and opportunities.&lt;&#x2F;p&gt;
&lt;p&gt;Many of the problems we solve are ones we&#x27;ve never seen before, or at least not
very often.&lt;&#x2F;p&gt;
&lt;p&gt;Most of us have more to do than we can ever hope to get done in multiple
lifetimes.&lt;&#x2F;p&gt;
&lt;p&gt;We are exposed to way more knowledge than we can ever fit in our finite
memories. Therefore, a tool to efficiently capture, organize, and find your
personal knowledge may be your most important tool.&lt;&#x2F;p&gt;
&lt;p&gt;If we figure out something, we can make a note so we don&#x27;t have to figure it out
again the next time.&lt;&#x2F;p&gt;
&lt;p&gt;If we repeatedly do something that requires multiple steps, a checklist can make
this easier.&lt;&#x2F;p&gt;
&lt;p&gt;If we learn something valuable, a note makes this useful in the future.&lt;&#x2F;p&gt;
&lt;p&gt;Creating notes encourages reflection.&lt;&#x2F;p&gt;
&lt;p&gt;With a good notes system, we can organize and prioritize what we do.&lt;&#x2F;p&gt;
&lt;p&gt;Over time this helps build a picture or model of what we know and have
experienced. This model helps us leverage what we have done in the past in the
future.&lt;&#x2F;p&gt;
&lt;p&gt;There are many good notetaking tools and methods (Notion, Workflowy, Logseq,
Bullet Journal, etc.) so there is very likely one that will fit you. Some things
I look for:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;low friction to use&lt;&#x2F;li&gt;
&lt;li&gt;stores text and images&lt;&#x2F;li&gt;
&lt;li&gt;can be used on multiple mobile and desktop platforms&lt;&#x2F;li&gt;
&lt;li&gt;can export the information so that it can be moved to another system if
necessary&lt;&#x2F;li&gt;
&lt;li&gt;has a stable history and likely future -- something you can use for 5-10+
years&lt;&#x2F;li&gt;
&lt;li&gt;easy to share information with others&lt;&#x2F;li&gt;
&lt;li&gt;and most importantly -- you own the information and can take it with you. IE,
don&#x27;t store your personal knowledge base in your employer&#x27;s MS Teams OneNote
app.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Workflowy has been perfect for me, but there are lots of other good options.&lt;&#x2F;p&gt;
&lt;p&gt;Over time your personal notetaking tool becomes a valuable knowledge base that
you can take with you anywhere you go -- part of YOUR
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;#personal&quot;&gt;Personal&lt;&#x2F;a&gt; Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📧 Inbox zero</title>
        <published>2024-12-11T00:00:00+00:00</published>
        <updated>2024-12-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0083-inbox-zero/"/>
        <id>https://daily.bec-systems.com/0083-inbox-zero/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0083-inbox-zero/">&lt;p&gt;Thanks to a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.himvis.com&#x2F;0065-zero-inbox-rule&#x2F;&quot;&gt;nudge from Khem&lt;&#x2F;a&gt;,
I&#x27;m back to Inbox-zero.&lt;&#x2F;p&gt;
&lt;p&gt;The big question is what to do with emails that need action or have valuable
information in them? Some put them in a special folder. Others tag them. Others
forward them to lots of people.&lt;&#x2F;p&gt;
&lt;p&gt;The best solution is to move the action or information to another system such as
a project ticketing system, or Workflowy (my personal notes system). I then
archive the email and dig it out of the archive if I need to reply later.&lt;&#x2F;p&gt;
&lt;p&gt;Email is a great notification system, but it does not work very well at the
following:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;collaboration&lt;&#x2F;li&gt;
&lt;li&gt;knowledge capture&lt;&#x2F;li&gt;
&lt;li&gt;workflow&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Find other solutions for the above such as:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Github&#x2F;Gitea&#x2F;Gitlab issues, projects, wikis, etc.&lt;&#x2F;li&gt;
&lt;li&gt;Markdown in Git is a great way to capture knowledge from emails&lt;&#x2F;li&gt;
&lt;li&gt;Trello&lt;&#x2F;li&gt;
&lt;li&gt;Personal notes system&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Collaboration, knowledge capture, open access to knowledge, and workflow are key
components of YOUR Platform. Getting information out of email is critical, and
following an Inbox-zero policy is a great way to help make this happen.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏆 Goals vs. Systems</title>
        <published>2024-12-10T00:00:00+00:00</published>
        <updated>2024-12-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0082-goals-vs-systems/"/>
        <id>https://daily.bec-systems.com/0082-goals-vs-systems/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0082-goals-vs-systems/">&lt;blockquote&gt;
&lt;p&gt;“You do not rise to the level of your goals. You fall to the level of your
systems.” -- James Clear, Atomic Habits&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Goals and vision are important, but we also need a way to get there.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏁 Easy to start vs. easy to finish</title>
        <published>2024-12-09T00:00:00+00:00</published>
        <updated>2024-12-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0081-easy-to-start-vs-easy-to-finish/"/>
        <id>https://daily.bec-systems.com/0081-easy-to-start-vs-easy-to-finish/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0081-easy-to-start-vs-easy-to-finish/">&lt;p&gt;There are many ways to classify how we do things. One way is &quot;easy to start&quot; or
&quot;easy to finish.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;We may try to use off-the-shelf &quot;maker&quot; style embedded boards (Arduino or
Raspberry PI) instead of a SOM (System-on-module) designed for industrial use.&lt;&#x2F;p&gt;
&lt;p&gt;An interpreted language like Python is easy to use and definitely has its place
on your workstation, tooling, etc. But deploying, cross-compiling, upgrading,
and maintaining a Python stack on thousands of embedded Linux edge nodes is not
easy -- Go is much better over the long haul.&lt;&#x2F;p&gt;
&lt;p&gt;Skipping documentation, CI&#x2F;CD, and other basic best practices is certainly
quicker to start, but long-term will slow you down.&lt;&#x2F;p&gt;
&lt;p&gt;We can skip tests when writing code (often faster up front), or we can take the
time to write tests as we implement features. Likewise, when we debug a problem,
we can just fix the problem, or we can reproduce the problem first with a test,
and then fix it to ensure it does not happen again.&lt;&#x2F;p&gt;
&lt;p&gt;Ignoring architecture up front is easier initially, but taking the time to think
through architectural issues like decoupling, life-cycle management, and
high-level performance, pays huge dividends long-term.&lt;&#x2F;p&gt;
&lt;p&gt;Outsourcing PCB design is easy to start, but owning the custom PCB designs in
your product (especially the integration points) gives you the flexibility to
easily fix, improve, and adapt.&lt;&#x2F;p&gt;
&lt;p&gt;When designing a PCB with constraints (such as high-speed or high-voltage), we
can manually route the board or invest time in creating DRC rules and
documentation that clearly details the board&#x27;s constraints. The first approach
might be quicker to get rev 1 out, but the latter makes it much easier to
maintain the design over time, onboard new people, etc.&lt;&#x2F;p&gt;
&lt;p&gt;When designing hardware, we can skip creating CAD libraries, assigning house
part numbers and instead hand-create BOMs. But long term it becomes very
difficult to manage even a small inventory parts in the lab, let alone
production. We have duplicates, things are lost, and mistakes are made.&lt;&#x2F;p&gt;
&lt;p&gt;We can do things like we&#x27;ve always done them (certainly easier to start), but
there are new technologies, tools, and workflows that can greatly improve our
productivity.&lt;&#x2F;p&gt;
&lt;p&gt;We certainly need to push hard to get to an MVP (minimal viable product), but
this should be done by cutting features, not the approach. However, most people
do exactly the opposite -- they want all the features up front and rather cut
out the foundational investments in technology and process.&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s the thing -- &quot;easy to start&quot; puts you on the path that accumulates
technical debt. As time goes on, things become more complex, fragile, and
difficult to manage. This approach does not scale.&lt;&#x2F;p&gt;
&lt;p&gt;&quot;Easy to finish&quot; puts you on the path to burn down technical debt. Over time you
look for patterns and ways to simplify things. You continuously improve all
aspects of the product. You select the best technologies at the time and adopt
new technologies when it makes sense. This approach scales.&lt;&#x2F;p&gt;
&lt;p&gt;Starting is easy, and finishing is hard. What are you optimizing for?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎧 Use a headset optimized for calls</title>
        <published>2024-12-06T00:00:00+00:00</published>
        <updated>2024-12-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0080-use-a-headset-optimized-for-calls/"/>
        <id>https://daily.bec-systems.com/0080-use-a-headset-optimized-for-calls/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0080-use-a-headset-optimized-for-calls/">&lt;p&gt;One thing most of us do routinely is voice calls or video conferencing. For this
to work, each party needs to have a microphone and a speaker.&lt;&#x2F;p&gt;
&lt;p&gt;The simplest setup is to use the microphone and speaker built into your phone,
laptop, or car. Sometimes this works pretty well.&lt;&#x2F;p&gt;
&lt;p&gt;But, often we are environments where this is background noise. Simple
microphones, especially those some distance from our mouths, cannot discern
background noise from our voice. AGC (automatic gain control) algorithms tend to
amplify any sound to capture your voice. The most baffling scenario is those
walking through a busy airport holding a phone in front of them in speakerphone
mode. Another disruptive problem is echo which sometimes occurs when using a
laptop mic&#x2F;speaker for video conferencing. Trying to talk when your voice is
being echoed back is nearly impossible.&lt;&#x2F;p&gt;
&lt;p&gt;Conversely, our ears are very good at differentiating what we want to hear from
local background noise. Our brain and ears are
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.perplexity.ai&#x2F;search&#x2F;why-are-our-ears-so-good-at-di-bJPNehLAQHCK.Z_0YtMDXQ&quot;&gt;very sophisticated instruments&lt;&#x2F;a&gt;
and include features such as using the time delay and intensity difference
between each ear to pinpoint a source, selective focus, frequency tuning,
adaptive processing, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Some headsets attempt to block out background noise to the microphone. The most
effective ones have a direction microphone located very close to your mouth (on
a boom), or a microphone array and DSP processing. Two examples I&#x27;ve used are
the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;gp&#x2F;product&#x2F;B01H2RBQUG&quot;&gt;Plantronics - Voyager 5200&lt;&#x2F;a&gt;
(Bluetooth) and the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.amazon.com&#x2F;Sennheiser-USB-C-508354-Professionals-Noise-Canceling&#x2F;dp&#x2F;B07P76F83J&quot;&gt;Sennheiser SC 160&lt;&#x2F;a&gt;
(USB).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;uploads&#x2F;default&#x2F;original&#x2F;2X&#x2F;f&#x2F;f71222515c76770d7f814ea582966cb18b6b5cb0.jpeg&quot; alt=&quot;5200&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;uploads&#x2F;default&#x2F;original&#x2F;2X&#x2F;3&#x2F;38efc9618a0b2efe13a50a06fe01b3621bc28b3c.jpeg&quot; alt=&quot;SC 160&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;There are likely many other good options. I use the Plantronics with my phone
and the Sennheiser with my computer. Both are very effective at blocking out
background noise and I&#x27;m sure there are many other effective models.&lt;&#x2F;p&gt;
&lt;p&gt;The result is whomever I am communicating with can clearly hear what I am saying
without being distracted by background noise in my environment. This makes me
more effective.&lt;&#x2F;p&gt;
&lt;p&gt;Some headsets have noise noise cancellation for the speakers. This is very nice
for deep work when we are trying to focus and need to block out all sounds other
than perhaps some music. But they are of marginal use during a call because our
ears are already pretty good at focusing on one sound and during a call we have
the discussion to focus on.&lt;&#x2F;p&gt;
&lt;p&gt;Consider having separate headsets for deep work (noise-cancelling speakers) and
calls (noise-reducing microphones) as part of YOUR
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;tags&#x2F;personal&#x2F;&quot;&gt;Personal Platform&lt;&#x2F;a&gt;. This may seem
like a minor thing, but the small things add up. Using a good microphone is a
courtesy to those listening to us. It is a courtesy to the entire group on the
call that our background noise is not interrupting the call. It is professional.
It shows we care about others.&lt;&#x2F;p&gt;
&lt;p&gt;For more discussion and review, see
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;video-conferencing-notes&#x2F;117&quot;&gt;this thread&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚡ Are your processes proactive or reactive?</title>
        <published>2024-12-05T00:00:00+00:00</published>
        <updated>2024-12-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0079-are-your-processes-proactive-or-reactive/"/>
        <id>https://daily.bec-systems.com/0079-are-your-processes-proactive-or-reactive/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0079-are-your-processes-proactive-or-reactive/">&lt;p&gt;There are two ways to implement a process.&lt;&#x2F;p&gt;
&lt;p&gt;The traditional way is as a check to make sure people did everything right. This
could be required documentation that is written after a project is finished, a
separate QA department that runs tests after each release, or various
certifications like UL, FCC, CE, etc. There are certainly times when things like
this are necessary; however, writing documentation after the fact is never much
fun, and dealing with failure reports from the QA department is not all that
pleasant, and the FCC testing facility has been called &quot;the house of pain.&quot;
We&#x27;ll call this the &quot;reactive&quot; process approach.&lt;&#x2F;p&gt;
&lt;p&gt;An alternative approach is the &quot;proactive&quot; process. Structure your documentation
efforts as part of the development process -- as a way to help you think and as
a vehicle for collaboration. QA can also be implemented proactively as automated
tests that are run during development.&lt;&#x2F;p&gt;
&lt;p&gt;Proactive processes focus on well-designed tools that help the people doing the
work get it right vs. tools that help managers who oversee the work. Proactive
process tools are well-designed, fast, and a pleasure to use.&lt;&#x2F;p&gt;
&lt;p&gt;Think what could happen if UL focused on providing KiCad templates and DRC rule
sets for various high-voltage design scenarios that would help engineers do
their work instead of a bureaucratic morass that is very painful and expensive
to work through. The first approach encourages innovation, whereas the current
approach greatly hinders it.&lt;&#x2F;p&gt;
&lt;p&gt;Some reactive processes are necessary, but where is your focus? The more you can
shift your processes from reactive to proactive, the better off you&#x27;ll be. This
is what Platform Thinking is all about -- building YOUR Proactive Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚖️ Architecture vs. Optimization</title>
        <published>2024-11-27T00:00:00+00:00</published>
        <updated>2024-11-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0078-architecture-vs-optimization/"/>
        <id>https://daily.bec-systems.com/0078-architecture-vs-optimization/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0078-architecture-vs-optimization/">&lt;p&gt;In 1968, &quot;The Art of Computer Programming&quot; by Donald Knuth was published with
the following quote:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;We should forget about small efficiencies, say about 97% of the time:
premature optimization is the root of all evil.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This was in the age when computer resources were scarce.&lt;&#x2F;p&gt;
&lt;p&gt;We now live in the age of abundant computing resources, so it seems this
statement would be many times truer now.&lt;&#x2F;p&gt;
&lt;p&gt;Performance is important when we select technologies. For instance, Go or Rust
is significantly faster than Python and it is important to think about issues
like this up front. This is an architectural issue.&lt;&#x2F;p&gt;
&lt;p&gt;Deciding if we will use a message bus or not is an architectural issue.&lt;&#x2F;p&gt;
&lt;p&gt;However, if we receive data over a network, especially in distributed IoT
systems, the network is relatively slow. So it rarely pays to optimize how we
process data from remote systems until we reach a pretty large scale. This is an
optimization issue.&lt;&#x2F;p&gt;
&lt;p&gt;Creating an abstraction to reduce some duplicated code is an optimization.&lt;&#x2F;p&gt;
&lt;p&gt;With architecture, we need to think about it up front.&lt;&#x2F;p&gt;
&lt;p&gt;It rarely pays to optimize up front -- that is best done later after some
learning.&lt;&#x2F;p&gt;
&lt;p&gt;And if we spend too much time optimizing, we never get to the learning. And if
we don&#x27;t learn from testing a working system, we&#x27;re likely optimizing the wrong
things.&lt;&#x2F;p&gt;
&lt;p&gt;Architecture vs Optimization -- there is a difference.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Creativity</title>
        <published>2024-11-25T00:00:00+00:00</published>
        <updated>2024-11-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0077-creativity/"/>
        <id>https://daily.bec-systems.com/0077-creativity/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0077-creativity/">&lt;blockquote&gt;
&lt;p&gt;“Creativity is just connecting things. When you ask creative people how they
did something, they feel a little guilty because they didn&#x27;t really do it,
they just saw something. It seemed obvious to them after a while. That&#x27;s
because they were able to connect experiences they&#x27;ve had and synthesize new
things&quot; -- Steve Jobs&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;(Thanks &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;rodaparicio.kit.com&#x2F;posts&#x2F;seeing-things&quot;&gt;Rod&lt;&#x2F;a&gt; for this quote!)&lt;&#x2F;p&gt;
&lt;p&gt;As technology advances, being good at making connections (integration) is the
critical skill, as we can&#x27;t create it all ourselves.&lt;&#x2F;p&gt;
&lt;p&gt;Part of YOUR Platform is building a high-quality toolkit of things to connect.&lt;&#x2F;p&gt;
&lt;p&gt;And knowing how, when, and where to connect.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔗 Coupling</title>
        <published>2024-11-22T00:00:00+00:00</published>
        <updated>2024-11-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0076-coupling/"/>
        <id>https://daily.bec-systems.com/0076-coupling/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0076-coupling/">&lt;p&gt;Good platforms emphasize loose coupling where one part of the system can change
without affecting another.&lt;&#x2F;p&gt;
&lt;p&gt;Not abstractions for the sake of abstraction.&lt;&#x2F;p&gt;
&lt;p&gt;But rather well-thought-out data structures and patterns.&lt;&#x2F;p&gt;
&lt;p&gt;A message bus like NATS is an excellent way to decouple a program. One part of
the system publishes information, and any other interested part can subscribe.&lt;&#x2F;p&gt;
&lt;p&gt;But for this to work, you must have simple and flexible data structures that
don&#x27;t change often. Otherwise, your system is now tightly coupled again.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;SimpleIot&#x2F;SimpleIot&quot;&gt;Simple data structures and messaging&lt;&#x2F;a&gt;
-- a sane way to scale YOUR Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⏰ A platform stuck in time</title>
        <published>2024-11-21T00:00:00+00:00</published>
        <updated>2024-11-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0075-a-platform-stuck-in-time/"/>
        <id>https://daily.bec-systems.com/0075-a-platform-stuck-in-time/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0075-a-platform-stuck-in-time/">&lt;p&gt;Vintage is great in some contexts—I like old woodworking hand tools. Even in our
modern jobs, some vintage tools, like a pencil and paper, are still very useful.&lt;&#x2F;p&gt;
&lt;p&gt;But information technology moves forward, and we rarely benefit from using
decade-old phones, computers, programs, etc.&lt;&#x2F;p&gt;
&lt;p&gt;New information technology and tools are often simpler to use and more powerful.
Some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;C -&amp;gt; Go&#x2F;Rust&#x2F;Zig&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Apache -&amp;gt; Caddy&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Vim -&amp;gt; Helix&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;x86 -&amp;gt; ARM -&amp;gt; RISCv (MPU)&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;8051 -&amp;gt; PIC -&amp;gt; ARM -&amp;gt; RISCv (MCU)&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;FreeRTOS -&amp;gt; Zephyr&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Kafka -&amp;gt; NATS&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Rotating storage -&amp;gt; Solid state&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Information technology, and perhaps computer technology in general, is
different. The physical constraints are largely removed as we scale into GHz and
Terabytes, which opens the doors to human innovation and collaboration.&lt;&#x2F;p&gt;
&lt;p&gt;Innovation is largely a process of discovery, so you can&#x27;t predict where it will
go and what will happen. It is a result of development iterations that are now
happening at a massive scale and distributed across the globe.&lt;&#x2F;p&gt;
&lt;p&gt;Therefore, when you lock yourself into some version of technology in the name of
stability, cost savings, or whatever, you are also limiting the potential for
your product -- for interesting things to happen that no one could have
predicted.&lt;&#x2F;p&gt;
&lt;p&gt;It takes humility to acknowledge this -- that you can&#x27;t see the future, the best
you can do is prepare for it.&lt;&#x2F;p&gt;
&lt;p&gt;YOUR Platform is the vehicle that keeps your product development moving forward
with technology so that you are not stuck in time as you watch it pass you by.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🧪 What is a good abstraction?</title>
        <published>2024-11-20T00:00:00+00:00</published>
        <updated>2024-11-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0074-what-is-a-good-abstraction/"/>
        <id>https://daily.bec-systems.com/0074-what-is-a-good-abstraction/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0074-what-is-a-good-abstraction/">&lt;p&gt;When writing a program, abstraction is a powerful tool.&lt;&#x2F;p&gt;
&lt;p&gt;Every abstraction has a benefit and a cost. Hopefully, the value &amp;gt; cost.&lt;&#x2F;p&gt;
&lt;p&gt;There are good abstractions and bad abstractions.&lt;&#x2F;p&gt;
&lt;p&gt;Good abstractions break things down into simpler steps that others can
understand.&lt;&#x2F;p&gt;
&lt;p&gt;Bad abstractions may be brilliant but are nearly impossible for anyone but the
author to understand.&lt;&#x2F;p&gt;
&lt;p&gt;Who are you optimizing for? Yourself, or everyone else?&lt;&#x2F;p&gt;
&lt;p&gt;This often tells the difference between a good and bad abstraction.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚡ Improve development efficiency, reduce technical debt</title>
        <published>2024-11-18T00:00:00+00:00</published>
        <updated>2024-11-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0073-improve-development-efficiency-reduce-technical-debt/"/>
        <id>https://daily.bec-systems.com/0073-improve-development-efficiency-reduce-technical-debt/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0073-improve-development-efficiency-reduce-technical-debt/">&lt;p&gt;The term &quot;platform&quot; can mean a lot of things, but this is primarily what I&#x27;m
talking about in the context of product development:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Improve development efficiency, reduce technical debt&lt;&#x2F;em&gt;&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;do more with what you have&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;iterate faster&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;make less mistakes&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;regularly update to new software versions&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;collaborate better&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;use better tools&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;automate where you can&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;reduce legacy (untested) code&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;deploy with confidence&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;react quickly to new customer needs or problems&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Of course, everyone wants these things and claims to be doing them. But in your
gut, you know if these things are getting better or worse.&lt;&#x2F;p&gt;
&lt;p&gt;And the only way I know to get better is to work on YOUR Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎯 Rituals and Culture</title>
        <published>2024-11-14T00:00:00+00:00</published>
        <updated>2024-11-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0072-rituals-and-culture/"/>
        <id>https://daily.bec-systems.com/0072-rituals-and-culture/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0072-rituals-and-culture/">&lt;p&gt;Recently,
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0067-habits-a-critical-ingredient-in-your-personal-platform&#x2F;&quot;&gt;we discussed&lt;&#x2F;a&gt;
personal habits.&lt;&#x2F;p&gt;
&lt;p&gt;Organizations have habits too -- we call them rituals and culture.&lt;&#x2F;p&gt;
&lt;p&gt;How does the organization react when things don&#x27;t go as planned?&lt;&#x2F;p&gt;
&lt;p&gt;How does the organization motivate and demotivate people?&lt;&#x2F;p&gt;
&lt;p&gt;How does the organization encourage openness and transparency?&lt;&#x2F;p&gt;
&lt;p&gt;A lot of this probably comes down to those at the top -- the art of leadership.&lt;&#x2F;p&gt;
&lt;p&gt;Organizations are made of people, so the struggles we face personally we also
face organizationally.&lt;&#x2F;p&gt;
&lt;p&gt;We need some structure and tooling to help us do our job.&lt;&#x2F;p&gt;
&lt;p&gt;To ensure the boring parts are taken care of.&lt;&#x2F;p&gt;
&lt;p&gt;To catch errors we overlook.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms.&lt;&#x2F;p&gt;
&lt;p&gt;Does your organization celebrate platforms? If so, how?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📈 Two ways to scale</title>
        <published>2024-11-13T00:00:00+00:00</published>
        <updated>2024-11-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0071-two-ways-to-scale/"/>
        <id>https://daily.bec-systems.com/0071-two-ways-to-scale/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0071-two-ways-to-scale/">&lt;p&gt;Scaling is the goal of many businesses -- grow revenue, serve more people, sell
more devices, grow the product line, etc.&lt;&#x2F;p&gt;
&lt;p&gt;There are two ways to scale:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Increase volume with a small number of direct customers. You might be making
an integrated circuit that is sold to a company making consumer devices, or
you might be making a consumer product that is sold through a few outlets
like Amazon and Walmart. Although you might have thousands of end customers,
you only have a few direct customers.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Increase the number of direct customers. Many of these customers may be low
volume, but the aggregate can be large, sometimes described as the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Long_tail&quot;&gt;long tail&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;(For this discussion, we&#x27;ll assume you already have a product or technology that
meets a real need).&lt;&#x2F;p&gt;
&lt;p&gt;With approach #1, you can brute force about anything. As long as the product is
something people want, you can dedicate application engineers to help your
customers make it happen. Sometimes the design&#x2F;development team interacts
directly with customers. This is expensive, and the reason many industrial
products are costly is that they rely on direct support.&lt;&#x2F;p&gt;
&lt;p&gt;However, this does not scale past a handful of customers. Direct application
engineering support is expensive. If you want to scale the number of customers,
you need to do something different.&lt;&#x2F;p&gt;
&lt;p&gt;Open-source projects are an interesting study in this regard. They address well
the needs of many users. How do they do this?&lt;&#x2F;p&gt;
&lt;p&gt;There are two primary aspects: A) Quality, and B) Community.&lt;&#x2F;p&gt;
&lt;p&gt;For any complex technology to scale without a lot of hand-holding, the quality
needs to be high. There has to be good documentation. The source code or design
needs to be readable. The architecture needs to be simple and solid so it can be
understood. You need consistency (data structures, code organization, etc.).
Testing needs to be automated and robust so there are not a lot of unexpected
problems.&lt;&#x2F;p&gt;
&lt;p&gt;The second thing that is needed is community. A community is the only way to
support a large number of users or customers of a complex technology. With
complex systems, the problems you run into are often things you have never seen
before. If all of these problems need to be solved from scratch with direct
one-on-one support, you will quickly become buried. Additionally, you&#x27;ll find
that experienced users are often better at solving user problems than technology
creators. If this support is done in a public place, you soon build up a
knowledge base that can be reused.&lt;&#x2F;p&gt;
&lt;p&gt;Quality and Community are the ways to scale the number of direct customers or
users, and OSS-style workflows and communities are the best way to accomplish
this.&lt;&#x2F;p&gt;
&lt;p&gt;If you want to address the long tail, the days of NDAs with every customer are
past. The future is open. Not necessarily 100% open source, but certainly open
documentation and support. And &quot;open&quot; provides feedback that increases quality
-- it all works together.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔍 How to get the little things done?</title>
        <published>2024-11-11T00:00:00+00:00</published>
        <updated>2024-11-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0070-how-to-get-the-little-things-done/"/>
        <id>https://daily.bec-systems.com/0070-how-to-get-the-little-things-done/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0070-how-to-get-the-little-things-done/">&lt;p&gt;Previously, we
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0067-habits-a-critical-ingredient-in-your-personal-platform&#x2F;&quot;&gt;discussed habits&lt;&#x2F;a&gt;.
Habits are the way we get the small, but important, things done.&lt;&#x2F;p&gt;
&lt;p&gt;Some people are naturally neat, organized, and focused -- I&#x27;m not. Stuff tends
to pile up in my workspace and I don&#x27;t even notice it.&lt;&#x2F;p&gt;
&lt;p&gt;One thing I&#x27;ve been using some is the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Pomodoro_Technique&quot;&gt;Pomodoro technique&lt;&#x2F;a&gt;. This is
a time management method where you use a timer to break down work into intervals
-- typically 25 minutes in length separated by 5m breaks.&lt;&#x2F;p&gt;
&lt;p&gt;The primary goal of the Pomodoro technique is to increase focus, and that is a
worthy goal.&lt;&#x2F;p&gt;
&lt;p&gt;However, another benefit of this technique is to allocate time for the little
things, like organizing your workspace which is a good use of your 5m breaks.&lt;&#x2F;p&gt;
&lt;p&gt;These are the little things that clear space to do the big things -- part of
YOUR Personal Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>😊 How can you make your commercial source code customers happy?</title>
        <published>2024-11-08T00:00:00+00:00</published>
        <updated>2024-11-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0069-how-can-you-make-your-commercial-source-code-customers-happy/"/>
        <id>https://daily.bec-systems.com/0069-how-can-you-make-your-commercial-source-code-customers-happy/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0069-how-can-you-make-your-commercial-source-code-customers-happy/">&lt;p&gt;When engaging with a community around an open-source project, Github is likely
the lowest friction option. It makes sense.&lt;&#x2F;p&gt;
&lt;p&gt;But there are other scenarios -- one is where you are delivering closed-source
commercial source code to customers.&lt;&#x2F;p&gt;
&lt;p&gt;Git makes sense for delivering any source code, no matter what the context --
closed, open, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Using zip files to deliver source is antiquated. Since Subversion (2000) and Git
(2005), there are now other options.&lt;&#x2F;p&gt;
&lt;p&gt;With Git, is easy to deliver updates, manage changes, tag releases, and track
what has happened.&lt;&#x2F;p&gt;
&lt;p&gt;Tools like Gitea&#x2F;Forgejo, that wrap Git, provide nice ways to interact around
the source code -- issues, pull-requests, projects, etc. Issues and
pull-requests are much better ways to communicate about code than email or other
messaging methods. The communication is close to the code and preserved instead
of being disconnected, and eventually lost.&lt;&#x2F;p&gt;
&lt;p&gt;Gitea&#x2F;Forgejo also give us unlimited organizations and users that we can create
and manage. What this means is every customer can have their own organization.
This provides issolation between customers. Each now has their own space to
raise issues, discussion PRs, etc. You can mirror the source code they have
purchased to their own organizational space, and continue updating it as long as
they are a customer. If they decide to quit purchasing updates, you can leave
their Gitea organization and source code intact, but simply quit updating it.
This is ensures you do break build processes they already have in place and is a
measure of good will.&lt;&#x2F;p&gt;
&lt;p&gt;Why not deliver the source-code to the customer&#x27;s Github organization? You have
less control in Github. Simple things like users not being able to create an
account are now under your control. With Gitea, you have more control of the
repo visibility. It is less likely someone might accidentally make a repo public
in the future.&lt;&#x2F;p&gt;
&lt;p&gt;Would you like the velocity, stability, and collaboration that OSS projects
have? With tools like Gitea&#x2F;Forgejo, you can mirror these workflows into any
software development effort.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 Platforms vs Architecture Astronautics</title>
        <published>2024-11-07T00:00:00+00:00</published>
        <updated>2024-11-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0068-platforms-vs-architecture-astronautics/"/>
        <id>https://daily.bec-systems.com/0068-platforms-vs-architecture-astronautics/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0068-platforms-vs-architecture-astronautics/">&lt;p&gt;The excellent &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;superstructmanifesto.com&#x2F;&quot;&gt;Superstruct Manifesto&lt;&#x2F;a&gt;
addresses the tendency for developers to want to &quot;rewrite&quot; things, wholesale
switch to new frameworks, jump on new tech, etc. vs. delivering real business
value.&lt;&#x2F;p&gt;
&lt;p&gt;Another description for these people is
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;2001&#x2F;04&#x2F;21&#x2F;dont-let-architecture-astronauts-scare-you&#x2F;&quot;&gt;Architecture Astronauts&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms, at least the way I envision them, are the opposite of this.&lt;&#x2F;p&gt;
&lt;p&gt;They are incremental, not wholesale.&lt;&#x2F;p&gt;
&lt;p&gt;They are a part of our daily thinking, not some separate grandiose effort that
will solve all of our problems.&lt;&#x2F;p&gt;
&lt;p&gt;They are largely invisible.&lt;&#x2F;p&gt;
&lt;p&gt;They leverage what we already have and make it better.&lt;&#x2F;p&gt;
&lt;p&gt;They are the responsibility of everyone, from the bottom to the top, not some
elite team.&lt;&#x2F;p&gt;
&lt;p&gt;However, like personal habits, company platforms take discipline to implement
and are sometimes difficult to get established.&lt;&#x2F;p&gt;
&lt;p&gt;There are exceptions, but if platform work is exciting and interesting, this is
a warning flag -- you may be venturing into architecture astronautics.
Generally, we need to block out time in our schedule to work on platforms as it
does not just happen because it is fun -- kind of like brushing your teeth and
exercising.&lt;&#x2F;p&gt;
&lt;p&gt;But in the end, platforms make the difference whether you have a sustainable
business or just some talented individuals. And just like exercising, or
cleaning up our workspace, it is very satisfying afterward.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💪 Habits -- a critical ingredient in YOUR Personal Platform</title>
        <published>2024-11-06T00:00:00+00:00</published>
        <updated>2024-11-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0067-habits-a-critical-ingredient-in-your-personal-platform/"/>
        <id>https://daily.bec-systems.com/0067-habits-a-critical-ingredient-in-your-personal-platform/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0067-habits-a-critical-ingredient-in-your-personal-platform/">&lt;p&gt;We &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0018-what-is-a-platform-v2&#x2F;&quot;&gt;defined&lt;&#x2F;a&gt; your
platform as the collection of technology, tools, and processes that enable you
to differentiate and consistently deliver your products and services.&lt;&#x2F;p&gt;
&lt;p&gt;At a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0020-three-levels-of-your-platform&#x2F;&quot;&gt;personal level&lt;&#x2F;a&gt;,
habits are critical -- they enable us to do the boring&#x2F;hard stuff that makes us
effective.&lt;&#x2F;p&gt;
&lt;p&gt;Getting up early gives us undistracted time to think.&lt;&#x2F;p&gt;
&lt;p&gt;Regularly exercising helps us in so many ways.&lt;&#x2F;p&gt;
&lt;p&gt;Patterns and &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;emergent-task-timer&#x2F;1421&quot;&gt;tools&lt;&#x2F;a&gt;
that help us plan and focus are sometimes necessary.&lt;&#x2F;p&gt;
&lt;p&gt;Bad habits (sleeping in, overeating, reading instead of working, etc.) are easy
to fall into.&lt;&#x2F;p&gt;
&lt;p&gt;Good habits are amazingly hard to establish, but worth it, and a big part of
YOUR Personal Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 Advanced technology and small players</title>
        <published>2024-11-05T00:00:00+00:00</published>
        <updated>2024-11-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0066-advanced-technology-and-small-players/"/>
        <id>https://daily.bec-systems.com/0066-advanced-technology-and-small-players/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0066-advanced-technology-and-small-players/">&lt;p&gt;Integrated circuits (IC) vary widely in complexity from the small devices that
are easily documented and understood to complex beasts that would require a
stack of books and years to fully document.&lt;&#x2F;p&gt;
&lt;p&gt;If you are a high-volume manufacturer of consumer goods, you can easily get all
the attention and support you need from IC vendors. They will help you design
your product.&lt;&#x2F;p&gt;
&lt;p&gt;However, if you are a low volume manufacturer, it is nearly impossible to get
direct support for complex ICs. Support resources are limited and IC vendors
can&#x27;t help everyone in the world design their products.&lt;&#x2F;p&gt;
&lt;p&gt;So they allocate support engineers to a small number of higher-volume customers.&lt;&#x2F;p&gt;
&lt;p&gt;It does not matter how important you think you are, or how much money you have,
if you don&#x27;t have volume, it will be hard to get direct support from complex IC
vendors. Their margins are small and they make it up in volume.&lt;&#x2F;p&gt;
&lt;p&gt;However, there is a path forward for low-volume manufacturers.&lt;&#x2F;p&gt;
&lt;p&gt;You can buy system-on-modules (SOM) from vendors who do the hard parts of
integrating a processor, RAM, power supplies, and other complex ICs on a module.&lt;&#x2F;p&gt;
&lt;p&gt;Additionally, they provide open-source software for these modules. Open-source
has changed the game for software by providing everyone access to advanced
technology.&lt;&#x2F;p&gt;
&lt;p&gt;The third aspect of this is community. If a technology vendor has a vibrant
community around their products, then the community can support the low-volume
customers. This is the best and most sustainable model.&lt;&#x2F;p&gt;
&lt;p&gt;The difficult part in all this is discerning where the line is. What technology
is accessible to low-volume manufacturers and what is not?&lt;&#x2F;p&gt;
&lt;p&gt;A few red flags:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;SOM or other module technologies that don&#x27;t have a clear support model for
industrial customers.&lt;&#x2F;li&gt;
&lt;li&gt;The technology is not open and requires NDAs to access documentation.&lt;&#x2F;li&gt;
&lt;li&gt;The documentation is inadequate and difficult to understand. The only way
you&#x27;ll figure it out is by the vendor helping you.&lt;&#x2F;li&gt;
&lt;li&gt;There is not a vibrant community around the products.&lt;&#x2F;li&gt;
&lt;li&gt;Supporting software is not open-source.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The accessibility of technology today has spurred tremendous innovation.
Open-source and community have changed the game enabling even small players to
use very advanced technology in their products. But you must understand your
limits. There is technology that is accessible to small players and technology
that is not.&lt;&#x2F;p&gt;
&lt;p&gt;IC vendors who put the pieces in place (openness, open-source, and community)
can benefit from the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Long_tail&quot;&gt;long tail&lt;&#x2F;a&gt; of
distribution, which increasingly is where innovation is happening.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>What can kids teach us about platforms?</title>
        <published>2024-11-01T00:00:00+00:00</published>
        <updated>2024-11-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0066-what-can-school-students-teach-us-about-platforms/"/>
        <id>https://daily.bec-systems.com/0066-what-can-school-students-teach-us-about-platforms/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0066-what-can-school-students-teach-us-about-platforms/">&lt;p&gt;When helping my children with math, one of the biggest struggles is to teach
them to break math problems into small steps. They are smart and think they can
do it in their head, and inevitably make mistakes because everything gets
muddled.&lt;&#x2F;p&gt;
&lt;p&gt;When you break a math problem into steps, it is easy -- because each step is
easy.&lt;&#x2F;p&gt;
&lt;p&gt;And writing out the steps is easy. It&#x27;s not rocket science.&lt;&#x2F;p&gt;
&lt;p&gt;But what is not easy is the discipline to write out the problem step-by-step
instead of rushing to the answer.&lt;&#x2F;p&gt;
&lt;p&gt;YOUR Platform is the same way -- it is breaking down problems into simple steps.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s not rocket science.&lt;&#x2F;p&gt;
&lt;p&gt;But it does take discipline to create a checklist, document a process, break
things down into smaller steps, automate some things, look for patterns, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Getting to simplicity is hard, but once you get there, everything is easier.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏛️ What are the pillars of a good platform?</title>
        <published>2024-10-31T00:00:00+00:00</published>
        <updated>2024-10-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0065-what-are-the-pillars-of-a-good-platform/"/>
        <id>https://daily.bec-systems.com/0065-what-are-the-pillars-of-a-good-platform/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0065-what-are-the-pillars-of-a-good-platform/">&lt;p&gt;&lt;strong&gt;Simplicity&lt;&#x2F;strong&gt; - you can make changes when needed, and understand the system enough to do so.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Consistency&lt;&#x2F;strong&gt; - useful patterns are reused throughout the system where appropriate.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Reliability&lt;&#x2F;strong&gt; - the design&#x2F;implementation is sound and there is enough testing that you don&#x27;t worry too much when deploying updates.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Velocity&lt;&#x2F;strong&gt; - iterations are fast and easy to deploy.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🛣️ Kayaks and Platforms</title>
        <published>2024-10-30T00:00:00+00:00</published>
        <updated>2024-10-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0064-kayaks-and-platforms/"/>
        <id>https://daily.bec-systems.com/0064-kayaks-and-platforms/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0064-kayaks-and-platforms/">&lt;p&gt;Recently we purchased a few used kayaks that had been built 20 years ago from
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http:&#x2F;&#x2F;pygmyboats.net&#x2F;&quot;&gt;Pygmy Boats kits&lt;&#x2F;a&gt;. (Unfortunately, Pygmy is not longer
supplying kits, but similar kits can be purchased from
&lt;a href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0064-kayaks-and-platforms&#x2F;(https:&#x2F;&#x2F;clcboats.com&#x2F;index.php)&quot;&gt;Chesapeake Light Craft&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;kayaks.jpg&quot; alt=&quot;kayaks&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;We had the pleasure of visiting with the former owner (Mike) for an hour or so
and he generously shared his knowledge about the boats, and kayaking in general.&lt;&#x2F;p&gt;
&lt;p&gt;The more I listened to Mike, the more I realized these boats were his platform
for getting on the water.&lt;&#x2F;p&gt;
&lt;p&gt;Building a boat like this from a kit is a lot of work, but in the end you have:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;a nice boat -- performs as good as boats 4x the cost&lt;&#x2F;li&gt;
&lt;li&gt;one that is customized to exactly what you need (features, rigging, seat,
bracing, etc).&lt;&#x2F;li&gt;
&lt;li&gt;can be easily modified in the future&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Additionally, you have the know-how and tools to repair and maintain it.&lt;&#x2F;p&gt;
&lt;p&gt;If the hull is damaged, you can get your extra plywood, fiberglass cloth, and
epoxy, and fix it.&lt;&#x2F;p&gt;
&lt;p&gt;If you don&#x27;t like the rigging, you can fasten new points and fill the old holes.&lt;&#x2F;p&gt;
&lt;p&gt;If you don&#x27;t like the seat, and can hand-carve a new one out of a block of foam.&lt;&#x2F;p&gt;
&lt;p&gt;If the boat is scratched up, a little sandpaper and varnish will have it looking
like new.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s not for everyone, but for those who want to own their kayak platform, a
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Stitch_and_glue&quot;&gt;stitch and glue&lt;&#x2F;a&gt; boat is nice
option.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💻 What is the purpose of technology?</title>
        <published>2024-10-29T00:00:00+00:00</published>
        <updated>2024-10-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0063-what-is-the-purpose-of-technology/"/>
        <id>https://daily.bec-systems.com/0063-what-is-the-purpose-of-technology/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0063-what-is-the-purpose-of-technology/">&lt;p&gt;To do more with less effort.&lt;&#x2F;p&gt;
&lt;p&gt;To simplify our tasks.&lt;&#x2F;p&gt;
&lt;p&gt;Sometimes this backfires and technology ends up giving us more to do and
complicates our lives.&lt;&#x2F;p&gt;
&lt;p&gt;It becomes a monster and we are consumed feeding it.&lt;&#x2F;p&gt;
&lt;p&gt;Thus, the selection and implementation of technology is critical.&lt;&#x2F;p&gt;
&lt;p&gt;How do you objectively measure this?&lt;&#x2F;p&gt;
&lt;p&gt;Perhaps we need a term &quot;technical efficiency&quot;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;technical efficiency = time saved&#x2F;time feeding&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Hard to measure, but important to reflect on.&lt;&#x2F;p&gt;
&lt;p&gt;A number greater than 1 is good, less than 1 is bad. Ideally, the number should
be much greater than one and also increasing.&lt;&#x2F;p&gt;
&lt;p&gt;Like with so many things, the key metric is not where we are now, but where we
are heading.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✨ The easiest path to reliability ...</title>
        <published>2024-10-25T00:00:00+00:00</published>
        <updated>2024-10-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0062-the-easiest-path-to-reliability/"/>
        <id>https://daily.bec-systems.com/0062-the-easiest-path-to-reliability/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0062-the-easiest-path-to-reliability/">&lt;p&gt;... is simplicity.&lt;&#x2F;p&gt;
&lt;p&gt;Not that we dumb things down and avoid new technology.&lt;&#x2F;p&gt;
&lt;p&gt;That is false simplicity.&lt;&#x2F;p&gt;
&lt;p&gt;As we
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0061-where-do-reliability-stability-problems-typically-come-from&#x2F;&quot;&gt;discussed previously&lt;&#x2F;a&gt;,
the problem is most often not with the underlying technology, but rather the
stuff we do.&lt;&#x2F;p&gt;
&lt;p&gt;Therefore, if we can simplify what we do, it will get better.&lt;&#x2F;p&gt;
&lt;p&gt;This is a fundamental purpose of YOUR Platform -- to simplify what you do. To
make it more repeatable, deployable, reliable, and stable.&lt;&#x2F;p&gt;
&lt;p&gt;Technology and tools can help, but in the end what you do and how you do it is
your responsibility. You can&#x27;t buy a solution for this, nor can AI do it all for
you.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔍 Where do reliability&#x2F;stability problems typically come from?</title>
        <published>2024-10-24T00:00:00+00:00</published>
        <updated>2024-10-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0061-where-do-reliability-stability-problems-typically-come-from/"/>
        <id>https://daily.bec-systems.com/0061-where-do-reliability-stability-problems-typically-come-from/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0061-where-do-reliability-stability-problems-typically-come-from/">&lt;p&gt;99% of the time, system bugs&#x2F;problems come from the stuff you do.&lt;&#x2F;p&gt;
&lt;p&gt;The code you wrote.&lt;&#x2F;p&gt;
&lt;p&gt;The hardware you designed.&lt;&#x2F;p&gt;
&lt;p&gt;The system you configured.&lt;&#x2F;p&gt;
&lt;p&gt;The custom PRC system you created.&lt;&#x2F;p&gt;
&lt;p&gt;Rarely are we affected by stability problems in the Linux kernel, the Zephyr
RTOS, an OSS library, or a bug in a chip.&lt;&#x2F;p&gt;
&lt;p&gt;Why? Because these components have many more users and developers than the
in-house pieces we develop.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.laws-of-software.com&#x2F;laws&#x2F;linus&#x2F;&quot;&gt;&quot;Given enough eyeballs, all bugs are shallow.&quot;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Why are we so hesitant to update the open source system software in our product,
but deploy new application updates that one developer created without a thought?&lt;&#x2F;p&gt;
&lt;p&gt;And ironically, the best way to avoid the rare problem in OSS components is to
keep up-to-date.&lt;&#x2F;p&gt;
&lt;p&gt;We should be most suspect of the parts of the systems with few developers and
users.&lt;&#x2F;p&gt;
&lt;p&gt;This is why YOUR Platform is so important -- because you reuse it, more
developers work on it, and more users use it.&lt;&#x2F;p&gt;
&lt;p&gt;And by extension why it is so beneficial to open source parts of what you do.
Even if you get only a few more users, it will get a lot better, making your
products better.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔝 Support from the top</title>
        <published>2024-10-23T00:00:00+00:00</published>
        <updated>2024-10-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0060-support-from-the-top/"/>
        <id>https://daily.bec-systems.com/0060-support-from-the-top/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0060-support-from-the-top/">&lt;p&gt;In a recent &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;035&#x2F;&quot;&gt;discussion with Matthew Rassi&lt;&#x2F;a&gt; about Lean,
I asked Matthew if he has ever witnessed Lean being successful in organizations
where there is not support at the top. He answered with a resounding no.&lt;&#x2F;p&gt;
&lt;p&gt;Likewise, I&#x27;ve never observed &quot;Platform Thinking&quot; being successful company-wide
without support from management.&lt;&#x2F;p&gt;
&lt;p&gt;If Platform thinking does not start at the top, it is a hard go.&lt;&#x2F;p&gt;
&lt;p&gt;These are cultural issues, and perhaps the most important influence those in
leadership positions have is culture.&lt;&#x2F;p&gt;
&lt;p&gt;However, you can still apply platform thinking at the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0020-three-levels-of-your-platform&#x2F;&quot;&gt;personal or sometimes team level&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;img src=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;platform-levels.png&quot; alt=&quot;levels&quot; style=&quot;zoom: 67%;&quot; &#x2F;&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎯 Doing more with less, rather than less with more</title>
        <published>2024-10-22T00:00:00+00:00</published>
        <updated>2024-10-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0059-doing-more-with-less-rather-than-less-with-more/"/>
        <id>https://daily.bec-systems.com/0059-doing-more-with-less-rather-than-less-with-more/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0059-doing-more-with-less-rather-than-less-with-more/">&lt;p&gt;Building your platform does not mean you need to invent a bunch of stuff from scratch, or purchase expensive tools.&lt;&#x2F;p&gt;
&lt;p&gt;Rather, it is making better use of what you already have.&lt;&#x2F;p&gt;
&lt;p&gt;Automating your current workflows and deployment.&lt;&#x2F;p&gt;
&lt;p&gt;Reusing the designs and IP you already have.&lt;&#x2F;p&gt;
&lt;p&gt;Increasing the rate of iterations.&lt;&#x2F;p&gt;
&lt;p&gt;Automated testing so that you can deploy with confidence.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms are not rocket science, and you don&#x27;t need fancy tools to get started.&lt;&#x2F;p&gt;
&lt;p&gt;A checklist can do wonders.&lt;&#x2F;p&gt;
&lt;p&gt;A few shell scripts and a cron job can get you a long ways.&lt;&#x2F;p&gt;
&lt;p&gt;Automation can be written in the languages you are already using on the project.&lt;&#x2F;p&gt;
&lt;p&gt;Building testing and diagnostics into your products rather than needing expensive, external fixtures.&lt;&#x2F;p&gt;
&lt;p&gt;Leverage the CI features built into tools like Github and Gitea.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms are the boring work that clear the path and you give you time and space to do the interesting work that adds value to your products.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🆘 How to ask for help</title>
        <published>2024-10-21T00:00:00+00:00</published>
        <updated>2024-10-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0058-how-to-ask-for-help/"/>
        <id>https://daily.bec-systems.com/0058-how-to-ask-for-help/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0058-how-to-ask-for-help/">&lt;p&gt;Modern systems are too complex for any of us to know everything about them.&lt;&#x2F;p&gt;
&lt;p&gt;Many of the problems we encounter we have never seen before.&lt;&#x2F;p&gt;
&lt;p&gt;Communities built around various technologies are what fill this gap.&lt;&#x2F;p&gt;
&lt;p&gt;So the superpower in this age is first having the humility to ask for help, and
then knowing who and how to ask for help.&lt;&#x2F;p&gt;
&lt;p&gt;Before asking anything, do a reasonable amount of work.&lt;&#x2F;p&gt;
&lt;p&gt;Someone once told me he puts thirty minutes into a problem before asking a
co-worker for help, which seems like a good baseline. Any less than that you are
likely needlessly interrupting and distracting someone from their work. Any more
than that you may be spinning your wheels needlessly. The nature of the problem
may justify more at times.&lt;&#x2F;p&gt;
&lt;p&gt;Sometimes our questions are met with silence.&lt;&#x2F;p&gt;
&lt;p&gt;Don&#x27;t just remind people that you need help.&lt;&#x2F;p&gt;
&lt;p&gt;Do more work, and bring more information, and then ask again.&lt;&#x2F;p&gt;
&lt;p&gt;If you ask more questions, always bring more information.&lt;&#x2F;p&gt;
&lt;p&gt;Help people help you.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔧 How to keep a product maintainable?</title>
        <published>2024-10-18T00:00:00+00:00</published>
        <updated>2024-10-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0057-how-to-keep-a-product-maintainable/"/>
        <id>https://daily.bec-systems.com/0057-how-to-keep-a-product-maintainable/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0057-how-to-keep-a-product-maintainable/">&lt;p&gt;How do you know if you have the ability to maintain your product?&lt;&#x2F;p&gt;
&lt;p&gt;With complex systems, having all the design files and source code does not
always mean a lot.&lt;&#x2F;p&gt;
&lt;p&gt;Do you know how to build the source code?&lt;&#x2F;p&gt;
&lt;p&gt;Do you know why the hardware is designed the way it is?&lt;&#x2F;p&gt;
&lt;p&gt;Do you know how to test and verify changes?&lt;&#x2F;p&gt;
&lt;p&gt;Do you regularly use these tools?&lt;&#x2F;p&gt;
&lt;p&gt;The only way to know for sure if you can efficiently make a change to your
product is to practice doing so.&lt;&#x2F;p&gt;
&lt;p&gt;If you don&#x27;t, things soon ossify to the point where the cost and risk of any
change are prohibitive.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤝 What happens when someone else tries to use your work?</title>
        <published>2024-10-17T00:00:00+00:00</published>
        <updated>2024-10-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0056-what-happens-when-someone-else-tries-to-use-your-work/"/>
        <id>https://daily.bec-systems.com/0056-what-happens-when-someone-else-tries-to-use-your-work/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0056-what-happens-when-someone-else-tries-to-use-your-work/">&lt;p&gt;It does not build on machine X ...&lt;&#x2F;p&gt;
&lt;p&gt;It does not work in scenario Y ...&lt;&#x2F;p&gt;
&lt;p&gt;It is hard to understand by developer Z ...&lt;&#x2F;p&gt;
&lt;p&gt;As developers, we naturally avoid the rough edges of whatever we are working on -- it hurts.&lt;&#x2F;p&gt;
&lt;p&gt;When other developers try to build&#x2F;run our stuff, it is amazing what they find.&lt;&#x2F;p&gt;
&lt;p&gt;The more people you have building and running your stuff, the better it will be.&lt;&#x2F;p&gt;
&lt;p&gt;Even two people vs. one makes a huge difference.&lt;&#x2F;p&gt;
&lt;p&gt;The platform approach says anyone should be able to easily check out, build, and run any code on any machine.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ve run this experiment with OSS projects for a long time -- it works.&lt;&#x2F;p&gt;
&lt;p&gt;Encourage others to build and run your code -- it will make YOUR Platform better.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📌 Where do you put stuff?</title>
        <published>2024-10-16T00:00:00+00:00</published>
        <updated>2024-10-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0055-where-do-you-put-stuff/"/>
        <id>https://daily.bec-systems.com/0055-where-do-you-put-stuff/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0055-where-do-you-put-stuff/">&lt;p&gt;There are a lot of ways to organize product development information.&lt;&#x2F;p&gt;
&lt;p&gt;You could do something like:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;productA&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;firmware&lt;&#x2F;li&gt;
&lt;li&gt;hardware&lt;&#x2F;li&gt;
&lt;li&gt;yocto-build&lt;&#x2F;li&gt;
&lt;li&gt;docs&lt;&#x2F;li&gt;
&lt;li&gt;manufacturing&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;productB&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;firmware&lt;&#x2F;li&gt;
&lt;li&gt;hardware&lt;&#x2F;li&gt;
&lt;li&gt;yocto-build&lt;&#x2F;li&gt;
&lt;li&gt;docs&lt;&#x2F;li&gt;
&lt;li&gt;manufacturing&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The above is nice in that it keeps all the stuff for each product together, but
discourages re-use between projects.&lt;&#x2F;p&gt;
&lt;p&gt;If you want to build a platform, then it may make more sense to do something
like this:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Firmware&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;Boards
&lt;ul&gt;
&lt;li&gt;productA&lt;&#x2F;li&gt;
&lt;li&gt;productB&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Apps&lt;&#x2F;li&gt;
&lt;li&gt;Common&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Hardware&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;Part Libs&lt;&#x2F;li&gt;
&lt;li&gt;productA&lt;&#x2F;li&gt;
&lt;li&gt;productB&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Yocto&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;...&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Manufacturing&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;Common testing framework&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Product&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;productA&lt;&#x2F;li&gt;
&lt;li&gt;productB&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Doc&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;(general technology information)&lt;&#x2F;li&gt;
&lt;li&gt;(general processes, etc)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Each type of code&#x2F;design files live in a common location if possible. The
&lt;code&gt;Product&lt;&#x2F;code&gt; location is only for information that is truly unique to a specific
product (documentation, top-level BOMs, etc) that does not fit anywhere else. In
many cases, each of the top level categories are a separate repo. The &lt;code&gt;Product&lt;&#x2F;code&gt;
repo may pull the other repos in as submodules, so you can version everything
together.&lt;&#x2F;p&gt;
&lt;p&gt;If you want to build a platform, it helps to be intentional about this. Reuse
and cross-product learning won&#x27;t just happen.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌱 When edge nodes grow up</title>
        <published>2024-10-15T00:00:00+00:00</published>
        <updated>2024-10-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0054-when-edge-nodes-grow-up/"/>
        <id>https://daily.bec-systems.com/0054-when-edge-nodes-grow-up/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0054-when-edge-nodes-grow-up/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0053-how-do-you-partition-systems&#x2F;&quot;&gt;Yesterday&lt;&#x2F;a&gt; we
discussed how to partition functionality in hierarchical distributed systems.&lt;&#x2F;p&gt;
&lt;p&gt;In the past, it was difficult to do much at the edge nodes because they could
not do much.&lt;&#x2F;p&gt;
&lt;p&gt;Resources were limited.&lt;&#x2F;p&gt;
&lt;p&gt;It was difficult to update software in them without being on-site and connecting
a PC-based programmer, or before that replacing an OTP (one-time-programmable)
chip.&lt;&#x2F;p&gt;
&lt;p&gt;But today things are different.&lt;&#x2F;p&gt;
&lt;p&gt;A powerful 32-bit MCU is as now as cheap as your father&#x27;s 8-bit PIC and your
grandfather&#x27;s 8051.&lt;&#x2F;p&gt;
&lt;p&gt;It has plenty of memory for network&#x2F;communication stacks, and in-system update
routines.&lt;&#x2F;p&gt;
&lt;p&gt;We now have powerful operating systems like Zephyr that we can run on these edge
nodes.&lt;&#x2F;p&gt;
&lt;p&gt;If we continue our analogy to human systems, when a person is young or
inexperienced, we don&#x27;t push a lot of responsibility on them.&lt;&#x2F;p&gt;
&lt;p&gt;However, when they grow up, we want them to do more, make decisions, and look
around and do what needs done.&lt;&#x2F;p&gt;
&lt;p&gt;Modern MCU&#x27;s are capable of doing a lot including
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;033&#x2F;&quot;&gt;running AI algorithms&lt;&#x2F;a&gt; -- maybe it is time our edge
nodes grow up.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔠 How do you partition systems?</title>
        <published>2024-10-14T00:00:00+00:00</published>
        <updated>2024-10-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0053-how-do-you-partition-systems/"/>
        <id>https://daily.bec-systems.com/0053-how-do-you-partition-systems/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0053-how-do-you-partition-systems/">&lt;p&gt;In modern networked systems, there is often the debate how to partition the
system.&lt;&#x2F;p&gt;
&lt;p&gt;Below is one example where you have three levels: cloud, gateway, and IO
(input&#x2F;output) nodes.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;iot-architecture.png&quot; alt=&quot;iot system&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;All of these devices have a processor and can run software and do stuff.&lt;&#x2F;p&gt;
&lt;p&gt;So where do you do stuff? There are two basic philosophies:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Push as much of the processing upstream to the cloud (where you have
&quot;infinite&quot; resources) and never update downstream devices.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Do as much at the Gateway and IO nodes as possible, make decisions when
possible with local data, and only push processed data and events upstream.
This requires routinely updating the downstream devices as needs change and
better algorithms are developed.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Initially, approach #1 seems simpler and may be appropriate in some cases.&lt;&#x2F;p&gt;
&lt;p&gt;You can centralize logic and decisions as much as possible.&lt;&#x2F;p&gt;
&lt;p&gt;It is easy to update the system -- you only have to update one central piece.&lt;&#x2F;p&gt;
&lt;p&gt;Until you need to scale, or there is a network disruption ...&lt;&#x2F;p&gt;
&lt;p&gt;And have 50 IO nodes per site that are sending frequent unprocessed data all the
way to the cloud, and decisions are coming back down, even when nothing is
changing.&lt;&#x2F;p&gt;
&lt;p&gt;And then you eventually have 1000 sites.&lt;&#x2F;p&gt;
&lt;p&gt;And then there is a cloud outage and the system is in limbo until the cloud
issue is fixed. All data during the outage is lost.&lt;&#x2F;p&gt;
&lt;p&gt;And someone damages the CAN bus cable and an actuator is left in the ON state
and a tank overflows because no one is making decisions.&lt;&#x2F;p&gt;
&lt;p&gt;And you are storing Gigabytes of unprocessed historical data that you never use.&lt;&#x2F;p&gt;
&lt;p&gt;Distributed systems are hard, but in the end they scale and are more resilient,
especially when you are forced to be distributed by device locations. Within
reason, the more processing you push to the edge, the better. &quot;Distributed&quot; in
these systems is not an architectural choice, but is forced on us by topology.
Why not leverage this since we need to deal with it anyway.&lt;&#x2F;p&gt;
&lt;p&gt;We can compare this to human systems. How well do autocratic, centralized
organizations work? Where someone at the top makes all the decisions and the
rest are minions?&lt;&#x2F;p&gt;
&lt;p&gt;They may work OK at a small scale, but even that is questionable.&lt;&#x2F;p&gt;
&lt;p&gt;A student of history soon observes that successful organizations push
responsibility down. People at the top provide oversight but are only involved
in local decision-making when coordination is required. Trusted people feed
necessary information up as required.&lt;&#x2F;p&gt;
&lt;p&gt;Is it any different with hierarchical, distributed digital systems?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏷️ How do you consistently name things?</title>
        <published>2024-10-10T00:00:00+00:00</published>
        <updated>2024-10-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0052-how-do-you-consistently-name-things/"/>
        <id>https://daily.bec-systems.com/0052-how-do-you-consistently-name-things/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0052-how-do-you-consistently-name-things/">&lt;blockquote&gt;
&lt;p&gt;There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Plenty of opinions abound on style, naming conventions, formatting, etc.&lt;&#x2F;p&gt;
&lt;p&gt;But there is one principle I try to follow when naming things -- go from general to specific. Example:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;UserEmailAddress&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;For functions, you may have a module that has multiple operations. In this case, the operation is a specific operation of a more general module.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;atmtcp_v_dev_open()&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;atmtcp_v_dev_init()&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;atmtcp_v_dev_close()&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Even though &lt;code&gt;open_atmtcp_v_dev()&lt;&#x2F;code&gt; reads better as an English sentence. Programs can be thought as both prose and data, and sometimes there are advantages to considering function and variable names as data.&lt;&#x2F;p&gt;
&lt;p&gt;General-&amp;gt;specific naturally organizes things. It is easy to browse variables in an editor that may list all the variables in a module. Searching&#x2F;refactoring is also easier.&lt;&#x2F;p&gt;
&lt;p&gt;Sometimes when dealing with two unrelated types of information, it is not obvious which is more specific. In the below example, &lt;code&gt;VINST&#x2F;VPEAK&lt;&#x2F;code&gt; are measurements (type), and &lt;code&gt;AX&#x2F;AY&#x2F;...&lt;&#x2F;code&gt; are channels (instance). Which should go first?&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;VINST_AX&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;VINST_AY&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;VINST_AZ&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;VPEAK_AX&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;...&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Generally I prefer to put the &quot;type&quot; first, and then the &quot;instance&quot; -- especially if there are multiple instances.  But this could probably go either way.&lt;&#x2F;p&gt;
&lt;p&gt;Another way to think about this is &lt;code&gt;VINST&lt;&#x2F;code&gt; may be a map&#x2F;dictionary&#x2F;hash-table property of an object, and &lt;code&gt;AX&#x2F;AY&#x2F;AZ&lt;&#x2F;code&gt; may be keys into this map.&lt;&#x2F;p&gt;
&lt;p&gt;Use nouns for variables and verbs for functions.&lt;&#x2F;p&gt;
&lt;p&gt;Does this make sense? How do you name things?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 How can we be more consistent?</title>
        <published>2024-10-09T00:00:00+00:00</published>
        <updated>2024-10-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0051-how-can-we-be-more-consistent/"/>
        <id>https://daily.bec-systems.com/0051-how-can-we-be-more-consistent/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0051-how-can-we-be-more-consistent/">&lt;p&gt;What does not work very well is long standards and endless code reviews where we shame people into compliance. There are better ways.&lt;&#x2F;p&gt;
&lt;p&gt;We now have tools that can proactively format our code. We have linting tools that check things. Use them. Even if no one else reads our code, they help us.&lt;&#x2F;p&gt;
&lt;p&gt;Write tests. Perhaps their greatest value is that they give us a new perspective on our work, which leads to consistency.&lt;&#x2F;p&gt;
&lt;p&gt;We can have CI hooks that check for various things -- check out the Zephyr project if you want a good example of this.&lt;&#x2F;p&gt;
&lt;p&gt;Being nudged by a CI tool to be consistent is a much better experience than being pulled over by the consistency police.&lt;&#x2F;p&gt;
&lt;p&gt;Does YOUR Platform have tooling that encourages consistency?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 Does consistency matter?</title>
        <published>2024-10-08T00:00:00+00:00</published>
        <updated>2024-10-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0050-does-consistency-matter/"/>
        <id>https://daily.bec-systems.com/0050-does-consistency-matter/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0050-does-consistency-matter/">&lt;p&gt;If you have a single developer on a single project, then perhaps consistency does not matter too much.&lt;&#x2F;p&gt;
&lt;p&gt;However, if you want to scale, either products or developers, then consistency matters.&lt;&#x2F;p&gt;
&lt;p&gt;Why?&lt;&#x2F;p&gt;
&lt;p&gt;So that code does not get drastically reformatted every time someone makes a change, making Git diffs impossible to review.&lt;&#x2F;p&gt;
&lt;p&gt;So that any developer can easily understand and make changes in any part of the codebase.&lt;&#x2F;p&gt;
&lt;p&gt;So that new products can leverage previous efforts.&lt;&#x2F;p&gt;
&lt;p&gt;So that new developers can be more easily on-boarded.&lt;&#x2F;p&gt;
&lt;p&gt;So that we can see patterns and simplify systems.&lt;&#x2F;p&gt;
&lt;p&gt;So that our systems are tested.&lt;&#x2F;p&gt;
&lt;p&gt;So that documentation can be easily found.&lt;&#x2F;p&gt;
&lt;p&gt;Linux Torvalds is &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.theregister.com&#x2F;2024&#x2F;10&#x2F;08&#x2F;torvalds_grammar_complaint&#x2F;&quot;&gt;being lambasted&lt;&#x2F;a&gt; for encouraging some consistency in Git commits.&lt;&#x2F;p&gt;
&lt;p&gt;But if you read his &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;lkml.iu.edu&#x2F;hypermail&#x2F;linux&#x2F;kernel&#x2F;2410.0&#x2F;07495.html&quot;&gt;actual email&lt;&#x2F;a&gt;, the request seems quite reasonable.&lt;&#x2F;p&gt;
&lt;p&gt;The Linux kernel has a well-defined &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.kernel.org&#x2F;doc&#x2F;html&#x2F;v6.1&#x2F;process&#x2F;coding-style.html&quot;&gt;coding style&lt;&#x2F;a&gt; that all contributors are expected to follow.&lt;&#x2F;p&gt;
&lt;p&gt;Have we considered the impact this emphasis on consistency has had on the Linux Kernel&#x27;s success?&lt;&#x2F;p&gt;
&lt;p&gt;The irony of all this is that consistency is usually done in the name of the &quot;team&quot; or &quot;reuse&quot;. But if we reflect a bit, we are mostly just helping ourselves.&lt;&#x2F;p&gt;
&lt;p&gt;We can read and understand our own code in 6 months.&lt;&#x2F;p&gt;
&lt;p&gt;We can find stuff.&lt;&#x2F;p&gt;
&lt;p&gt;We can more easily make changes and improvements.&lt;&#x2F;p&gt;
&lt;p&gt;We have tools helping us.&lt;&#x2F;p&gt;
&lt;p&gt;A little bit of consistency goes a long way in building YOUR Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎲 Isn&#x27;t it risky to update your dependencies?</title>
        <published>2024-10-07T00:00:00+00:00</published>
        <updated>2024-10-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0049-isnt-it-risky-to-update-your-dependencies/"/>
        <id>https://daily.bec-systems.com/0049-isnt-it-risky-to-update-your-dependencies/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0049-isnt-it-risky-to-update-your-dependencies/">&lt;p&gt;This is a common objection I hear when building industrial systems: &quot;We want to
lock things down to a super stable&#x2F;tested LTS (Long Term Support) release and
then stay on that release for a long time -- it&#x27;s risky to update dependencies.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;Is it?&lt;&#x2F;p&gt;
&lt;p&gt;How often do you update your browser?&lt;&#x2F;p&gt;
&lt;p&gt;Your phone?&lt;&#x2F;p&gt;
&lt;p&gt;How often does Windows or MacOS force you to update your computer OS?&lt;&#x2F;p&gt;
&lt;p&gt;Do you worry every time it updates?&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve run Arch Linux for years and update routinely without worrying.&lt;&#x2F;p&gt;
&lt;p&gt;I update to new versions of Gitea every time they come without a concern.&lt;&#x2F;p&gt;
&lt;p&gt;I routinely update to the latest HEAD of Zephyr on projects during development
and have rarely had a problem.&lt;&#x2F;p&gt;
&lt;p&gt;The same with about every software component I use.&lt;&#x2F;p&gt;
&lt;p&gt;Yes, there are safety-critical control systems that have stringent testing
requirements, but we&#x27;re talking about complex connected systems that are mainly
concerned with moving data around.&lt;&#x2F;p&gt;
&lt;p&gt;Where security is a concern.&lt;&#x2F;p&gt;
&lt;p&gt;With rare exceptions, modern OSS projects get more stable with each release, and
to a lesser extent with each Git commit.&lt;&#x2F;p&gt;
&lt;p&gt;They have defied the laws of entropy.&lt;&#x2F;p&gt;
&lt;p&gt;How? With OSS workflows, testing, continuous integration (CI), more real-world
usage, more user feedback and contributions, etc.&lt;&#x2F;p&gt;
&lt;p&gt;With good CI, changes don&#x27;t get merged to main until they are tested pretty
well.&lt;&#x2F;p&gt;
&lt;p&gt;Transparency, community, and OSS workflows are powerful -- really the only
practical way to build complex technology.&lt;&#x2F;p&gt;
&lt;p&gt;The next time you seek the cozy cocoon of an LTS release for a dependency in
YOUR Platform, think about what you might be giving up ... features,
improvements, community connection, and likely also stability.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏗️ Platforms are for building systems</title>
        <published>2024-10-04T00:00:00+00:00</published>
        <updated>2024-10-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0048-platforms-are-for-building-systems/"/>
        <id>https://daily.bec-systems.com/0048-platforms-are-for-building-systems/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0048-platforms-are-for-building-systems/">&lt;p&gt;If you are building a one-off, non-connected device, you can get by without a
platform.&lt;&#x2F;p&gt;
&lt;p&gt;This is why so many design-shops don&#x27;t get platforms -- they are designing
something then moving on to the next project.&lt;&#x2F;p&gt;
&lt;p&gt;But if you are building a connected system, you have a much bigger problem to
solve.&lt;&#x2F;p&gt;
&lt;p&gt;You now have a distributed system, and distributed systems are hard.&lt;&#x2F;p&gt;
&lt;p&gt;You are now living on the Internet with all its associated security concerns.&lt;&#x2F;p&gt;
&lt;p&gt;You have a system that has the potential to do so much more than it is doing
now.&lt;&#x2F;p&gt;
&lt;p&gt;You have a system that has almost unlimited potential to be expanded.&lt;&#x2F;p&gt;
&lt;p&gt;You (potentially) have a platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💸 The cost of updating dependencies, or not</title>
        <published>2024-10-02T00:00:00+00:00</published>
        <updated>2024-10-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0047-updating-dependencies/"/>
        <id>https://daily.bec-systems.com/0047-updating-dependencies/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0047-updating-dependencies/">&lt;p&gt;As developers, we are often lazy when it comes to updating dependencies.&lt;&#x2F;p&gt;
&lt;p&gt;A short-term productivity hack is to not update them.&lt;&#x2F;p&gt;
&lt;p&gt;Leave our Yocto build at an old version.&lt;&#x2F;p&gt;
&lt;p&gt;Never touch &lt;code&gt;go.mod&lt;&#x2F;code&gt; or &lt;code&gt;package.json&lt;&#x2F;code&gt; -- everything is working and I can keep
focusing on coding features.&lt;&#x2F;p&gt;
&lt;p&gt;Don&#x27;t update our tools -- we don&#x27;t have time.&lt;&#x2F;p&gt;
&lt;p&gt;... until things break, there is a security problem in a dependency, or we need
a feature in a new version of something, etc.&lt;&#x2F;p&gt;
&lt;p&gt;And then things grind to a halt.&lt;&#x2F;p&gt;
&lt;p&gt;As Khem recently shared,
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.himvis.com&#x2F;0032-on-strategy-4&#x2F;&quot;&gt;Maintenance is costlier than development&lt;&#x2F;a&gt;,
so even though development is important today, maintenance is more important --
for tomorrow.&lt;&#x2F;p&gt;
&lt;p&gt;Part of YOUR Platform should be selecting technologies that can be updated
regularly with little pain, and a process to do this.&lt;&#x2F;p&gt;
&lt;p&gt;It is the question of paying a little bit continuously, or a lot all at once
later, and the latter is often so painful that in many cases it is impractical.&lt;&#x2F;p&gt;
&lt;p&gt;Investing in YOUR Platforming compounds positive gains -- neglecting technical
debt compounds negative gains.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🆚 What is the difference between YOUR Platform and other platforms?</title>
        <published>2024-10-01T00:00:00+00:00</published>
        <updated>2024-10-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0046-your-platform-vs-others/"/>
        <id>https://daily.bec-systems.com/0046-your-platform-vs-others/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0046-your-platform-vs-others/">&lt;p&gt;We all use other platforms -- operating systems, cloud services, middle-ware,
hardware modules, etc.&lt;&#x2F;p&gt;
&lt;p&gt;It is tempting when building a product to piggyback entirely on someone else&#x27;s
platform (AWS, .NET, one of the 100&#x27;s of IoT Platforms, etc.)&lt;&#x2F;p&gt;
&lt;p&gt;Society tells us -- you can&#x27;t host your own service, deploy your own updates,
design your own hardware, implement reliable systems, etc.&lt;&#x2F;p&gt;
&lt;p&gt;But at a small&#x2F;medium scale, none of these things are very hard.&lt;&#x2F;p&gt;
&lt;p&gt;If you do them, you can simplify and optimize for your needs.&lt;&#x2F;p&gt;
&lt;p&gt;YOUR Platform is partly the ability to leverage other platforms, but also to
build your own -- where you are in control of the critical integration points.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💪 Good enough is not good enough</title>
        <published>2024-09-27T00:00:00+00:00</published>
        <updated>2024-09-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0045-good-enough/"/>
        <id>https://daily.bec-systems.com/0045-good-enough/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0045-good-enough/">&lt;p&gt;&lt;img src=&quot;&#x2F;good-enough.png&quot; alt=&quot;good enough&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;My grandfather had this sign on his desk for years, and it embodied his
philosophy for work.&lt;&#x2F;p&gt;
&lt;p&gt;He did things right.&lt;&#x2F;p&gt;
&lt;p&gt;He read manuals for his equipment cover to cover.&lt;&#x2F;p&gt;
&lt;p&gt;He understood how things worked.&lt;&#x2F;p&gt;
&lt;p&gt;And because of this, he could fix and maintain machines. Lots of people brought
their machines to him.&lt;&#x2F;p&gt;
&lt;p&gt;Is your product development process trapped in &quot;good enough?&quot;&lt;&#x2F;p&gt;
&lt;p&gt;Do you understand the technology used to build your products?&lt;&#x2F;p&gt;
&lt;p&gt;Have you read the manuals?&lt;&#x2F;p&gt;
&lt;p&gt;Do you know how to fix things when they break?&lt;&#x2F;p&gt;
&lt;p&gt;Is your process maintained? Can you update the pieces?&lt;&#x2F;p&gt;
&lt;p&gt;Platforms are long-term prospects.&lt;&#x2F;p&gt;
&lt;p&gt;And because YOUR Platform is never good enough, over time it gets really good.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚠️ When things go wrong ...</title>
        <published>2024-09-26T00:00:00+00:00</published>
        <updated>2024-09-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0044-when-things-go-wrong/"/>
        <id>https://daily.bec-systems.com/0044-when-things-go-wrong/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0044-when-things-go-wrong/">&lt;p&gt;What do we do?&lt;&#x2F;p&gt;
&lt;p&gt;Do we focus on who&#x2F;what to blame?&lt;&#x2F;p&gt;
&lt;p&gt;Or do we figure out a path forward.&lt;&#x2F;p&gt;
&lt;p&gt;How we are going to prevent this problem in the future?&lt;&#x2F;p&gt;
&lt;p&gt;Not by shaming someone into paralysis, but by fixing the process.&lt;&#x2F;p&gt;
&lt;p&gt;By improving YOUR Platform.&lt;&#x2F;p&gt;
&lt;p&gt;The opportunity for the individual&#x2F;organization who made the mistake to help fix
the process is a graceful way out and preserves their dignity.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚀 Do you own your deployment?</title>
        <published>2024-09-23T00:00:00+00:00</published>
        <updated>2024-09-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0043-do-you-own-your-deployment/"/>
        <id>https://daily.bec-systems.com/0043-do-you-own-your-deployment/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0043-do-you-own-your-deployment/">&lt;p&gt;Saturday morning, I got a call from a customer -- something was not working due
to a bug we had deployed Friday (no we don&#x27;t have very good tests) 🤫.&lt;&#x2F;p&gt;
&lt;p&gt;The fix was easy, I tested it locally, and then tried to push it to a Git
hosting service we are using, but the Git service was down.&lt;&#x2F;p&gt;
&lt;p&gt;Now what? Our Ansible deployment script pulled directly from git, built the
program, and then deployed it.&lt;&#x2F;p&gt;
&lt;p&gt;While I could reverse engineer the build from the Ansible scripts and do it
manually, that would have taken time and introduced the possibility of another
error.&lt;&#x2F;p&gt;
&lt;p&gt;So I pushed the repo to my Gitea server, tweaked the repo line in the Ansible
script, and deployed the update -- not a big deal.&lt;&#x2F;p&gt;
&lt;p&gt;This brings up a question though -- we don&#x27;t usually think of deployment as
critical infrastructure -- not a big deal if it is not working -- until you need
to fix something quickly in production.&lt;&#x2F;p&gt;
&lt;p&gt;What if the deployment was wrapped up in some CI&#x2F;CD workflow that only worked in
vendor X&#x27;s cloud service?&lt;&#x2F;p&gt;
&lt;p&gt;Maybe simple deployments are actually a better -- a shell script that lives in
the project repo that you can run anywhere. This could still be called by a CI
process for the normal workflow.&lt;&#x2F;p&gt;
&lt;p&gt;All computing systems have the potential to fail -- it does not matter how big
vendor X is -- their stuff can still fail.&lt;&#x2F;p&gt;
&lt;p&gt;Networks occasionally have problems.&lt;&#x2F;p&gt;
&lt;p&gt;DNS can have issues.&lt;&#x2F;p&gt;
&lt;p&gt;Systems get hacked.&lt;&#x2F;p&gt;
&lt;p&gt;No matter how many layers of complexity we pile on top of this.&lt;&#x2F;p&gt;
&lt;p&gt;In networked computer systems, the simplest path to resiliency is the ability to
QUICKLY rebuild systems, whether that is your workstation, laptop, server, or
deployment system.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔧 What will you improve today?</title>
        <published>2024-09-20T00:00:00+00:00</published>
        <updated>2024-09-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0042-what-will-you-improve-today/"/>
        <id>https://daily.bec-systems.com/0042-what-will-you-improve-today/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0042-what-will-you-improve-today/">&lt;p&gt;Platforms are all about improvement -- at the personal, team, and company
levels.&lt;&#x2F;p&gt;
&lt;p&gt;One approach is to each day write down something you are going to improve and
set aside a small block of time daily to work on it. Make this part of your
personal process.&lt;&#x2F;p&gt;
&lt;p&gt;This does not have to be something big -- clean your workspace, create a
checklist for something you don&#x27;t enjoy doing, automate something, write some
documentation to help others on the team, write a test for some troublesome
code, refactor something, improve CI&#x2F;CD, ...&lt;&#x2F;p&gt;
&lt;p&gt;The internal improvements you do today, while not directly seen by your
customers, will help you deliver something better tomorrow.&lt;&#x2F;p&gt;
&lt;p&gt;What will you improve in YOUR Platform today? Reply and I&#x27;ll compile a list and
share it in a future post.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>What is the role of vision?</title>
        <published>2024-09-19T00:00:00+00:00</published>
        <updated>2024-09-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0041-vision/"/>
        <id>https://daily.bec-systems.com/0041-vision/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0041-vision/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0040-preparing-for-the-future&#x2F;&quot;&gt;Yesterday&lt;&#x2F;a&gt;, we
discussed the difficulty in predicting the future and the folly of
&quot;just-in-case&quot; development.&lt;&#x2F;p&gt;
&lt;p&gt;However, we should not discount the need for vision -- the sense for where we
need to go in the future.&lt;&#x2F;p&gt;
&lt;p&gt;Not necessarily specifics, but a gut-feel for where things are heading.&lt;&#x2F;p&gt;
&lt;p&gt;Clearly seeing problems that could be solved.&lt;&#x2F;p&gt;
&lt;p&gt;To understand the changes that are happening in our respective industries.&lt;&#x2F;p&gt;
&lt;p&gt;To realize the potential of new technologies that most don&#x27;t understand.&lt;&#x2F;p&gt;
&lt;p&gt;This vision does not translate to &quot;just-in-case&quot; feature development, but rather
building a platform that prepares you to meet the future.&lt;&#x2F;p&gt;
&lt;p&gt;Where you can quickly build the features your customers need as you learn the
specifics.&lt;&#x2F;p&gt;
&lt;p&gt;Where iterations cost very little.&lt;&#x2F;p&gt;
&lt;p&gt;Where new features and technologies can be integrated, validated, and deployed
-- confidently.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔮 Preparing for the future</title>
        <published>2024-09-18T00:00:00+00:00</published>
        <updated>2024-09-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0040-preparing-for-the-future/"/>
        <id>https://daily.bec-systems.com/0040-preparing-for-the-future/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0040-preparing-for-the-future/">&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0039-the-platform-test&#x2F;&quot;&gt;Yesterday&lt;&#x2F;a&gt;, we discussed
a fundamental characteristic of a platform: it will go places you never
imagined.&lt;&#x2F;p&gt;
&lt;p&gt;How do we prepare for this?&lt;&#x2F;p&gt;
&lt;p&gt;There are two ways:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Try to predict where things will go in the future and build specific features
into your platform now -- just in case ...&lt;&#x2F;li&gt;
&lt;li&gt;Build the tooling, processes, and workflows so that you can easily and
confidently add functionality when it is needed.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;It is obvious which approach works better -- if we try to predict the future (at
least the specifics), we are more often wrong.&lt;&#x2F;p&gt;
&lt;p&gt;We can either try to build the future now, or prepare to meet it as it comes.&lt;&#x2F;p&gt;
&lt;p&gt;The line between these two is often difficult to discern.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✅ The Platform Test</title>
        <published>2024-09-17T00:00:00+00:00</published>
        <updated>2024-09-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0039-the-platform-test/"/>
        <id>https://daily.bec-systems.com/0039-the-platform-test/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0039-the-platform-test/">&lt;p&gt;How do you know if you own YOUR Platform?&lt;&#x2F;p&gt;
&lt;p&gt;If a customer needs a new hardware interface or connector on a product, can you
easily add that?&lt;&#x2F;p&gt;
&lt;p&gt;If a security vulnerability is found in a piece of software in your stack, can
you fix it?&lt;&#x2F;p&gt;
&lt;p&gt;If a customer wants to use a new USB peripheral in a product, can you release a
new SW version with that driver included?&lt;&#x2F;p&gt;
&lt;p&gt;Can you do all the above quickly, easily, and with confidence?&lt;&#x2F;p&gt;
&lt;p&gt;If so, you likely own YOUR Platform.&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s the thing -- embedded systems today are general purpose, updatable, and
expandable. That means people will do things with them that you never imagined.&lt;&#x2F;p&gt;
&lt;p&gt;A fundamental characteristic of a platform is that it will go places you never
imagined.&lt;&#x2F;p&gt;
&lt;p&gt;Are you prepared for that?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🤖 What is the role of AI in your platform?</title>
        <published>2024-09-16T00:00:00+00:00</published>
        <updated>2024-09-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0038-role-of-ai/"/>
        <id>https://daily.bec-systems.com/0038-role-of-ai/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0038-role-of-ai/">&lt;p&gt;We hear much today about how AI is going to do our jobs better than us.&lt;&#x2F;p&gt;
&lt;p&gt;AI is powerful and has access to a lot of information and does a lot of things
humans can&#x27;t do.&lt;&#x2F;p&gt;
&lt;p&gt;It is really great at writing shell scripts, boilerplate in programs, figuring
out how to use an API, summarizing public information on the Internet, etc.&lt;&#x2F;p&gt;
&lt;p&gt;But these tasks are not the differentiator.&lt;&#x2F;p&gt;
&lt;p&gt;The real value is going deep.&lt;&#x2F;p&gt;
&lt;p&gt;Information found only in books, which AI does not have access to.&lt;&#x2F;p&gt;
&lt;p&gt;Experience found only in people and encoded in platforms.&lt;&#x2F;p&gt;
&lt;p&gt;AI in a product can be useful for extracting information from YOUR data.&lt;&#x2F;p&gt;
&lt;p&gt;General AI tools are platforms in themselves, but probably not YOUR Platform,
and probably not the creator of the primary value of YOUR Platform.&lt;&#x2F;p&gt;
&lt;p&gt;YOUR Platform is for extracting and leveraging the deep -- the value people
need.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 What is the first thing you should implement?</title>
        <published>2024-09-06T00:00:00+00:00</published>
        <updated>2024-09-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0037-update/"/>
        <id>https://daily.bec-systems.com/0037-update/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0037-update/">&lt;p&gt;When building a new system, what is the first thing you implement?&lt;&#x2F;p&gt;
&lt;p&gt;There are a lot of approaches -- one is to implement a minimal proof of concept.&lt;&#x2F;p&gt;
&lt;p&gt;However, I think an easy way to update software in any part of the system  (Linux edge devices, microcontrollers, cloud applications) is something that should be done as early as practical.&lt;&#x2F;p&gt;
&lt;p&gt;Requiring a technician to go on-site with a computer and specialized software does not count.&lt;&#x2F;p&gt;
&lt;p&gt;Neither does a multi-step manual process of manually building something, scp&#x27;ing files to a server, manually restarting stuff, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Deploying new software to any system should be easy and quick.&lt;&#x2F;p&gt;
&lt;p&gt;A single click, or putting a single file on USB disk and rebooting a device, or merging to main and continuous delivery (CD) delivers our new software to the cloud.&lt;&#x2F;p&gt;
&lt;p&gt;We may think nice update mechanisms are for our customers in production, and they certainly are.&lt;&#x2F;p&gt;
&lt;p&gt;But update tooling also helps us during development.&lt;&#x2F;p&gt;
&lt;p&gt;An easy way to update systems encourages us to do it more often, because it is easy.&lt;&#x2F;p&gt;
&lt;p&gt;We iterate faster.&lt;&#x2F;p&gt;
&lt;p&gt;Fixes and improvements are deployed instantly.&lt;&#x2F;p&gt;
&lt;p&gt;We test more systems during development.&lt;&#x2F;p&gt;
&lt;p&gt;We can easily adapt as we learn more about the problem we are trying to solve.&lt;&#x2F;p&gt;
&lt;p&gt;We can involve more non-technical people in development and testing.&lt;&#x2F;p&gt;
&lt;p&gt;What helps us scale in production also helps us scale during development.&lt;&#x2F;p&gt;
&lt;p&gt;Instead of doing update last, do it first -- as an integral part of YOUR Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🚫 No Golden Machines</title>
        <published>2024-09-05T00:00:00+00:00</published>
        <updated>2024-09-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0036-no-golden-machines/"/>
        <id>https://daily.bec-systems.com/0036-no-golden-machines/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0036-no-golden-machines/">&lt;p&gt;As humans, we can become attached to &quot;golden&quot; machines.&lt;&#x2F;p&gt;
&lt;p&gt;A very expensive bicycle set up just right, a well-tuned tool, a nicely
configured workstation, a server that we have set up just right ...&lt;&#x2F;p&gt;
&lt;p&gt;We like buying expensive things or the iterative process of tweaking things just
right.&lt;&#x2F;p&gt;
&lt;p&gt;However, this generally does not move YOUR Platform forward.&lt;&#x2F;p&gt;
&lt;p&gt;Everything on this earth is ephemeral.&lt;&#x2F;p&gt;
&lt;p&gt;Laptops are damaged. Bicycles are stolen. Tools break. Severs crash.&lt;&#x2F;p&gt;
&lt;p&gt;So then we become obsessed with protecting our golden machines -- locks,
excessive security, redundancy, monitoring, etc.&lt;&#x2F;p&gt;
&lt;p&gt;The problem with being over-protective is that it is time-consuming and hinders
our using something in the first place.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;re afraid to use it in case we might mess it up.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;re afraid to change it because we don&#x27;t understand the history of tweaks.&lt;&#x2F;p&gt;
&lt;p&gt;What if instead we said: &quot;NO GOLDEN MACHINES&quot;&lt;&#x2F;p&gt;
&lt;p&gt;If our laptop gets run over, we can quickly set up a new one.&lt;&#x2F;p&gt;
&lt;p&gt;If the server crashes, we can quickly deploy a new one.&lt;&#x2F;p&gt;
&lt;p&gt;If we need to use a favorite editor on a different computer, it only takes 2
minutes to set it up.&lt;&#x2F;p&gt;
&lt;p&gt;If our bicycle is stolen, we buy another reasonably priced one and have the
skills to set it up.&lt;&#x2F;p&gt;
&lt;p&gt;YOUR Platform is best built from machines that we can easily use, replicate, and
scale, not golden machines that we have to protect.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🙋 How to help yourself?</title>
        <published>2024-09-04T00:00:00+00:00</published>
        <updated>2024-09-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0035-how-to-help-yourself/"/>
        <id>https://daily.bec-systems.com/0035-how-to-help-yourself/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0035-how-to-help-yourself/">&lt;p&gt;Did you ever have the experience going back into a project you have not touched
for 6 months -- why did I make this change?&lt;&#x2F;p&gt;
&lt;p&gt;Or did you ever struggle to get all the dependencies installed to build a
project you wrote?&lt;&#x2F;p&gt;
&lt;p&gt;Or did you ever wonder -- will this change break something I&#x27;m not thinking of?&lt;&#x2F;p&gt;
&lt;p&gt;Or did you ever question -- how do we actually deploy this now that it is
updated?&lt;&#x2F;p&gt;
&lt;p&gt;Ironically, when you try really hard to help others use your work --
documentation, tests, CI&#x2F;CD -- you are mostly helping your future self.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔎 Seeing patterns</title>
        <published>2024-09-03T00:00:00+00:00</published>
        <updated>2024-09-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0034-seeing-patterns/"/>
        <id>https://daily.bec-systems.com/0034-seeing-patterns/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0034-seeing-patterns/">&lt;p&gt;Patterns are important.&lt;&#x2F;p&gt;
&lt;p&gt;Seeing patterns allows us to simplify things by using common data structures,
re-using code&#x2F;design, finding solutions to common problems, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Being able to see patterns also allows us to troubleshoot effectively.&lt;&#x2F;p&gt;
&lt;p&gt;But, to see patterns, we need to have history and data in a form that is easy to
see and process.&lt;&#x2F;p&gt;
&lt;p&gt;For troubleshooting, this may be a common place to collect notes -- say every
time a system fails, we record the incident in a single shared Google Doc.&lt;&#x2F;p&gt;
&lt;p&gt;Tagging is also effective -- we might tag a dataset for different types of
events, and then be able to quickly filter on different combinations of tags.&lt;&#x2F;p&gt;
&lt;p&gt;To see patterns in source code, we need to have source code organized such that
it is easy to see and navigate through all of it -- for most of this, this means
a &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;monoliths-and-monorepos&#x2F;202&quot;&gt;monorepo&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Transparency is critical -- can we easily see things other people are working
on, or is each person or team working in walled-off silos?&lt;&#x2F;p&gt;
&lt;p&gt;Patterns are not invented, but rather discovered.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms are all about identifying and leveraging patterns.&lt;&#x2F;p&gt;
&lt;p&gt;And seeing patterns requires transparency, thoughtful organization of our
assets, and rigorous logging of what happens over time.&lt;&#x2F;p&gt;
&lt;p&gt;Do these things, and patterns will naturally emerge, for YOUR Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🗝️ What is the best tool for private Git repos?</title>
        <published>2024-09-02T00:00:00+00:00</published>
        <updated>2024-09-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0033-best-tool-for-private-git/"/>
        <id>https://daily.bec-systems.com/0033-best-tool-for-private-git/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0033-best-tool-for-private-git/">&lt;p&gt;Several days ago, I
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0030-modern-git-tools&#x2F;&quot;&gt;made a case&lt;&#x2F;a&gt; for using
Github to engage users around your OSS project.&lt;&#x2F;p&gt;
&lt;p&gt;But is this the hammer you should use to drive every nail?&lt;&#x2F;p&gt;
&lt;p&gt;For private projects, I think Gitea is actually better in most respects.&lt;&#x2F;p&gt;
&lt;p&gt;It is very fast, clean, and most of the basic functions work as good or better
than Github.&lt;&#x2F;p&gt;
&lt;p&gt;And you can host all but the largest repos on a $5&#x2F;mo Linode with unlimited
users.&lt;&#x2F;p&gt;
&lt;p&gt;Groups and permissions are very flexible.&lt;&#x2F;p&gt;
&lt;p&gt;Branch protection works.&lt;&#x2F;p&gt;
&lt;p&gt;In all, it is very good!&lt;&#x2F;p&gt;
&lt;p&gt;I wrote an &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cbrake&#x2F;ansible-role-gitea&quot;&gt;Ansible role&lt;&#x2F;a&gt; that
works very well for updating your Gitea instance. I&#x27;ve updated through ~70 Gitea
versions with almost no problems.&lt;&#x2F;p&gt;
&lt;p&gt;Gitea may be a better option for YOUR internal Platform -- more details to
follow ...&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🐶 Lessons from a 1-year old dog</title>
        <published>2024-08-30T00:00:00+00:00</published>
        <updated>2024-08-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0032-lessons-from-a-dog/"/>
        <id>https://daily.bec-systems.com/0032-lessons-from-a-dog/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0032-lessons-from-a-dog/">&lt;p&gt;As I was going through my morning routine with our 1.3 year old dog, Reese, who
is very energetic, it occurred to me how well short training sessions &lt;em&gt;every&lt;&#x2F;em&gt;
morning are working.&lt;&#x2F;p&gt;
&lt;p&gt;A 12hr session with her once a month will do virtually nothing.&lt;&#x2F;p&gt;
&lt;p&gt;Improvement is not really what my dog wants to be doing -- she would rather
chase squirrels, dig holes, jump on people -- do something heroic.&lt;&#x2F;p&gt;
&lt;p&gt;Likewise, most of us don&#x27;t really want to clean our office, write a CI script,
refactor some messy code -- we want to design things, code a new feature, make a
sale, build 1000 widgets, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Improvement is hard and sometimes painful.&lt;&#x2F;p&gt;
&lt;p&gt;And the pain is proportional to the size of the improvement dose we are facing.&lt;&#x2F;p&gt;
&lt;p&gt;If we can break it down into small enough chunks, it is manageable, and actually
enjoyable.&lt;&#x2F;p&gt;
&lt;p&gt;Platform improvements are rarely moments of deep inspiration, but rather just
buckling down and doing what you know should be done.&lt;&#x2F;p&gt;
&lt;p&gt;Discipline.&lt;&#x2F;p&gt;
&lt;p&gt;And this sometimes works best if you schedule a time block every day -- 25
minutes, start the timer, go ...&lt;&#x2F;p&gt;
&lt;p&gt;You only have 25m, get going, now!&lt;&#x2F;p&gt;
&lt;p&gt;And after our morning walk, Reese now walks toward where her leash is hanging --
she is actually looking forward to these short, regular sessions.&lt;&#x2F;p&gt;
&lt;p&gt;Improvement is best continuous.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;reese.png&quot; alt=&quot;dog&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔍 Solving problems or symptoms?</title>
        <published>2024-08-29T00:00:00+00:00</published>
        <updated>2024-08-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0031-solving-problems-or-symptoms/"/>
        <id>https://daily.bec-systems.com/0031-solving-problems-or-symptoms/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0031-solving-problems-or-symptoms/">&lt;p&gt;The following quotes from the book &quot;The One-Straw Revolution&quot; caught my eye:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The more elaborate the countermeasures, the more complicated the problems
become. ... When a decision is made to cope with the symptoms of a problem, it
is generally assumed that the corrective measures will solve the problem
itself. They seldom do. Engineers cannot seem to get this through their heads.
These countermeasures are all based on too narrow a definition of what is
wrong.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Although Masanobu Fukuoka&#x27;s book is about agricultural systems, the concepts
apply to systems in general.&lt;&#x2F;p&gt;
&lt;p&gt;With security, do we pile on additional layers of checking, detection, etc., or
do we use a simpler and more secure technology to start with?&lt;&#x2F;p&gt;
&lt;p&gt;For reliability, do we implement elaborate distributed&#x2F;redundant systems that
check each other, or improve our testing of a single system so that it rarely
fails?&lt;&#x2F;p&gt;
&lt;p&gt;When deployment mistakes are made, do we add more bureaucracy and red tape, or
do we improve the process&#x2F;tooling such that it is difficult to make the mistake
in the first place?&lt;&#x2F;p&gt;
&lt;p&gt;When something is not working, do we add on layers of complexity to fix it, or
try to simplify and identify the root cause?&lt;&#x2F;p&gt;
&lt;p&gt;One way to improve this is ask &quot;why?&quot; five times.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🐙 Github and why does it matter?</title>
        <published>2024-08-28T00:00:00+00:00</published>
        <updated>2024-08-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0030-modern-git-tools/"/>
        <id>https://daily.bec-systems.com/0030-modern-git-tools/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0030-modern-git-tools/">&lt;p&gt;For the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0028-what-makes-a-good-bsp&#x2F;&quot;&gt;last&lt;&#x2F;a&gt; two
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0029-tracking-upstream&#x2F;&quot;&gt;days&lt;&#x2F;a&gt;, we have been
discussing aspects of several high-quality Yocto BSPs.&lt;&#x2F;p&gt;
&lt;p&gt;Another characteristic of these three BSPs is that they are all hosted on
Github.&lt;&#x2F;p&gt;
&lt;p&gt;Yes, there are many other platforms you can host Git repositories on.&lt;&#x2F;p&gt;
&lt;p&gt;You can easily do your own Git hosting (I personally use Gitea for private Git
repos).&lt;&#x2F;p&gt;
&lt;p&gt;But, for better or worse, if you want to engage with a world-wide community
around a software project, Github is the easiest, lowest friction place to do
that.&lt;&#x2F;p&gt;
&lt;p&gt;Most developers have a Github account, and this means they can easily create
issue tickets, submit pull requests etc.&lt;&#x2F;p&gt;
&lt;p&gt;Some projects, like the Linux kernel, are so popular and well-established it
does not really matter how they interact with the community. They can be rude,
use older methods of handling changes like patches on a mail-list, etc. and it
does not matter. It might even be argued that these &quot;barriers to entry&quot; are
helpful in weeding out the noise in a very large project. Perhaps this is true.&lt;&#x2F;p&gt;
&lt;p&gt;But for most of us, we are not at that scale. We don&#x27;t have that luxury. Even
most downstream Linux trees are hosted on Github these days.&lt;&#x2F;p&gt;
&lt;p&gt;If users find it difficult to engage and interact with us, they won&#x27;t bother,
especially the younger generation of developers.&lt;&#x2F;p&gt;
&lt;p&gt;Most developers are (rightly) focused on their projects -- their work, not
yours. Thus, it is an act of generosity if they take the time to interact with
or contribute to a supplier&#x27;s project. They are doing it because they want to --
not because they have to.&lt;&#x2F;p&gt;
&lt;p&gt;And if users can&#x27;t easily interact with a supplier, does that supplier really
understand their concerns?&lt;&#x2F;p&gt;
&lt;p&gt;Github has set a new standard for transparency, tooling, and interaction. It is
the lowest friction platform for social coding. And social matters today.&lt;&#x2F;p&gt;
&lt;p&gt;This all has implications for how users&#x2F;customers interact with YOUR Platform
(if public) and how you select technology for YOUR Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔁 Tracking upstream and why does it matter?</title>
        <published>2024-08-27T00:00:00+00:00</published>
        <updated>2024-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0029-tracking-upstream/"/>
        <id>https://daily.bec-systems.com/0029-tracking-upstream/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0029-tracking-upstream/">&lt;p&gt;Yesterday, we discussed three Yocto BSP layers that are exceptional:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;OE4T&#x2F;meta-tegra&quot;&gt;meta-tegra&lt;&#x2F;a&gt; (69 contributors)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Freescale&#x2F;meta-freescale&quot;&gt;meta-freescale&lt;&#x2F;a&gt; (174
contributors)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;agherzan&#x2F;meta-raspberrypi&quot;&gt;meta-raspberrypi&lt;&#x2F;a&gt; (157
contributors)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The above three layers make an effort to keep up with upstream developments.
This may mean regularly merging upstream, doing a build, fixing issues --
keeping up.&lt;&#x2F;p&gt;
&lt;p&gt;As a result, they are always ready for the next release of the Linux kernel,
Yocto, whatever.&lt;&#x2F;p&gt;
&lt;p&gt;A little bit of continuous effort is much easier than a monumental effort every
four years.&lt;&#x2F;p&gt;
&lt;p&gt;Why does this matter for small teams&#x2F;companies?&lt;&#x2F;p&gt;
&lt;p&gt;There are many reasons, but when working with complex open-source software,
we&#x27;ll eventually need support&#x2F;help.&lt;&#x2F;p&gt;
&lt;p&gt;And this help typically comes from the community around open-source projects.&lt;&#x2F;p&gt;
&lt;p&gt;And the community is focused on the current development, not a 4-year LTS
release.&lt;&#x2F;p&gt;
&lt;p&gt;Additionally, the latest releases are where security problems get fixed,
features implemented, and value added.&lt;&#x2F;p&gt;
&lt;p&gt;YOUR Platform benefits most from being where the value is being created.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔧 What makes a good Yocto BSP?</title>
        <published>2024-08-26T00:00:00+00:00</published>
        <updated>2024-08-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0028-what-makes-a-good-bsp/"/>
        <id>https://daily.bec-systems.com/0028-what-makes-a-good-bsp/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0028-what-makes-a-good-bsp/">&lt;p&gt;As we evaluate technology to use in our platforms, Yocto Embedded Linux BSPs
often come into the mix.&lt;&#x2F;p&gt;
&lt;p&gt;Recently &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;&quot;&gt;we talked&lt;&#x2F;a&gt; with Matt Madison, who maintains the
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;OE4T&#x2F;meta-tegra&quot;&gt;meta-tegra&lt;&#x2F;a&gt; BSP layer, which provides Yocto
support for Nvidia&#x27;s embedded processors, which are increasingly becoming
popular in edge AI applications.&lt;&#x2F;p&gt;
&lt;p&gt;We are using meta-tegra in several projects, and it has been a good experience.&lt;&#x2F;p&gt;
&lt;p&gt;What came out of our discussion is that &lt;strong&gt;user&#x2F;community involvement&lt;&#x2F;strong&gt; is what
makes a good BSP.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;agherzan&#x2F;meta-raspberrypi&quot;&gt;meta-freescale&lt;&#x2F;a&gt; and
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;agherzan&#x2F;meta-raspberrypi&quot;&gt;meta-raspberrypi&lt;&#x2F;a&gt; are other
examples of community-oriented BSP layers that are very high quality.&lt;&#x2F;p&gt;
&lt;p&gt;Chip makers have different priorities and concerns than users. And the only way
to understand your users is to get them involved. And the best way to get them
involved is to work on an OSS project together.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ve run the experiment in the Yocto BSP space for 14 years, and the results
are in.&lt;&#x2F;p&gt;
&lt;p&gt;When evaluating a complex technology like processors that rely on open-source,
if a supplier does include their users in the development process, there is a
good chance they don&#x27;t really understand your concerns.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⏰ The present or the future?</title>
        <published>2024-08-23T00:00:00+00:00</published>
        <updated>2024-08-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0027-the-present-or-the-future/"/>
        <id>https://daily.bec-systems.com/0027-the-present-or-the-future/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0027-the-present-or-the-future/">&lt;p&gt;Planning has its place -- we need a vision for where we are going.&lt;&#x2F;p&gt;
&lt;p&gt;But YOUR Platform is best focused on the present, not the future.&lt;&#x2F;p&gt;
&lt;p&gt;Because the future of a complex system is pretty hard to predict.&lt;&#x2F;p&gt;
&lt;p&gt;When we focus on improving our current efforts with refactoring, testing,
automation, documentation, CI&#x2F;CD, etc. in the simplest way possible ...&lt;&#x2F;p&gt;
&lt;p&gt;We pave the way to the future, by reducing friction in the present.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👥 Platform != People</title>
        <published>2024-08-22T00:00:00+00:00</published>
        <updated>2024-08-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0026-platform-not-equal-people/"/>
        <id>https://daily.bec-systems.com/0026-platform-not-equal-people/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0026-platform-not-equal-people/">&lt;p&gt;The right people in your organization is absolutely essential -- no question
about that.&lt;&#x2F;p&gt;
&lt;p&gt;And dealing with &quot;people issues&quot; is a critical and essential skill.&lt;&#x2F;p&gt;
&lt;p&gt;But, if your organization is dependent on a star individual and you are in big
trouble when he&#x2F;she is gone, then you don&#x27;t have a platform.&lt;&#x2F;p&gt;
&lt;p&gt;We need great people, but if they can&#x27;t work in the context of YOUR Platform,
then you will have trouble scaling and hit a major speed bump when they leave.&lt;&#x2F;p&gt;
&lt;p&gt;People come and go.&lt;&#x2F;p&gt;
&lt;p&gt;YOUR Platform is what gives your business the consistency and resiliency to keep
going -- smoothly.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✅ What is the simplest form of automation?</title>
        <published>2024-08-21T00:00:00+00:00</published>
        <updated>2024-08-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0025-what-is-the-simplest-form-of-automation/"/>
        <id>https://daily.bec-systems.com/0025-what-is-the-simplest-form-of-automation/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0025-what-is-the-simplest-form-of-automation/">&lt;p&gt;The simplest form of automation is a checklist or playbook.&lt;&#x2F;p&gt;
&lt;p&gt;If there is something you need to do more than a couple times that involves
multiple steps, a checklist is a great place to start.&lt;&#x2F;p&gt;
&lt;p&gt;Then we no longer have to dread doing a multi-step task because it is easy --
all we need to do is go through the documented steps.&lt;&#x2F;p&gt;
&lt;p&gt;Checklists are surprisingly effective at reducing friction and mistakes. Many of
us do this personally for things like travelling as it is easy to forget
something if we don&#x27;t.&lt;&#x2F;p&gt;
&lt;p&gt;And the beautiful thing about checklists is they can easily be turned into more
advanced forms of automation (scripts, continuous delivery, etc) because you
have already thought through and debugged the process, which is often the hard
part and where we get stuck.&lt;&#x2F;p&gt;
&lt;p&gt;Checklists can turn into scripts, which can turn into continuous delivery.&lt;&#x2F;p&gt;
&lt;p&gt;Part of YOUR Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>📈 How does your product value increase after the initial sale?</title>
        <published>2024-08-20T00:00:00+00:00</published>
        <updated>2024-08-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0024-how-does-you-producct-value-increase/"/>
        <id>https://daily.bec-systems.com/0024-how-does-you-producct-value-increase/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0024-how-does-you-producct-value-increase/">&lt;p&gt;How does your product increase in value after the sale?&lt;&#x2F;p&gt;
&lt;p&gt;Software&#x2F;Firmware&#x2F;Cloud updates.&lt;&#x2F;p&gt;
&lt;p&gt;Software is soft for a reason -- it is meant to be changed, improved.&lt;&#x2F;p&gt;
&lt;p&gt;And sometimes we install &quot;apps&quot; to add new functionality.&lt;&#x2F;p&gt;
&lt;p&gt;And with this improvement comes increased value.&lt;&#x2F;p&gt;
&lt;p&gt;It is kind of like your phone -- with each new OS update, things generally get
better.&lt;&#x2F;p&gt;
&lt;p&gt;Each app you install (potentially) provides some utility.&lt;&#x2F;p&gt;
&lt;p&gt;Why, because modern phones are platforms.&lt;&#x2F;p&gt;
&lt;p&gt;Is your product a platform, or is it at least built and deployed using a
platform?&lt;&#x2F;p&gt;
&lt;p&gt;Does its value increase over time?&lt;&#x2F;p&gt;
&lt;p&gt;At industrial product scale, you don&#x27;t necessarily need to support user
installed apps, but you need to at least be able to add functionality, fix
things, and deploy these updates -- efficiently.&lt;&#x2F;p&gt;
&lt;p&gt;How? With YOUR Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚠️ Hack-it, ship-it, forget-it ...</title>
        <published>2024-08-19T00:00:00+00:00</published>
        <updated>2024-08-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0023-hack-it-ship-it-forget-it/"/>
        <id>https://daily.bec-systems.com/0023-hack-it-ship-it-forget-it/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0023-hack-it-ship-it-forget-it/">&lt;p&gt;Hack-it, ship-it, forget-it ... is a race to the bottom where cost is the only
thing that matters.&lt;&#x2F;p&gt;
&lt;p&gt;The initial delivery is what your customer gets -- forever.&lt;&#x2F;p&gt;
&lt;p&gt;These types of products only depreciate.&lt;&#x2F;p&gt;
&lt;p&gt;And cannot be maintained.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;Alternatively, the value of your product can &lt;em&gt;increase&lt;&#x2F;em&gt; over time.&lt;&#x2F;p&gt;
&lt;p&gt;Where you fix problems quickly.&lt;&#x2F;p&gt;
&lt;p&gt;And add features in a timely fashion as needs&#x2F;markets change.&lt;&#x2F;p&gt;
&lt;p&gt;Where you overcome the laws of chaos and improve instead of decay.&lt;&#x2F;p&gt;
&lt;p&gt;Because you own YOUR Platform.&lt;&#x2F;p&gt;
&lt;p&gt;Which business do you want to be in?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏆 What is the #1 purpose of YOUR Platform?</title>
        <published>2024-08-16T00:00:00+00:00</published>
        <updated>2024-08-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0022-no1-purpose-of-your-platform/"/>
        <id>https://daily.bec-systems.com/0022-no1-purpose-of-your-platform/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0022-no1-purpose-of-your-platform/">&lt;p&gt;The purpose of YOUR Platform is to reduce friction in delivering value to your
customers.&lt;&#x2F;p&gt;
&lt;p&gt;We are in business to deliver value to our customers.&lt;&#x2F;p&gt;
&lt;p&gt;If we can do this better, we can deliver more value.&lt;&#x2F;p&gt;
&lt;p&gt;There are lots of ways we can do this.&lt;&#x2F;p&gt;
&lt;p&gt;Automation.&lt;&#x2F;p&gt;
&lt;p&gt;Better tools.&lt;&#x2F;p&gt;
&lt;p&gt;Additional features.&lt;&#x2F;p&gt;
&lt;p&gt;Quality&#x2F;stability improvements.&lt;&#x2F;p&gt;
&lt;p&gt;Release more often.&lt;&#x2F;p&gt;
&lt;p&gt;Respond more quickly.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌱 Culture</title>
        <published>2024-08-15T00:00:00+00:00</published>
        <updated>2024-08-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0021-platform-culture/"/>
        <id>https://daily.bec-systems.com/0021-platform-culture/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0021-platform-culture/">&lt;p&gt;What type of culture do platforms thrive in?&lt;&#x2F;p&gt;
&lt;p&gt;Where ideas are valued and evaluated on merit and truth.&lt;&#x2F;p&gt;
&lt;p&gt;Where initiative is rewarded.&lt;&#x2F;p&gt;
&lt;p&gt;Where mistakes result in process improvements, not scoldings.&lt;&#x2F;p&gt;
&lt;p&gt;Where openness and transparency are the standard.&lt;&#x2F;p&gt;
&lt;p&gt;Where anyone can improve anything in the system -- there is no protecting turf.&lt;&#x2F;p&gt;
&lt;p&gt;Where OSS tools are used when possible.&lt;&#x2F;p&gt;
&lt;p&gt;Where things are continuously improved.&lt;&#x2F;p&gt;
&lt;p&gt;Platform cultures are organic.&lt;&#x2F;p&gt;
&lt;p&gt;We can learn a lot from Open Source projects here ...&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏗️ Three levels of YOUR Platform</title>
        <published>2024-08-14T00:00:00+00:00</published>
        <updated>2024-08-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0020-three-levels-of-your-platform/"/>
        <id>https://daily.bec-systems.com/0020-three-levels-of-your-platform/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0020-three-levels-of-your-platform/">&lt;p&gt;We can look at platforms at three levels.&lt;&#x2F;p&gt;
&lt;img src=&quot;&#x2F;platform-levels.png&quot; alt=&quot;platform levels&quot; style=&quot;zoom:50%;&quot; &#x2F;&gt;
&lt;p&gt;Your personal platform is the know-how that you can personally reuse from
task-to-task, project-to-project, and job-to-job. But, it is not real useful
outside yourself.&lt;&#x2F;p&gt;
&lt;p&gt;A product platform may be what a team uses to efficiently build, maintain, and
produce variants of a product.&lt;&#x2F;p&gt;
&lt;p&gt;A company platform is when you are able to reuse know-how, technology, tools,
and processes on one product and leverage that on the next product, and when an
improvement on one product improves another.&lt;&#x2F;p&gt;
&lt;p&gt;All three are valuable, but the higher up the stack you can go, the higher the
value.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👣 What are the first steps?</title>
        <published>2024-08-13T00:00:00+00:00</published>
        <updated>2024-08-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0019-what-are-the-first-steps/"/>
        <id>https://daily.bec-systems.com/0019-what-are-the-first-steps/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0019-what-are-the-first-steps/">&lt;p&gt;What are the first steps to building YOUR Platform?&lt;&#x2F;p&gt;
&lt;p&gt;Ironically, the first step is not some grandiose new Platform vision, but rather
to set your house in order.&lt;&#x2F;p&gt;
&lt;p&gt;Clean up what you already have.&lt;&#x2F;p&gt;
&lt;p&gt;Fix legacy code (code without tests).&lt;&#x2F;p&gt;
&lt;p&gt;Set up CI&#x2F;CD.&lt;&#x2F;p&gt;
&lt;p&gt;Implement end-to-end testing so that you can deploy with confidence.&lt;&#x2F;p&gt;
&lt;p&gt;Write documentation.&lt;&#x2F;p&gt;
&lt;p&gt;This paves the highway for efficiently moving forward, instead of slogging
through the mud.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔄 What is YOUR Platform? (v2)</title>
        <published>2024-08-12T00:00:00+00:00</published>
        <updated>2024-08-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0018-what-is-a-platform-v2/"/>
        <id>https://daily.bec-systems.com/0018-what-is-a-platform-v2/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0018-what-is-a-platform-v2/">&lt;p&gt;Had a nice visit with &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;rodaparicio.com&#x2F;&quot;&gt;Rod&lt;&#x2F;a&gt; and he asked me to
describe what a Platform is in 20 words or less, so here we go:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;YOUR Platform is the collection of technology, tools, and processes that
enable&lt;&#x2F;em&gt;&lt;&#x2F;strong&gt; &lt;strong&gt;&lt;em&gt;you to differentiate and consistently deliver your products and
services.&lt;&#x2F;em&gt;&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;sorry Rod, that is 22 words :-)&lt;&#x2F;p&gt;
&lt;p&gt;We have &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0004-what-is-a-platform&#x2F;&quot;&gt;discussed&lt;&#x2F;a&gt; this
before, but I want to revisit this question occasionally and see if the
definition improves over time.&lt;&#x2F;p&gt;
&lt;p&gt;What got added this time is &quot;differentiate&quot; and &quot;consistently&quot;.&lt;&#x2F;p&gt;
&lt;p&gt;Thoughts?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>❓ But what if ...</title>
        <published>2024-08-08T00:00:00+00:00</published>
        <updated>2024-08-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0017-but-what-if/"/>
        <id>https://daily.bec-systems.com/0017-but-what-if/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0017-but-what-if/">&lt;p&gt;In the &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;daily.bec-systems.com&#x2F;0016-you-are-not-google&#x2F;&quot;&gt;last post&lt;&#x2F;a&gt;, we
discussed the fallacy of using complex technology when the scale does not justify
it.&lt;&#x2F;p&gt;
&lt;p&gt;But, what if we get a lot more customers, or sell a lot more systems? Should we
not plan for the future now? Use technologies now that will work at large scale?
We don&#x27;t want to paint ourselves into a corner such that we end up with a system
that won&#x27;t meet our needs in the future.&lt;&#x2F;p&gt;
&lt;p&gt;Certainly, we should keep the future in mind, but the most important way to plan
for the future is to streamline your processes and development workflow now so
that you can continually move toward the future as it comes.&lt;&#x2F;p&gt;
&lt;p&gt;NOT try to implement the future now. That is costly, and you&#x27;ll never get it
right that way.&lt;&#x2F;p&gt;
&lt;p&gt;Some decisions are important now and some are not.&lt;&#x2F;p&gt;
&lt;p&gt;You don&#x27;t need to use Kubernetes now -- you can add that in later. But it is
important to use some type of automated configuration and deployment -- perhaps
a simpler solution like a simple Github Action, or Ansible.&lt;&#x2F;p&gt;
&lt;p&gt;The same with micro-services. It is easy to split things apart later as it makes
sense. But it is difficult to deal with a mess that is prematurely split up.&lt;&#x2F;p&gt;
&lt;p&gt;You can plan by using a decoupled architecture, data structures that are
flexible, and modern programming languages that are efficient.&lt;&#x2F;p&gt;
&lt;p&gt;If you have an efficient workflow where it is easy to make and deploy changes,
the correct architecture will naturally emerge. You will continually simplify
things as you see common patterns.&lt;&#x2F;p&gt;
&lt;p&gt;And simple patterns are what scale to any problem.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔍 You are not Google</title>
        <published>2024-08-07T00:00:00+00:00</published>
        <updated>2024-08-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0016-you-are-not-google/"/>
        <id>https://daily.bec-systems.com/0016-you-are-not-google/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0016-you-are-not-google/">&lt;p&gt;A blog article published 2017 titled
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;blog.bradfieldcs.com&#x2F;you-are-not-google-84912cf44afb&quot;&gt;You Are Not Google&lt;&#x2F;a&gt;
is a good read. This article makes the case that most companies are not
operating at the size of Google, Amazon, and LinkedIn. Thus, most of us are
solving different problems than the big 5 tech companies.&lt;&#x2F;p&gt;
&lt;p&gt;YOUR Platform needs to fit your problems at your scale.&lt;&#x2F;p&gt;
&lt;p&gt;If one server will work, then you are saving yourself untold pain and suffering
by not pre-maturely building a distributed system.&lt;&#x2F;p&gt;
&lt;p&gt;If one monolothic application can run your product, then you are saving a lot of
hassle not implementing microservices up front.&lt;&#x2F;p&gt;
&lt;p&gt;Keep it simple -- you can move to distributed micro-services later -- AFTER you
succeed at a smaller scale.&lt;&#x2F;p&gt;
&lt;p&gt;And if you succeed at small scale, then there will be plenty of resources to
adjust your architecture later.&lt;&#x2F;p&gt;
&lt;p&gt;The quicker you can get to a MVP, the better, and simple gets you there quicker.&lt;&#x2F;p&gt;
&lt;p&gt;But what if ??? ... stay tuned :-)&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>💰 Owning YOUR platform is not more expensive</title>
        <published>2024-08-06T00:00:00+00:00</published>
        <updated>2024-08-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0015-owning-your-platform-is-not-more-expensive/"/>
        <id>https://daily.bec-systems.com/0015-owning-your-platform-is-not-more-expensive/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0015-owning-your-platform-is-not-more-expensive/">&lt;p&gt;Owning your platform sounds expensive.&lt;&#x2F;p&gt;
&lt;p&gt;&quot;We can&#x27;t afford ops people to manage servers.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;&quot;Security is scary.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;&quot;We don&#x27;t want to manage a database.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;However, at the scale of most industrial products, none of these things are very
hard.&lt;&#x2F;p&gt;
&lt;p&gt;A couple servers can easily handle all your traffic.&lt;&#x2F;p&gt;
&lt;p&gt;A backup and restore plan can handle failures in most cases. Redundancy and
high-availability are overkill.&lt;&#x2F;p&gt;
&lt;p&gt;Cloud services require management too -- often you end of managing the cost
instead of the fundamental issues listed above. Six of one, half-dozen of the
other -- take your pick. And then you still have to deal with problems -- often
due to the distributed nature of cloud services where the network is the weak
link.&lt;&#x2F;p&gt;
&lt;p&gt;See DHH&#x27;s posts on
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;community.tmpdir.org&#x2F;t&#x2F;why-were-leaving-the-cloud&#x2F;697&quot;&gt;&quot;leaving the cloud&quot;&lt;&#x2F;a&gt;
for an example. They are saving millions owning and managing their own servers
and it is not any more work.&lt;&#x2F;p&gt;
&lt;p&gt;You can hitch up to one of the major cloud vendors and go all in on their
services -- that is what everyone else is doing.&lt;&#x2F;p&gt;
&lt;p&gt;Or you can do something different. Take the technology that is being developed
for the cloud, use the cloud where it make sense, and then optimize for YOUR
Platform.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>⚖️ False vs Real Platform Development</title>
        <published>2024-08-05T00:00:00+00:00</published>
        <updated>2024-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0014-real-vs-false-platform-development/"/>
        <id>https://daily.bec-systems.com/0014-real-vs-false-platform-development/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0014-real-vs-false-platform-development/">&lt;p&gt;A common objection to investing in a platform is that it is &quot;too expensive.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;&quot;We want to get it right, lock it down, and then crank out our product and make
some $$$.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;Many managers and owners are wary of platform development because they have
experienced &lt;em&gt;false&lt;&#x2F;em&gt; platform development -- endless tinkering, the costly
pursuit of perfection, etc.&lt;&#x2F;p&gt;
&lt;p&gt;However, real platform development is focused on shipping as soon as possible
and then improving.&lt;&#x2F;p&gt;
&lt;p&gt;Real platform development is realizing that complex, connected systems are
dynamic, living things that need maintained. They do not operate in isolation.&lt;&#x2F;p&gt;
&lt;p&gt;Real platform developers have the humility to realize they can&#x27;t see and
understand the big picture up front until they build something and get feedback.&lt;&#x2F;p&gt;
&lt;p&gt;The key to controlling costs is not locking things down such they cannot change,
but rather the opposite -- improving your process so that improvements are
efficient to develop and and painless to test and deploy.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎆 Do something different</title>
        <published>2024-08-02T00:00:00+00:00</published>
        <updated>2024-08-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0013-doing-something-different/"/>
        <id>https://daily.bec-systems.com/0013-doing-something-different/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0013-doing-something-different/">&lt;p&gt;If you only build on other people&#x27;s platforms, how are you different?&lt;&#x2F;p&gt;
&lt;p&gt;And if you are not different, what value are you providing?&lt;&#x2F;p&gt;
&lt;p&gt;We are not talking different for the sake of being different -- outlandish,
rebel, etc.&lt;&#x2F;p&gt;
&lt;p&gt;We are talking being different in the sense of offering something better --
something that no one else is doing.&lt;&#x2F;p&gt;
&lt;p&gt;Something you can do pretty well.&lt;&#x2F;p&gt;
&lt;p&gt;Something that helps others.&lt;&#x2F;p&gt;
&lt;p&gt;And to do this, you need to own YOUR Platform, otherwise, why would anyone come
to you?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🐜 The smaller you are, the more import YOUR Platform is</title>
        <published>2024-08-01T00:00:00+00:00</published>
        <updated>2024-08-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0012-smaller-more-important-platform/"/>
        <id>https://daily.bec-systems.com/0012-smaller-more-important-platform/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0012-smaller-more-important-platform/">&lt;p&gt;This may seem like a contadiction -- how can small companies afford to own and
control their Platform? Should not this all be outsourced? &quot;Platforms is what
large companies do.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;Actually, the reverse is true. Netflix can afford to build on AWS and be locked
into the AWS platform because they have enough volume that they have clout and
the ability to negotiate. Amazon will make sure Netflix gets what they need.&lt;&#x2F;p&gt;
&lt;p&gt;Small companies cannot get this type of support.&lt;&#x2F;p&gt;
&lt;p&gt;Does this mean &quot;small company&quot; should never use AWS? No, certainly not -- AWS is
a good option for many things.&lt;&#x2F;p&gt;
&lt;p&gt;But it does mean that we only use stuff in AWS that we can migrate elsewhere if
needed.&lt;&#x2F;p&gt;
&lt;p&gt;Use managed Postgres instead of some proprietary AWS.db.&lt;&#x2F;p&gt;
&lt;p&gt;Use NATS running on EC2 or managed at Synadia instead of a proprietary event
system.&lt;&#x2F;p&gt;
&lt;p&gt;Owning YOUR Platform does not mean you build all of it, but rather you have some
level of control over it. You have options.&lt;&#x2F;p&gt;
&lt;p&gt;And the smaller you are, the more important this is.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>😨 Control is a scary thing</title>
        <published>2024-07-31T00:00:00+00:00</published>
        <updated>2024-07-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0011-control-is-scary/"/>
        <id>https://daily.bec-systems.com/0011-control-is-scary/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0011-control-is-scary/">&lt;p&gt;Control is a scary thing -- because then we are responsible.&lt;&#x2F;p&gt;
&lt;p&gt;And if we are responsible, then we can&#x27;t blame someone else.&lt;&#x2F;p&gt;
&lt;p&gt;But if we are not responsible for anything, then what are we doing?&lt;&#x2F;p&gt;
&lt;p&gt;How are we adding value?&lt;&#x2F;p&gt;
&lt;p&gt;Why would anyone want what we are doing?&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎛️ What is control?</title>
        <published>2024-07-30T00:00:00+00:00</published>
        <updated>2024-07-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0010-what-is-control/"/>
        <id>https://daily.bec-systems.com/0010-what-is-control/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0010-what-is-control/">&lt;p&gt;What is control in the context of Your Platform?&lt;&#x2F;p&gt;
&lt;p&gt;Control is simply the ability to respond to opportunities and problems.&lt;&#x2F;p&gt;
&lt;p&gt;In modern systems we are very dependent on others as there is no way we can do
everything ourselves.&lt;&#x2F;p&gt;
&lt;p&gt;But we can also strategically retain enough control so that we can adjust and
adapt as conditions require.&lt;&#x2F;p&gt;
&lt;p&gt;We have more options today than ever before.&lt;&#x2F;p&gt;
&lt;p&gt;We may think putting all of our eggs in the &quot;big company&quot; basket is the path to
safety.&lt;&#x2F;p&gt;
&lt;p&gt;But if we open our eyes, we soon realize this does not always work.&lt;&#x2F;p&gt;
&lt;p&gt;&quot;big company&quot; may discontinue a service we depend on.&lt;&#x2F;p&gt;
&lt;p&gt;&quot;big company&quot; may have an outage.&lt;&#x2F;p&gt;
&lt;p&gt;&quot;big company&quot; may have security problems.&lt;&#x2F;p&gt;
&lt;p&gt;There is nothing wrong with using &quot;big company&quot; as long as we have the option to
move when problems or opportunities require it.&lt;&#x2F;p&gt;
&lt;p&gt;Lock-in is a good short-term strategy, but is rarely beneficial long-term.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🎯 Why do we need some level of control?</title>
        <published>2024-07-29T00:00:00+00:00</published>
        <updated>2024-07-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0009-why-do-we-need-some-level-of-control/"/>
        <id>https://daily.bec-systems.com/0009-why-do-we-need-some-level-of-control/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0009-why-do-we-need-some-level-of-control/">&lt;p&gt;In today&#x27;s connected systems, some level of control of your Platform is needed.&lt;&#x2F;p&gt;
&lt;p&gt;Security problems needed fixed.&lt;&#x2F;p&gt;
&lt;p&gt;Problems needed debugged.&lt;&#x2F;p&gt;
&lt;p&gt;Problematic subsystems need swapped out.&lt;&#x2F;p&gt;
&lt;p&gt;Suppliers go out of business.&lt;&#x2F;p&gt;
&lt;p&gt;Parts go obsolete.&lt;&#x2F;p&gt;
&lt;p&gt;New customers require new features.&lt;&#x2F;p&gt;
&lt;p&gt;We may want to leverage new technologies.&lt;&#x2F;p&gt;
&lt;p&gt;New Open Source projects become available.&lt;&#x2F;p&gt;
&lt;p&gt;We obviously can&#x27;t control every detail, but we at least need enough control to
adapt and respond to change or the unexpected.&lt;&#x2F;p&gt;
&lt;p&gt;Control is required because we can&#x27;t predict everything up front.&lt;&#x2F;p&gt;
&lt;p&gt;With complex systems, this is more true than ever.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏁 The long game</title>
        <published>2024-07-26T00:00:00+00:00</published>
        <updated>2024-07-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0008-the-long-game/"/>
        <id>https://daily.bec-systems.com/0008-the-long-game/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0008-the-long-game/">&lt;p&gt;Platforms are long games.&lt;&#x2F;p&gt;
&lt;p&gt;If you are building a one-off consumer product that will not be maintained,
improved, or ever change, then you probably don&#x27;t need a platform.&lt;&#x2F;p&gt;
&lt;p&gt;However, if you are building an long-lived industrial product that will be
maintained, or a series of related products, then it gets very expensive to
start over every time.&lt;&#x2F;p&gt;
&lt;p&gt;To effectively maintain multiple unrelated products, or a system that that is
difficult to update, improve, test, and deploy is a recipe for cripling
technical debt.&lt;&#x2F;p&gt;
&lt;p&gt;The expectation today is things will improve over time, because software can be
updated. It is not really optional any more.&lt;&#x2F;p&gt;
&lt;p&gt;And with the complexity of systems today, the odds you&#x27;ll get perfect on the
first release are near zero.&lt;&#x2F;p&gt;
&lt;p&gt;Build for the long game.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>♾️ It&#x27;s about not starting over every time</title>
        <published>2024-07-25T00:00:00+00:00</published>
        <updated>2024-07-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0007-its-about-not-starting-over/"/>
        <id>https://daily.bec-systems.com/0007-its-about-not-starting-over/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0007-its-about-not-starting-over/">&lt;p&gt;Platforms are about reuse.&lt;&#x2F;p&gt;
&lt;p&gt;Not starting over on every new product.&lt;&#x2F;p&gt;
&lt;p&gt;Leveraging what you have done before is one way to scale your efforts.&lt;&#x2F;p&gt;
&lt;p&gt;Reuse takes practice and experience to get it right.&lt;&#x2F;p&gt;
&lt;p&gt;Effective platforms are an art.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🌐 Complex Systems, Simple Platforms</title>
        <published>2024-07-24T00:00:00+00:00</published>
        <updated>2024-07-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0006-complex-systems-simple-platforms/"/>
        <id>https://daily.bec-systems.com/0006-complex-systems-simple-platforms/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0006-complex-systems-simple-platforms/">&lt;p&gt;The word &quot;simple&quot; in the context of modern systems may seem like an oxymoron.&lt;&#x2F;p&gt;
&lt;p&gt;We can&#x27;t deny that modern systems are complex -- they need to be to do the
things they do.&lt;&#x2F;p&gt;
&lt;p&gt;The role of a Platform is to reign in this complexity and create a way to
effectively manage and interact with the system.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms narrow our focus to the problem we are solving.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms decouple us from being too entangled or dependent on any one technology
or system.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms are the abstraction on top of complex systems that make them workable.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🔹 Simplicity</title>
        <published>2024-07-22T00:00:00+00:00</published>
        <updated>2024-07-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0005-simplicity/"/>
        <id>https://daily.bec-systems.com/0005-simplicity/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0005-simplicity/">&lt;p&gt;What is the role of simplicity in your platform?&lt;&#x2F;p&gt;
&lt;p&gt;Simplicity makes it easier for people to use your platform.&lt;&#x2F;p&gt;
&lt;p&gt;Simplicity helps ensure maintainability.&lt;&#x2F;p&gt;
&lt;p&gt;Simplicity moves us toward reliable and secure platforms.&lt;&#x2F;p&gt;
&lt;p&gt;Simple is not easy, actually it&#x27;s &lt;strong&gt;much&lt;&#x2F;strong&gt; harder than complex. But platforms
are a long game.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>🏢 What is your Platform?</title>
        <published>2024-07-18T00:00:00+00:00</published>
        <updated>2024-07-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0004-what-is-a-platform/"/>
        <id>https://daily.bec-systems.com/0004-what-is-a-platform/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0004-what-is-a-platform/">&lt;p&gt;What is a Platform?&lt;&#x2F;p&gt;
&lt;p&gt;There are many ways to look at this. Some might think of AWS, GCP, iOS, Android,
etc.&lt;&#x2F;p&gt;
&lt;p&gt;These are certainly platforms, but they are not &lt;em&gt;your&lt;&#x2F;em&gt; platform.&lt;&#x2F;p&gt;
&lt;p&gt;Your platform is the collection of technology, tools, and processes you use to
do what you do.&lt;&#x2F;p&gt;
&lt;p&gt;This may be building products, delivering services, developing people, etc.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>✨ The Beauty of Constraints</title>
        <published>2024-07-17T00:00:00+00:00</published>
        <updated>2024-07-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0003-beauty-of-constraints/"/>
        <id>https://daily.bec-systems.com/0003-beauty-of-constraints/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0003-beauty-of-constraints/">&lt;p&gt;Constraints are what guide us to good solutions.&lt;&#x2F;p&gt;
&lt;p&gt;Software that is simple enough that average developers can actually understand
it.&lt;&#x2F;p&gt;
&lt;p&gt;A user interface that is intuitive.&lt;&#x2F;p&gt;
&lt;p&gt;A system we can deploy without a dedicated SRE team.&lt;&#x2F;p&gt;
&lt;p&gt;Hardware created with open tools that anyone in our organization can maintain.&lt;&#x2F;p&gt;
&lt;p&gt;An architecture that can scale in unforeseen directions.&lt;&#x2F;p&gt;
&lt;p&gt;Flexible core data structures that rarely change.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Platforms are all about constraints.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>😱 The tragedy of no constraints</title>
        <published>2024-07-16T00:00:00+00:00</published>
        <updated>2024-07-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0002-tragedy-of-no-constraints/"/>
        <id>https://daily.bec-systems.com/0002-tragedy-of-no-constraints/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0002-tragedy-of-no-constraints/">&lt;p&gt;We never have enough time, resources, funding, CPU, storage, etc.&lt;&#x2F;p&gt;
&lt;p&gt;However, think what would happen if we had infinite resources.&lt;&#x2F;p&gt;
&lt;p&gt;We would never get started because we have forever to do it.&lt;&#x2F;p&gt;
&lt;p&gt;With unlimitted resources, we tend to make a mess and get sloppy.&lt;&#x2F;p&gt;
&lt;p&gt;Getting everything we want leads to bloat and lethargy.&lt;&#x2F;p&gt;
&lt;p&gt;Platforms are a long game, and but no contraints encourages short-term thinking.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>👋 Introduction</title>
        <published>2024-07-15T00:00:00+00:00</published>
        <updated>2024-07-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://daily.bec-systems.com/0001-intro/"/>
        <id>https://daily.bec-systems.com/0001-intro/</id>
        
        <content type="html" xml:base="https://daily.bec-systems.com/0001-intro/">&lt;p&gt;Product development is hard.&lt;&#x2F;p&gt;
&lt;p&gt;Technical debt tends to accrue at a frightening pace.&lt;&#x2F;p&gt;
&lt;p&gt;A &quot;Platform&quot; approach helps you reign in the chaos.&lt;&#x2F;p&gt;
&lt;p&gt;And provides a framework to reuse, scale, and leverage your efforts.&lt;&#x2F;p&gt;
&lt;p&gt;This newsletter provides tips to help you in the journey to
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;tmpdir.org&#x2F;014&#x2F;&quot;&gt;&quot;Own your Platform.&quot;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
