<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Resources</title>
    <link>https://nyeinchanaung.me/resources</link>
    <description>Notes on product, AI, and the path between them — written from real, shipped work, not theory.</description>
    <language>en-us</language>
    <pubDate>Wed, 28 Oct 2026 09:05:33 GMT</pubDate>
    <dc:date>2026-10-28T09:05:33Z</dc:date>
    <dc:language>en-us</dc:language>
    <item>
      <title>Piloting a Burmese-Language AI Chatbot on Small Dataset</title>
      <link>https://nyeinchanaung.me/resources/burmese-ai-chatbot-pilot-lessons</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://nyeinchanaung.me/resources/burmese-ai-chatbot-pilot-lessons" title="" class="hs-featured-image-link"&gt; &lt;img src="https://nyeinchanaung.me/hubfs/Burmese_Agricultural_AI_Technical_Pilot-cropped.png" alt="Training Burmese AI for Farmer" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;em&gt;At a previous company, I managed the development of a pilot AI chatbot meant to help Burmese-speaking farmers get faster answers to seasonal farming questions - pest and disease pressure, fertilizer timing, that kind of thing. It's an old project from a former employer, so I won't name the product here; what I want to write about honestly is the pilot itself, because the result wasn't very good, and I think the reasons why are more useful to talk about than the reasons a project went well.&lt;/em&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;em&gt;At a previous company, I managed the development of a pilot AI chatbot meant to help Burmese-speaking farmers get faster answers to seasonal farming questions - pest and disease pressure, fertilizer timing, that kind of thing. It's an old project from a former employer, so I won't name the product here; what I want to write about honestly is the pilot itself, because the result wasn't very good, and I think the reasons why are more useful to talk about than the reasons a project went well.&lt;/em&gt;&lt;/p&gt; 
