<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software-Development on matt2ology Tech Journal and Blog</title><link>https://matt2ology.github.io/tags/software-development/</link><description>Recent content in Software-Development on matt2ology Tech Journal and Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 16 Mar 2026 04:30:31 -0700</lastBuildDate><atom:link href="https://matt2ology.github.io/tags/software-development/index.xml" rel="self" type="application/rss+xml"/><item><title>I like brian d foy's Random Adventures Note Taking Style</title><link>https://matt2ology.github.io/blog/brian-d-foy-random-adventures-note-taking-style/</link><pubDate>Mon, 16 Mar 2026 04:30:31 -0700</pubDate><guid>https://matt2ology.github.io/blog/brian-d-foy-random-adventures-note-taking-style/</guid><description>&lt;h2 id="i-like-brian-d-foys-random-adventures-note-taking-style"&gt;&lt;a href="#i-like-brian-d-foys-random-adventures-note-taking-style" class="header-anchor"&gt;&lt;/a&gt;I like brian d foy&amp;rsquo;s Random Adventures Note Taking Style
&lt;/h2&gt;&lt;p&gt;In contrast to my own &amp;ldquo;literature&amp;rdquo; note: 


 &lt;a href="https://matt2ology.github.io/literature/unitycoin-clean-code-uncle-bob-lesson-6-agile/"&gt;unitycoin clean code uncle bob lesson 6 agile&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I like, Perl trainer and writer, 


 &lt;a href="https://www.amazon.com/stores/brian-d-foy/author/B002MRC39U?ref=ap_rdr&amp;amp;shoppingPortalEnabled=true"&gt;brian d foy&lt;/a&gt;
 – 


 &lt;a href="https://briandfoy.github.io/"&gt;Random Adventures&lt;/a&gt;
 for his summary note of 


 &lt;a href="https://briandfoy.github.io/uncle-bob-lesson-6/"&gt;&lt;em&gt;“Coding Better World Together”&lt;/em&gt; - Clean Code Lesson 6&lt;/a&gt;
. His notes are concise and practical, capturing the core ideas without unnecessary detail.&lt;/p&gt;
&lt;p&gt;In Lesson 6, 


 &lt;a href="https://blog.cleancoder.com/"&gt;Robert C. Martin&lt;/a&gt;
 explains how many software projects suffer from classic symptoms of mismanagement: delivering the wrong product, producing low-quality software, or shipping late. These problems often arise from unrealistic expectations captured in the so-called &lt;strong&gt;“Iron Cross” of project management&lt;/strong&gt;, trying to make a project &lt;em&gt;good, fast, cheap,&lt;/em&gt; and &lt;em&gt;done&lt;/em&gt; at the same time, even though in practice you can usually optimize for only three.&lt;/p&gt;
&lt;p&gt;Agile practices help teams confront reality early through data and transparency. Techniques such as &lt;strong&gt;story points&lt;/strong&gt; and &lt;strong&gt;burn-down charts&lt;/strong&gt; provide a measurable way to track progress. By putting these charts where the team can see them, everyone shares the same understanding of the project’s state.&lt;/p&gt;
&lt;p&gt;One striking idea from Uncle Bob is that &lt;em&gt;“the purpose of Agile is to destroy hope.”&lt;/em&gt; That sounds pessimistic at first, but the real meaning is about exposing problems as early as possible. Instead of pretending everything is fine until the deadline arrives, Agile reveals how “messed up” a project might be while there is still time to correct course.&lt;/p&gt;
&lt;p&gt;The lesson also emphasizes small, focused teams working on small pieces of functionality. Estimation becomes easier when the team maintains a consistent reference task for assigning story points. Ultimately, a project is not considered finished when every planned task is completed, but when there is &lt;strong&gt;nothing valuable left to do&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;These ideas reinforce the core Agile mindset: transparency, early feedback, and incremental progress are essential for aligning software production with delivery expectations.&lt;/p&gt;</description></item><item><title>UnityCoin - Clean Code - Uncle Bob / Lesson 6 - Agile</title><link>https://matt2ology.github.io/literature/unitycoin-clean-code-uncle-bob-lesson-6-agile/</link><pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate><guid>https://matt2ology.github.io/literature/unitycoin-clean-code-uncle-bob-lesson-6-agile/</guid><description>&lt;h2 id="literature-note-unitycoin---clean-code---uncle-bob--lesson-6---agile-solutions-for-balancing-deadlines-and-software-quality"&gt;&lt;a href="#literature-note-unitycoin---clean-code---uncle-bob--lesson-6---agile-solutions-for-balancing-deadlines-and-software-quality" class="header-anchor"&gt;&lt;/a&gt;Literature note: UnityCoin - Clean Code - Uncle Bob / Lesson 6 - Agile Solutions for Balancing Deadlines and Software Quality
&lt;/h2&gt;&lt;p&gt;Source highlights: 


 &lt;a href="https://matt2ology.github.io/highlights/articles/hl-unitycoin-clean-code-uncle-bob-lesson-6-agile/"&gt;Clean Code - Uncle Bob / Lesson 6 (Highlights)&lt;/a&gt;
