<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>tech &amp;mdash; Reflections</title>
    <link>https://blog.johnkarahalis.com/tag:tech</link>
    <description>Thoughts from [John Karahalis](https://www.johnkarahalis.com/)</description>
    <pubDate>Tue, 04 Aug 2026 20:00:55 +0000</pubDate>
    <image>
      <url>https://i.snap.as/IaQDIotu.png</url>
      <title>tech &amp;mdash; Reflections</title>
      <link>https://blog.johnkarahalis.com/tag:tech</link>
    </image>
    <item>
      <title>Have MBAs ruined the software industry?</title>
      <link>https://blog.johnkarahalis.com/have-mbas-ruined-the-software-industry?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[The conventional wisdom is that any headline in the form of a question can be answered with a &#34;no.&#34; I&#39;m not so sure about this one.&#xA;&#xA;figureimg src=&#34;https://images.johnkarahalis.com/blog/posts/2026/08/have-mbas-ruined-the-software-industry/variants/default/suit.v1.jpg&#34; alt=&#34;A well-dressed man in a business suit tugs on his cuff while showing off an expensive watch&#34; /figcaptiona href=&#34;https://pixabay.com/photos/people-man-guy-suit-formal-2570596/&#34;Image/a by a href=&#34;https://pixabay.com/users/stocksnap-894430/&#34;StockSnap/a from a href=&#34;https://pixabay.com/&#34;Pixabay/a/figcaption/figure&#xA;&#xA;Think of the most important software in the world: Linux, Google, Facebook, JavaScript, PGP, even the World Wide Web itself. How many of these projects began in conference rooms, their success assured by the work of middle managers in business-casual attire obsessing over metrics, OKRs, and feature lists? Linux was a university project, but it now powers much of the world. Google began in a garage. Facebook was launched in a dorm room. JavaScript, PGP, and the Web were single-person experiments with no obvious economic value, yet it&#39;s now not an exaggeration to say the economy completely depends on them and the work they started. Sure, Google and Facebook are now steaming piles of shit, but who ruined them? Who made the decisions that destroyed these paragons of technological achievement? Was it the former chess team captains, crafting software they were proud of, drinking Mountain Dew and watching episodes of Cowboy Bebop between merges? I don&#39;t think so.&#xA;&#xA;!--more--&#xA;&#xA;&#34;But wait,&#34; I hear you saying, &#34;Alphabet and Meta make tons of money!&#34; Sure, they do, but it won&#39;t last. Even with their monopolistic power, or perhaps because of it, Facebook and Google Search are worsening every day, and they are just begging to &#34;disrupted&#34; out of business. Besides, at what cost are they earning their money? Is the destruction of society not a sufficiently meaningful externality? Phillip Morris makes tons of money, too. They just have to kill millions of unwilling addicts in the process. As harmful as they are now, and as flawed as they were from the beginning, Facebook and Google were better off before &#34;engagement&#34; and &#34;monetization&#34; were ends unto themselves.&#xA;&#xA;Building software is nothing like building furniture, building cars, or even building aircraft. To build those things it to repeat projects that have been completed thousands or even millions of times before. Software, on the other hand, is always bespoke. It&#39;s always unique. It&#39;s always being created for the first time. After all, if someone needed a software application that already existed, they would just obtain a copy. As someone once wrote, &#34;Software development is one of the only professions where we are asked to accurately state how long it will take us to do something that has never been done before in the history of the universe.&#34;&#xA;&#xA;There is a profound difference between people who get this and people who don&#39;t. Spend enough time in a corporate feature factory, and you&#39;ll see it firsthand: your boss needs to know when the feature will be done, and they need to know now! Mountains of technical debt slow teams to a halt because management can just &#34;hire someone to fix it later.&#34; Moreover, good work doesn&#39;t matter; looking good (to management) is everything.&#xA;&#xA;figureimg src=&#34;https://images.johnkarahalis.com/blog/posts/2026/08/have-mbas-ruined-the-software-industry/variants/default/private-office.v1.jpg&#34; alt=&#34;A beautifully-decorated private office which looks like it might belong to a manager&#34; /figcaptiona href=&#34;https://pixabay.com/photos/study-workroom-office-glimpse-789631/&#34;Image/a by a href=&#34;https://pixabay.com/users/donterase-1070369/&#34;donterase/a from a href=&#34;https://pixabay.com/&#34;Pixabay/a/figcaption/figure&#xA;&#xA;Working in the software industry for fifteen years has felt, at times, like watching outsiders and know-nothings slowly infect and destroy the craft I love, all so that they could ruin the software that gave them their jobs with poor decisions and short-sightedness. It&#39;s like watching a bully force a talented artist to set their painting aside so that they can instead sell Bored Ape stickers. No love. No care. No foresight. Just a quick buck.&#xA;&#xA;Does all of this sound too harsh? Read Craig Cook&#39;s blog post on his decision to leave the software industry, where he bemoans &#34;Silicon Valley MBA pricks&#34; and says that &#34;the whole tech industry is nothing but scumbag billionaires and smarmy marketing and unbridled enshittification and oppressive management and AI psychosis and alpha-bro startup-hustle grind-culture bullshit.&#34; I worked with Craig at Mozilla, and I admire him, but even I didn&#39;t realize he could be so brutally honest! I mean, some of that might be going to far, but I agree with the general sentiment. I guess you can say what you really think when your paycheck isn&#39;t on the line.&#xA;&#xA;Am I suggesting we let software developers run the show? No, not quite. If it were up to me, I&#39;d probably still be refactoring some software I wrote ten years ago. Others would chase new, shiny objects—new JavaScript frameworks, to be sure—until their companies ran out of money. Software developers sometimes need their passion to be pointed in the right direction. That guidance, however, needs to come from respectable people with real wisdom and experience to draw from, not just professional fast-talkers who, as one colleague put it, &#34;have &#39;KPI&#39; tattooed inside their eyelids.&#34;&#xA;&#xA;figureimg src=&#34;https://images.johnkarahalis.com/blog/posts/2026/08/have-mbas-ruined-the-software-industry/variants/default/metrics.v1.jpg&#34; alt=&#34;An Apple laptop shows various charts, graphs, and other metrics, while a physical notebook and a pen rest to its left&#34; /figcaptiona href=&#34;https://pixabay.com/photos/laptop-notebook-business-charts-1836990/&#34;Image/a by a href=&#34;https://pixabay.com/users/pexels-2286921/&#34;Pexels/a from a href=&#34;https://pixabay.com/&#34;Pixabay/a/figcaption/figure&#xA;&#xA;I&#39;ve worked with some incredible people who had degrees in business administration, but I&#39;m sorry to say it&#39;s been the exception rather than the rule. Most management types don&#39;t get it, and when they don&#39;t get it, they really don&#39;t get it. For that reason, I&#39;ve decided I&#39;ll never again work as a software developer for someone who has not been a software developer themselves—for more than five minutes—and a good one, at that! Does that limit my opportunities? It sure does. It excludes all the people who think intense pressure gets cognitive work done faster. It excludes all the people who ruined Google and Facebook and Amazon. It excludes all the people who are making money off of software they didn&#39;t create, that their entire approach to software would likely never create.&#xA;&#xA;That&#39;s fine with me.&#xA;&#xA;#Life #SocialMedia #SoftwareDevelopment #Tech]]&gt;</description>
      <content:encoded><![CDATA[<p>The <a href="https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines">conventional wisdom</a> is that any headline in the form of a question can be answered with a “no.” I&#39;m not so sure about this one.</p>

<figure><img src="https://images.johnkarahalis.com/blog/posts/2026/08/have-mbas-ruined-the-software-industry/variants/default/suit.v1.jpg" alt="A well-dressed man in a business suit tugs on his cuff while showing off an expensive watch"/><figcaption><a href="https://pixabay.com/photos/people-man-guy-suit-formal-2570596/">Image</a> by <a href="https://pixabay.com/users/stocksnap-894430/">StockSnap</a> from <a href="https://pixabay.com/">Pixabay</a></figcaption></figure>

<p>Think of the most important software in the world: Linux, Google, Facebook, JavaScript, PGP, even the World Wide Web itself. How many of these projects began in conference rooms, their success assured by the work of middle managers in business-casual attire obsessing over <a href="https://blog.johnkarahalis.com/metrics">metrics</a>, <a href="https://blog.johnkarahalis.com/the-beatles-never-set-okrs">OKRs</a>, and feature lists? Linux was a university project, but it now powers much of the world. Google began in a garage. Facebook was launched in a dorm room. JavaScript, PGP, and the Web were single-person experiments with no obvious economic value, yet it&#39;s now not an exaggeration to say the economy completely depends on them and the work they started. Sure, Google and Facebook are now <a href="https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys">steaming piles of shit</a>, but who ruined them? Who made the decisions that destroyed these paragons of technological achievement? Was it the former chess team captains, crafting software they were proud of, drinking Mountain Dew and watching episodes of <em>Cowboy Bebop</em> between merges? I don&#39;t think so.</p>



<p>“But wait,” I hear you saying, “Alphabet and Meta make tons of money!” Sure, they do, but it won&#39;t last. Even with their monopolistic power, or perhaps because of it, Facebook and Google Search are worsening every day, and they are just begging to “disrupted” out of business. Besides, at what cost are they earning their money? Is <a href="https://blog.johnkarahalis.com/in-the-hardly-even-a-joke-department">the destruction of society</a> not a sufficiently meaningful externality? <a href="https://en.wikipedia.org/wiki/Philip_Morris_International">Phillip Morris</a> makes tons of money, too. They just have to kill millions of unwilling addicts in the process. As harmful as they are now, and as flawed as they were from the beginning, Facebook and Google were better off before “engagement” and “monetization” were ends unto themselves.</p>

<p>Building software is nothing like building furniture, building cars, or even building aircraft. To build those things it to repeat projects that have been completed thousands or even millions of times before. Software, on the other hand, is always bespoke. It&#39;s always unique. It&#39;s always being created for the first time. After all, if someone needed a software application that already existed, they would just obtain a <em>copy</em>. As <a href="https://x.com/danluu/status/1162469760900091904">someone once wrote</a>, “Software development is one of the only professions where we are asked to accurately state how long it will take us to do something that has never been done before in the history of the universe.”</p>

<p>There is a <em>profound</em> difference between people who get this and people who don&#39;t. Spend enough time in a corporate feature factory, and you&#39;ll see it firsthand: your boss needs to know when the feature will be done, and <a href="https://blog.johnkarahalis.com/software-cannot-be-estimated-the-way-your-organization-wants-and-its-time-to">they need to know now</a>! Mountains of technical debt slow teams to a halt because management can just “hire someone to fix it later.” Moreover, good work doesn&#39;t matter; looking good (to management) is everything.</p>

<figure><img src="https://images.johnkarahalis.com/blog/posts/2026/08/have-mbas-ruined-the-software-industry/variants/default/private-office.v1.jpg" alt="A beautifully-decorated private office which looks like it might belong to a manager"/><figcaption><a href="https://pixabay.com/photos/study-workroom-office-glimpse-789631/">Image</a> by <a href="https://pixabay.com/users/donterase-1070369/">donterase</a> from <a href="https://pixabay.com/">Pixabay</a></figcaption></figure>

<p>Working in the software industry for fifteen years has felt, at times, like watching outsiders and know-nothings slowly infect and destroy the craft I love, all so that they could ruin the software that gave them their jobs with poor decisions and short-sightedness. It&#39;s like watching a bully force a talented artist to set their painting aside so that they can instead sell <a href="https://en.wikipedia.org/wiki/Bored_Ape">Bored Ape</a> stickers. No love. No care. No foresight. Just a quick buck.</p>

<p>Does all of this sound too harsh? Read Craig Cook&#39;s blog post on his <a href="https://www.focalcurve.com/journal/the-end/">decision to leave the software industry</a>, where he bemoans “Silicon Valley MBA pricks” and says that “the whole tech industry is nothing but scumbag billionaires and smarmy marketing and unbridled enshittification and oppressive management and AI psychosis and alpha-bro startup-hustle grind-culture bullshit.” I worked with Craig at Mozilla, and I admire him, but even I didn&#39;t realize he could be so brutally honest! I mean, some of that might be going to far, but I agree with the general sentiment. I guess you can say what you really think when your paycheck isn&#39;t on the line.</p>

<p>Am I suggesting we let software developers run the show? No, not quite. If it were up to me, I&#39;d probably still be refactoring some software I wrote ten years ago. Others would chase new, shiny objects—new JavaScript frameworks, to be sure—until their companies ran out of money. Software developers sometimes need their passion to be pointed in the right direction. That guidance, however, needs to come from respectable people with real wisdom and experience to draw from, not just professional fast-talkers who, as one colleague put it, “have &#39;KPI&#39; tattooed inside their eyelids.”</p>

<figure><img src="https://images.johnkarahalis.com/blog/posts/2026/08/have-mbas-ruined-the-software-industry/variants/default/metrics.v1.jpg" alt="An Apple laptop shows various charts, graphs, and other metrics, while a physical notebook and a pen rest to its left"/><figcaption><a href="https://pixabay.com/photos/laptop-notebook-business-charts-1836990/">Image</a> by <a href="https://pixabay.com/users/pexels-2286921/">Pexels</a> from <a href="https://pixabay.com/">Pixabay</a></figcaption></figure>

<p>I&#39;ve worked with some incredible people who had degrees in business administration, but I&#39;m sorry to say it&#39;s been the exception rather than the rule. Most management types don&#39;t <em>get it</em>, and when they don&#39;t get it, they <em>really</em> don&#39;t get it. For that reason, I&#39;ve decided I&#39;ll never again work as a software developer for someone who has not been a software developer themselves—for more than five minutes—and a good one, at that! Does that limit my opportunities? It sure does. It excludes all the people who think <a href="https://blog.johnkarahalis.com/im-a-woz-not-a-jobs">intense pressure</a> gets cognitive work done faster. It excludes all the people who ruined Google and Facebook and Amazon. It excludes all the people who are making money off of software they didn&#39;t create, that their entire approach to software would likely <em>never</em> create.</p>

<p>That&#39;s fine with me.</p>

<p><a href="https://blog.johnkarahalis.com/tag:Life" class="hashtag"><span>#</span><span class="p-category">Life</span></a> <a href="https://blog.johnkarahalis.com/tag:SocialMedia" class="hashtag"><span>#</span><span class="p-category">SocialMedia</span></a> <a href="https://blog.johnkarahalis.com/tag:SoftwareDevelopment" class="hashtag"><span>#</span><span class="p-category">SoftwareDevelopment</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/have-mbas-ruined-the-software-industry</guid>
      <pubDate>Tue, 04 Aug 2026 15:29:05 +0000</pubDate>
    </item>
    <item>
      <title>Em dashes</title>
      <link>https://blog.johnkarahalis.com/em-dashes?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Apparently, the use of em dashes (these: —) in text is now taken as an indication that the text was written by AI. That&#39;s unfortunate. I use em dashes all over the place in my writing, as well as en dashes (–), ellipses (…), colons (:), semicolons (;), and curly quotes (“”). My blogging platform automatically replaces straight quotes with curly quotes, but I type the rest manually using Ctrl + Shift + U on Linux (e.g., Ctrl + Shift + U &amp;lt;Release all&amp;gt; 2014&amp;lt;Enter&amp;gt; for em dashes) or the special characters keyboard on my phone. I even use em dashes the way AI does: without surrounding spaces. That&#39;s how it was recommended in some style guide I consulted.&#xA;&#xA;However, I don&#39;t use AI to write text on this blog. I&#39;ve been using em dashes since noticing them in an author&#39;s writing and en dashes ever since being was introduced to them by Saga Söderback. The rest are just as useful; I even used some in this post!&#xA;&#xA;I&#39;m sure AI companies have indexed my blog, so in some very, very small way, I suppose the opposite is true: AI uses em dashes partly because I do.&#xA;&#xA;#Life #Tech]]&gt;</description>
      <content:encoded><![CDATA[<p>Apparently, the use of em dashes (these: —) in text is <a href="https://psychotechnology.substack.com/p/em-dashes-are-fucking-amazing">now taken as an indication that the text was written by AI</a>. That&#39;s unfortunate. I use em dashes all over the place in my writing, as well as en dashes (–), ellipses (…), colons (:), semicolons (;), and curly quotes (“”). My blogging platform automatically replaces straight quotes with curly quotes, but I type the rest manually using <em>Ctrl + Shift + U</em> on Linux (e.g., <em>Ctrl + Shift + U &lt;Release all&gt; 2014&lt;Enter&gt;</em> for em dashes) or the special characters keyboard on my phone. I even use em dashes the way AI does: without surrounding spaces. That&#39;s how it was recommended in some style guide I consulted.</p>

<p>However, <a href="https://blog.johnkarahalis.com/the-use-of-ai-on-this-blog">I don&#39;t use AI to write text on this blog</a>. I&#39;ve been using em dashes since noticing them in an author&#39;s writing and en dashes ever since being was introduced to them by <a href="https://www.linkedin.com/in/sagasoderback">Saga Söderback</a>. The rest are just as useful; I even used some in this post!</p>

<p>I&#39;m sure AI companies have indexed my blog, so in some very, very small way, I suppose the opposite is true: AI uses em dashes partly because I do.</p>

<p><a href="https://blog.johnkarahalis.com/tag:Life" class="hashtag"><span>#</span><span class="p-category">Life</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/em-dashes</guid>
      <pubDate>Fri, 24 Jul 2026 21:46:50 +0000</pubDate>
    </item>
    <item>
      <title>Software cannot be estimated the way your organization wants, and it&#39;s time to stop trying</title>
      <link>https://blog.johnkarahalis.com/software-cannot-be-estimated-the-way-your-organization-wants-and-its-time-to?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Managers and organizations want to know exactly when features, bug fixes, and other work will be done. Many have not been software engineers themselves, so they ask for exact dates. Sure, you can be off by a day or two—maybe!—but more than that, and it&#39;s a problem. After all, their boss needs to know what to promise customers. What&#39;s so hard about knowing when you&#39;ll be done?&#xA;&#xA;Sadly, software cannot be estimated that way, and we need to stop pretending otherwise. It&#39;s a myth—a pervasive one—and perpetuating that myth only perpetuates its harm.&#xA;&#xA;figureimg src=&#34;https://images.johnkarahalis.com/blog/posts/2026/03/software-cannot-be-estimated-the-way-your-organization-wants-and-its-time-to/variants/default/escher.v2.png&#34; alt=&#34;An illustration of a man with an unhappy expression looking at a piece of paper in a physically impossible maze inspired by M. C. Escher&#39;s artwork. In the background, a woman can be seen navigating the maze, confused.&#34; /figcaptionImage by ChatGPT/figcaption/figure&#xA;&#xA;Sure, if a task is almost identical to some previous task, a precise and reliable estimate really can be communicated. Unfortunately, that almost never happens. If the work ahead were so similar, someone would have done it already using copy and paste. If it&#39;s similar and the engineering team wanted to set themselves up for success later, they&#39;d refactor the system. That refactoring itself can be a hazy fog of unknowns. We&#39;ve all been there many times.&#xA;&#xA;In my fifteen years as a software engineer, I&#39;ve worked in many different kinds of organizations, from a small non-profit research and development lab (the Open Publishing Lab at RIT), to a medium-sized, quasi-non-profit business with a deep and pervasive developer culture (the Mozilla Corporation), to a for-profit startup in the music industry (Inveniem), to a publicly-traded conglomerate with approximately 100,000 employees (Honeywell). Although I have fond memories with all of my former employers, in my experience, not one was even remotely better or worse than any other at software estimation. Clearly, something more fundamental is wrong.&#xA;&#xA;I think the problem is obvious. They all wanted to know the unknowable.&#xA;&#xA;!--more--&#xA;&#xA;The problem&#xA;&#xA;I once worked with someone who liked to compare software development to parcel delivery: communicate a date when the package is expected to arrive. It&#39;s okay if there needs to be a delay, as long as that delay is communicated clearly. While the flexibility with delays was genuinely appreciated, the broader analogy soured on me over time. In truth, estimating software is nothing like estimating package delivery. The former involves doing something that has never been done before, while the latter is completed billions of times each year. Does Amazon have an advantage when forming estimates? You&#39;d better believe it.&#xA;&#xA;  Software development is one of the only professions where we are asked to accurately state how long it will take us to do something that has never been done before in the history of the universe.&#xA;    —Unknown, from a screenshot on X&#xA;&#xA;How long will it take for Amazon to deliver a board game to Zara in Cincinnati? Well, probably about as long as it took last time. Yes, every delivery is different, but there must be millions of deliveries of similar items to nearby locations with similar weather forecasts and other pertinent factors being similar or identical. How long will it take? Probably that long.&#xA;&#xA;By contrast, how much time will be required for me to change code I&#39;ve never seen? I truly have no idea. How about adding, say, karaoke support to a streaming music app, one with millions of lines of code I&#39;ve never read, where myriad caveats exist for different software clients, different spoken languages, and different copyright laws. How long will that take? Except in extremely broad terms, your guess is as good as mine. It will take more than one week, and it can probably be completed in less than one year. Beyond that, there&#39;s not much more that can be promised, at least in the beginning. More on that in the next section.&#xA;&#xA;No, estimating software development is nothing like estimating like parcel delivery. It&#39;s more like estimating the pace of scientific progress. We simply don&#39;t know what we don&#39;t know. We can&#39;t know until we do it.&#xA;&#xA;As much as possible, organizations should communicate that software will be ready when it’s ready. If some software must be released by a certain date, the feature list should not be guaranteed. I know this is easier said than done, believe me, but reality is what it is. Software simply cannot be estimated the way organizations imagine. Some higher-ups, especially those who have not been software engineers, may find this outrageous. They may demand exact estimates regardless. To them, I would say, &#34;Fine, but let’s be honest, how’s that working for ya? How often are you given estimates that actually turn out to be correct?&#34;&#xA;&#xA;figureimg src=&#34;https://images.johnkarahalis.com/blog/posts/2026/03/software-cannot-be-estimated-the-way-your-organization-wants-and-its-time-to/variants/default/clock.v2.jpg&#34; alt=&#34;A photograph of a clock with a broken glass face attached to the side of a dilapidated building with graffiti visible in the background&#34; /figcaptiona href=&#34;https://pixabay.com/photos/lost-places-factory-clock-time-1819443/&#34;Image/a by a href=&#34;https://pixabay.com/users/tama66-1032521/&#34;Peter H/a from a href=&#34;https://pixabay.com/&#34;Pixabay/a/figcaption/figure&#xA;&#xA;There&#39;s a reason you&#39;re reading this blog post. Something isn&#39;t working, and it&#39;s not about discipline. It&#39;s not about communication. It&#39;s not about skill. You&#39;re on the wrong path. Skeletons and vultures surround you. It&#39;s time to turn around.&#xA;&#xA;Thankfully, there is a better way. Your manager may not like it at first, but over time, they may come to see that estimates of this type are actually useful, unlike the aspirational and unreliable estimates they&#39;re accustomed to.&#xA;&#xA;The solution&#xA;&#xA;To explain this kind of estimation, I need to define two terms. First, I&#39;m using the term accurate to describe any estimate that is correct within a given range of dates. Defined this way, even a very broad estimate can be accurate. For example, an estimate that a feature will be completed some time between March 1supst/sup and December 31supst/sup would be accurate, as long as it turns out to be true. Precision is another matter. Precision refers to how narrow a range of dates is, with more narrow ranges being more precise. The previous feature estimate isn&#39;t very precise, but it would be more precise if it predicted a completion date between, say, April 1supst/sup and July 1supst/sup. This is how Rapid Development defines the terms, and I think it’s a good approach. In fact, most of this advice is lifted from Rapid Development. I recommend reading it. It&#39;s a tome, so focus on the sections that are most pertinent to your needs.&#xA;&#xA;Crucially, estimates can and should become more precise as time goes on and details become more clear. If a team begins with an estimate of some time in Q1 or Q2, but the feature is more difficult than expected and they realize they need to revisit the database schema, perhaps the estimate could be narrowed to some time between May 1supst/sup and June 15supth/sup. If the team is nearing the end and the final code reviews go more smoothly than expected, maybe the estimate could narrow to some time between May 16supth/sup and May 31supst/sup. If a critical issue is found elsewhere in the codebase, taking the team off the feature for a while, maybe May 29supth/sup becomes the most likely date of completion. The point is, there&#39;s practically no way to predict those circumstances in advance, but they can inform better estimates over time, as long as the estimation method supports that.&#xA;&#xA;Did you instead randomly pick a date three months in advance? Too bad. You&#39;re screwed.&#xA;&#xA;Reality-driven estimation&#xA;&#xA;So how should we estimate? Strive for accuracy, start with low precision, and seek greater precision over time. As another example, you might consider communicating a project end date some time between Q2 and Q4, then later refine that to some time in the fall, then some time in October. Finally, at the very end of the project, you might be able to promise a specific week or even a specific day. That is an approach to estimation which acknowledges reality. That is an approach to estimation which acknowledges that surprises happen.&#xA;&#xA;Do organizations want to hear this? Unfortunately, no, I don&#39;t think so. It&#39;s a tough sell. Organizations want certainty, and they want it now. Good luck telling your boss that you don’t know exactly how much time and money you&#39;re going to spend. Even the project management apps we use typically require that an estimate be recorded as a specific date. Talk about encouraging bad practices.&#xA;&#xA;Pushing back is hard, and as someone who was raised to never question authority, even when that authority is obviously wrong, I happen to be particularly bad at it. That&#39;s too bad. Our bosses pay the bills, but we do the work. It&#39;s time we start saying, &#34;The work can&#39;t be done that way, and if I were to tell you otherwise, I&#39;d be lying to you.&#34;&#xA;&#xA;Reality is what it is, and the best we can do is provide estimates with gradually increasing precision. Organizations can pretend otherwise, and countless surely will, but again, I would ask, &#34;how&#39;s that going?&#34; Organizations ignore these facts to their own detriment, at the cost of time, money, and frustration. I wish them luck.&#xA;&#xA;For everyone else, consider embracing reality. It&#39;s not perfect, but it&#39;s the best we can do.&#xA;&#xA;#Life #Quotes #SoftwareDevelopment #Tech]]&gt;</description>
      <content:encoded><![CDATA[<p>Managers and organizations want to know exactly when features, bug fixes, and other work will be done. Many have not been software engineers themselves, so they ask for exact dates. Sure, you can be off by a day or two—maybe!—but more than that, and it&#39;s a problem. After all, <em>their</em> boss needs to know what to promise customers. What&#39;s so hard about knowing when you&#39;ll be done?</p>

<p>Sadly, software cannot be estimated that way, and we need to stop pretending otherwise. It&#39;s a myth—a pervasive one—and perpetuating that myth only perpetuates its harm.</p>

<figure><img src="https://images.johnkarahalis.com/blog/posts/2026/03/software-cannot-be-estimated-the-way-your-organization-wants-and-its-time-to/variants/default/escher.v2.png" alt="An illustration of a man with an unhappy expression looking at a piece of paper in a physically impossible maze inspired by M. C. Escher&#39;s artwork. In the background, a woman can be seen navigating the maze, confused."/><figcaption>Image by ChatGPT</figcaption></figure>

<p>Sure, if a task is almost identical to some previous task, a precise and reliable estimate really can be communicated. Unfortunately, that almost never happens. If the work ahead were so similar, someone would have done it already using copy and paste. If it&#39;s similar and the engineering team wanted to set themselves up for success later, they&#39;d refactor the system. That refactoring itself can be a hazy fog of unknowns. We&#39;ve all been there many times.</p>

<p>In my fifteen years as a software engineer, I&#39;ve worked in many different kinds of organizations, from a small non-profit research and development lab (<a href="https://web.archive.org/web/20090303034504/http://opl.rit.edu//">the Open Publishing Lab at RIT</a>), to a medium-sized, quasi-non-profit business with a deep and pervasive developer culture (<a href="https://en.wikipedia.org/wiki/Mozilla_Corporation">the Mozilla Corporation</a>), to a for-profit startup in the music industry (<a href="https://inveniem.com/">Inveniem</a>), to a publicly-traded conglomerate with approximately 100,000 employees (<a href="https://en.wikipedia.org/wiki/Honeywell">Honeywell</a>). Although I have fond memories with all of my former employers, in my experience, not one was even remotely better or worse than any other at software estimation. Clearly, something more fundamental is wrong.</p>

<p>I think the problem is obvious. They all wanted to know the unknowable.</p>



<h3 id="the-problem">The problem</h3>

<p>I once worked with someone who liked to compare software development to parcel delivery: communicate a date when the package is expected to arrive. It&#39;s okay if there needs to be a delay, as long as that delay is communicated clearly. While the flexibility with delays was genuinely appreciated, the broader analogy soured on me over time. In truth, estimating software is nothing like estimating package delivery. The former involves doing something that has never been done before, while the latter is completed <a href="https://capitaloneshopping.com/research/amazon-logistics-statistics/">billions of times each year</a>. Does Amazon have an advantage when forming estimates? You&#39;d better believe it.</p>

<blockquote><p>Software development is one of the only professions where we are asked to accurately state how long it will take us to do something that has never been done before in the history of the universe.</p>

<p>—Unknown, from a <a href="https://x.com/danluu/status/1162469760900091904">screenshot on X</a></p></blockquote>

<p>How long will it take for Amazon to deliver a board game to Zara in Cincinnati? Well, probably about as long as it took last time. Yes, every delivery is different, but there must be millions of deliveries of <em>similar items</em> to <em>nearby locations</em> with <em>similar weather forecasts</em> and other pertinent factors being similar or identical. How long will it take? Probably that long.</p>

<p>By contrast, how much time will be required for me to change code I&#39;ve never seen? I truly have no idea. How about adding, say, karaoke support to a streaming music app, one with <em>millions</em> of lines of code I&#39;ve never read, where myriad caveats exist for different software clients, different spoken languages, and different copyright laws. How long will <em>that</em> take? Except in extremely broad terms, your guess is as good as mine. It will take more than one week, and it can <em>probably</em> be completed in less than one year. Beyond that, there&#39;s not much more that can be promised, at least in the beginning. More on that in the next section.</p>

<p>No, estimating software development is nothing like estimating like parcel delivery. It&#39;s more like estimating the pace of scientific progress. We simply don&#39;t know what we don&#39;t know. We <em>can&#39;t</em> know until we do it.</p>

<p>As much as possible, organizations should communicate that software will be ready when it’s ready. If some software must be released by a certain date, the feature list should not be guaranteed. I know this is easier said than done, believe me, but reality is what it is. Software simply cannot be estimated the way organizations imagine. Some higher-ups, especially those who have not been software engineers, may find this outrageous. They may demand exact estimates regardless. To them, I would say, “Fine, but let’s be honest, <em>how’s that working for ya?</em> How often are you given estimates that actually turn out to be correct?”</p>

<figure><img src="https://images.johnkarahalis.com/blog/posts/2026/03/software-cannot-be-estimated-the-way-your-organization-wants-and-its-time-to/variants/default/clock.v2.jpg" alt="A photograph of a clock with a broken glass face attached to the side of a dilapidated building with graffiti visible in the background"/><figcaption><a href="https://pixabay.com/photos/lost-places-factory-clock-time-1819443/">Image</a> by <a href="https://pixabay.com/users/tama66-1032521/">Peter H</a> from <a href="https://pixabay.com/">Pixabay</a></figcaption></figure>

<p>There&#39;s a reason you&#39;re reading this blog post. Something isn&#39;t working, and it&#39;s not about discipline. It&#39;s not about communication. It&#39;s not about skill. You&#39;re on the wrong path. Skeletons and vultures surround you. It&#39;s time to turn around.</p>

<p>Thankfully, there is a better way. Your manager may not like it at first, but over time, they may come to see that estimates of this type are actually useful, unlike the aspirational and unreliable estimates they&#39;re accustomed to.</p>

<h3 id="the-solution">The solution</h3>

<p>To explain this kind of estimation, I need to define two terms. First, I&#39;m using the term <em>accurate</em> to describe any estimate that is correct <em>within a given range of dates</em>. Defined this way, even a very broad estimate can be accurate. For example, an estimate that a feature will be completed some time between March 1<sup>st</sup> and December 31<sup>st</sup> would be accurate, as long as it turns out to be true. Precision is another matter. Precision refers to how narrow a range of dates is, with more narrow ranges being more precise. The previous feature estimate isn&#39;t very precise, but it would be more precise if it predicted a completion date between, say, April 1<sup>st</sup> and July 1<sup>st</sup>. This is how <a href="https://openlibrary.org/works/OL2722065W/Rapid_development"><em>Rapid Development</em></a> defines the terms, and I think it’s a good approach. In fact, most of this advice is lifted from <em>Rapid Development</em>. I recommend reading it. It&#39;s a tome, so focus on the sections that are most pertinent to your needs.</p>

<p>Crucially, estimates can and should become <em>more precise</em> as time goes on and details become more clear. If a team begins with an estimate of some time in Q1 or Q2, but the feature is more difficult than expected and they realize they need to revisit the database schema, perhaps the estimate could be narrowed to some time between May 1<sup>st</sup> and June 15<sup>th</sup>. If the team is nearing the end and the final code reviews go more smoothly than expected, maybe the estimate could narrow to some time between May 16<sup>th</sup> and May 31<sup>st</sup>. If a critical issue is found elsewhere in the codebase, taking the team off the feature for a while, maybe May 29<sup>th</sup> becomes the most likely date of completion. The point is, there&#39;s practically no way to predict those circumstances in advance, but they can inform better estimates over time, as long as the estimation method supports that.</p>

<p>Did you instead randomly pick a date three months in advance? Too bad. You&#39;re screwed.</p>

<h3 id="reality-driven-estimation">Reality-driven estimation</h3>

<p>So how should we estimate? Strive for accuracy, start with low precision, and seek greater precision over time. As another example, you might consider communicating a project end date some time between Q2 and Q4, then later refine that to some time in the fall, then some time in October. Finally, at the very end of the project, you might be able to promise a specific week or even a specific day. <em>That</em> is an approach to estimation which acknowledges reality. <em>That</em> is an approach to estimation which acknowledges that surprises happen.</p>

<p>Do organizations want to hear this? Unfortunately, no, I don&#39;t think so. It&#39;s a tough sell. Organizations want certainty, and they want it now. Good luck telling your boss that you don’t know exactly how much time and money you&#39;re going to spend. Even the project management apps we use typically require that an estimate be recorded as a <em>specific date</em>. Talk about encouraging bad practices.</p>

<p>Pushing back is hard, and as someone who was raised to never question authority, even when that authority is obviously wrong, I happen to be particularly bad at it. That&#39;s too bad. Our bosses pay the bills, but we do the work. It&#39;s time we start saying, “The work can&#39;t be done that way, and if I were to tell you otherwise, I&#39;d be lying to you.”</p>

<p>Reality is what it is, and the best we can do is provide estimates with gradually increasing precision. Organizations can pretend otherwise, and countless surely will, but again, I would ask, “<em>how&#39;s that going?</em>” Organizations ignore these facts to their own detriment, at the cost of time, money, and frustration. I wish them luck.</p>

<p>For everyone else, consider embracing reality. It&#39;s not perfect, but it&#39;s the best we can do.</p>

<p><a href="https://blog.johnkarahalis.com/tag:Life" class="hashtag"><span>#</span><span class="p-category">Life</span></a> <a href="https://blog.johnkarahalis.com/tag:Quotes" class="hashtag"><span>#</span><span class="p-category">Quotes</span></a> <a href="https://blog.johnkarahalis.com/tag:SoftwareDevelopment" class="hashtag"><span>#</span><span class="p-category">SoftwareDevelopment</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/software-cannot-be-estimated-the-way-your-organization-wants-and-its-time-to</guid>
      <pubDate>Tue, 10 Mar 2026 01:32:31 +0000</pubDate>
    </item>
    <item>
      <title>The use of AI on this blog</title>
      <link>https://blog.johnkarahalis.com/the-use-of-ai-on-this-blog?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I want to record an important principle I follow when writing on this blog. I do not use AI to write significant portions of text for me, and I have no intention of ever doing so. The process of writing is so helpful that I can&#39;t give it up.&#xA;&#xA;There was an article where GPT-4 attempted to write three posts in my voice, but it was clearly explained as such. I also occasionally use AI to help with my grammar or other phrasing, but in those cases, I never lift more than a few words from the response. I consult with AI about wording like that about as often as I consult a thesaurus.&#xA;&#xA;AI slop doesn&#39;t worry me as much as it worries some others. I expect AI-generated content will improve dramatically over time and will become indistinguishable from content produced by the human mind. We may already be there, for all intents and purposes. As far as I&#39;m concerned, that&#39;s not the point. Again, the process of writing benefits me, and I&#39;m not willing to forego that benefit.&#xA;&#xA;There is an upcoming post which uses an image generated by ChatGPT. That post credits ChatGPT as the creator, and I plan to always credit AI for images it creates.&#xA;&#xA;#Life #Tech]]&gt;</description>
      <content:encoded><![CDATA[<p>I want to record an important principle I follow when writing on this blog. I do not use AI to write significant portions of text for me, and I have no intention of ever doing so. The <em>process</em> of writing is so helpful that I can&#39;t give it up.</p>

<p>There was an article where <a href="https://blog.johnkarahalis.com/three-posts-by-a-guest-author-gpt-4">GPT-4 attempted to write three posts in my voice</a>, but it was clearly explained as such. I also occasionally use AI to help with my grammar or other phrasing, but in those cases, I never lift more than a few words from the response. I consult with AI about wording like that about as often as I consult a thesaurus.</p>

<p>AI slop doesn&#39;t worry me as much as it worries some others. I expect AI-generated content will improve dramatically over time and will become indistinguishable from content produced by the human mind. We may already be there, for all intents and purposes. As far as I&#39;m concerned, that&#39;s not the point. Again, the <em>process</em> of writing benefits me, and I&#39;m not willing to forego that benefit.</p>

<p>There is an upcoming post which uses an image generated by ChatGPT. That post credits ChatGPT as the creator, and I plan to always credit AI for images it creates.</p>

<p><a href="https://blog.johnkarahalis.com/tag:Life" class="hashtag"><span>#</span><span class="p-category">Life</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/the-use-of-ai-on-this-blog</guid>
      <pubDate>Thu, 05 Mar 2026 05:13:42 +0000</pubDate>
    </item>
    <item>
      <title>Saving Earth</title>
      <link>https://blog.johnkarahalis.com/saving-earth?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[&#34;Everybody wants to save the Earth; nobody wants to help Mom do the dishes.&#34;&#xA;&#xA;—P.J. O&#39;Rourke&#xA;&#xA;I love this quote, because I&#39;ve been that guy. I&#39;ve been the guy who thinks he can save the world but who literally doesn&#39;t help his mom with the dishes when he visits. Thankfully, I&#39;ve dramatically softened in my activism (appropriately discussed ever so briefly in a recipe but nowhere else on this blog), if it can even be called activism any more, and I did help my mom with the dishes during my most recent visit, although I&#39;m sure I could have done more.&#xA;&#xA;I interpret the statement like this: riding a &#34;high horse&#34; can be fun, and there really are important societal problems that ordinary people can help improve. That said, there are always more ordinary problems that need attention, and sometimes fixing those things goes further than protesting in the streets.&#xA;&#xA;#Life #Quotes #SocialMedia #Tech]]&gt;</description>
      <content:encoded><![CDATA[<p>“Everybody wants to save the Earth; nobody wants to help Mom do the dishes.”</p>

<p>—P.J. O&#39;Rourke</p>

<p>I love this quote, because I&#39;ve been that guy. I&#39;ve been the guy who thinks he can save the world but who <em>literally</em> doesn&#39;t help his mom with the dishes when he visits. Thankfully, I&#39;ve dramatically softened in my activism (appropriately discussed <em>ever so briefly</em> in a <a href="https://blog.johnkarahalis.com/vegan-banana-chocolate-chip-muffins">recipe</a> but nowhere else on this blog), if it can even be called activism any more, and I <em>did</em> help my mom with the dishes during my most recent visit, although I&#39;m sure I could have done more.</p>

<p>I interpret the statement like this: riding a “high horse” can be fun, and there really are important societal problems that ordinary people can help improve. That said, there are always more ordinary problems that need attention, and sometimes fixing those things goes further than protesting in the streets.</p>

<p><a href="https://blog.johnkarahalis.com/tag:Life" class="hashtag"><span>#</span><span class="p-category">Life</span></a> <a href="https://blog.johnkarahalis.com/tag:Quotes" class="hashtag"><span>#</span><span class="p-category">Quotes</span></a> <a href="https://blog.johnkarahalis.com/tag:SocialMedia" class="hashtag"><span>#</span><span class="p-category">SocialMedia</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/saving-earth</guid>
      <pubDate>Fri, 27 Feb 2026 22:30:21 +0000</pubDate>
    </item>
    <item>
      <title>I&#39;m a Woz, not a Jobs</title>
      <link>https://blog.johnkarahalis.com/im-a-woz-not-a-jobs?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I&#39;m a Woz, not a Jobs. I write this in reference to the personalities of Steve Wozniak and Steve Jobs, the founders of Apple, although I would never claim to be as intelligent or as effective as either of them. Although I do have a strong product mindset and deep interests in usability and user experience, at the end of the day, like Wozniak, I want to be a good programmer, not a good businessman. I want to learn, not earn.&#xA;&#xA;Some people are motivated by money, and that&#39;s completely reasonable. It pays the bills! It&#39;s just not who I am. It&#39;s not who I&#39;ve ever been. Money, metrics, status: I care about those things like penguins care about Pilates. I&#39;d rather stare at a wall. (I wrote that last sentence before realizing what I was saying, but it&#39;s absolutely true, in more ways than one. If you get the reference, let me know.)&#xA;&#xA;Don&#39;t get me wrong. I can be deeply motivated under the right circumstances. You can hardly pull me away from the computer when I&#39;m learning, iterating, honing my craft, and producing something I&#39;m proud of. That&#39;s where I find flow). But “faster, faster, faster, more, more, more!” just because that’s what your_ boss wants? No, that doesn&#39;t work on me.&#xA;&#xA;I&#39;m amazed that style of management works on anyone, to be honest, but it must. I suppose some people who are motivated by promotions and prestige can clench their teeth and bear it. Maybe they even enjoy the challenge. Me? I don&#39;t see the point. Life is short, and nobody spends their final moments reminiscing about their corner office or their fancy car. Let&#39;s be honest, those things lost their luster after one week.&#xA;&#xA;I regret not being more clear about this aspect of my personality in the past. Moving forward, I want to embrace who I am. If others don&#39;t like it, that&#39;s fine, but they&#39;re probably not the right people for me, and I&#39;m probably not the right person for them.&#xA;&#xA;#Favorites #Life #Maxims #SoftwareDevelopment #Tech]]&gt;</description>
      <content:encoded><![CDATA[<p>I&#39;m a <a href="https://daringfireball.net/linked/2025/08/15/woz-on-slashdot">Woz</a>, not a Jobs. I write this in reference to the personalities of Steve Wozniak and Steve Jobs, the founders of Apple, although I would never claim to be as intelligent or as effective as either of them. Although I do have a strong product mindset and deep interests in usability and user experience, at the end of the day, like Wozniak, I want to be a good programmer, not a good businessman. I want to learn, not earn.</p>

<p>Some people are motivated by money, and that&#39;s completely reasonable. It pays the bills! It&#39;s just not who I am. It&#39;s not who I&#39;ve ever been. Money, <a href="https://blog.johnkarahalis.com/metrics">metrics</a>, status: I care about those things like penguins care about Pilates. I&#39;d rather stare at a wall. (I wrote that last sentence before realizing what I was saying, but it&#39;s absolutely true, in more ways than one. If you get the reference, let me know.)</p>

<p>Don&#39;t get me wrong. I can be deeply motivated under the right circumstances. You can hardly pull me away from the computer when I&#39;m learning, iterating, honing my craft, and producing something I&#39;m proud of. <em>That&#39;s</em> where I find <a href="https://en.wikipedia.org/wiki/Flow_(psychology)">flow</a>. But “faster, faster, faster, more, more, more!” just because that’s what <em>your</em> boss wants? No, that doesn&#39;t work on me.</p>

<p>I&#39;m amazed that style of management works on anyone, to be honest, but it must. I suppose some people who are motivated by promotions and prestige can clench their teeth and bear it. Maybe they even enjoy the challenge. Me? I don&#39;t see the point. Life is short, and nobody spends their final moments reminiscing about their corner office or their fancy car. Let&#39;s be honest, those things lost their luster after one week.</p>

<p>I regret not being more clear about this aspect of my personality in the past. Moving forward, I want to embrace who I am. If others don&#39;t like it, that&#39;s fine, but they&#39;re probably not the right people for me, and I&#39;m probably not the right person for them.</p>

<p><a href="https://blog.johnkarahalis.com/tag:Favorites" class="hashtag"><span>#</span><span class="p-category">Favorites</span></a> <a href="https://blog.johnkarahalis.com/tag:Life" class="hashtag"><span>#</span><span class="p-category">Life</span></a> <a href="https://blog.johnkarahalis.com/tag:Maxims" class="hashtag"><span>#</span><span class="p-category">Maxims</span></a> <a href="https://blog.johnkarahalis.com/tag:SoftwareDevelopment" class="hashtag"><span>#</span><span class="p-category">SoftwareDevelopment</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/im-a-woz-not-a-jobs</guid>
      <pubDate>Wed, 25 Feb 2026 23:42:07 +0000</pubDate>
    </item>
    <item>
      <title>When ordering online, confirm, confirm, confirm</title>
      <link>https://blog.johnkarahalis.com/when-ordering-online-confirm-confirm-confirm?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[The other day, I watched as a customer walked into a restaurant asking for his order. The restaurant hadn&#39;t received the order, however, and the man became upset. He admitted that he&#39;s not great with technology, and he complained that this always seems to happen with the restaurant&#39;s third-party ordering system. When it does happen, he gets no confirmation email and his card is not charged.&#xA;&#xA;The next day, someone in an online class expressed confusion about how to meet their coach for a scheduled appointment, but the coach had no appointment on their calendar. Similarly, years earlier, a relative told me they had ordered an Uber, but it never showed up.&#xA;&#xA;In all of these cases, I&#39;m almost certain the users did not click the final button labeled Order, Confirm, Submit, or similar. (The restaurant owner blamed browser cookies, but that has nothing to do with it.)&#xA;&#xA;I can hardly blame these users, though. I once showed up to a hotel, thinking I had booked a room with them, only to find that they had no reservation under my name. I looked for the confirmation email, and sure enough, it didn&#39;t exist! I needed to quickly book with some rinky-dink place across the street. I had made the same mistake!&#xA;&#xA;This isn&#39;t about tech literacy or intelligence; it&#39;s about bad user interface design. A depressing amount of software ignores the basic rules of usable design. In this case, what looks like a confirmation screen (i.e., &#34;your order has been placed&#34;) may actually be a confirm screen (i.e., &#34;tell us that you&#39;re sure&#34;). When users are on those screens, their loci of attention may be on the order details rather than the user interface. They want to know that the flight time is correct. They want to know that the price is correct. They may not be paying attention to the Confirm button, which is probably offscreen anyway. They may not be looking at the tiny text at the top which reads, &#34;Please review this information before booking your flight.&#34; They are focused on something else, which may explain why they miss context clues in the periphery. Jef Raskin discusses this at length in his book, The Humane Interface.&#xA;&#xA;So before leaving an app, website, or other ordering system, be sure to confirm, confirm, and confirm again. Slow down. Read carefully. Scroll. Zoom in and out. Make sure there&#39;s nothing else you need to do. A few seconds of prudence may prevent lots of frustration later.&#xA;&#xA;#Life #SoftwareDevelopment #Tech #TechTips]]&gt;</description>
      <content:encoded><![CDATA[<p>The other day, I watched as a customer walked into a restaurant asking for his order. The restaurant hadn&#39;t received the order, however, and the man became upset. He admitted that he&#39;s not great with technology, and he complained that this always seems to happen with the restaurant&#39;s third-party ordering system. When it does happen, he gets no confirmation email and his card is not charged.</p>

<p>The next day, someone in an online class expressed confusion about how to meet their coach for a scheduled appointment, but the coach had no appointment on their calendar. Similarly, years earlier, a relative told me they had ordered an Uber, but it never showed up.</p>

<p>In all of these cases, I&#39;m almost certain the users did not click the <strong>final</strong> button labeled <em>Order</em>, <em>Confirm</em>, <em>Submit</em>, or similar. (The restaurant owner blamed browser cookies, but that has nothing to do with it.)</p>

<p>I can hardly blame these users, though. I once showed up to a hotel, thinking I had booked a room with them, only to find that they had no reservation under my name. I looked for the confirmation email, and sure enough, it didn&#39;t exist! I needed to quickly book with some rinky-dink place across the street. I had made the same mistake!</p>

<p>This isn&#39;t about tech literacy or intelligence; it&#39;s about bad user interface design. A depressing amount of software ignores the basic rules of usable design. In this case, what looks like a confirmation screen (i.e., “your order has been placed”) may actually be a <em>confirm</em> screen (i.e., “tell us that you&#39;re sure”). When users are on those screens, their loci of attention may be on the order details rather than the user interface. They want to know that the flight time is correct. They want to know that the price is correct. They may not be paying attention to the <em>Confirm</em> button, which is probably offscreen anyway. They may not be looking at the tiny text at the top which reads, “Please review this information before booking your flight.” They are focused on something else, which may explain why they miss context clues in the periphery. Jef Raskin discusses this at length in his book, <a href="https://openlibrary.org/works/OL8020001W/The_Humane_Interface"><em>The Humane Interface</em></a>.</p>

<p>So before leaving an app, website, or other ordering system, be sure to confirm, confirm, and confirm again. Slow down. Read carefully. Scroll. Zoom in and out. Make sure there&#39;s nothing else you need to do. A few seconds of prudence may prevent lots of frustration later.</p>

<p><a href="https://blog.johnkarahalis.com/tag:Life" class="hashtag"><span>#</span><span class="p-category">Life</span></a> <a href="https://blog.johnkarahalis.com/tag:SoftwareDevelopment" class="hashtag"><span>#</span><span class="p-category">SoftwareDevelopment</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a> <a href="https://blog.johnkarahalis.com/tag:TechTips" class="hashtag"><span>#</span><span class="p-category">TechTips</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/when-ordering-online-confirm-confirm-confirm</guid>
      <pubDate>Mon, 16 Feb 2026 20:07:34 +0000</pubDate>
    </item>
    <item>
      <title>Metrics</title>
      <link>https://blog.johnkarahalis.com/metrics?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[This fairly recent obsession with metrics in the workplace is driving companies insane.&#xA;&#xA;A while back, I watched a video about all the ways hotels are trying to save money by, among other things, eliminating storage space, removing desks, pressuring guests to work at the bar, where those guests can spend more money, and making the in-room bathrooms less private. These changes are, of course, driven by metrics like &#34;GSS&#34; and &#34;ITR,&#34; whatever the f@*k those are.&#xA;&#xA;Is there a kernel of truth to all of this? Sure. Aloft Hotels are cozy, and they seem to follow this playbook. I didn&#39;t mind staying in one when I was stuck in San Francisco for one night more than ten years ago. Would I want to stay in one of their rooms during a business trip or anything else lasting more than a couple of days? Hell no. I&#39;d like a desk and somewhere to put my clothes. (I know, I&#39;m so needy. I travel with clothes.)&#xA;&#xA;Metrics are fine, sometimes, when their use is limited and their shortcomings are genuinely appreciated. Taking them too seriously and letting them make the decisions, however, is a recipe for disaster. Hard questions demand more thoughtfulness than that. &#34;GSS&#34; and &#34;ITR&#34; are meaningful until they aren&#39;t, and nobody is going to find solace in those abbreviations when generations of potential customers steer clear of your business because they actually want something good.&#xA;&#xA;Sadly, I don&#39;t think most businesses think that far ahead.&#xA;&#xA;Show me the metric which proves that your business isn&#39;t taking a massive risk by ignoring common sense. Until then, I don&#39;t care about &#34;the numbers.&#34;&#xA;&#xA;#Life #SoftwareDevelopment #Tech]]&gt;</description>
      <content:encoded><![CDATA[<p>This fairly recent obsession with <em>metrics</em> in the workplace is driving companies insane.</p>

<p>A while back, I watched a video about <a href="https://www.youtube.com/watch?v=116cwKs2XQs">all the ways hotels are trying to save money</a> by, among other things, eliminating storage space, removing desks, pressuring guests to work at the bar, where those guests can spend more money, and making the in-room bathrooms less private. These changes are, of course, driven by metrics like “GSS” and “ITR,” whatever the f@*k those are.</p>

<p>Is there a kernel of truth to all of this? Sure. Aloft Hotels are cozy, and they seem to follow this playbook. I didn&#39;t mind staying in one when I was <a href="https://www.theguardian.com/world/2014/sep/26/flights-cancelled-chicago-airports-fire">stuck in San Francisco</a> for one night more than ten years ago. Would I want to stay in one of their rooms during a business trip or anything else lasting more than a couple of days? Hell no. I&#39;d like a desk and somewhere to put my clothes. (I know, I&#39;m so needy. I travel with <em>clothes</em>.)</p>

<p>Metrics are fine, sometimes, when their use is limited and their shortcomings are genuinely appreciated. <a href="https://blog.johnkarahalis.com/last-do-no-harm">Taking them too seriously</a> and letting them make the decisions, however, is <a href="https://blog.johnkarahalis.com/misguided-measurement">a recipe for disaster</a>. Hard questions demand more thoughtfulness than that. “GSS” and “ITR” are meaningful until they aren&#39;t, and nobody is going to find solace in those abbreviations when generations of potential customers steer clear of your business because they actually want something <em>good</em>.</p>

<p>Sadly, I don&#39;t think most businesses think that far ahead.</p>

<p>Show me the metric which proves that your business isn&#39;t taking a massive risk by ignoring common sense. Until then, I don&#39;t care about “the numbers.”</p>

<p><a href="https://blog.johnkarahalis.com/tag:Life" class="hashtag"><span>#</span><span class="p-category">Life</span></a> <a href="https://blog.johnkarahalis.com/tag:SoftwareDevelopment" class="hashtag"><span>#</span><span class="p-category">SoftwareDevelopment</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/metrics</guid>
      <pubDate>Sun, 08 Feb 2026 18:39:03 +0000</pubDate>
    </item>
    <item>
      <title>If TikTok Were Honest</title>
      <link>https://blog.johnkarahalis.com/if-tiktok-were-honest?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[The video If TikTok Were Honest is surprisingly good. It does a great job of explaining the harms of social media in general and the harms of TikTok in particular.&#xA;&#xA;  Say you&#39;re into politics. [TikTok] will push you further and further into the extreme edges of whatever side you&#39;re on. Why? Because outrage and confirmation bias keeps you glued to your screen! This isn&#39;t just bad for your worldview, it&#39;s bad for society. Echo chambers breed division. They make people more certain they&#39;re right, more hostile to differing opinions, and less likely to engage in actual conversation.&#xA;    —If TikTok Were Honest&#xA;&#xA;Let&#39;s not gloss over the reminder that this is bad for your worldview. That&#39;s one of my biggest problems with social media. In making people more extreme and less aware of differing opinions, their persuasive ability weakens and they become counterproductive in their activism. To add insult to injury, they sometimes actually come to think of themselves as the sacred protectors of their various causes. Give me a break.&#xA;&#xA;Don&#39;t leave social media because I told you to. Leave social media because it&#39;s making you hurt the people you&#39;re trying to help.&#xA;&#xA;#Life #Maxims #SocialMedia #Tech]]&gt;</description>
      <content:encoded><![CDATA[<p>The video <a href="https://www.youtube.com/watch?v=_1R5K9E8UUk">If TikTok Were Honest</a> is surprisingly good. It does a great job of explaining the harms of social media in general and the harms of TikTok in particular.</p>

<blockquote><p>Say you&#39;re into politics. [TikTok] will push you further and further into the extreme edges of whatever side you&#39;re on. Why? Because outrage and confirmation bias keeps you glued to your screen! This isn&#39;t just bad for your worldview, it&#39;s bad for society. Echo chambers breed division. They make people more certain they&#39;re right, more hostile to differing opinions, and less likely to engage in actual conversation.</p>

<p>—<a href="https://www.youtube.com/watch?v=_1R5K9E8UUk"><em>If TikTok Were Honest</em></a></p></blockquote>

<p>Let&#39;s not gloss over the reminder that this is <em>bad for your worldview</em>. That&#39;s one of my biggest problems with social media. In making people more extreme and <a href="https://blog.johnkarahalis.com/hyperpartisan-media-in-our-pockets">less aware</a> of differing opinions, <a href="https://blog.johnkarahalis.com/engaging-with-our-ideological-opponents">their persuasive ability weakens</a> and they become <a href="https://blog.johnkarahalis.com/counterproductive-activism">counterproductive in their activism</a>. To add insult to injury, they sometimes actually come to think of themselves as the <em>sacred protectors</em> of their various causes. Give me a break.</p>

<p>Don&#39;t leave social media because I told you to. Leave social media because it&#39;s making you hurt the people you&#39;re trying to help.</p>

<p><a href="https://blog.johnkarahalis.com/tag:Life" class="hashtag"><span>#</span><span class="p-category">Life</span></a> <a href="https://blog.johnkarahalis.com/tag:Maxims" class="hashtag"><span>#</span><span class="p-category">Maxims</span></a> <a href="https://blog.johnkarahalis.com/tag:SocialMedia" class="hashtag"><span>#</span><span class="p-category">SocialMedia</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/if-tiktok-were-honest</guid>
      <pubDate>Fri, 06 Feb 2026 19:46:26 +0000</pubDate>
    </item>
    <item>
      <title>Distrobox</title>
      <link>https://blog.johnkarahalis.com/distrobox?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Distrobox is amazing. It&#39;s like Linux Subsystem for Linux in the best possible way. (That&#39;s a play on the name Windows Subsystem for Linux.) With one command, anyone can spin up the shell environment of another Linux distribution, and the host files will be right there. Are you using Debian because you value desktop stability, but you want to use the latest Neovim? No problem. Use Distrobox to create an Arch or Fedora environment, install Neovim, and use it. That&#39;s it!&#xA;&#xA;I&#39;m surprised, disappointed, and a bit embarrassed I didn&#39;t know about it until now.&#xA;&#xA;#SoftwareDevelopment #Tech]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://github.com/89luca89/distrobox">Distrobox</a> is amazing. It&#39;s like Linux Subsystem for Linux in the best possible way. (That&#39;s a play on the name <a href="https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux">Windows Subsystem for Linux</a>.) With one command, anyone can spin up the shell environment of another Linux distribution, and the host files will be right there. Are you using <a href="https://blog.johnkarahalis.com/debian">Debian</a> because you value desktop stability, but you want to use the latest Neovim? No problem. Use Distrobox to create an <a href="https://archlinux.org/">Arch</a> or <a href="https://www.fedoraproject.org/">Fedora</a> environment, install Neovim, and use it. That&#39;s it!</p>

<p>I&#39;m surprised, disappointed, and a bit embarrassed I didn&#39;t know about it until now.</p>

<p><a href="https://blog.johnkarahalis.com/tag:SoftwareDevelopment" class="hashtag"><span>#</span><span class="p-category">SoftwareDevelopment</span></a> <a href="https://blog.johnkarahalis.com/tag:Tech" class="hashtag"><span>#</span><span class="p-category">Tech</span></a></p>
]]></content:encoded>
      <guid>https://blog.johnkarahalis.com/distrobox</guid>
      <pubDate>Sun, 01 Feb 2026 04:11:04 +0000</pubDate>
    </item>
  </channel>
</rss>