&lt;h2&gt;&lt;span style="color: #1f3d2b;"&gt;Why we built it&lt;/span&gt;&lt;/h2&gt; 
&lt;p&gt;The team behind the platform was already running a farmer advisory channel by hand - answering around 300 questions a month, publishing roughly 170 seasonal articles, and fielding about 1,500 comments, all in Burmese. The honest bottleneck wasn't a lack of expertise; it was throughput. Replies were taking up to 24 hours, a large share of the questions repeated each other almost verbatim, and reporting on what farmers were actually asking was scattered across different app versions and social channels with no single view. An AI-assisted first response looked like a reasonable way to close that gap - not to replace the advisory team, but to take the repetitive volume off their plate and let them focus on the questions that actually needed a person.&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;p&gt;&lt;img src="https://nyeinchanaung.me/hs-fs/hubfs/blog/Burmese_Agricultural_AI_Technical_Pilot-cropped-tech.png?width=1239&amp;amp;height=927&amp;amp;name=Burmese_Agricultural_AI_Technical_Pilot-cropped-tech.png" width="1239" height="927" alt="Technical Architecture" style="height: auto; max-width: 100%; width: 1239px;"&gt;&lt;/p&gt; 
&lt;p style="text-align: center;"&gt;&lt;span style="color: #666666; font-size: 16px;"&gt;&lt;em&gt;Figure 1. Technical Architecture&lt;/em&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;h2&gt;&lt;span style="color: #1f3d2b;"&gt;What we built, and why the approach itself was sound&lt;/span&gt;&lt;/h2&gt; 
&lt;p&gt;We fine-tuned &lt;em&gt;&lt;span style="font-weight: bold;"&gt;SeaLLMs-v3-7B-Chat&lt;/span&gt;&lt;/em&gt; - a 7-billion-parameter model with native Burmese support - using&lt;em&gt; QLoRA:&lt;/em&gt; 4-bit quantization plus low-rank adapters that only touch about 0.1% of the model's parameters. That choice deserves credit on its own. It meant a full training run fit on a single &lt;em&gt;AWS SageMaker&lt;/em&gt; GPU instance, took two to three hours, and cost roughly four to five dollars a&amp;nbsp;run. For a pilot with a real budget ceiling, being able to iterate for a few dollars at a time - instead of needing a multi-GPU cluster - was the right call, and it's a pattern I'd reach for again on any resource-constrained AI pilot.&lt;/p&gt; 
&lt;p&gt;The serving design was the other thing that held up well: every response came back with a confidence score, and that score routed the response rather than just decorating it. Above 0.6 confidence, the bot answered directly. Between 0.3 and 0.6, it answered but attached a disclaimer and logged the exchange for review. Below 0.3, the question was queued for a human expert instead of being answered at all. That's a genuinely responsible way to ship a model you don't fully trust yet - the system was designed to know what it didn't know, rather than to guess confidently and hope.&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;p&gt;&lt;img src="https://nyeinchanaung.me/hs-fs/hubfs/blog/Burmese_Agricultural_AI_Technical_Pilot-cropped-operation.png?width=1243&amp;amp;height=913&amp;amp;name=Burmese_Agricultural_AI_Technical_Pilot-cropped-operation.png" width="1243" height="913" alt="Burmese_Agricultural_AI_Technical_Pilot-cropped-operation" style="height: auto; max-width: 100%; width: 1243px;"&gt;&lt;/p&gt; 
&lt;p style="text-align: center;"&gt;&lt;em&gt;&lt;span style="font-size: 16px; color: #666666;"&gt;Figure 2. Operational and Performance Result&lt;/span&gt;&lt;/em&gt;&lt;/p&gt; 
&lt;h2&gt;&lt;span style="color: #1f3d2b;"&gt;Where it actually fell short&lt;/span&gt;&lt;/h2&gt; 
&lt;p&gt;Here's the part that's less flattering, and the reason I wanted to write this at all.&lt;/p&gt; 
&lt;p&gt;The training set was small - &lt;em&gt;527&lt;/em&gt; Q&amp;amp;A pairs total, split down to &lt;em&gt;385 &lt;/em&gt;actual training examples once we set aside data for validation and testing. About a third of that came from the platform's own farmer support history; the rest came from supplementing it with a public Burmese-language agriculture dataset, just to get to a workable size. A later review of the project recommended scaling that up to 15,000-plus examples:&amp;nbsp;3,000 or more per crop category,&amp;nbsp;to get to something resembling robust coverage. We were short of that by roughly a factor of ten.&lt;/p&gt; 
&lt;p&gt;The evaluation results reflected it, in a specific and instructive way. The confidence metrics looked excellent on paper - 94.5% average confidence, and a 0.708 correlation between the model's confidence and the actual quality of its answers, which is a genuinely strong calibration result. But confidence isn't correctness, and this is where the small-dataset problem actually bit us: the text-quality metrics that would have told us whether the &lt;em&gt;content&lt;/em&gt; of the answers was accurate - BLEU, ROUGE, chrF, the standard measures for comparing generated text against a reference answer&amp;nbsp;were never actually computed on the real evaluation run, because the tooling for it hadn't been fully installed on the training infrastructure at the time. So the one number that mattered most for a farming product-&amp;nbsp; is this factually right-&amp;nbsp;&amp;nbsp;is the one number we didn't reliably have. A well-calibrated model that's confidently wrong about fertilizer timing is worse than a model that hedges, and we didn't have the instrumentation in place to rule that out at scale. We were relying on spot-checking rather than a real quality score, which is a smaller and less rigorous safety net than it should have been.&lt;/p&gt; 
&lt;p&gt;Latency and throughput missed their targets too - average response time of about 11.6 seconds against a 5-second target, generation speed under the target range - which matters more than it might seem for a product where farmers are asking time-sensitive questions in the field, sometimes on a poor connection.&lt;/p&gt; 
&lt;h3 style="line-height: 1.5rem; color: #303030; font-size: 20px;"&gt;&lt;strong&gt;Takeaway 1: An AI that "Knows What It Knows"&lt;/strong&gt;&lt;/h3&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;The true breakthrough of this project isn't just raw intelligence; it’s an unprecedented level of "honesty." By implementing rigorous calibration metrics, we achieved a &lt;/span&gt;
 &lt;strong&gt;0.708 correlation&lt;/strong&gt;
 &lt;span&gt; between the model’s internal confidence and the actual quality of its output.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;In emerging markets, AI is not just a tool—it is a risk management strategy for the underserved. A model that "hallucinates" an answer to a crop disease query can lead to total harvest failure. Therefore, model calibration is the ultimate form of risk mitigation. This correlation is a surprising achievement, proving the model acts as its own internal auditor.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;"A well-calibrated model gives high confidence to correct answers and low confidence to uncertain ones, enabling reliable Human-in-the-Loop (HITL) routing."&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;This calibration ensures that when the AI is unsure, it remains silent and seeks help. In agricultural advisory, a model that knows when it is wrong is objectively more valuable than a model that is right 100% of the time but cannot flag its own errors.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;&amp;nbsp;&lt;/span&gt;
&lt;/div&gt; 
&lt;h3 style="line-height: 1.5rem; color: #303030; font-size: 24px;"&gt;&lt;span style="font-size: 20px;"&gt;Takeaway 2: High Performance on a Shoestring Budget&lt;/span&gt;&lt;/h3&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;We are often told that elite AI requires Silicon Valley-sized budgets. This project shatters that myth through what I call &lt;/span&gt;
 &lt;strong&gt;computational frugality.&lt;/strong&gt;
 &lt;span&gt; By utilizing &lt;/span&gt;
 &lt;strong&gt;QLoRA&lt;/strong&gt;
 &lt;span&gt; (Quantized Low-Rank Adaptation) on &lt;/span&gt;
 &lt;strong&gt;AWS SageMaker&lt;/strong&gt;
 &lt;span&gt;, we deployed a sophisticated model with elite-level performance for the price of a cup of coffee.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;The secret sauce behind this memory efficiency on the &lt;/span&gt;
 &lt;strong&gt;ml.g5.2xlarge&lt;/strong&gt;
 &lt;span&gt; instance included:&lt;/span&gt;