&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Agile isn&amp;rsquo;t about speed&amp;hellip; It&amp;rsquo;s about visibility. Agile replaces hope with data so teams can manage reality instead of wishful thinking; to clarify, Agile is a feedback system for managing uncertainty - not a process for going faster.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="key-ideas"&gt;&lt;a href="#key-ideas" class="header-anchor"&gt;&lt;/a&gt;Key Ideas
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Agile&amp;rsquo;s purpose: &lt;strong&gt;get the bad news fast&lt;/strong&gt;, not to move faster. Shorter iterations - higher visibility resolution.&lt;/li&gt;
&lt;li&gt;Every project balances the Iron Cross: good, fast, cheap, done - you can’t have all four.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Velocity charts&lt;/strong&gt; and &lt;strong&gt;burn-down charts&lt;/strong&gt; are the backbone of real Agile - no data, no management.&lt;/li&gt;
&lt;li&gt;Quality drives speed: “You go fast by going well.”&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t let a tool or process get in the way of getting impactful work done.&lt;/li&gt;
&lt;li&gt;Large-scale Agile requires &lt;strong&gt;many small Agile teams&lt;/strong&gt; working in parallel - not a single &amp;ldquo;Agile in the large&amp;rdquo; process.&lt;/li&gt;
&lt;li&gt;Strong communication prevents waste, misalignment, and rework.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="chapters"&gt;&lt;a href="#chapters" class="header-anchor"&gt;&lt;/a&gt;Chapters
&lt;/h2&gt;&lt;h3 id="how-do-you-manage-a-software-project"&gt;&lt;a href="#how-do-you-manage-a-software-project" class="header-anchor"&gt;&lt;/a&gt;How do you manage a software project?
&lt;/h3&gt;&lt;p&gt;


 &lt;a href="https://matt2ology.github.io/highlights/articles/hl-unitycoin-clean-code-uncle-bob-lesson-6-agile/#how-do-you-manage-a-software-project"&gt;(See highlights and initial reflections)&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Software project management is notoriously hard - often done &amp;ldquo;badly&amp;rdquo; or through &amp;ldquo;hope and prayer&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Mismanagement leads to wrong products, low quality, missed deadlines, and burnout.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Iron Cross&lt;/strong&gt; defines constraints: &lt;em&gt;good&lt;/em&gt;, &lt;em&gt;fast&lt;/em&gt;, &lt;em&gt;cheap&lt;/em&gt;, &lt;em&gt;done&lt;/em&gt; - you can&amp;rsquo;t have all four.&lt;/li&gt;
&lt;li&gt;Effective managers &lt;strong&gt;adjust the knobs&lt;/strong&gt; (quality, cost, schedule, scope) using &lt;strong&gt;frequent feedback&lt;/strong&gt; and short iteration cycles.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agile&lt;/strong&gt; exists to improve feedback and communication, reducing guesswork.
&lt;ul&gt;
&lt;li&gt;The goal isn’t to hit a fixed plan - it&amp;rsquo;s to steer toward the best achievable outcome.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="finding-the-optimum-solution--data"&gt;&lt;a href="#finding-the-optimum-solution--data" class="header-anchor"&gt;&lt;/a&gt;Finding the optimum solution / Data
&lt;/h3&gt;&lt;p&gt;


 &lt;a href="https://matt2ology.github.io/highlights/articles/hl-unitycoin-clean-code-uncle-bob-lesson-6-agile/#finding-the-optimum-solution---data"&gt;(See highlights and initial reflections)&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data drives success&lt;/strong&gt;; without it, management is blind.&lt;/li&gt;
