<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anas Abdullah</title>
    <description>The latest articles on DEV Community by Anas Abdullah (@anas_abdullah).</description>
    <link>https://dev.to/anas_abdullah</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4222399%2F2369c830-1a37-41d9-b823-1752c7a597f5.jpg</url>
      <title>DEV Community: Anas Abdullah</title>
      <link>https://dev.to/anas_abdullah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anas_abdullah"/>
    <language>en</language>
    <item>
      <title>5 Reasons Software Estimates Go Wrong (and What I Do Instead)</title>
      <dc:creator>Anas Abdullah</dc:creator>
      <pubDate>Mon, 02 Nov 2026 13:13:08 +0000</pubDate>
      <link>https://dev.to/anas_abdullah/5-reasons-software-estimates-go-wrong-and-what-i-do-instead-51k3</link>
      <guid>https://dev.to/anas_abdullah/5-reasons-software-estimates-go-wrong-and-what-i-do-instead-51k3</guid>
      <description>&lt;p&gt;I've been on both sides of "how long will this take?": first as the developer giving the answer, now as the technical project manager turning that answer into a plan a client can trust.&lt;/p&gt;

&lt;p&gt;Estimates rarely fail randomly. They fail for the same five reasons, over and over.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The task is too big to estimate
&lt;/h2&gt;

&lt;p&gt;"Build the checkout" can't be estimated well. "Cart summary screen", "payment provider integration", and "order confirmation email" can.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I do:&lt;/strong&gt; break the work down until no single piece is more than a few days. If it's bigger, it's hiding something.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Only coding is counted
&lt;/h2&gt;

&lt;p&gt;Code review, QA, bug fixing, deployment, documentation, and client clarifications are all real work. Three days of coding can easily become five days of delivered work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I do:&lt;/strong&gt; add explicit rows for "the work people forget" in every estimate, so they can't be left out.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Unknowns are treated as knowns
&lt;/h2&gt;

&lt;p&gt;A new third-party API or a vague requirement gets the same confident number as a CRUD screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I do:&lt;/strong&gt; estimate in ranges. Ask for optimistic, most likely, and pessimistic values, and combine them with PERT:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PERT = (O + 4M + P) / 6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A task that's 3 days at best, 5 most likely, and 15 if things go wrong comes out at about 6.3 days, not 5. For real unknowns, run a short time-boxed spike first, or add a visible buffer tied to that specific risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The estimate becomes a promise
&lt;/h2&gt;

&lt;p&gt;An estimate given under pressure in a meeting quietly turns into a deadline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I do:&lt;/strong&gt; share a range or a date with a confidence level, name the assumptions behind it, and say when it will be revisited. Uncertainty explained up front is a conversation; a surprise later is a broken promise.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Nobody updates it
&lt;/h2&gt;

&lt;p&gt;The plan changes; the estimate doesn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I do:&lt;/strong&gt; track estimated vs actual effort on every task. Not to blame anyone, but to learn which kinds of work the team keeps underestimating.&lt;/p&gt;

&lt;h2&gt;
  
  
  A note on AI coding tools
&lt;/h2&gt;

&lt;p&gt;It's tempting to cut estimates because "AI will make it faster". AI can shorten the coding part, but it doesn't remove review, testing, or integration, and more generated code can mean more to review. I don't apply a blanket AI discount; I adjust from the team's own actuals.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full process and a free template
&lt;/h2&gt;

&lt;p&gt;I wrote up the full seven-step process, with estimation techniques compared and the formulas explained, here: &lt;strong&gt;&lt;a href="https://anasabdullah.dev/writing/estimating-software-work" rel="noopener noreferrer"&gt;Software Development Estimation: My 7 Steps&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There's also a &lt;strong&gt;&lt;a href="https://anasabdullah.dev/templates/software-estimation" rel="noopener noreferrer"&gt;free Excel estimation template&lt;/a&gt;&lt;/strong&gt; that does the PERT math, keeps risk buffers visible, and gives you an estimate at about 84% and 95% confidence. No sign-up, and it works in Google Sheets too.&lt;/p&gt;

&lt;p&gt;How does your team handle estimates? I'd like to hear what works for you.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>agile</category>
      <category>softwareengineering</category>
      <category>career</category>
    </item>
  </channel>
</rss>