&lt;/div&gt; 
&lt;ul style="color: #303030; background-color: #ffffff;"&gt; 
 &lt;li style="line-height: 1.5rem; color: #303030;"&gt;&lt;strong&gt;4-bit Quantization (NF4):&lt;/strong&gt;&lt;span&gt; Slashed memory requirements from 28GB to approximately 8GB.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style="line-height: 1.5rem; color: #303030;"&gt;&lt;strong&gt;Secret Technical Sauce:&lt;/strong&gt;&lt;span&gt; The use of &lt;/span&gt;&lt;strong&gt;Flash Attention 2&lt;/strong&gt;&lt;span&gt; support and &lt;/span&gt;&lt;strong&gt;gradient checkpointing&lt;/strong&gt;&lt;span&gt; allowed us to maximize the 24GB VRAM of the single NVIDIA A10G GPU.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style="line-height: 1.5rem; color: #303030;"&gt;&lt;strong&gt;Radical Efficiency:&lt;/strong&gt;&lt;span&gt; Each training run cost a mere &lt;/span&gt;&lt;strong&gt;$4 to $5&lt;/strong&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style="line-height: 1.5rem; color: #303030;"&gt;&lt;strong&gt;Precision Training:&lt;/strong&gt;&lt;span&gt; LoRA adapters required training only 0.1% of the total parameters, focusing specifically on attention layers (q, k, v, o_proj).&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;This proves that specialized, high-impact AI can be democratized, allowing localized tools to thrive without massive infrastructure overhead.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;&amp;nbsp;&lt;/span&gt;
&lt;/div&gt; 
&lt;h3 style="line-height: 1.5rem; color: #303030; font-size: 20px;"&gt;&lt;span&gt;Takeaway 3: The Power of Native Language Models&lt;/span&gt;&lt;/h3&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;Generic, Western-centric&amp;nbsp;LLMs often treat Southeast Asian languages as an afterthought. We bypassed this by selecting &lt;/span&gt;
 &lt;strong&gt;SeaLLMs-v3-7B-Chat&lt;/strong&gt;
 &lt;span&gt; as our foundation. This "Language-First" design is the only way to prevent the generation issues that plague general models when dealing with Burmese script.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;Data quality was our North Star. We implemented a rigorous process of Unicode normalization and standardized the use of the "။" (the Burmese period) to ensure structural integrity.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;"The data quality process highlighted the importance of domain-specific agricultural terminology and real-world queries from farmers to prevent generation issues and ensure the AI speaks the language of the field."&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;By starting with a model natively optimized for the syntax and nuances of Myanmar, our fine-tuning could focus on agricultural expertise rather than teaching the AI basic linguistics.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;&amp;nbsp;&lt;/span&gt;
&lt;/div&gt; 
&lt;h3 style="line-height: 1.5rem; color: #303030; font-size: 20px;"&gt;&lt;span&gt;Takeaway 4: The "Confidence Gatekeeper" Workflow&lt;/span&gt;&lt;/h3&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;Trust is built through safety. To ensure the platform&amp;nbsp;remains the gold standard for advice, we implemented a Human-in-the-Loop (HITL) routing system that functions as a "Confidence Gatekeeper." Responses are directed based on precise probability thresholds:&lt;/span&gt;
&lt;/div&gt; 
&lt;ul style="color: #303030; background-color: #ffffff;"&gt; 
 &lt;li style="line-height: 1.5rem; color: #303030;"&gt;&lt;strong&gt;High (≥0.6):&lt;/strong&gt;&lt;span&gt; Direct response to the farmer.&lt;/span&gt;&lt;/li&gt; 
 &lt;li style="line-height: 1.5rem; color: #303030;"&gt;&lt;strong&gt;Medium (0.3 - 0.6):&lt;/strong&gt;&lt;span&gt; The AI responds but includes a localized disclaimer: &lt;/span&gt;&lt;i&gt;"ဤအဖြေသည် AI မှထုတ်ပေးသည့် အကြံပြုချက်ဖြစ်ပါသည်။"&lt;/i&gt;&lt;span&gt; (This response is an AI-generated suggestion).&lt;/span&gt;&lt;/li&gt; 
 &lt;li style="line-height: 1.5rem; color: #303030;"&gt;&lt;strong&gt;Low (&amp;lt;0.3):&lt;/strong&gt;&lt;span&gt; The query is immediately routed to a human expert.&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;We proved the efficacy of this system during a &lt;/span&gt;
 &lt;strong&gt;"Shadow Mode"&lt;/strong&gt;
 &lt;span&gt; pilot, where AI suggestions were shown only to experts. In this phase, the AI suggestions were &lt;/span&gt;
 &lt;strong&gt;validated by experts at a 90%+ rate&lt;/strong&gt;
 &lt;span&gt;, providing the credibility needed for full deployment. In the review interface, experts can Approve, Edit, Reject, or Escalate, creating a continuous loop of improvement.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;&amp;nbsp;&lt;/span&gt;