&lt;li&gt;Use metrics to manage toward the best achievable outcome across quality, cost, speed, and scope.&lt;/li&gt;
&lt;li&gt;Two key tools:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Velocity Chart:&lt;/strong&gt; shows how much work is completed per week/iteration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Burn-down Chart:&lt;/strong&gt; shows how much work remains to reach the next major milestone.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;These visuals allow teams and managers to predict progress transparently.&lt;/li&gt;
&lt;li&gt;Requirements should &lt;strong&gt;never freeze&lt;/strong&gt; - Agile welcomes change as understanding improves.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Estimates ≠ promises&lt;/strong&gt;; treat them as evolving signals.&lt;/li&gt;
&lt;li&gt;The goal of Agile: &lt;strong&gt;produce reliable data early&lt;/strong&gt; so the team can &lt;em&gt;manage reality&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="what-is-the-first-thing-know-about-project--the-management-paradox"&gt;&lt;a href="#what-is-the-first-thing-know-about-project--the-management-paradox" class="header-anchor"&gt;&lt;/a&gt;What is the first thing know about project / The Management Paradox
&lt;/h3&gt;&lt;p&gt;


 &lt;a href="https://matt2ology.github.io/highlights/articles/hl-unitycoin-clean-code-uncle-bob-lesson-6-agile/#what-is-the-first-thing-know-about-project---the-management-paradox"&gt;(See highlights and initial reflections)&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;first thing known&lt;/strong&gt; in any project is &lt;em&gt;the date&lt;/em&gt;, often fixed by business needs; however, &lt;strong&gt;requirements are fluid&lt;/strong&gt; - customers refine what they want through iteration.&lt;/li&gt;
&lt;li&gt;Agile solves this by allowing requirements to evolve while maintaining time-boxed delivery.&lt;/li&gt;
&lt;li&gt;Teams continuously replan priorities, focusing on &lt;em&gt;core features first&lt;/em&gt; and pushing less-critical items to future iterations.
&lt;ul&gt;
&lt;li&gt;If every feature is “critical,” none of them are - &lt;strong&gt;prioritize what matters&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Frequent show-and-tell sessions keep customer expectations aligned with progress.
&lt;ul&gt;
&lt;li&gt;Customers rarely know what they truly want until they see a working product.&lt;/li&gt;
&lt;li&gt;Agile embraces this uncertainty by iterating quickly and showing progress often.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="the-waterfall-model"&gt;&lt;a href="#the-waterfall-model" class="header-anchor"&gt;&lt;/a&gt;The Waterfall Model
&lt;/h3&gt;&lt;p&gt;


 &lt;a href="https://matt2ology.github.io/highlights/articles/hl-unitycoin-clean-code-uncle-bob-lesson-6-agile/#the-waterfall-model"&gt;(See highlights and initial reflections)&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Traditional Waterfall assumes phases (analysis, design, implementation) are sequential and &amp;ldquo;done&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;In reality, &lt;strong&gt;analysis and design are continuous&lt;/strong&gt;, not binary.&lt;/li&gt;