&lt;/div&gt; 
&lt;h3 style="line-height: 1.5rem; color: #303030; font-size: 20px;"&gt;&lt;span&gt;Takeaway 5: From 1,500 to 15,000—The Data Scarcity Reality Check&lt;/span&gt;&lt;/h3&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;There is a sobering reality in emerging market AI: the data scarcity is real. Our initial success was built on a combined corpus of roughly &lt;/span&gt;
 &lt;strong&gt;1,500 Q&amp;amp;A pairs&lt;/strong&gt;
 &lt;span&gt;—500 meticulously sourced from Village Link field data and 1,000 from the Burmese Agriculture public dataset. While this was a strong foundation, mastery requires scale.&lt;/span&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;strong&gt;Architectural Mandate: The Road to&amp;nbsp;&lt;/strong&gt;
 &lt;span style="margin: 0px; padding: 0px;"&gt;&lt;strong&gt;15,000.&amp;nbsp;&lt;/strong&gt;For&lt;/span&gt;
 &lt;span&gt;&amp;nbsp;production-grade reliability across Myanmar’s diverse landscape, we require &lt;/span&gt;
 &lt;strong&gt;3,000+ Q&amp;amp;A pairs per crop type&lt;/strong&gt;
 &lt;span&gt;. Data scarcity isn't a failure; it is the fuel for our continuous improvement phase, where every expert correction is fed back into the model to reach our goal of &lt;/span&gt;
 &lt;strong&gt;15,000+ entries.&lt;/strong&gt;
&lt;/div&gt; 
&lt;div style="line-height: 1.5rem; color: #303030;"&gt;
 &lt;span&gt;This scale is necessary to move from general advice to local specialization, accounting for specific soil types and regional climate zones.&lt;/span&gt;
&lt;/div&gt; 
&lt;h2&gt;The honest verdict&lt;/h2&gt; 
&lt;p&gt;Put together, the pilot didn't reach a bar where it could stand in for the advisory team's judgment, and it would have been the wrong call to represent it as more capable than it was. What it did prove was that the architecture - a cheaply fine-tuned small model, gated by its own confidence score, backstopped by a human queue for anything uncertain - is a sound way to introduce AI into a workflow like this without overpromising. The gap wasn't the design. We asked a model to learn Burmese agricultural nuance from about 1,500 examples when the realistic number was closer to fifteen thousand, and we didn't have quality metrics in place to catch that gap early instead of discovering it in the results.&lt;/p&gt; 
&lt;p&gt;If I were scoping this pilot again, I'd treat the dataset size and the evaluation tooling as first-class requirements before writing a line of training code, not as line items to reconsider once&amp;nbsp;the model was already running. A confidence-based safety net is a good idea. It's not a substitute for enough data to actually be confident about.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=246793493&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fnyeinchanaung.me%2Fresources%2Fburmese-ai-chatbot-pilot-lessons&amp;amp;bu=https%253A%252F%252Fnyeinchanaung.me%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Digital Product</category>
      <category>Farmers</category>
      <category>Burmese</category>
      <category>AI</category>
      <category>Dataset</category>
      <pubDate>Wed, 09 Sep 2026 08:29:27 GMT</pubDate>
      <author>nyeinchanaung.mr@gmail.com (Nyein Chan Aung)</author>
      <guid>https://nyeinchanaung.me/resources/burmese-ai-chatbot-pilot-lessons</guid>
      <dc:date>2026-09-09T08:29:27Z</dc:date>
    </item>
    <item>
      <title>What Ten Years of Two-Week Sprints Taught Me About Realistic Estimation</title>
      <link>https://nyeinchanaung.me/resources/what-ten-years-of-two-week-sprints-taught-me-about-realistic-estimation</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://nyeinchanaung.me/resources/what-ten-years-of-two-week-sprints-taught-me-about-realistic-estimation" title="" class="hs-featured-image-link"&gt; &lt;img src="https://nyeinchanaung.me/hubfs/34fa9900-20f0-4f17-ac47-7896865c7fac.jpg" alt="What Ten Years of Two-Week Sprints Taught Me About Realistic Estimation" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;I've run roughly two hundred and fifty two-week sprints. That number surprised me when I actually sat down and counted it — from a scrum-master seat at 360ed in 2018, through years of product management at Village Link, to the loan and traceability platforms I still advise on today. Same rhythm, same ceremonies, wildly different domains: education apps, microfinance wallets, an agri-social platform that now serves 300,000+ farmers.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;I've run roughly two hundred and fifty two-week sprints. That number surprised me when I actually sat down and counted it — from a scrum-master seat at 360ed in 2018, through years of product management at Village Link, to the loan and traceability platforms I still advise on today. Same rhythm, same ceremonies, wildly different domains: education apps, microfinance wallets, an agri-social platform that now serves 300,000+ farmers.&lt;/p&gt; 
&lt;p&gt;What didn't stay wildly different was how often my estimates were wrong. Not because the team was bad at guessing — because for a long time, we were guessing, and calling it estimation.&lt;/p&gt; 
&lt;p&gt;This is the honest version of what actually got our estimates closer to reality. No framework claims a permanent fix here; these are five habits that moved the needle for me, in the order I learned them the hard way.&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h2&gt;1. Separate the known work from the unknown work — don't average them together&lt;/h2&gt; 
&lt;p&gt;In 2021, we migrated roughly a hundred thousand user records from Htwet Toe's legacy system to a new platform. I scoped it the way I scoped everything else at the time: break it into tickets, estimate each ticket, sum the tickets. The total came out confident and wrong.&lt;/p&gt; 
&lt;p&gt;The problem wasn't the estimating technique. It was that "migrate the data" and "build the new onboarding form" don't carry the same kind of uncertainty, and averaging them into one backlog hid that. The onboarding form was well-understood work — we'd built a dozen forms before. The migration touched a system nobody on the current team had designed, with edge cases nobody had catalogued yet.&lt;/p&gt; 
&lt;p&gt;Now I split those two categories explicitly. Well-understood work gets a normal estimate. Anything touching unfamiliar systems, a first-time vendor integration, or code nobody currently on the team wrote gets a short, timeboxed investigation first — a spike, sized in hours, whose only deliverable is a real estimate for the work behind it. It feels slower up front. It's faster than re-estimating mid-sprint.&lt;/p&gt; 
&lt;p&gt;&lt;img src="https://nyeinchanaung.me/hs-fs/hubfs/sprint-2.jpg?width=416&amp;amp;height=208&amp;amp;name=sprint-2.jpg" width="416" height="208" alt="sprint-2" style="height: auto; max-width: 100%; width: 416px;"&gt;&lt;/p&gt; 
&lt;h2&gt;2. Let the person doing the work size the work&lt;/h2&gt; 
&lt;p&gt;For longer than I'd like to admit, I sized tickets myself and handed them to developers as fully-formed assignments. It was efficient in the way that skipping a step is always efficient — right up until the actual hours came back nothing like the plan.&lt;/p&gt; 
&lt;p&gt;The fix was almost embarrassingly simple: ask. The developer who's going to write the code has context I don't — which library is fighting them lately, which part of the codebase is fragile, what "similar" ticket from last sprint actually took twice as long. Estimation improved measurably once sizing moved from something I did &lt;em&gt;to&lt;/em&gt; the team to something I did &lt;em&gt;with&lt;/em&gt; them.&lt;/p&gt; 
&lt;h2&gt;3. A buffer is not padding — it's an honest number with a name&lt;/h2&gt; 
&lt;p&gt;Early on, "padding an estimate" felt like something to be a little ashamed of, so I didn't do it consistently, and the estimates that needed it most usually didn't get it. What changed my mind was realizing there's a real difference between padding and buffering.&lt;/p&gt; 
&lt;p&gt;Padding is adding time you can't justify because you don't trust the number. A buffer is a named, sized allowance for a specific category of risk you can point to — waiting on a partner vendor's API, working with agricultural data collection that depends on field connectivity, or building against a spec that's still being negotiated with a client. On projects like the MMTW loan and POS system, where cash and in-kind loan logic had to be worked out with the partner as we went, an explicit 15–20% schedule buffer wasn't pessimism. It was the most accurate number on the page.&lt;/p&gt; 
&lt;h2&gt;4. Track estimate versus actual, every single sprint, even when it's uncomfortable&lt;/h2&gt; 
&lt;p&gt;For the first few years, we ran retros that talked about &lt;em&gt;what&lt;/em&gt; got built and rarely about &lt;em&gt;how far off&lt;/em&gt; we'd been in predicting it. Once I started keeping that number — estimated hours versus actual hours, every sprint, visible to the team — two things happened. First, the gap got smaller within about three sprints, mostly because visibility alone changes behavior. Second, patterns showed up that no single sprint would have revealed: certain types of tickets (anything touching offline sync, in our case) were consistently underestimated by a wide, predictable margin, which meant we could finally correct for it directly instead of hoping the next one would be different.&lt;/p&gt; 
&lt;h2&gt;5. A quarter-long initiative needs a different kind of estimate than a sprint story&lt;/h2&gt; 
&lt;p&gt;Somewhere around the point where I was managing multi-month engagements — the AWBA Force IQ field-monitoring platform, the multi-year MMTW loan system — I learned that trying to estimate an eight-month initiative in the same units as a two-week story just produces false precision. Nobody can size "build a field-force monitoring platform" in story points with a straight face.&lt;/p&gt; 
&lt;p&gt;What worked instead was estimating in two layers: a rough, range-based T-shirt estimate at the initiative level (small / medium / large, revisited every few sprints as scope firms up), and normal sprint-level estimation only for the slice of work that's actually been scoped in detail. Trying to make the whole eight months precise on day one wastes effort estimating things you don't understand yet — and quietly signals a confidence you don't have.&lt;/p&gt; 
&lt;h2&gt;The thing I'd tell myself ten years ago&lt;/h2&gt; 
&lt;p&gt;None of this made estimation exact — it isn't supposed to be. What it did was turn estimation from a number I defended into a number the team trusted, which is a different and more useful thing. The habits above are less a system and more a record of where the guessing kept breaking and what we did instead.&lt;/p&gt; 
&lt;p&gt;If it's useful, I put together the actual template I use for this — a sprint backlog with built-in variance tracking, a capacity planner with a named buffer field, and an estimation-accuracy tracker that rolls up automatically from the other two. It's a working spreadsheet, not a mockup — download it below and adapt the categories to your own team.&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;p style="text-align: center;"&gt;&amp;nbsp;&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=246793493&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fnyeinchanaung.me%2Fresources%2Fwhat-ten-years-of-two-week-sprints-taught-me-about-realistic-estimation&amp;amp;bu=https%253A%252F%252Fnyeinchanaung.me%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Digital Product</category>
      <category>sprint</category>
      <category>Project Management</category>
      <pubDate>Tue, 08 Sep 2026 10:03:44 GMT</pubDate>
      <author>nyeinchanaung.mr@gmail.com (Nyein Chan Aung)</author>
      <guid>https://nyeinchanaung.me/resources/what-ten-years-of-two-week-sprints-taught-me-about-realistic-estimation</guid>
      <dc:date>2026-09-08T10:03:44Z</dc:date>
    </item>
    <item>
      <title>PRDs Developers Actually Want to Read</title>
      <link>https://nyeinchanaung.me/resources/prds-developers-actually-want-to-read</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://nyeinchanaung.me/resources/prds-developers-actually-want-to-read" title="" class="hs-featured-image-link"&gt; &lt;img src="https://nyeinchanaung.me/hubfs/blog/Gemini_Generated_Image_gs0kyqgs0kyqgs0k%20-%20Copy.jpg" alt="PRDs Developers Actually Want to Read" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;A few years ago I wrote a PRD for a rice traceability tool — ShweBo Trace, built at Village Link to help track Shwe Bo Pawsan rice from seed to package, in support of the region's bid for Geographical Indication status. Twenty pages, slide-deck format: assumptions, scope, diagrams, a transaction flow, a glossary, UI sketches. I still think it's one of the more complete PRDs I've written, and going back through it recently to write this post, I noticed exactly where it was strong and exactly where a developer would still have had to walk over and ask me a question.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;A few years ago I wrote a PRD for a rice traceability tool — ShweBo Trace, built at Village Link to help track Shwe Bo Pawsan rice from seed to package, in support of the region's bid for Geographical Indication status. Twenty pages, slide-deck format: assumptions, scope, diagrams, a transaction flow, a glossary, UI sketches. I still think it's one of the more complete PRDs I've written, and going back through it recently to write this post, I noticed exactly where it was strong and exactly where a developer would still have had to walk over and ask me a question.&lt;/p&gt; 