&lt;li&gt;Software differs from physical engineering - it&amp;rsquo;s adaptable and should evolve.&lt;/li&gt;
&lt;li&gt;Freezing requirements too early forces teams to &amp;ldquo;hack in&amp;rdquo; changes later, creating instability and technical debt.&lt;/li&gt;
&lt;li&gt;Waterfall often fails because it resists feedback and delays learning until it&amp;rsquo;s too late.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="iterative-development--calculate-day"&gt;&lt;a href="#iterative-development--calculate-day" class="header-anchor"&gt;&lt;/a&gt;Iterative Development / Calculate Day
&lt;/h3&gt;&lt;p&gt;


 &lt;a href="https://matt2ology.github.io/highlights/articles/hl-unitycoin-clean-code-uncle-bob-lesson-6-agile/#iterative-development---calculate-day"&gt;(See highlights and initial reflections)&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;Runaway process inflation&amp;rdquo;&lt;/strong&gt; happens when teams respond to failure by adding &lt;em&gt;more process&lt;/em&gt; instead of &lt;em&gt;more feedback&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Iterative development starts with &lt;strong&gt;Iteration 0&lt;/strong&gt; - capture lightweight requirements and draft user stories, leaving details to emerge over time.
&lt;ul&gt;
&lt;li&gt;Gather rough requirements and create simple user stories - refine later.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Each iteration provides &lt;strong&gt;real data&lt;/strong&gt; about progress, risks, and estimates.&lt;/li&gt;
&lt;li&gt;The focus shifts from predicting the future to learning as early as possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="the-control-knobs-of-project-mgt"&gt;&lt;a href="#the-control-knobs-of-project-mgt" class="header-anchor"&gt;&lt;/a&gt;The Control Knobs of project mgt
&lt;/h3&gt;&lt;p&gt;


 &lt;a href="https://matt2ology.github.io/highlights/articles/hl-unitycoin-clean-code-uncle-bob-lesson-6-agile/#the-control-knobs-of-project-mgt"&gt;(See highlights and initial reflections)&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The four adjustable controls:
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Schedule&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Staff&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quality&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scope&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adding people&lt;/strong&gt; rarely helps - it initially slows progress (Brooks&amp;rsquo;s Law).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lowering quality&lt;/strong&gt; for speed causes rework and collapse - &amp;ldquo;You go fast by going well&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scope negotiation&lt;/strong&gt; is the manager&amp;rsquo;s most powerful lever; trim deliverables to hit the date.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scope&lt;/strong&gt; is the most flexible lever; negotiate what must ship now vs. later.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Developers hold the &lt;strong&gt;data&lt;/strong&gt;, stakeholders hold the &lt;strong&gt;authority&lt;/strong&gt; - in rational organizations, &lt;em&gt;data should win&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="short-cycles--agile-software-development-practices--extreme-programming"&gt;&lt;a href="#short-cycles--agile-software-development-practices--extreme-programming" class="header-anchor"&gt;&lt;/a&gt;Short Cycles / Agile Software Development Practices / Extreme Programming
&lt;/h3&gt;&lt;p&gt;


 &lt;a href="https://matt2ology.github.io/highlights/articles/hl-unitycoin-clean-code-uncle-bob-lesson-6-agile/#short-cycles---agile-software-development-practices---extreme-programming"&gt;(See highlights and initial reflections)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Agile development, particularly &lt;strong&gt;Extreme Programming (XP)&lt;/strong&gt;, emphasizes &lt;strong&gt;short cycles&lt;/strong&gt; to uncover problems (“bad news”) as early as possible. The goal of Agile isn’t speed, but &lt;strong&gt;early feedback and adaptability&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can’t fix &lt;strong&gt;scope, date, quality, and cost&lt;/strong&gt; all at once (“the Iron Cross”). The best way to manage uncertainty is to work iteratively, learning and adjusting each cycle; that is, short cycles expose tradeoffs early.&lt;/li&gt;