&lt;p&gt;That gap is what this post is actually about. Not a general theory of documentation — a specific, honest look at one real PRD, what worked, and what I'd add if I wrote it again today.&lt;/p&gt; 
&lt;h2&gt;What the ShweBo Trace PRD got right&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;An explicit assumptions section, treated as load-bearing.&lt;/strong&gt; Most of what made this document useful wasn't the feature list — it was a section near the top that stated, plainly, things like: transactions are made offline by scanning a QR code, a synced transaction can't be edited except by manual admin request, a pending transaction needs both parties to cancel it, and — critically — &lt;em&gt;a transaction can be totally or partially lost if a device breaks before syncing, or a user logs out before syncing&lt;/em&gt;. That last one isn't a nice-to-know. It's the kind of fact that changes how a developer builds the sync logic, and it was written down before a single screen was designed.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Scope broken out by actor, not by screen.&lt;/strong&gt; The mobile app scope wasn't "here are the app's features" — it was "here's what an Input Supplier does, here's what a Farmer does, here's what a Miller does." Four different actor types, each with their own login-to-transaction path. That structure is what let five different field roles share one offline-first app without the requirements turning into a single undifferentiated wall of bullet points.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;A glossary — "Terms of Reference" — for words that don't mean what they sound like.&lt;/strong&gt; "Realtime transaction" doesn't mean real-time in this system; it means "reported once synced, which might not be immediately." "Batch code" refers to merged paddy from multiple transactions, not a build identifier. Naming and defining these terms in one place heads off the kind of misunderstanding that otherwise surfaces three sprints later as a bug report against the wrong expectation.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Diagrams that show what the prose can't.&lt;/strong&gt; A process-flow diagram across CMS admin and each mobile actor, and a system-design diagram showing the physical-to-digital handoff from buying seed through export. Neither replaces the written scope — they compress a page of "and then this actor does X, which triggers Y" into something a developer can trace with a finger.&lt;/p&gt; 
&lt;h2&gt;Where I'd add to it today&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;No goals or success metrics.&lt;/strong&gt; The document says what to build in real detail. It never says what "working" looks like in a number. That's fine when the same person who wrote the PRD is also the one deciding when it's done — it stops being fine the moment a second stakeholder has a different idea of "done" than the delivery team does.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;No explicit non-goals.&lt;/strong&gt; To be fair, this PRD does state two real limitations directly in the assumptions — no mobile payment integration ("farmers and traders prefer cash for the time being"), and certificate validation can't trace offline transactions. Both are genuinely well-handled. What's missing is a dedicated section that collects boundaries like these in one place, so a reader doesn't have to find them scattered inside the assumptions to know what's deliberately out of scope.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Flat feature bullets instead of testable stories.&lt;/strong&gt; "Farmers: Sowing, Harvesting, Selling to Aggregators" tells a developer what to build. It doesn't tell them what "done" means for Harvesting specifically — that the volume has to be checked against an estimated maximum yield, or what happens when it's exceeded. That detail exists elsewhere in the document (in the digital rules, in a UI sketch showing "Estimated Maximum Yield: 125,000 Kg"), but it isn't attached to the requirement it belongs to. A developer ends up assembling the actual acceptance criteria from three different pages.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;No priority.&lt;/strong&gt; Every requirement reads with equal weight. When a deadline gets tight — and on a twenty-month project like this one's related loan-management system, it will — someone has to decide what ships and what waits, and without a priority already assigned, that decision happens live, under pressure, instead of calmly in the document.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Third-party dependencies with no owner.&lt;/strong&gt; The PRD correctly lists what the system depends on — domain and hosting, SSL, SMS for OTP, Firebase for notifications. It doesn't say who owns getting each one in place, or by when. That's usually the thing that quietly slips a launch date while every actual feature is finished on time.&lt;/p&gt; 
&lt;h2&gt;The template&lt;/h2&gt; 
&lt;p&gt;I turned the gaps above into a standard structure I now use for every PRD: the same sections that worked in the original (assumptions, actor-based scope, a glossary, room for diagrams), plus what was missing (goals and metrics, non-goals, user stories with acceptance criteria and priority, a dependencies table with an owner column, and a risks/open-questions section that gives an unresolved question a place to live instead of a Slack thread).&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;[Download: PRD Template —&lt;span style="color: #c98a3b;"&gt; &lt;a href="https://nyeinchanaung.me/hubfs/sources/PRD-Template-Developer-Friendly.docx" style="color: #c98a3b;"&gt;Developer-Friendly Edition (.docx)&lt;/a&gt;&lt;/span&gt;]&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;And because a blank template only shows half the point, I also rewrote the actual ShweBo Trace PRD into this structure — same real project, same real assumptions and rules, restructured so you can see exactly what changed and why. Nothing about the product's scope is different from the original; what's different is that a developer could now build several of its core flows straight from the acceptance criteria without asking me anything first.&lt;/p&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=246793493&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fnyeinchanaung.me%2Fresources%2Fprds-developers-actually-want-to-read&amp;amp;bu=https%253A%252F%252Fnyeinchanaung.me%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Project Management</category>
      <category>Document</category>
      <category>PRD</category>
      <pubDate>Tue, 08 Sep 2026 08:51:42 GMT</pubDate>
      <author>nyeinchanaung.mr@gmail.com (Nyein Chan Aung)</author>
      <guid>https://nyeinchanaung.me/resources/prds-developers-actually-want-to-read</guid>
      <dc:date>2026-09-08T08:51:42Z</dc:date>
    </item>
    <item>
      <title>Htwet Toe Case Study - Agri-Social Platform</title>
      <link>https://nyeinchanaung.me/resources/htwet-toe-case-study-agri-social-platform-nyein-chan-aung</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://nyeinchanaung.me/resources/htwet-toe-case-study-agri-social-platform-nyein-chan-aung" title="" class="hs-featured-image-link"&gt; &lt;img src="https://nyeinchanaung.me/hubfs/ht-cover.webp" alt="Htwet Toe Case Study - Agri-Social Platform" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;A mobile-first advisory platform helping agricultural communities in Myanmar increase yield and productivity — professional advice, solutions, and services in one app.&amp;nbsp;&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;A mobile-first advisory platform helping agricultural communities in Myanmar increase yield and productivity — professional advice, solutions, and services in one app.&amp;nbsp;&lt;/p&gt; 
&lt;p&gt;&amp;nbsp; &lt;img src="https://nyeinchanaung.me/hs-fs/hubfs/product/ht-resize-1.png?width=1023&amp;amp;height=450&amp;amp;name=ht-resize-1.png" width="1023" height="450" alt="ht-resize-1" style="height: auto; max-width: 100%; width: 1023px;"&gt;&lt;/p&gt;  
&lt;div style="color: #b4762c;"&gt;
 The problem
&lt;/div&gt; 
&lt;h2 style="color: #1f3d2b;"&gt;Farmers needed direct access to expert advice&lt;/h2&gt; 
&lt;p style="color: #5a5f57;"&gt;Agricultural communities across Myanmar lacked an easy way to get professional, timely advice on inputs, techniques, and services that could improve yield and productivity — most support was informal, inconsistent, or came too late in the season to act on.&lt;/p&gt; 
&lt;p style="color: #5a5f57;"&gt;Village Link set out to close that gap with Htwet Toe: a mobile-first platform bringing advisory content, solutions, and services directly to farmers' phones.&lt;/p&gt; 
&lt;div style="color: #b4762c;"&gt;
 &lt;span style="color: #b4762c;"&gt;My role&lt;/span&gt;
&lt;/div&gt; 
&lt;h2 style="color: #b4762c;"&gt;&lt;span style="color: #1f3d2b;"&gt;From vendor manager to in-house product lead&lt;/span&gt;&lt;/h2&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;p&gt;&lt;span style="color: #1f3d2b;"&gt;I joined to manage&amp;nbsp;the relationship with the partner vendor's team that originally built the platform — scoping work, reviewing delivery, and keeping quality and timelines on track.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span style="color: #1f3d2b;"&gt;As the product matured, I led the transition to a fully in-house development team, and now lead that team directly through the active development of Version 2.0 — spanning the web app, mobile app, and content management dashboard.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;   
&lt;p style="text-align: center;"&gt;&lt;span style="font-size: 14px;"&gt;&lt;em&gt;Screenshots of Htwet Toe Mobile Application&lt;/em&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size: 12px;"&gt;&lt;em&gt;(Scr. Htwet Toe Play Store)&lt;/em&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;div style="color: #b4762c;"&gt;
 What we built