&lt;li&gt;Agile&amp;rsquo;s purpose: &lt;strong&gt;get the bad news fast&lt;/strong&gt;, not to move faster.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scrum without engineering discipline&lt;/strong&gt; (testing, refactoring, clean code) leads to &lt;em&gt;Flaccid Scrum&lt;/em&gt; - progress slows and quality decays: a process framework without the technical rigor needed for success.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Extreme Programming (XP)&lt;/strong&gt; (testing, refactoring, clean design) keep Scrum sustainable.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XP structure of practices&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Outer (Green) Ring - Business-facing (Scrum-level)&lt;/strong&gt;: focus on &lt;strong&gt;what&lt;/strong&gt; is being built and &lt;strong&gt;why&lt;/strong&gt;, ensuring that the software actually delivers value to the customer or stakeholder.
&lt;ul&gt;
&lt;li&gt;Whole Team: Business and technical people work together.&lt;/li&gt;
&lt;li&gt;Acceptance Tests: Define done-ness in terms the customer understands.&lt;/li&gt;
&lt;li&gt;Small Releases: Deliver value and get customer feedback early.&lt;/li&gt;
&lt;li&gt;Planning Game: Balance business priorities with technical estimates.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Middle (Blue) Ring: Team behavior&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Continuous Integration&lt;/strong&gt;: Team members frequently integrate and test their code together, ensuring shared ownership and rapid feedback.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metaphor&lt;/strong&gt;: The team uses a shared &amp;ldquo;story&amp;rdquo; or metaphor to describe the system’s architecture, helping everyone (technical or not) share a common understanding.
&lt;ul&gt;
&lt;li&gt;Creates a &lt;strong&gt;common language&lt;/strong&gt; across technical and non-technical people.&lt;/li&gt;
&lt;li&gt;Helps guide design decisions - new features should “fit the metaphor”.&lt;/li&gt;
&lt;li&gt;Makes the system easier to discuss and reason about.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sustainable Pace&lt;/strong&gt;: The team avoids burnout by maintaining a steady, reasonable work rhythm - no &amp;ldquo;death marches&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Collective Ownership&lt;/strong&gt;: Any developer can improve or modify any part of the code; responsibility is shared, not siloed.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inner (Red) Ring: Engineering (developer-specific)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Test-Driven Development&lt;/li&gt;
&lt;li&gt;Pair Programming&lt;/li&gt;
&lt;li&gt;Simple Design&lt;/li&gt;
&lt;li&gt;Refactoring&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Business-facing == practices that expose progress, risk, and value to the business side&lt;/strong&gt; (product owners, stakeholders, customers).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Engineering-facing == practices that ensure technical excellence and delivery capability.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Agile works best for &lt;strong&gt;small, disciplined teams&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Large-scale Agile requires &lt;strong&gt;many small Agile teams&lt;/strong&gt; working in parallel - not a single &amp;ldquo;Agile in the large&amp;rdquo; process.&lt;/li&gt;
&lt;li&gt;Avoid process theater - when tools (e.g., Jira) become more important than outcomes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Relative estimation&lt;/strong&gt; (story points) enables better forecasting and ROI-based prioritization.&lt;/li&gt;
&lt;li&gt;Projects finish not when everything&amp;rsquo;s done, but when &lt;strong&gt;nothing valuable remains&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iterations never fail&lt;/strong&gt; - even zero progress yields data for better management.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Velocity stability&lt;/strong&gt; is the goal - steady, predictable output signals health.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stable velocity&lt;/strong&gt; signals health; erratic or declining trends indicate tech debt or pressure.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="questions-and-answers"&gt;&lt;a href="#questions-and-answers" class="header-anchor"&gt;&lt;/a&gt;Questions and Answers
&lt;/h3&gt;&lt;p&gt;


 &lt;a href="https://matt2ology.github.io/highlights/articles/hl-unitycoin-clean-code-uncle-bob-lesson-6-agile/#questions-and-answers"&gt;(See highlights and initial reflections)&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Writing extensive documentation often fails - &lt;em&gt;&amp;ldquo;nobody reads it&amp;rdquo;&lt;/em&gt;. Favor visibility and communication instead.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mentorship&lt;/strong&gt; is a senior engineer&amp;rsquo;s responsibility; pairing with juniors accelerates growth for both.
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;“The best way to learn something is to teach it”&lt;/em&gt; .&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Business analysts&lt;/strong&gt; play a crucial role - they must translate between technical and business domains.
&lt;ul&gt;
&lt;li&gt;Effective analysts empathize with both the &lt;strong&gt;customer&amp;rsquo;s needs&lt;/strong&gt; and the &lt;strong&gt;developer&amp;rsquo;s challenges&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Understand and communicate both customer intent and developer constraints.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spikes&lt;/strong&gt; (research tasks) are valid stories - used to explore unknowns and improve estimation accuracy.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>