&lt;/div&gt; 
&lt;h2 style="color: #1f3d2b;"&gt;Three connected surfaces, one platform&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li style="background-color: #ffffff; color: #22262b;"&gt;&lt;span style="width: 8px; height: 8px; background-color: #c98a3b;"&gt;&lt;/span&gt;&lt;strong&gt;Mobile-first farmer app&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;— advisory content, solutions, and services designed for low-connectivity use, the primary surface for the 300,000+ registered farmers.&lt;/li&gt; 
 &lt;li style="background-color: #ffffff; color: #22262b;"&gt;&lt;span style="width: 8px; height: 8px; background-color: #c98a3b;"&gt;&lt;/span&gt;&lt;strong&gt;Web app&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;— companion access for partners and field teams working alongside farmers.&lt;/li&gt; 
 &lt;li style="background-color: #ffffff; color: #22262b;"&gt;&lt;span style="width: 8px; height: 8px; background-color: #c98a3b;"&gt;&lt;/span&gt;&lt;strong&gt;Content management dashboard&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;— internal tooling that enables the team to&amp;nbsp;publish and update advisory content without engineering involvement.&lt;/li&gt; 
 &lt;li style="background-color: #ffffff; color: #22262b;"&gt;&lt;span style="width: 8px; height: 8px; background-color: #c98a3b;"&gt;&lt;/span&gt;&lt;strong&gt;Legacy data migration (2021)&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;— moved hundreds of thousands of user-generated records from the original system onto the new in-house platform with no loss of continuity for existing farmers.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;span style="color: #1f3d2b;"&gt;&lt;span style="color: #22262b; background-color: #ffffff;"&gt;Product roadmapping, Vendor management, Agile delivery, Data migration, Team&lt;/span&gt;&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&amp;nbsp;building&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;div style="color: #b4762c;"&gt;
 &amp;nbsp;
&lt;/div&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;Playstore: &lt;a href="https://play.google.com/store/apps/details?id=com.awba.htwettoe"&gt;Htwet Toe - Apps on Google Play&lt;/a&gt; &amp;nbsp;&lt;/span&gt; 
&lt;span style="color: #22262b; background-color: #ffffff;"&gt;AppStore: &amp;nbsp;&lt;a href="https://apps.apple.com/us/app/htwet-toe/id1568251272"&gt;‎Htwet Toe App - App Store&lt;/a&gt; &amp;nbsp;&lt;/span&gt;  
&lt;img src="https://track-na2.hubspot.com/__ptq.gif?a=246793493&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fnyeinchanaung.me%2Fresources%2Fhtwet-toe-case-study-agri-social-platform-nyein-chan-aung&amp;amp;bu=https%253A%252F%252Fnyeinchanaung.me%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Digital Product</category>
      <category>Myanmar</category>
      <category>Htwet Toe</category>
      <category>Farmers</category>
      <category>Case Study</category>
      <pubDate>Tue, 08 Sep 2026 06:31:19 GMT</pubDate>
      <author>nyeinchanaung.mr@gmail.com (Nyein Chan Aung)</author>
      <guid>https://nyeinchanaung.me/resources/htwet-toe-case-study-agri-social-platform-nyein-chan-aung</guid>
      <dc:date>2026-09-08T06:31:19Z</dc:date>
    </item>
  </channel>
</rss>
