<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5785686392623064369</id><updated>2026-03-26T06:36:25.372-05:00</updated><category term="Methodology"/><category term="Career"/><category term="Management"/><category term="Agile"/><category term="Scrum"/><category term="Hiring"/><category term="Offices"/><category term="Remote"/><category term="User Experience"/><category term="Peopleware"/><category term="Red Flags"/><category term="Tips"/><category term="Humane Offices"/><category term="TDD"/><category term="CSFPRTMMSLUATCASL"/><category term="Greasemonkey"/><category term="Music"/><category term="Muxtape"/><category term="Off-Topic"/><category term="Open Plan Alternatives"/><category term="PowerShell"/><category term="RottenFlix"/><category term="ASP.NET"/><category term="Seaside"/><title type='text'>Matt Blodgett</title><subtitle type='html'>Software is about people, not code.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>299</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-5636583845441912145</id><published>2026-03-25T00:41:00.000-05:00</published><updated>2026-03-25T00:41:25.914-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><title type='text'>Don&#39;t Mess With Delivery</title><content type='html'>&lt;p&gt;If your team has consistent, reliable delivery of working software to production, you’re &lt;i&gt;crushing&lt;/i&gt;. Don’t mess with it. It&#39;s astonishing how many teams in real world software development can&#39;t do this. I&#39;ve witnessed it over and over and over in my career.&lt;/p&gt;&lt;p&gt;If you have a backlog, sprint planning, a dependable QA function (even if manual and/or slow), and scripted deployments on-demand, you are very fortunate.&lt;/p&gt;&lt;p&gt;Of course, we don&#39;t want our engineers working in a &lt;a href=&quot;https://cutle.fish/blog/12-signs-youre-working-in-a-feature-factory&quot;&gt;feature factory&lt;/a&gt;, so we make sure they have input into what they&#39;re building and they know &lt;a href=&quot;https://www.mattblodgett.com/2023/10/tell-us-why-were-doing-this.html&quot;&gt;why they&#39;re building it&lt;/a&gt;. That&#39;s the motivation to keep delivering consistently.&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDDst0uwFqhDwKgIZTz7z6Rd1STpo5oSY260HUPYe4pLA40uMhun9kfcIrKX2080HytyUh5t3TJdGHKrGAaZgEvBE9-h0FMgFhAeFPxSDzVUNbUE1g1a641GHnel4YDrR-MlFWPgMaM7ayLikEy6AJQ7XWIejqm8Hk7sgdBTZcz03onc8_AX33D-n9XvVi/s1080/milk-delivery.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;400&quot; data-original-width=&quot;1080&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDDst0uwFqhDwKgIZTz7z6Rd1STpo5oSY260HUPYe4pLA40uMhun9kfcIrKX2080HytyUh5t3TJdGHKrGAaZgEvBE9-h0FMgFhAeFPxSDzVUNbUE1g1a641GHnel4YDrR-MlFWPgMaM7ayLikEy6AJQ7XWIejqm8Hk7sgdBTZcz03onc8_AX33D-n9XvVi/w539-h200/milk-delivery.jpg&quot; width=&quot;539&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;So how do teams &quot;mess with&quot; delivery? For teams that already have consistent delivery, the way they tend to mess it up is by &lt;b&gt;prioritizing speed over consistency&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;I think that &lt;a href=&quot;https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment&quot;&gt;continuous deployment&lt;/a&gt; is an incredible technical capability to possess. It&#39;s amazing to have a fully automated pipeline capable of taking a code commit and moving it fully out to customers without manual intervention. This is huge for production bugs and emergency fixes.&lt;/p&gt;&lt;p&gt;My belief is that &lt;i&gt;feature work&lt;/i&gt; should prioritize ease of communication over raw speed of deployment. Just because it&#39;s technically possible to deploy new features every day doesn&#39;t mean it&#39;s actually beneficial to users. I&#39;ve seen firsthand the chaos that results when new features appear in front of users without people beyond the immediate team knowing about them.&lt;/p&gt;&lt;p&gt;Every organization wants to &quot;go faster&quot;, but I believe once you&#39;re touching production, communication matters more than speed. If you&#39;re consistently getting new features in front of users every two weeks, you&#39;re already doing &lt;b&gt;so well&lt;/b&gt;. Optimize &lt;i&gt;something else&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;If you&#39;ve got a reliable, dependable, consistent pipeline of new features to real users on a reasonable sprint duration, it&#39;s not worth the communication overhead of going out-of-band. Please don&#39;t mess with delivery.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/5636583845441912145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/5636583845441912145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/5636583845441912145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/5636583845441912145'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2026/03/dont-mess-with-delivery.html' title='Don&#39;t Mess With Delivery'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDDst0uwFqhDwKgIZTz7z6Rd1STpo5oSY260HUPYe4pLA40uMhun9kfcIrKX2080HytyUh5t3TJdGHKrGAaZgEvBE9-h0FMgFhAeFPxSDzVUNbUE1g1a641GHnel4YDrR-MlFWPgMaM7ayLikEy6AJQ7XWIejqm8Hk7sgdBTZcz03onc8_AX33D-n9XvVi/s72-w539-h200-c/milk-delivery.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-57332210295264901</id><published>2026-02-24T22:53:00.000-06:00</published><updated>2026-02-24T22:53:51.397-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><category scheme="http://www.blogger.com/atom/ns#" term="User Experience"/><title type='text'>User Advocate vs. Front-End Engineer</title><content type='html'>&lt;p&gt;I really enjoy doing UI work: being close to the user&#39;s mind, thinking deeply about interaction design, and how small changes can massively improve someone&#39;s day. But in order to market oneself as a “Front-End Engineer” in the current landscape requires dogged attention to fashion trends, and I&#39;m on Team &lt;a href=&quot;https://www.mattblodgett.com/2018/12/career-philosophy-stack-chasers-vs.html&quot;&gt;Evergreen&lt;/a&gt;, baby.&lt;/p&gt;&lt;p&gt;Early in my career in web development, I loved reading &lt;a href=&quot;https://en.wikipedia.org/wiki/Jakob_Nielsen_(usability_consultant)&quot;&gt;Jakob Nielsen&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Steve_Krug&quot;&gt;Steve Krug&lt;/a&gt;, but at some point I had to accept that maintaining intimate awareness of the specifics of &lt;i&gt;JavaScript Framework Du Jour&lt;/i&gt; was not sustainable for me. Call me &quot;full-stack&quot;, that&#39;s fine.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiZAaC1mS8bQkgszHr2Hl3UskrXewIRaKT457r-5yRn-br49mP0x0Q-ADTAzEYJCz7Q3TD02Lrh-3FJtBbW8hBiM0yn8dEcjVi2MMJ_S3YArea2hAtXNXcnX7sH59mCb9ShtAb9JbbFB1XgUx1O9UnxRH_P5XhP8-vYo1CpZvAK8UETNVvovdKCNLej0Rh/s1200/treadmill.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;1200&quot; height=&quot;273&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiZAaC1mS8bQkgszHr2Hl3UskrXewIRaKT457r-5yRn-br49mP0x0Q-ADTAzEYJCz7Q3TD02Lrh-3FJtBbW8hBiM0yn8dEcjVi2MMJ_S3YArea2hAtXNXcnX7sH59mCb9ShtAb9JbbFB1XgUx1O9UnxRH_P5XhP8-vYo1CpZvAK8UETNVvovdKCNLej0Rh/w543-h273/treadmill.jpg&quot; width=&quot;543&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Front-end is the most ripe for résumé-driven engineering. Default skepticism is always warranted for new technologies, but in front-end, it is truly a necessity to avoid lighting your company&#39;s money on fire.&lt;/p&gt;&lt;p&gt;I found a rather cathartic post by Marco Rogers on &lt;a href=&quot;https://news.ycombinator.com/item?id=43422162&quot;&gt;Hacker News&lt;/a&gt; recently called &lt;i&gt;&lt;a href=&quot;https://polotek.net/posts/the-frontend-treadmill/&quot;&gt;The Frontend Treadmill&lt;/a&gt;&lt;/i&gt;. I fully agree with Marco&#39;s take:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;If you are building a product that you hope has longevity, your frontend framework is the least interesting technical decision for you to make. And all of the time you spend arguing about it is wasted energy.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I would not necessarily describe myself as a &lt;a href=&quot;https://react.dev/&quot;&gt;React&lt;/a&gt; fan, but I am very happy that it feels like we finally landed on a framework that can survive for several years, with wide adoption by startups and enterprises alike. Let&#39;s go, &lt;a href=&quot;https://www.mattblodgett.com/2024/09/legacy-systems-age-in-reverse.html&quot;&gt;Lindy effect&lt;/a&gt;. Maybe React can be the framework equivalent of what &lt;a href=&quot;https://jquery.com/&quot;&gt;jQuery&lt;/a&gt; did as a library.&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/57332210295264901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/57332210295264901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/57332210295264901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/57332210295264901'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2026/02/user-advocate-vs-front-end-engineer.html' title='User Advocate vs. Front-End Engineer'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiZAaC1mS8bQkgszHr2Hl3UskrXewIRaKT457r-5yRn-br49mP0x0Q-ADTAzEYJCz7Q3TD02Lrh-3FJtBbW8hBiM0yn8dEcjVi2MMJ_S3YArea2hAtXNXcnX7sH59mCb9ShtAb9JbbFB1XgUx1O9UnxRH_P5XhP8-vYo1CpZvAK8UETNVvovdKCNLej0Rh/s72-w543-h273-c/treadmill.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-7843780222253983118</id><published>2026-01-28T00:44:00.000-06:00</published><updated>2026-01-28T00:44:25.017-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><title type='text'>Above All Else, Sustainability</title><content type='html'>&lt;p&gt;From the principles of the &lt;a href=&quot;https://agilemanifesto.org/principles.html&quot;&gt;Agile Manifesto&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Agile processes promote &lt;b&gt;sustainable&lt;/b&gt; development. The sponsors, developers, and users should be able to &lt;b&gt;maintain a constant pace indefinitely&lt;/b&gt;.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Extreme measures are always doomed beyond a limited time horizon. Whether we&#39;re talking about diets or software development practices, without sustainability you have nothing.&lt;/p&gt;&lt;p&gt;Initiatives to increase productivity, improve quality, lower costs, or any other &quot;good thing&quot; simply don&#39;t matter if they&#39;re not sustainable.&lt;/p&gt;&lt;p&gt;A common topic in Agile circles is &quot;sustainable pace&quot;, which usually focuses on the futility of working overtime, typically over 40 hours a week. I would argue that sustainable pace is about more than just the number of hours clocked in a work day or work week.&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYHcfIeqG9DqARfbWLxO2ps3c984XOC3nzIUIO7Bs22UafPG2mSje-npT6J7GTdXVne_cZMI9H2bkCmxw1qtADas0RUdrlP1YWkMdn76jj1Jj7cIcVS_CetGHV5EqLobR1x_r5Mv-sz13bIvZkruAPi9Vl9CwyMwpamTrzigLsyBbdnRm0AjQXzmweP59/s728/horizon.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;202&quot; data-original-width=&quot;728&quot; height=&quot;155&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYHcfIeqG9DqARfbWLxO2ps3c984XOC3nzIUIO7Bs22UafPG2mSje-npT6J7GTdXVne_cZMI9H2bkCmxw1qtADas0RUdrlP1YWkMdn76jj1Jj7cIcVS_CetGHV5EqLobR1x_r5Mv-sz13bIvZkruAPi9Vl9CwyMwpamTrzigLsyBbdnRm0AjQXzmweP59/w557-h155/horizon.jpg&quot; width=&quot;557&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Is the work emotionally sustainable? Do people hate working here? Do people end the work week feeling a sense of accomplishment? Do people feel like their leaders have reasonable expectations? Are they constantly battling reality?&lt;/p&gt;&lt;p&gt;Sometimes the degree to which an enforcer must continuously apply pressure to get people to follow a process indicates how sustainable the process is.&amp;nbsp;Powering through is not a sign of discipline, it’s a sign of delusion.&lt;/p&gt;&lt;p&gt;Ignorance of reality is unsustainable. Coercion is unsustainable. Surveillance is unsustainable.&lt;/p&gt;&lt;p&gt;Can I and the people around me keep this up forever? If not, it&#39;s time to pause and reflect. Above all else, sustainability.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/7843780222253983118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/7843780222253983118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7843780222253983118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7843780222253983118'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2026/01/above-all-else-sustainability.html' title='Above All Else, Sustainability'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYHcfIeqG9DqARfbWLxO2ps3c984XOC3nzIUIO7Bs22UafPG2mSje-npT6J7GTdXVne_cZMI9H2bkCmxw1qtADas0RUdrlP1YWkMdn76jj1Jj7cIcVS_CetGHV5EqLobR1x_r5Mv-sz13bIvZkruAPi9Vl9CwyMwpamTrzigLsyBbdnRm0AjQXzmweP59/s72-w557-h155-c/horizon.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-6048952392048838422</id><published>2025-12-08T23:08:00.000-06:00</published><updated>2025-12-08T23:08:02.380-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><title type='text'>Agile as Progressive Enhancement</title><content type='html'>&lt;p&gt;When I was coming up as a young web developer. the concept of &lt;a href=&quot;https://en.wikipedia.org/wiki/Progressive_enhancement&quot;&gt;progressive enhancement&lt;/a&gt; was kind of at the hipster vanguard of web development. This was in the phase of the web where JavaScript and CSS feature parity amongst browsers could not be taken for granted like it is today.&lt;/p&gt;&lt;p&gt;The idea of progressive enhancement was that you started by making your web application work on an essential informational level with &lt;a href=&quot;https://en.wikipedia.org/wiki/Semantic_HTML&quot;&gt;semantic markup&lt;/a&gt;, then you layered on presentational and dynamic niceties with CSS and &lt;a href=&quot;https://en.wikipedia.org/wiki/Unobtrusive_JavaScript&quot;&gt;JavaScript&lt;/a&gt; respectively, if available to the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Glossary/User_agent&quot;&gt;user agent&lt;/a&gt;. At each layer, or each stage, you left the user with something usable and valuable that stood on its own without the other stuff.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://www.shopify.com/partners/blog/what-is-progressive-enhancement-and-why-should-you-care&quot; imageanchor=&quot;1&quot; rel=&quot;nofollow&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1056&quot; data-original-width=&quot;2552&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9Vn_LNnslkTrJDWrmYFmXxjKYEF4p2OF_J8DRiZzbENzrDtnZXIEBv6uvWkraVJw5XSZJe3x47RX5LnZ2NCCLQoIxP6tP9NdkHYW_W2H8uJRwLOg3y6ovF16Vb55RGeE2GlrBV0QdEe62_Vb6uoyos5148WVoZAPVS1bkckZkgIQP7qXWEM0nckX1JBKy/w540-h223/cake.png&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Learning about the concept of progressive enhancement early in my career colored my interpretation of the &lt;a href=&quot;https://agilemanifesto.org/principles.html&quot;&gt;Agile&lt;/a&gt; philosophy forever. The iterative nature of Agile methodologies, with &quot;&lt;i&gt;Working software [as] the primary measure of progress&lt;/i&gt;&quot; is essential to how I approach making software for users to this day. In my mind&#39;s eye, I still visualize iteration as progressive enhancement. We start with the essential core of value, and &lt;b&gt;ship&lt;/b&gt; that. If the core of the idea resonates with real users, then we iteratively layer on enhancements to the core, &lt;b&gt;shipping to users&lt;/b&gt; at each stage.&lt;/p&gt;&lt;p&gt;In order to work this way, you have to accept that &lt;a href=&quot;https://www.mattblodgett.com/2021/10/incomplete-with-high-quality.html&quot;&gt;quality and feature completeness are not the same thing&lt;/a&gt;. At each layer, we&#39;re delivering a scope with high &lt;i&gt;quality&lt;/i&gt; always, but with no ambition of &lt;i&gt;completeness&lt;/i&gt;. We&#39;re delivering shippable increments of software as layers over a core idea of value that we&#39;ve already shipped. We build out our &lt;a href=&quot;https://en.wikipedia.org/wiki/Product_backlog&quot;&gt;product backlog&lt;/a&gt; as all the nice things we could layer over the core, as we think of them, but they are not &lt;i&gt;essential&lt;/i&gt;. One of the amazing things about working this way is that users are delighted by it. The features just keep getting &lt;i&gt;nicer&lt;/i&gt; before their eyes.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/6048952392048838422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/6048952392048838422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/6048952392048838422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/6048952392048838422'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/12/agile-as-progressive-enhancement.html' title='Agile as Progressive Enhancement'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9Vn_LNnslkTrJDWrmYFmXxjKYEF4p2OF_J8DRiZzbENzrDtnZXIEBv6uvWkraVJw5XSZJe3x47RX5LnZ2NCCLQoIxP6tP9NdkHYW_W2H8uJRwLOg3y6ovF16Vb55RGeE2GlrBV0QdEe62_Vb6uoyos5148WVoZAPVS1bkckZkgIQP7qXWEM0nckX1JBKy/s72-w540-h223-c/cake.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-1511408694849687063</id><published>2025-11-18T23:01:00.000-06:00</published><updated>2025-11-18T23:01:05.638-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><title type='text'>Legibility</title><content type='html'>&lt;p&gt;I recently came across a blog post called&amp;nbsp;&lt;i&gt;&lt;a href=&quot;https://www.seangoedecke.com/seeing-like-a-software-company/&quot;&gt;Seeing Like a Software Company&lt;/a&gt;&lt;/i&gt; by Sean Goedecke on &lt;a href=&quot;https://news.ycombinator.com/item?id=45505539&quot;&gt;Hacker News&lt;/a&gt;. The post hooked me right away by introducing to my vocabulary the term &quot;legibility&quot;:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;By “legible”, I mean work that is predictable, well-estimated, has a paper trail, and doesn’t depend on any contingent factors (like the availability of specific people). Quarterly planning, OKRs, and Jira all exist to make work legible. Illegible work is everything else: asking for and giving favors, using tacit knowledge that isn’t or can’t be written down, fitting in unscheduled changes, and drawing on interpersonal relationships.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;One of the advantages that small companies have is that they can achieve greater speed compared to a large company by eschewing legibility. When you know everyone else in the company by name, or maybe you all work in the same room together, you don&#39;t need standardized processes to go about your work, in fact, they just slow you down. Work happens through what the author calls &lt;i&gt;illegible backchannels&lt;/i&gt;:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;An engineer on team A reaches out to an engineer on team B asking “hey, can you make this one-line change for me”. That engineer on team B then does it immediately, maybe creating a ticket, maybe not. Then it’s done! This works great, but it’s illegible because the company can’t expect it or plan for it - it relies on the interpersonal relationships between engineers on different teams, which are very difficult to quantify.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;One of the struggles that small companies face as they grow into larger companies is that they can&#39;t get by anymore without legibility. Maybe they&#39;ve grown to hundreds of employees or they&#39;re working with people distributed across multiple timezones.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy3WyoQIX0_tu1X_wCqnNhODU7LxfrCfERq-65xPp2P43881enPTVVte7ER_vzmwVrgPK7ukmKz5M8wP800S7DNpdFgknZxYEpRee0kgHrUOKyeAn5tPUM2MN-yAoiPYr2tw_oXkYffQOkukx57kiEQ58VZ5T4Wn_R0pclwHdbIphOZnq2x6Lun4KJ31rj/s1140/quill.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;500&quot; data-original-width=&quot;1140&quot; height=&quot;235&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy3WyoQIX0_tu1X_wCqnNhODU7LxfrCfERq-65xPp2P43881enPTVVte7ER_vzmwVrgPK7ukmKz5M8wP800S7DNpdFgknZxYEpRee0kgHrUOKyeAn5tPUM2MN-yAoiPYr2tw_oXkYffQOkukx57kiEQ58VZ5T4Wn_R0pclwHdbIphOZnq2x6Lun4KJ31rj/w537-h235/quill.jpeg&quot; width=&quot;537&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The fact of growing up as a company is that the loss of speed in individual tasks is outweighed by the predictability of process. As the author writes:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;The processes that slow engineers down are the same processes that make their work legible to the rest of the company. And that legibility (in dollar terms) is more valuable than being able to produce software more efficiently.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I feel like this is a hard concept to sell people on who are used to working in small companies. In the long run, going &lt;i&gt;slower&lt;/i&gt; is actually better for the company. Writing things down and organizing the work in a more structured way reduces the chaos left in the wake of localized, marginal speed-ups.&lt;/p&gt;&lt;p&gt;The author concedes that illegible work is necessary in small doses even in large companies. In cases of show-stopping production bugs, for example, large companies create &lt;i&gt;temporary sanctioned zones of illegibility &lt;/i&gt;in which they gather together a strike team of experienced people to swarm on a critical issue until it&#39;s resolved. They then return to legibility.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Legibility&lt;/i&gt; is a massively useful concept that I will carry with me. It explains so much about how companies function internally, in often counterintuitive ways.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/1511408694849687063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/1511408694849687063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/1511408694849687063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/1511408694849687063'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/11/legibility.html' title='Legibility'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy3WyoQIX0_tu1X_wCqnNhODU7LxfrCfERq-65xPp2P43881enPTVVte7ER_vzmwVrgPK7ukmKz5M8wP800S7DNpdFgknZxYEpRee0kgHrUOKyeAn5tPUM2MN-yAoiPYr2tw_oXkYffQOkukx57kiEQ58VZ5T4Wn_R0pclwHdbIphOZnq2x6Lun4KJ31rj/s72-w537-h235-c/quill.jpeg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-273557111744407363</id><published>2025-10-24T00:58:00.000-05:00</published><updated>2025-10-24T00:58:34.517-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><title type='text'>The Financial Architecture of Software</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Conway%27s_law&quot;&gt;Conway&#39;s Law&lt;/a&gt; is foundational to software engineering. It says:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Organizations which design systems...are constrained to produce designs which are copies of the communication structures of these organizations.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If you&#39;ve ever had any job in the software industry, you&#39;ve almost certainly seen this play out in the architecture of your codebase. Group A works on Thing X and Group B works on Thing Y, so Thing X is in one [project, repository, web service] and Thing Y is in another [project, repository, web service]. You can read the organizational structure in the structure of the technology. It helps to make sense of why things are the way they are. The silos of communication are reflected in the solutions.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB9Lzazy-JT7RaITJJz-KvR9TI5Hy6iaUyIcoxlE2s-T2JMjBiG_c0fC-F-MQRpuVxv4lYt1-zXpXwcr0y27N6uHstz9PO212CiVdhIftlGcx83tnV5HJLhw6Jm-QEUDJO-hx5zZ7m2Ji1W4JRvy3V8pnV3-5I2kGtKrhdJC6KEP1NAWAbkqeOH_sHF67l/s1024/treasury3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;356&quot; data-original-width=&quot;1024&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB9Lzazy-JT7RaITJJz-KvR9TI5Hy6iaUyIcoxlE2s-T2JMjBiG_c0fC-F-MQRpuVxv4lYt1-zXpXwcr0y27N6uHstz9PO212CiVdhIftlGcx83tnV5HJLhw6Jm-QEUDJO-hx5zZ7m2Ji1W4JRvy3V8pnV3-5I2kGtKrhdJC6KEP1NAWAbkqeOH_sHF67l/w548-h190/treasury3.jpg&quot; width=&quot;548&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;But I recently came across this &lt;a href=&quot;https://www.infoq.com/podcasts/financial-architecture-software/&quot;&gt;interview&lt;/a&gt; on InfoQ with&amp;nbsp;&lt;a href=&quot;https://zwischenzugs.com/&quot;&gt;Ian Miell&lt;/a&gt;, who I&#39;ve &lt;a href=&quot;https://www.mattblodgett.com/2017/12/software-development-methodologies-as.html&quot;&gt;mentioned&lt;/a&gt; on this blog before. He has interesting things to say about the sociology of software development, and in this interview he talks about a book he&#39;s writing about the &lt;i&gt;financial architecture &lt;/i&gt;of software:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;The material aspects of the world ultimately determine the software we build and specifically the decisions we make at a grand scale about the software that we build.&amp;nbsp;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I remember being frustrated and confused as a junior engineer, not understanding why certain things are prioritized in a company and others aren&#39;t. Obvious best practices from the industry at large don&#39;t get traction in certain places, what seem like universal &lt;i&gt;good things&lt;/i&gt; like &quot;quality&quot; don&#39;t seem to matter, or why values spoken about at the company level seem unevenly distributed and applied.&lt;/p&gt;&lt;p&gt;Ian explains...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;When I have a code base, I want to make sure all the tabs are correctly aligned before I do anything else that might take time, or I wanted to make sure the naming paths are consistent. But you get larger scale problems where engineers say, &quot;No, we have to fix this now because it&#39;s a huge thing&quot;. And you say, &quot;Well, I get it, but that&#39;s going to take us a month and in that month people are going to be looking at me as the leader of this team and saying, &#39;What have you delivered?&#39; And I can try and explain to them what I&#39;ve done, but it&#39;s not going to apply&quot;.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Hard work is not always rewarded. It depends on who sees the work, what their individual priorities are, and how much money they control. My advice to my younger self would be to pay close attention to what your specific boss thinks is important, and show yourself working on those things. The next level is understanding what your &lt;i&gt;boss&#39;s boss&lt;/i&gt; thinks is important and by what criteria they&#39;re &lt;i&gt;judging your boss&lt;/i&gt;; then you&#39;ll really understand what kind of work is rewarded.&lt;/p&gt;&lt;p&gt;As Ian describes...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Who owns the budget is a fascinating question. ...I start the book with a story about a very successful engineer, I call her Jan. She becomes a leader of a small group of engineers and she builds a platform in her spare time with those engineers, like a Kubernetes platform. And she does it within a central IT function and she builds it and she takes it, she shows it to her manager and the manager&#39;s like, &quot;Well, this doesn&#39;t help me hit my goals for the year. This doesn&#39;t help me get a promotion, this doesn&#39;t help me get a pay rise&quot;. And she&#39;s nonplussed like. &quot;I&#39;m trying to deliver faster, cheaper, better. That&#39;s what the company is, we&#39;re supposed to be agile. I&#39;m trying to help the whole business&quot;.&lt;/p&gt;&lt;p&gt;And it might sound naive, but a lot of people think this way. I certainly did. Where you&#39;re thinking, well, I&#39;m doing what&#39;s good for the company, but the system is not structured in that way. It&#39;s not designed to be run that way because people are complicated and their interactions are complicated, so you silo things and you have different budgets and so on, and the end result is that you are slaving away at the central IT function, trying to make the business better as a whole, but it&#39;s not accounted for.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Understanding where the money comes from sheds light on the technology decisions, where quality matters a lot and where it&#39;s almost an afterthought, and why different teams are more scrutinized than others. In the end, follow the money.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/273557111744407363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/273557111744407363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/273557111744407363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/273557111744407363'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/10/the-financial-architecture-of-software.html' title='The Financial Architecture of Software'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB9Lzazy-JT7RaITJJz-KvR9TI5Hy6iaUyIcoxlE2s-T2JMjBiG_c0fC-F-MQRpuVxv4lYt1-zXpXwcr0y27N6uHstz9PO212CiVdhIftlGcx83tnV5HJLhw6Jm-QEUDJO-hx5zZ7m2Ji1W4JRvy3V8pnV3-5I2kGtKrhdJC6KEP1NAWAbkqeOH_sHF67l/s72-w548-h190-c/treasury3.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-7935268789056537489</id><published>2025-09-23T23:54:00.000-05:00</published><updated>2025-09-23T23:54:30.827-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><title type='text'>Slow Is Smooth, Smooth Is Fast</title><content type='html'>&lt;p&gt;If you want to move fast, don’t make speed your goal. Make smoothness your goal. Fast naturally follows smooth.&lt;/p&gt;&lt;p&gt;Every software organization wants to be fast. And fast has a certain look to it. Buzzing Slack channels, video calls, people huddled around a screen or whiteboard. It&#39;s very easy to conflate &quot;high touch&quot; work practices with speed.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyP3rsZI0hWG3xfJlgPa0Ad4dqlT7zB3BI2GT9zwePMhAdzll0N3QtA1g79GAn-eWJmnJT9kpfjxIJZgEw3hHmXiWXUbLYnttUu3-de-ti1Wrby9-hClfirlonckAkjBAa1VUKgQaF90MzYuegGza2_amX3-WVXvzB6sXJK2JAHjlKGFs0qUXl9BpvWlhb/s970/mud-race.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;455&quot; data-original-width=&quot;970&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyP3rsZI0hWG3xfJlgPa0Ad4dqlT7zB3BI2GT9zwePMhAdzll0N3QtA1g79GAn-eWJmnJT9kpfjxIJZgEw3hHmXiWXUbLYnttUu3-de-ti1Wrby9-hClfirlonckAkjBAa1VUKgQaF90MzYuegGza2_amX3-WVXvzB6sXJK2JAHjlKGFs0qUXl9BpvWlhb/w543-h254/mud-race.jpg&quot; width=&quot;543&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;As I mentioned in my &lt;a href=&quot;https://www.mattblodgett.com/2025/08/sprints-balance-consistent-delivery.html&quot;&gt;previous post&lt;/a&gt;, one of the huge benefits of sprint-based development is that sprints act as a &lt;i&gt;delivery protector&lt;/i&gt;. A bulwark against constant churn.&lt;/p&gt;&lt;p&gt;The &lt;a href=&quot;https://agilemanifesto.org/principles.html&quot;&gt;principles of the Agile Manifesto&lt;/a&gt; talk repeatedly about &lt;i&gt;change&lt;/i&gt;, &lt;i&gt;continuous X&lt;/i&gt;, f&lt;i&gt;ace-to-face conversation&lt;/i&gt;. Some teams and leaders really latch onto these concepts. Let&#39;s change the requirements every day; let&#39;s discuss every decision face-to-face.&lt;/p&gt;&lt;p&gt;One of my favorite principles is:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Working software is the primary measure of progress.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;All the churn that looks like &quot;Agility&quot; is canceled out if you don&#39;t deliver on a regular enough cadence that your customers notice. They don&#39;t see anything else, they don&#39;t measure you by anything else.&lt;/p&gt;&lt;p&gt;The passé methodology of Waterfall became passé because it didn&#39;t respond to change well enough. People were wed to process instead of reality. Why spend a year building something that no one actually wants, right?&lt;/p&gt;&lt;p&gt;But I firmly believe there is such a thing as being &lt;i&gt;too responsive to change&lt;/i&gt;. There is such a thing as &lt;i&gt;too much communication&lt;/i&gt;. Remember, your customers only see delivery. They only see what pops out the other end.&lt;/p&gt;&lt;p&gt;There is a benefit to following a well-defined process from idea to delivery. &lt;i&gt;Process&lt;/i&gt; is perhaps a dirty word in Agile circles, but I think in some ways being anti-process is being anti-delivery. Every time we circumvent a process, we create &lt;b&gt;communication overhead&lt;/b&gt;. Each team member impacted must be notified and followed up with to make sure they know about the circumvention.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Any change is only good if the ripple effects created by the change are worth suffering. I reject the interpretation that Agile implies that more change is better. We have to always balance &lt;i&gt;change&lt;/i&gt; with &lt;i&gt;delivery&lt;/i&gt;. In fact, we have to balance anything that takes time and effort for a software team with delivery.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/7935268789056537489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/7935268789056537489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7935268789056537489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7935268789056537489'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/09/slow-is-smooth-smooth-is-fast.html' title='Slow Is Smooth, Smooth Is Fast'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyP3rsZI0hWG3xfJlgPa0Ad4dqlT7zB3BI2GT9zwePMhAdzll0N3QtA1g79GAn-eWJmnJT9kpfjxIJZgEw3hHmXiWXUbLYnttUu3-de-ti1Wrby9-hClfirlonckAkjBAa1VUKgQaF90MzYuegGza2_amX3-WVXvzB6sXJK2JAHjlKGFs0qUXl9BpvWlhb/s72-w543-h254-c/mud-race.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-4137604044120066757</id><published>2025-08-26T23:26:00.000-05:00</published><updated>2025-08-26T23:26:23.981-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><category scheme="http://www.blogger.com/atom/ns#" term="Scrum"/><title type='text'>Sprints Balance Consistent Delivery With Optimal Value</title><content type='html'>&lt;p&gt;Value, value, getting value to users. Work on the most valuable thing, always. You could probably summarize the Agile philosophy as &quot;deliver value to end users faster.&quot; What&#39;s the next most valuable thing we could work on, get it done, and get it out to production.&lt;/p&gt;&lt;p&gt;With a sprint cadence, we commit to a strategy for two weeks, we work as a team through the items in our sprint backlog, and we retrospect at the end to talk about how we did. There&#39;s always the chance that some circumstance around the business could change mid-sprint that may change the team&#39;s idea about what is &lt;i&gt;most valuable&lt;/i&gt; to work on in the moment. Since sprints balance&amp;nbsp;&lt;b&gt;consistent delivery&lt;/b&gt;&amp;nbsp;with&amp;nbsp;&lt;b&gt;optimal value&lt;/b&gt;, we keep our heads down and finish the chunk of work we agreed to deliver at the start of the sprint.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpzcz5oTuhGsyWDftzCu_qKj7zbwN-LXpShZ1LHo-w8UAIYP7OnFCzBAxO1_xDP_rVBjfPhf5iVIUEWHV31_KatqKSwUQiKRhTrosQIC3_YkoAG-R-xyT3l1JpKOp6RagwyAGjxq6cN7uWTIkvCdQ8_oE4aGlgTTnQNsmG30WrplMCKx1TM8j3RCDe4838/s2500/ships.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1202&quot; data-original-width=&quot;2500&quot; height=&quot;265&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpzcz5oTuhGsyWDftzCu_qKj7zbwN-LXpShZ1LHo-w8UAIYP7OnFCzBAxO1_xDP_rVBjfPhf5iVIUEWHV31_KatqKSwUQiKRhTrosQIC3_YkoAG-R-xyT3l1JpKOp6RagwyAGjxq6cN7uWTIkvCdQ8_oE4aGlgTTnQNsmG30WrplMCKx1TM8j3RCDe4838/w552-h265/ships.jpg&quot; width=&quot;552&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;This requires leaders and engineers to get used to telling people outside the team, &quot;That&#39;s a great idea! We&#39;ll put it in the product backlog. We can start working on implementing this idea in less than 2 weeks from today!&quot;&lt;/p&gt;&lt;p&gt;As arbitrary as the sprint cadence can seem, I see the sprint as a &lt;i&gt;delivery protector&lt;/i&gt;--a built-in reason to say &lt;i&gt;not right now&lt;/i&gt;. The items we&#39;re working on today may only be 80% of optimal value, but we&#39;re going to &lt;i&gt;finish them dammit&lt;/i&gt;. In no more than two weeks we can shift our strategy 180 degrees if necessary, but not today.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/4137604044120066757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/4137604044120066757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/4137604044120066757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/4137604044120066757'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/08/sprints-balance-consistent-delivery.html' title='Sprints Balance Consistent Delivery With Optimal Value'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpzcz5oTuhGsyWDftzCu_qKj7zbwN-LXpShZ1LHo-w8UAIYP7OnFCzBAxO1_xDP_rVBjfPhf5iVIUEWHV31_KatqKSwUQiKRhTrosQIC3_YkoAG-R-xyT3l1JpKOp6RagwyAGjxq6cN7uWTIkvCdQ8_oE4aGlgTTnQNsmG30WrplMCKx1TM8j3RCDe4838/s72-w552-h265-c/ships.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-3248464322165690602</id><published>2025-07-28T23:02:00.000-05:00</published><updated>2025-07-28T23:02:17.894-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><category scheme="http://www.blogger.com/atom/ns#" term="Scrum"/><title type='text'>Sprints Need a Cooldown </title><content type='html'>&lt;p&gt;Teams vary in the amount of handwringing their leaders do about sprints that aren&#39;t perfectly rightsized. What if we bit off too much work at the start of the sprint and can&#39;t finish it all by the end? What if we overestimated the work and didn&#39;t fit in as many tickets as we could have?&lt;/p&gt;&lt;p&gt;I&#39;ve worked with teams where having work incomplete on the last day of the sprint was no big deal, it happened regularly, and no one was too concerned about it. And I&#39;ve worked with teams where the team committing to a certain scope of work was sacred, and tickets carrying over was a grave error that we fretted over and vowed not to repeat.&lt;/p&gt;&lt;p&gt;The teams that prefer the overstuffed sprint are trying to maximize &lt;a href=&quot;https://agilealliance.org/glossary/velocity/&quot;&gt;velocity&lt;/a&gt; and reduce downtime of the team members. Teams that treat the sprint &lt;a href=&quot;https://agilealliance.org/glossary/timebox/&quot;&gt;timebox&lt;/a&gt; as sacred are trying to maximize predictability and often striving for a kind of &quot;standardization&quot; across teams. Some teams will even wonder why they&#39;re bothering with these stupid sprint things and opt out for a methodology like &lt;a href=&quot;https://agilealliance.org/glossary/kanban/&quot;&gt;Kanban&lt;/a&gt; where people just grab work items when they finish the previous one, and toss out the timebox.&lt;/p&gt;&lt;p&gt;I have always believed strongly that whether you&#39;re using Scrum or Kanban, and working in discrete timeboxes or not, that team members need a regular &lt;a href=&quot;https://en.wiktionary.org/wiki/cooldown#Noun&quot;&gt;cooldown&lt;/a&gt;. Just as an athlete cannot sprint indefinitely and must rest, I believe the same is true of software engineering teams.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirwp1FphI53o2bNf0TwyF3tUbdDLg-oo8-V2yqh7hLpGaRNDjrdKJml5JKqC9NsX-HKR-4YS9e9XQIyeYa2wP4Jq6BHUqkCavcQAvH7lybzgsVMPCy34SOAvOgw5cf12jpG1UUp7npG-Xz_gz1cH14cREQzzJKKRwu9w-37905cUqgVG5V5SgdnMkv5Gri/s1400/water-break.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;500&quot; data-original-width=&quot;1400&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirwp1FphI53o2bNf0TwyF3tUbdDLg-oo8-V2yqh7hLpGaRNDjrdKJml5JKqC9NsX-HKR-4YS9e9XQIyeYa2wP4Jq6BHUqkCavcQAvH7lybzgsVMPCy34SOAvOgw5cf12jpG1UUp7npG-Xz_gz1cH14cREQzzJKKRwu9w-37905cUqgVG5V5SgdnMkv5Gri/w552-h196/water-break.jpg&quot; width=&quot;552&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;As you might imagine, this puts me in the camp of &quot;fill the sprint conservatively so that we don&#39;t go over.&quot; This, of course, means that many sprints will end without the theoretical maximum amount of trackable work items packed into them. And to that I say: &lt;b&gt;&lt;i&gt;Good&lt;/i&gt;&lt;/b&gt;. &lt;i&gt;That&#39;s the point.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;I believe that implicit in the social contract of teams is this: If you want people to sprint, then they must be allowed to cool down. That&#39;s the deal. Continuous sprinting means burnout.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Quoting a &lt;a href=&quot;https://www.mattblodgett.com/2022/05/let-developers-do-off-board-work.html&quot;&gt;previous post of mine&lt;/a&gt;, here are a few things engineers need to do that are not represented by tickets in a sprint backlog, and are perfect for filling the cooldown period at the end of a sprint, at their discretion:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;Training&lt;/li&gt;&lt;li&gt;Preparing for a presentation&lt;/li&gt;&lt;li&gt;Proof of concept / demo of an intriguing tool, framework, technology&lt;/li&gt;&lt;li&gt;Updating documentation that&#39;s been bugging you&lt;/li&gt;&lt;li&gt;Spikes into performance improvements&lt;/li&gt;&lt;li&gt;Cleaning out your inbox&lt;/li&gt;&lt;li&gt;For companies that do some sort of periodic &quot;goal setting&quot; for each employee, let people work on goals from their list&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;p&gt;If we set a strong &lt;a href=&quot;https://www.scrum.org/resources/what-sprint-goal&quot;&gt;sprint goal&lt;/a&gt;, bite off a chunk of work that the team is confident of completing, and we get it all done without rushing a day or two before the end of our sprint, &lt;b&gt;that&#39;s a good thing&lt;/b&gt;. The team feels a sense of accomplishment, the business gets a valuable increment of working software that fulfills a real need, and the individuals get some time to cool down and shift their attention to some low-intensity &lt;i&gt;stuff&lt;/i&gt; that nevertheless needs doing before the next sprint starts again.&lt;/p&gt;&lt;p&gt;For me, the cooldown at the end of the sprint is what &lt;b&gt;sustainable pace&lt;/b&gt; is all about. We go hard toward an important goal, and if our planning and teamwork are on point, then we know we&#39;ll have that down-shift at the end.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/3248464322165690602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/3248464322165690602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/3248464322165690602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/3248464322165690602'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/07/sprints-need-cooldown.html' title='Sprints Need a Cooldown '/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirwp1FphI53o2bNf0TwyF3tUbdDLg-oo8-V2yqh7hLpGaRNDjrdKJml5JKqC9NsX-HKR-4YS9e9XQIyeYa2wP4Jq6BHUqkCavcQAvH7lybzgsVMPCy34SOAvOgw5cf12jpG1UUp7npG-Xz_gz1cH14cREQzzJKKRwu9w-37905cUqgVG5V5SgdnMkv5Gri/s72-w552-h196-c/water-break.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-8965665968543040310</id><published>2025-06-23T23:15:00.000-05:00</published><updated>2025-06-23T23:15:28.191-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><title type='text'>There&#39;s a Fine Line Between Increasing Productivity and De-skilling</title><content type='html'>&lt;p&gt;In the software engineering profession, there&#39;s a concept called &quot;resumeware&quot;. It&#39;s software that was made with the engineers involved in the design specifically making choices about technology stacks in order to have marketable experience to put on their resume in order to improve their future job prospects, regardless of whether they&#39;re a reasonable choice for the system at hand. You can kind of tell when you&#39;re looking at resumeware because it looks like the architects threw in every fashionable programming language, library, framework, and architectural pattern into an incoherent hodgepodge.&lt;/p&gt;&lt;p&gt;You could say this is a cynical take on the employer-employee relationship, and perhaps, taking advantage of one&#39;s aura of expertise. And that could be true. There&#39;s a balance to be had in any job between giving your employer a good return on your salary and the desire of an at-will employee to increase their transferable skills. I think every employer knows this--in fact the good ones use this as a recruitment advantage.&lt;/p&gt;&lt;p&gt;The flip side of this coin is &lt;a href=&quot;https://en.wikipedia.org/wiki/Deskilling&quot;&gt;de-skilling&lt;/a&gt;, the centuries old drive by employers to reduce the skill needed to produce a product, as part of the endless push to reduce labor costs. Today &lt;a href=&quot;https://en.wikipedia.org/wiki/Generative_artificial_intelligence&quot;&gt;generative AI&lt;/a&gt; is hailed as the ultimate de-skilling force. Employees across all kinds of industries (including software engineering) are feeling the heat from their bosses to increase their use of GenAI in their everyday work. I think that history shows plainly that the march of capital toward greater efficiency is unstoppable. &lt;a href=&quot;https://en.wikipedia.org/wiki/Luddite&quot;&gt;Smashing looms&lt;/a&gt; is not a sustainable defense.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg998TosS55bpDzjBp0bnekK50hAnN2KT0UJ_ekACJJkfTgImiEUud_0QK6qydInvoAW2Yh0PUD-aUEApRyf4W8LGoueTkE9xkaS3H6Af4QH3gXeHTxi71KEX-gpChblNy1zmSRfEB6h4qQyk-2LbPBwYmRyIe1mG8tosl12MTi4kmMcRt4snDqWJiTCMt2/s800/excavator3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;360&quot; data-original-width=&quot;800&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg998TosS55bpDzjBp0bnekK50hAnN2KT0UJ_ekACJJkfTgImiEUud_0QK6qydInvoAW2Yh0PUD-aUEApRyf4W8LGoueTkE9xkaS3H6Af4QH3gXeHTxi71KEX-gpChblNy1zmSRfEB6h4qQyk-2LbPBwYmRyIe1mG8tosl12MTi4kmMcRt4snDqWJiTCMt2/w569-h256/excavator3.jpg&quot; width=&quot;569&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;When I look into my crystal ball, I see a &quot;Great Sort&quot; coming to the software industry. Just as the middle class of well...life...&lt;a href=&quot;https://www.pewresearch.org/race-and-ethnicity/2024/05/31/the-state-of-the-american-middle-class/&quot;&gt;continues to shrink&lt;/a&gt;, I can see the same thing coming to the skilled profession of the software engineer. The question is: Do you want to be sorted to the &lt;i&gt;bottom&lt;/i&gt; or the &lt;i&gt;top&lt;/i&gt;? Do you want your work to become more skilled or less skilled?&lt;/p&gt;&lt;p&gt;I really do feel for junior software engineers coming out of college in 2025, the time of your career when you&#39;re the least skilled, and trying to find a great job while you&#39;re trying to get your foot in the door in the age of GenAI. The least skilled are the most vulnerable.&lt;/p&gt;&lt;p&gt;For those among us fortunate enough to be past our junior years to the &quot;experienced&quot; stage of our careers already, what does the future hold? My personal perspective is that I, as I always have, fully embrace the idea of reducing the tedious aspects of my daily work. Programming can be bloody &lt;i&gt;annoying&lt;/i&gt; a lot of the time. Assembly language is not a skill I &lt;i&gt;want&lt;/i&gt; to have because &lt;a href=&quot;https://en.wikipedia.org/wiki/High-level_programming_language&quot;&gt;C#&lt;/a&gt; exists, and it&#39;s way less annoying to use. There is no way in hell that I&#39;m going to write code in Notepad with a command-line compiler (like I did in college) when &lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/ide/using-intellisense&quot;&gt;IntelliSense&lt;/a&gt; and Visual Studio exist. Remember trying to track down the cause of weird error messages in your program before &lt;a href=&quot;https://en.wikipedia.org/wiki/Stack_Overflow&quot;&gt;Stack Overflow&lt;/a&gt; existed? I do! And it &lt;i&gt;fucking sucked&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;I will never take the stance that I want to stay inefficient. I do not want to do my work in a more tedious, annoying way so that I can bill more hours to do the work. But at the same time, &lt;b&gt;I will not de-skill myself for anyone&lt;/b&gt;. My general feeling about the big, scary &quot;AI&quot; future of software engineering is that I&#39;m happy to use any tool that makes my job less annoying. My real skill is in producing great software. I am not attached to the tools that I use to do it today or tomorrow. If a statistical word predictor trained on the entirety of Stack Overflow, and fully integrated into my code editor, saves me having to read endless Stack Overflow posts in dozens of tabs in my web browser to produce the same end result, then bring it on.&lt;/p&gt;&lt;p&gt;My personal rubric for productivity-enhancing tools is this: &lt;b&gt;Is my work getting less annoying &lt;/b&gt;or&lt;b&gt; am I getting dumber?&lt;/b&gt;&amp;nbsp;I refuse to get dumber. Getting dumber is the feeling of sorting to the bottom. If a statistical word predictor can do my job better than me, then &lt;b&gt;I need to learn to do something harder&lt;/b&gt;. I will not try to compete at the level of the tool. I will be sorted up, not down.&lt;/p&gt;&lt;p&gt;Just as any employer has the natural right to decrease their cost to make a product, I retain the right to increase my transferable skills. There&#39;s a thin line between increasing productivity and de-skilling. I&#39;m all for increasing productivity, but I will not de-skill myself.&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/8965665968543040310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/8965665968543040310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/8965665968543040310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/8965665968543040310'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/06/theres-fine-line-between-increasing.html' title='There&#39;s a Fine Line Between Increasing Productivity and De-skilling'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg998TosS55bpDzjBp0bnekK50hAnN2KT0UJ_ekACJJkfTgImiEUud_0QK6qydInvoAW2Yh0PUD-aUEApRyf4W8LGoueTkE9xkaS3H6Af4QH3gXeHTxi71KEX-gpChblNy1zmSRfEB6h4qQyk-2LbPBwYmRyIe1mG8tosl12MTi4kmMcRt4snDqWJiTCMt2/s72-w569-h256-c/excavator3.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-4545608213031293371</id><published>2025-05-27T23:29:00.000-05:00</published><updated>2025-05-27T23:29:57.528-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><title type='text'>Calibrating Your Care</title><content type='html'>&lt;p&gt;I&#39;ve been a subscriber to the &lt;a href=&quot;https://www.reddit.com/r/ExperiencedDevs/&quot;&gt;r/ExperiencedDevs&lt;/a&gt; subreddit for a few months, and I&#39;ve noticed a common pattern.&lt;/p&gt;&lt;p&gt;Someone will post a question to the group desperately seeking advice about some stressful situation that they are clearly very worked up about at their job. The author&#39;s specific concern or complaint could be just about anything, but the general feeling is that from their point of view everything seems to be on fire around them and none of their peers or managers are doing anything about it.&lt;/p&gt;&lt;p&gt;Being around social media for many years trains one to expect posts like these to be opportunities for commenters to rage about the injustice on display and to pile on with their own&amp;nbsp;indignation about incompetent managers and clueless coworkers.&lt;/p&gt;&lt;p&gt;Instead, many of the highest voted comments to the post will be something to the effect of:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;With all due respect, I think you care too much about this.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Or...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;You seem to be taking this personally, and there&#39;s no need to do that.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I was definitely surprised at first by responses like this being highly upvoted, but I just kept seeing them from different people on different posts, with very little pushback from other commenters.&lt;/p&gt;&lt;p&gt;Early in my career, I took things at work &lt;i&gt;very personally&lt;/i&gt;. I saw it as a badge of honor to care more than the people around you. I &lt;i&gt;should&lt;/i&gt; be mad if things are not being done the &lt;i&gt;right&lt;/i&gt; way.&lt;/p&gt;&lt;p&gt;The unpalatable truth, in many cases, is that this thing that seems of grave importance to you...actually doesn&#39;t matter as much as you think it does. And the clueless coworkers and managers around you actually understand something important that you don&#39;t. In fact, &lt;i&gt;you&lt;/i&gt; might be the clueless one.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6evd9hXT5_LcJgS22IBNNCXhV8xYfZ5kPS1mxhH7KlbJMa_-EnvwTf2Uy6Ezr6nwE5mwR4lLjewVjINa6wSNFTA_ToRH8kAQ56rOO5GhJL5cH4-jqy9noRzyIZm49GmCmV-762X7ngZaKAQWEVxRI606WTDsNlYtsS77KTRXM27yTl_4Id2x9O4VHTQKT/s1920/probe.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;700&quot; data-original-width=&quot;1920&quot; height=&quot;202&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6evd9hXT5_LcJgS22IBNNCXhV8xYfZ5kPS1mxhH7KlbJMa_-EnvwTf2Uy6Ezr6nwE5mwR4lLjewVjINa6wSNFTA_ToRH8kAQ56rOO5GhJL5cH4-jqy9noRzyIZm49GmCmV-762X7ngZaKAQWEVxRI606WTDsNlYtsS77KTRXM27yTl_4Id2x9O4VHTQKT/w551-h202/probe.jpg&quot; width=&quot;551&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;It&#39;s easy to get caught in the &lt;a href=&quot;https://en.wikipedia.org/wiki/Spotlight_effect&quot;&gt;spotlight effect&lt;/a&gt;, where you assume your thoughts and feelings about a situation are the &lt;i&gt;right&lt;/i&gt; ones. And it&#39;s easy to believe that your view of what&#39;s &lt;i&gt;important&lt;/i&gt; is shared by everyone.&lt;/p&gt;&lt;p&gt;If your ground level belief is that everything is on fire and no one cares, you’re probably right. But you have to keep in mind that no one else sees the world through your eyes. You may be reading the room inaccurately. Your boss may have more context around the project than your daily experience.&lt;/p&gt;&lt;p&gt;One could take the advice that &quot;&lt;i&gt;You care too much&lt;/i&gt;&quot; as being told &quot;&lt;i&gt;You should be dead inside.&lt;/i&gt;&quot; I would say, just be prepared to &lt;b&gt;lower the stakes&lt;/b&gt; in your mind. Be humble about your own role in the world of people around you. Get some mental distance from the situation and try to read the room.&lt;/p&gt;&lt;p&gt;Everybody gets to decide what they care about. &lt;b&gt;Calibrate your care.&lt;/b&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/4545608213031293371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/4545608213031293371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/4545608213031293371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/4545608213031293371'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/05/calibrating-your-care.html' title='Calibrating Your Care'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6evd9hXT5_LcJgS22IBNNCXhV8xYfZ5kPS1mxhH7KlbJMa_-EnvwTf2Uy6Ezr6nwE5mwR4lLjewVjINa6wSNFTA_ToRH8kAQ56rOO5GhJL5cH4-jqy9noRzyIZm49GmCmV-762X7ngZaKAQWEVxRI606WTDsNlYtsS77KTRXM27yTl_4Id2x9O4VHTQKT/s72-w551-h202-c/probe.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-1301852447975732283</id><published>2025-04-22T21:59:00.000-05:00</published><updated>2025-04-22T21:59:02.791-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><title type='text'>Don&#39;t Let an LLM Write Your Unit Tests</title><content type='html'>&lt;p&gt;Writing unit tests is one of those tasks that software engineers often see as tedious. In fact, I&#39;ve heard from fellow engineers that unit test generation is one of their favorite uses of &lt;a href=&quot;https://en.wikipedia.org/wiki/GitHub_Copilot&quot;&gt;LLMs&lt;/a&gt;. &lt;i&gt;Let the AI write them!&amp;nbsp;&lt;/i&gt;I&#39;ve always been deeply uncomfortable with this use of LLMs, even though I&#39;m all for reducing the tedious aspects of work in general.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Unit tests are not boilerplate code.&lt;/b&gt; If you&#39;ve read a lot of bad unit tests, then you may get that impression, though. If your only goal in writing unit tests is &lt;i&gt;“&lt;a href=&quot;https://www.atlassian.com/continuous-delivery/software-testing/code-coverage&quot;&gt;Coverage&lt;/a&gt; number goes up!”&lt;/i&gt; then by all means let an LLM write your unit tests.&lt;/p&gt;&lt;p&gt;But I would argue that writing great unit tests means &lt;b&gt;thinking carefully about what is valuable&lt;/b&gt; about the system under test. An LLM is great at generating reams of code in an instant, but it will never know anything about the value of the product your codebase represents.&lt;/p&gt;&lt;p&gt;If our goal instead is &lt;i&gt;“Let’s ensure that our product is retaining its value as we add more code to our codebase.”&lt;/i&gt; then a human who understands the value of the product should write the tests.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioYB1tBIPeCbJ8TbFx639KMEd-hxIVg80fJJ2jpyJxXe-Sl4QBXpkMKm3zW90OSVIJhAUFMksA0sxOaX0BxsYMqNq26Hy6SiuBgkbBCQP-XLYC9YeBNUfuRA_91m_evODyRC9puUCwF12j-NZ0Jkqx6H8EfwLxEUsUPn_z_0Agw9PNZBo2UC8yXHWiND0k/s1400/inspector.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;596&quot; data-original-width=&quot;1400&quot; height=&quot;229&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioYB1tBIPeCbJ8TbFx639KMEd-hxIVg80fJJ2jpyJxXe-Sl4QBXpkMKm3zW90OSVIJhAUFMksA0sxOaX0BxsYMqNq26Hy6SiuBgkbBCQP-XLYC9YeBNUfuRA_91m_evODyRC9puUCwF12j-NZ0Jkqx6H8EfwLxEUsUPn_z_0Agw9PNZBo2UC8yXHWiND0k/w541-h229/inspector.png&quot; width=&quot;541&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Unit tests have yet another critical function, which is to provide runnable documentation about the system for &lt;b&gt;other engineers to read&lt;/b&gt;. Want to know how some part of the codebase is supposed to work? Go read the unit tests; they represent the valuable features of the software that an engineer wanted to point out.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://retrocomputing.stackexchange.com/questions/15724/who-are-we-quoting-when-we-note-that-code-is-written-once-but-read-many-times&quot;&gt;Code is written once, but read many times.&lt;/a&gt;&amp;nbsp;And test coverage is just a number. If you want tests that matter, write them yourself.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/1301852447975732283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/1301852447975732283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/1301852447975732283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/1301852447975732283'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/04/dont-let-llm-write-your-unit-tests.html' title='Don&#39;t Let an LLM Write Your Unit Tests'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioYB1tBIPeCbJ8TbFx639KMEd-hxIVg80fJJ2jpyJxXe-Sl4QBXpkMKm3zW90OSVIJhAUFMksA0sxOaX0BxsYMqNq26Hy6SiuBgkbBCQP-XLYC9YeBNUfuRA_91m_evODyRC9puUCwF12j-NZ0Jkqx6H8EfwLxEUsUPn_z_0Agw9PNZBo2UC8yXHWiND0k/s72-w541-h229-c/inspector.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-8244007050981765170</id><published>2025-03-26T01:06:00.000-05:00</published><updated>2025-03-26T01:06:17.025-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><title type='text'>Copilot Is Outsourcing 2.0</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Decision-makers can remain irrational longer than you can remain solvent. (Or, in this context, remain employed.)&lt;/p&gt;&lt;p style=&quot;text-align: right;&quot;&gt;- Will Larson, &quot;&lt;a href=&quot;https://lethain.com/career-advice-2025/&quot;&gt;Career Advice in 2025&lt;/a&gt;&quot;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&quot;AI&quot; coding tools like &lt;a href=&quot;https://en.wikipedia.org/wiki/GitHub_Copilot&quot;&gt;Copilot&lt;/a&gt; went from a mere curiosity to full-blown &lt;i&gt;silver bullet&lt;/i&gt; territory in a few short years. I&#39;m all for reducing the accidental complexity Fred Brooks wrote about in his classic &lt;a href=&quot;https://en.wikipedia.org/wiki/No_Silver_Bullet&quot;&gt;essay&lt;/a&gt; on software engineering, but what’s driving me a little bit crazy lately is talk amongst people (mostly non-engineers) around the industry that Copilot and the like are magical productivity machines.&lt;/p&gt;&lt;p&gt;I&#39;m not the only seasoned engineer to notice that this present moment feels eerily similar to the &lt;a href=&quot;https://www.amazon.com/Job-Went-India-Pragmatic-Programmers/dp/0976694018&quot;&gt;outsourcing&lt;/a&gt; craze of the 2000s. The dream of every non-technical executive who had a bunch of software engineers on their payroll was to lay them off and replace them with people in faraway countries with a lower standard of living who they could pay less to do the same job. Well...it didn&#39;t exactly work out that way. It turns out that software engineers are not, in fact, fungible code-typing machines. Outsourcing jobs to cheaper parts of the world is very much still a thing, but it took several years of reality colliding with the dream to bring expectations down to a reasonable level.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnsefjMtDOZM5CUVoYOhfGBV63jXb2oIUnzYafCF7tJpAYaQeAXIyqA8uZi_JMBRX263qxSVATAzw3lIlIxegHdorZIHDGJliu8cTuwozlErEoXA1HrbyEagrNG5A8i4Z-sf3Zr13SPZPXoxAIXv3U4XzOg4_YKR2QveF2KM42kSDkhjKy-xjApOcm5C1n/s1024/my-job-went-to-india.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;768&quot; data-original-width=&quot;1024&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnsefjMtDOZM5CUVoYOhfGBV63jXb2oIUnzYafCF7tJpAYaQeAXIyqA8uZi_JMBRX263qxSVATAzw3lIlIxegHdorZIHDGJliu8cTuwozlErEoXA1HrbyEagrNG5A8i4Z-sf3Zr13SPZPXoxAIXv3U4XzOg4_YKR2QveF2KM42kSDkhjKy-xjApOcm5C1n/w553-h416/my-job-went-to-india.jpg&quot; width=&quot;553&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;In 2025, the executive&#39;s dream is back, and bigger than ever. What&#39;s better than paying humans in other parts of the planet less to do the same job? We can get &lt;b&gt;AI&lt;/b&gt;™ to do the job for even less!&lt;/p&gt;&lt;p&gt;The outsized hype around AI coding tools is premised on the idea that software engineers are primarily code-writers. If we could get machines to type the code, then we can save a ton of money, right? The reality in my experience is that typing code faster is not a bottleneck for any software engineer that you would want working on your product. Writing code is a small percentage of what a software engineer actually does.&lt;/p&gt;&lt;p&gt;I remember a friend of mine from college asking me many years ago, when learning that I was studying Computer Science, if I was worried about destroying my hands from typing so much. He apparently imagined that the career I was training for was similar to a court stenographer. In the software industry, we used to refer to engineers who produced huge volumes of repetitive code quickly as &quot;code monkeys&quot;. This matches the outside perception of someone furiously hacking away at a keyboard, with speed of keystrokes making the overall impression.&lt;/p&gt;&lt;p&gt;The thing is, a “code monkey” &lt;i&gt;is&lt;/i&gt; replaceable by AI. If there&#39;s anything we&#39;ve learned over the last 200 years or so, it&#39;s that machines can do repetitive, mindless tasks faster and more cheaply than humans. If the work of a software engineer really looked like: 1. Do a Google search. 2. Copy and paste code from your web browser into your code editor. 3. Hit a button to commit to your team&#39;s code repository; then heck yeah, a machine can do those things &lt;i&gt;way&lt;/i&gt; faster than a human.&lt;/p&gt;&lt;p&gt;I don&#39;t fear being replaced by an AI that can copy and paste code from the internet faster than I can. I &lt;i&gt;do&lt;/i&gt; worry about non-technical executives either firing me or not hiring me based on marketing, or a belief that this is what software engineers primarily do to create software that is valuable to an actual business.&lt;/p&gt;&lt;p&gt;Just like the executive&#39;s dream of outsourcing faded to a modest incremental reduction in the cost of developing software, I believe that so to will the dream of the AI engineer. I don&#39;t need to ask Fred Brooks what he would have thought (&lt;a href=&quot;https://www.mattblodgett.com/2022/11/rip-fred-brooks.html&quot;&gt;RIP&lt;/a&gt;).&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/8244007050981765170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/8244007050981765170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/8244007050981765170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/8244007050981765170'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/03/copilot-is-outsourcing-20.html' title='Copilot Is Outsourcing 2.0'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnsefjMtDOZM5CUVoYOhfGBV63jXb2oIUnzYafCF7tJpAYaQeAXIyqA8uZi_JMBRX263qxSVATAzw3lIlIxegHdorZIHDGJliu8cTuwozlErEoXA1HrbyEagrNG5A8i4Z-sf3Zr13SPZPXoxAIXv3U4XzOg4_YKR2QveF2KM42kSDkhjKy-xjApOcm5C1n/s72-w553-h416-c/my-job-went-to-india.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-7735686343907048774</id><published>2025-02-25T23:28:00.000-06:00</published><updated>2025-02-25T23:28:35.933-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><category scheme="http://www.blogger.com/atom/ns#" term="Scrum"/><title type='text'>Engineering-led Research Tickets</title><content type='html'>&lt;p&gt;One of my optimistic beliefs about software engineers is that we&#39;re full of good ideas about how things around us could be improved. We&#39;re smart people, problem solvers. We read tech news, we&#39;re friends with engineers at other companies, we bring diverse career experiences to each job--in other words, we&#39;re at least vaguely aware of better ways of doing things that are happening in other places.&lt;/p&gt;&lt;p&gt;If we want to go beyond just talking about better ways of doing things, we need to empower engineers to capture their ideas for improvement in the &lt;a href=&quot;https://www.mattblodgett.com/2024/10/who-writes-backlog.html&quot;&gt;backlog&lt;/a&gt; right next to ideas from the product management side. It&#39;s critical, of course, that items in the backlog generated by engineers are refined, estimated, and&amp;nbsp;&lt;b&gt;actually included in sprints&lt;/b&gt;&amp;nbsp;on a regular basis.&lt;/p&gt;&lt;p&gt;And we want to go beyond the all-too-easy step of adding a one-line ticket at the end of our backlog that says “do cool thing X”. Since no one has the foggiest idea how we’ll actually do that cool thing, the backlog item just sits there and no one ever puts it into a sprint because it’s too nebulous and scary and we don’t know how long it will take or if it’s even possible in a sprint-worth’s amount of time.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1cid5txuHczUytLdzh3g8YbXt_tPz-9Jwgjme8X7c9mqYJWkupyrgdiLuB56SIfW63HIrI46I2ECYeb_hwsxaBY4-3_SYqQ2nSq-GCaWEh4vEzf9gCAYBIDwGnyzVcyhmheghI1c47OznY7L_As-8Xak-rUwQ6UPlUmWEYT3GoGdP6EgoabyqfccD-_Jh/s1024/scientists.webp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;512&quot; data-original-width=&quot;1024&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1cid5txuHczUytLdzh3g8YbXt_tPz-9Jwgjme8X7c9mqYJWkupyrgdiLuB56SIfW63HIrI46I2ECYeb_hwsxaBY4-3_SYqQ2nSq-GCaWEh4vEzf9gCAYBIDwGnyzVcyhmheghI1c47OznY7L_As-8Xak-rUwQ6UPlUmWEYT3GoGdP6EgoabyqfccD-_Jh/w540-h271/scientists.webp&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Make that “do cool thing X” a &lt;b&gt;research ticket&lt;/b&gt;. Time-box the effort. We can put this into a future sprint because at the end of the time box (fitting within one sprint) we will have a documented outcome that gets us closer to the goal than we were before, and we’ll have a much better idea of the actual steps to get there with &quot;real&quot; tickets representing the work.&lt;/p&gt;&lt;p&gt;The output of these research tickets can be a comment saying we shouldn’t do this and here’s why. Or the output could be a series of other tickets the engineer creates with a ticket for each step of the process toward accomplishing the ultimate goal...or a nice intermediate goal.&lt;/p&gt;&lt;p&gt;Even if we end up looking at the list of steps for follow-on work and think, “Geez! That’s a lot of damn work to get the outcome we want!” and we decide it’s not worth the effort, that&#39;s still a great outcome.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/7735686343907048774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/7735686343907048774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7735686343907048774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7735686343907048774'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/02/engineering-led-research-tickets.html' title='Engineering-led Research Tickets'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1cid5txuHczUytLdzh3g8YbXt_tPz-9Jwgjme8X7c9mqYJWkupyrgdiLuB56SIfW63HIrI46I2ECYeb_hwsxaBY4-3_SYqQ2nSq-GCaWEh4vEzf9gCAYBIDwGnyzVcyhmheghI1c47OznY7L_As-8Xak-rUwQ6UPlUmWEYT3GoGdP6EgoabyqfccD-_Jh/s72-w540-h271-c/scientists.webp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-2558567403749250396</id><published>2025-01-28T23:41:00.000-06:00</published><updated>2025-01-28T23:41:23.993-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><category scheme="http://www.blogger.com/atom/ns#" term="Hiring"/><title type='text'>Software Engineer Career Levels at Companies You&#39;ve Heard Of</title><content type='html'>&lt;p&gt;I found a site called &lt;a href=&quot;https://progression.fyi/&quot;&gt;Progression.fyi&lt;/a&gt; that curates a list of &quot;career frameworks,&quot; or in other words, the level-progression system of titles that a bunch of tech companies use for their software engineers. It&#39;s pretty interesting to peruse.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj98x0DtuSWI8JedU6ZMeC59REbTWwO2GnpMXd2_vXyh38LKXd02NSdSD23J2vwWGq7NUl_4IR4hm-FBXjK3FPFKDLy4r_DG5P4KZgsY8dT2Kg_3x5NiJwNXbpJUXPtNRFyWsJcOqX168I2z_XMxDTz5r230eezmXIcUHSS2hKZUHqSDeXPt2DGEdQ6pwCZ/s2930/levels4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1172&quot; data-original-width=&quot;2930&quot; height=&quot;226&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj98x0DtuSWI8JedU6ZMeC59REbTWwO2GnpMXd2_vXyh38LKXd02NSdSD23J2vwWGq7NUl_4IR4hm-FBXjK3FPFKDLy4r_DG5P4KZgsY8dT2Kg_3x5NiJwNXbpJUXPtNRFyWsJcOqX168I2z_XMxDTz5r230eezmXIcUHSS2hKZUHqSDeXPt2DGEdQ6pwCZ/w563-h226/levels4.jpg&quot; width=&quot;563&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Several of these companies define what the often nebulous title of &lt;a href=&quot;https://www.mattblodgett.com/2022/10/what-is-staff-engineer.html&quot;&gt;Staff Engineer&lt;/a&gt; means to them, which I find particularly compelling.&lt;/p&gt;&lt;p&gt;Here are a few companies you&#39;ve probably heard of, with links to their pages where they define their career progressions for software engineers:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://dropbox.github.io/dbx-career-framework/&quot;&gt;Dropbox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://etsy.github.io/Etsy-Engineering-Career-Ladder/&quot;&gt;Etsy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/1qr0d05X5-AsyDYqKRCfgGGcWSshTMd_vfTggfhDpbls/&quot;&gt;Khan Academy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://progression.red-gate.com/&quot;&gt;Redgate&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://developer.squareup.com/blog/squares-updated-growth-framework-for-engineers-and-engineering-managers/&quot;&gt;Square&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/2558567403749250396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/2558567403749250396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/2558567403749250396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/2558567403749250396'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2025/01/software-engineer-career-levels-at.html' title='Software Engineer Career Levels at Companies You&#39;ve Heard Of'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj98x0DtuSWI8JedU6ZMeC59REbTWwO2GnpMXd2_vXyh38LKXd02NSdSD23J2vwWGq7NUl_4IR4hm-FBXjK3FPFKDLy4r_DG5P4KZgsY8dT2Kg_3x5NiJwNXbpJUXPtNRFyWsJcOqX168I2z_XMxDTz5r230eezmXIcUHSS2hKZUHqSDeXPt2DGEdQ6pwCZ/s72-w563-h226-c/levels4.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-2237590876948190427</id><published>2024-12-17T22:24:00.000-06:00</published><updated>2024-12-17T22:24:24.005-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><title type='text'>Heisenberg Effect in Software</title><content type='html'>&lt;p&gt;One of the greatest services that software engineers provide is that we help people understand their own thought processes. We&#39;re transcribers of human thought, in a way. We have to understand a human process so intricately that we can write down instructions in another language that the dumbest, most literal being on earth (a computer) can follow.&lt;/p&gt;&lt;p&gt;We hold a mirror up to the user: &lt;i&gt;We built this system in your image--does this look like you? Is the image distorted? If so, how? &lt;/i&gt;In the &lt;a href=&quot;https://agilemanifesto.org/principles.html&quot;&gt;Agile&lt;/a&gt; philosophy, we hold this mirror up as early and often as we can.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjekNugunPsNb5rCZn6hkmWGTx6bmJgxU_jnGsYj5xINCOhkm-E_qeom1V95ZqlWn2DaIc9K_2Ddp2gQWYaThqtCTyIzNzM35nTQenLVv-zT_lnErNTcyFWp6Qs6aoGPdIutAwv7zXT9fNw9n2X7VvbL0vtX2uDetBf82BvPvAglhaCCak7ziUF3-hdRWD0/s1080/effect.webp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;540&quot; data-original-width=&quot;1080&quot; height=&quot;268&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjekNugunPsNb5rCZn6hkmWGTx6bmJgxU_jnGsYj5xINCOhkm-E_qeom1V95ZqlWn2DaIc9K_2Ddp2gQWYaThqtCTyIzNzM35nTQenLVv-zT_lnErNTcyFWp6Qs6aoGPdIutAwv7zXT9fNw9n2X7VvbL0vtX2uDetBf82BvPvAglhaCCak7ziUF3-hdRWD0/w535-h268/effect.webp&quot; width=&quot;535&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Another metaphor I like comes from an old&amp;nbsp;&lt;a href=&quot;https://www.artima.com/articles/tracer-bullets-and-prototypes&quot;&gt;interview&lt;/a&gt;&amp;nbsp;with Andy Hunt and Dave Thomas (of &quot;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_Pragmatic_Programmer&quot;&gt;Pragmatic Programmer&lt;/a&gt;&quot; fame), where they described a &lt;a href=&quot;https://en.wikipedia.org/wiki/Observer_(quantum_physics)&quot;&gt;Heisenberg effect&lt;/a&gt; in the process of building software for people:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Software [has] a Heisenberg effect, where delivering the software changes the user&#39;s perception of the requirements.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Users need to see our interpretation of what they told us. That helps them understand themselves better, and then, we can understand them better.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/2237590876948190427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/2237590876948190427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/2237590876948190427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/2237590876948190427'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/12/heisenberg-effect-in-software.html' title='Heisenberg Effect in Software'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjekNugunPsNb5rCZn6hkmWGTx6bmJgxU_jnGsYj5xINCOhkm-E_qeom1V95ZqlWn2DaIc9K_2Ddp2gQWYaThqtCTyIzNzM35nTQenLVv-zT_lnErNTcyFWp6Qs6aoGPdIutAwv7zXT9fNw9n2X7VvbL0vtX2uDetBf82BvPvAglhaCCak7ziUF3-hdRWD0/s72-w535-h268-c/effect.webp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-311568942440330930</id><published>2024-11-19T23:53:00.000-06:00</published><updated>2024-11-19T23:53:07.498-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><title type='text'>Are You a Stable or Volatile?</title><content type='html'>&lt;p&gt;I&#39;ve written before on this blog about the different &lt;a href=&quot;https://www.mattblodgett.com/2023/04/the-yin-and-yang-of-technical.html&quot;&gt;personality&lt;/a&gt; traits of software engineers, and how different traits balance each other on a team.&lt;/p&gt;&lt;p&gt;Some of the spectra I came up with were:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Dreamers ↔ Pragmatists&lt;/li&gt;&lt;li&gt;Big Picture ↔ Detail-Oriented&lt;/li&gt;&lt;li&gt;Move Fast &amp;amp; Break Things ↔ Slow &amp;amp; Methodical&lt;/li&gt;&lt;li&gt;Optimists ↔ Pessimists&lt;/li&gt;&lt;li&gt;Answerers ↔ Questioners&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Recently I read a comment on &lt;a href=&quot;https://news.ycombinator.com/&quot;&gt;Hacker News&lt;/a&gt; (which I can&#39;t find now) that mentioned a blog post from 2012 on &lt;a href=&quot;https://randsinrepose.com/&quot;&gt;Rands In Repose&lt;/a&gt;, a blog I&#39;ve been familiar with for years, but somehow this post had escaped me.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The author, Michael Lopp, introduces the &lt;a href=&quot;https://randsinrepose.com/archives/stables-and-volatiles/&quot;&gt;Stables and Volatiles&lt;/a&gt; divide, which feels to me like a meta-category that encompasses the ones I listed above.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSuwC_qCJWtxHzWK-3RIgvRwRresLcSQVZfUnmOumFLSuJhaCxY_xS3JS8I4voKw94E-1XkCj52PBtQaEiN2QRP2LNz5Ajchy4hNgQ6T7MPxbR50r3-r9cMNs2mhTTxh6gLldfaZaBdteq89AZ9fpPr7ygp0JZpad3OZ0qbuef78UWk4sYcsZYgAF3uIOG/s1200/loops.webp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;1200&quot; height=&quot;277&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSuwC_qCJWtxHzWK-3RIgvRwRresLcSQVZfUnmOumFLSuJhaCxY_xS3JS8I4voKw94E-1XkCj52PBtQaEiN2QRP2LNz5Ajchy4hNgQ6T7MPxbR50r3-r9cMNs2mhTTxh6gLldfaZaBdteq89AZ9fpPr7ygp0JZpad3OZ0qbuef78UWk4sYcsZYgAF3uIOG/w554-h277/loops.webp&quot; width=&quot;554&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can probably guess just from the names, but &lt;b&gt;Stables&lt;/b&gt; tend to like having a well-defined plan, are more risk-sensitive, predictable, and reliable. &lt;b&gt;Volatiles&lt;/b&gt; are disruptive, like to blaze their own trail, dislike process, and have a strong bias for shipping something (even if it&#39;s ugly and unstable).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lopp says:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Stables will feel like they’re endlessly babysitting and cleaning up Volatiles’ messes, while Volatiles will feel like the Stables’ lack of creativity and risk acceptance is holding back the company and innovation as a whole. Their perspectives, while divergent, are essential to a healthy business.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I believe a healthy company that wants to continue to grow and invent needs to equally invest in both their Stables and their Volatiles.&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;I think the Stable / Volatile concept feels very true to my experience, and it&#39;s one I&#39;ll keep with me. Assuming that everyone on a team is equally intelligent, competent, and well-intentioned, you need people of both the Stable and Volatile persuasions. Even though they annoy each other, a project staffed by only one or the other type is doomed.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/311568942440330930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/311568942440330930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/311568942440330930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/311568942440330930'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/11/are-you-stable-or-volatile.html' title='Are You a Stable or Volatile?'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSuwC_qCJWtxHzWK-3RIgvRwRresLcSQVZfUnmOumFLSuJhaCxY_xS3JS8I4voKw94E-1XkCj52PBtQaEiN2QRP2LNz5Ajchy4hNgQ6T7MPxbR50r3-r9cMNs2mhTTxh6gLldfaZaBdteq89AZ9fpPr7ygp0JZpad3OZ0qbuef78UWk4sYcsZYgAF3uIOG/s72-w554-h277-c/loops.webp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-7999636426742215739</id><published>2024-10-22T22:35:00.000-05:00</published><updated>2024-10-22T22:35:01.271-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><category scheme="http://www.blogger.com/atom/ns#" term="Scrum"/><title type='text'>Who Writes the Backlog?</title><content type='html'>&lt;p&gt;The &lt;a href=&quot;https://www.scrum.org/resources/what-is-a-product-owner&quot;&gt;Product Owner&lt;/a&gt; has the final say in &lt;a href=&quot;https://www.scrum.org/resources/what-is-a-product-backlog&quot;&gt;backlog&lt;/a&gt; prioritization. But who &lt;i&gt;writes&lt;/i&gt; the backlog? Is it always the product owner?&lt;/p&gt;&lt;p&gt;My experience with Agile has been that, in the real world, the backlog contains two types of items:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;The &quot;user stories&quot; that discuss functionality from the perspective of an end user&lt;/li&gt;&lt;li&gt;Technical stories--including things like technical debt, maintenance, package upgrades, etc. Things that don&#39;t represent user goals that the product owner would be focusing on.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Both types of items are important and need to be worked on.&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can get into trouble in a couple ways:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Every item in the backlog is forced into a &quot;&lt;a href=&quot;https://www.agilealliance.org/glossary/user-story-template/&quot;&gt;user story&lt;/a&gt;&quot; template (&lt;i&gt;&quot;As a...&quot;&lt;/i&gt;, &lt;i&gt;&quot;I want to...&quot;&lt;/i&gt;, &lt;i&gt;&quot;So that...&quot;&lt;/i&gt;).&lt;/li&gt;&lt;li&gt;The product owner is writing backlog items that are of the &quot;technical story&quot; variety since they think they need to write every story in the backlog.&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLN4hBhiyujXKr7OGPbpc48M-Zwenfv7F8ws2hzaU29fE7lBfhUWA7ElDS6eygX32kIUkAUbF9kRjcKwH2M7DBApw9OPlyandRjE8deOLLLkq-UPGGk99NBzTBWwLtSa1QbuK8BwPglDJKiT4iig45HmHpVWD7ovcntbwwAplIjE4R6Fx18N0xuOGvuVNH/s1210/notes.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;423&quot; data-original-width=&quot;1210&quot; height=&quot;202&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLN4hBhiyujXKr7OGPbpc48M-Zwenfv7F8ws2hzaU29fE7lBfhUWA7ElDS6eygX32kIUkAUbF9kRjcKwH2M7DBApw9OPlyandRjE8deOLLLkq-UPGGk99NBzTBWwLtSa1QbuK8BwPglDJKiT4iig45HmHpVWD7ovcntbwwAplIjE4R6Fx18N0xuOGvuVNH/w578-h202/notes.jpg&quot; width=&quot;578&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If you have a product owner who has consistent time to write &lt;a href=&quot;https://en.wikipedia.org/wiki/Jira_(software)&quot;&gt;Jira&lt;/a&gt; tickets (or whatever issue tracker you have), you&#39;re pretty lucky. My experience with actually-existing-Agile is that the Product Owner is typically someone in middle management who is juggling multiple jobs, &quot;product owner&quot; of this product being one more job, and certainly does not have the time to dedicate to backlog management.&lt;/p&gt;&lt;p&gt;Occasionally you get an overactive product owner who tries to capture every task the development team is working on as backlog items, including purely technical tasks that are better written up by engineers or engineering managers/leads.&lt;/p&gt;&lt;div&gt;My opinion is that anyone on the team (engineers, QA, managers, product owner) should be empowered to write backlog items. When the nature of the backlog item is technical, let the technical people write it. When the backlog item is a &quot;user story&quot;, the product owner should write the item, or at least delegate the requirements to whoever writes it (probably not an engineer).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Backlogs are just another tool in the tool chest of software engineering. As long as the people doing the work are clear on what the goal of the item is, and the acceptance criteria for its completion, then anyone can write them in whatever format they want.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/7999636426742215739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/7999636426742215739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7999636426742215739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7999636426742215739'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/10/who-writes-backlog.html' title='Who Writes the Backlog?'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLN4hBhiyujXKr7OGPbpc48M-Zwenfv7F8ws2hzaU29fE7lBfhUWA7ElDS6eygX32kIUkAUbF9kRjcKwH2M7DBApw9OPlyandRjE8deOLLLkq-UPGGk99NBzTBWwLtSa1QbuK8BwPglDJKiT4iig45HmHpVWD7ovcntbwwAplIjE4R6Fx18N0xuOGvuVNH/s72-w578-h202-c/notes.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-7532816473864761898</id><published>2024-09-24T23:22:00.001-05:00</published><updated>2024-09-24T23:28:35.583-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><title type='text'>Legacy Systems Age in Reverse</title><content type='html'>&lt;p&gt;I feel like every job I&#39;ve ever had in software there has been some old legacy system hanging around that everyone denigrated and perennially spoke about replacing with a newer, shinier system. That replacement was always coming &lt;i&gt;any day now&lt;/i&gt;. By the time I&#39;d moved on to a new job, that legacy system was still running, quietly doing some important function for the business, having somehow survived the demise everyone predicted.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1rpigc-Ytag0sdcDJlroqAEXTmZX1HWTDcb8Nd3a7lqg3dHzSx909EHFB5T3DylwXM184pncFEVL1HQ7L2Eu44HQ2HH8m8nHb4VGbIUx7oJLZMHTne3itPsh9lwofMCeKadiQJ3JbqhtOxLRVnInYie13_IxA_7ridukmE5HNTyJWpQmYFxZrUHpgACN7/s1080/jks.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;540&quot; data-original-width=&quot;1080&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1rpigc-Ytag0sdcDJlroqAEXTmZX1HWTDcb8Nd3a7lqg3dHzSx909EHFB5T3DylwXM184pncFEVL1HQ7L2Eu44HQ2HH8m8nHb4VGbIUx7oJLZMHTne3itPsh9lwofMCeKadiQJ3JbqhtOxLRVnInYie13_IxA_7ridukmE5HNTyJWpQmYFxZrUHpgACN7/w541-h271/jks.jpg&quot; width=&quot;541&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The first release of &lt;a href=&quot;https://en.wikipedia.org/wiki/JQuery&quot;&gt;jQuery&lt;/a&gt; was in 2006. Within a few years--and every year after--web developers would talk continuously about how outmoded jQuery was, and that no self-respecting developer would still be using it when so many newer, better JavaScript libraries had come along to replace it. Well, guess what. In 2024 (18 years later), jQuery is still in &lt;a href=&quot;https://github.com/jquery/jquery/releases&quot;&gt;active development&lt;/a&gt;, and according to the official jQuery blog, &lt;a href=&quot;https://blog.jquery.com/2024/04/17/upgrading-jquery-working-towards-a-healthy-web/&quot;&gt;90% of all websites use jQuery&lt;/a&gt; currently. As someone who&#39;s been working in the web development space since roughly the dawn of jQuery, I can say that it is still extremely rare that I see a codebase that doesn&#39;t use jQuery somewhere, whether as a direct dependency, a transitive dependency, or as part of some 3rd-party tool integrated into the product. jQuery will outlast the human species.&lt;/p&gt;&lt;p&gt;Software systems exhibit the &lt;a href=&quot;https://en.wikipedia.org/wiki/Lindy_effect&quot;&gt;Lindy effect&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;The Lindy effect (also known as Lindy&#39;s Law) is a theorized phenomenon by which the future life expectancy of some non-perishable things, like a technology or an idea, is proportional to their current age. Thus, the Lindy effect proposes the longer a period something has survived to exist or be used in the present, the longer its remaining life expectancy. Longevity implies a resistance to change, obsolescence, or competition, and greater odds of continued existence into the future. Where the Lindy effect applies, &lt;b&gt;mortality rate decreases with time&lt;/b&gt;.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;They actually age &lt;i&gt;in reverse&lt;/i&gt;. Every year they exist doubles their additional life expectancy. That old system that everyone thinks will be replaced any day now is gaining strength before your eyes, becoming every day &lt;i&gt;less likely&lt;/i&gt; to be replaced.&lt;/p&gt;&lt;p&gt;New technologies are the least likely to survive another day, another year. Just as a business that&#39;s existed for 100 years is more likely to survive to its 101st year than a 2-year-old business is likely to see its 3rd year.&lt;/p&gt;&lt;p&gt;The implications of the Lindy effect to any of us working in &quot;technology&quot; are so widespread that it&#39;s hard to overstate. We&#39;re in an industry obsessed with the new, but the new things are constantly passing away as the old geezers are running laps around them. Any new programming language you&#39;re excited about right now will be dead long before &lt;a href=&quot;https://en.wikipedia.org/wiki/C_(programming_language)#History&quot;&gt;C&lt;/a&gt; is. &lt;a href=&quot;https://en.wikipedia.org/wiki/Visual_Studio_Code#History&quot;&gt;VS Code&lt;/a&gt; will kick the bucket before &lt;a href=&quot;https://en.wikipedia.org/wiki/Vim_(text_editor)#History&quot;&gt;Vim&lt;/a&gt;. Be kind to those elderly technologies around you, because they&#39;ll be here long after you&#39;re gone.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/7532816473864761898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/7532816473864761898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7532816473864761898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/7532816473864761898'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/09/legacy-systems-age-in-reverse.html' title='Legacy Systems Age in Reverse'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1rpigc-Ytag0sdcDJlroqAEXTmZX1HWTDcb8Nd3a7lqg3dHzSx909EHFB5T3DylwXM184pncFEVL1HQ7L2Eu44HQ2HH8m8nHb4VGbIUx7oJLZMHTne3itPsh9lwofMCeKadiQJ3JbqhtOxLRVnInYie13_IxA_7ridukmE5HNTyJWpQmYFxZrUHpgACN7/s72-w541-h271-c/jks.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-8505477063199396745</id><published>2024-08-27T23:08:00.000-05:00</published><updated>2024-08-27T23:08:47.050-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><category scheme="http://www.blogger.com/atom/ns#" term="Scrum"/><title type='text'>Scrum Tensions: Code Review</title><content type='html'>&lt;p&gt;There are tensions in Scrum anywhere you have intra-sprint cycles that must resolve by the end of the sprint. In my last post I wrote about &lt;a href=&quot;https://www.mattblodgett.com/2024/07/scrum-tensions-manual-qa.html&quot;&gt;manual quality assurance&lt;/a&gt; and the tension that causes in a Scrum setting. Another one of these intra-sprint cycles that most Scrums teams include in their process is &lt;a href=&quot;https://www.mattblodgett.com/2020/03/keep-code-reviews-focused-on-code.html&quot;&gt;code review&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;You could, in a way, consider code review to be another form of &quot;QA&quot;. In both cases we&#39;re initiating a cycle-within-a-sprint with a loop of approval, rejection, re-work, and acceptance.&lt;/p&gt;&lt;p&gt;In the sense that Scrum teams strive to get every sprint backlog item to &quot;done&quot; by the end of the sprint, &lt;b&gt;back-and-forth cycles kill sprints&lt;/b&gt;. But they&#39;re also essential. Therein lies the tension.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8FOSvKOq2uPWHMp0qdDmsIrogqPaVTV2MylqYAk49Z-7r8Mro6nfsVMNw_SdJCFevZU2jIv4mVGHziIetenxfmvYI8uUbnn2_D9oOsEoEe154w9Yv2fmBaPS6BWXPmPtzKixhlgagoOhHommnzmRus2tb9M4nrfTWldUzN_zIGYd8xPnDriQ_N6H5fcXf/s2000/raw.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;2000&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8FOSvKOq2uPWHMp0qdDmsIrogqPaVTV2MylqYAk49Z-7r8Mro6nfsVMNw_SdJCFevZU2jIv4mVGHziIetenxfmvYI8uUbnn2_D9oOsEoEe154w9Yv2fmBaPS6BWXPmPtzKixhlgagoOhHommnzmRus2tb9M4nrfTWldUzN_zIGYd8xPnDriQ_N6H5fcXf/w540-h271/raw.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Most Scrum teams conduct &lt;a href=&quot;https://en.wikipedia.org/wiki/Planning_poker&quot;&gt;estimation sessions&lt;/a&gt; prior to starting a sprint. The estimates that a team assigns to product backlog items are typically based on a gut feel of how long it will take or how complicated it will be to &quot;complete&quot; a backlog item. In most teams I&#39;ve worked with, that estimate is implied to mean how long it will take a software engineer on the team to submit a code review (via a &lt;a href=&quot;https://www.mattblodgett.com/2023/06/clean-pull-requests.html&quot;&gt;pull request&lt;/a&gt; or something similar), i.e., when the engineer thinks their part is &quot;done&quot;. Some teams also build into the estimate a duration or complexity estimate based on the work necessary by the QA people.&lt;/p&gt;&lt;p&gt;What estimates don&#39;t ever capture, in my experience, is how much effort/time/complexity is required to complete the code review or QA cycles on a backlog item. How can we know ahead of time how many pieces of feedback are going to be left on a pull request? How many of those will necessitate re-work on the item before the end of the sprint? How long will the re-work take? What if the re-work is still not up to snuff? Etc., etc., etc. Each code review starts a cycle of unknown duration.&lt;/p&gt;&lt;p&gt;And all the while everyone who cares about the completion of the sprint is tap-tap-tapping their fingers, nervously wondering if these intra-sprint cycles are going to complete on time.&lt;/p&gt;&lt;p&gt;Even though people mean well, what happens in practice is that thorough code review is tacitly disincentivized. Most product owners are not engineers, and although they understand intuitively that code review, like any form of quality assurance, is necessary, it also adds delay to the immediate &quot;done-ness&quot; of work.&lt;/p&gt;&lt;p&gt;Engineers also know that code reviews are important, but there is always pressure to get to them faster. When bugs crop up later, or the codebase slowly accumulates &lt;a href=&quot;https://www.mattblodgett.com/2021/02/selling-technical-debt.html&quot;&gt;technical debt&lt;/a&gt;, no one in management is going to track down the specific pull request that introduced the problem, read the list of names in the approvers list and assign blame to those individuals. A swift click on the &quot;Approve&quot; button satisfies everyone in the moment.&lt;/p&gt;&lt;p&gt;What do we do about this tension? We can&#39;t have code review without introducing an unpredictable amount of delay to each sprint backlog item. You can never fully resolve this tension, in my opinion. But there are some ways to &lt;i&gt;ease&lt;/i&gt; the tension.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Be Your Own Reviewer&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I&#39;m going to put this one on the engineers. And, no, I&#39;m not suggesting that an engineer who submits a pull request should be clicking &quot;Approve&quot; on their own pull request. What I &lt;i&gt;am&lt;/i&gt; suggesting is that before an engineer submits a pull request, it should only be after they have examined their own code to the degree that a reviewer would.&lt;/p&gt;&lt;p&gt;I can&#39;t tell you how many times over my career that I&#39;ve reviewed a pull request where it was clear that the submitter had not even looked at what they were submitting for review. You&#39;re not ready to submit a pull request until you&#39;ve looked &lt;i&gt;line-by-line&lt;/i&gt; at the diff you&#39;re about to submit and pre-corrected every issue you can find. We&#39;re not talking about architectural judgment calls here, we&#39;re talking about misspelling method names, pushing blank files, including huge sections of commented-out code from various abandoned local experiments.&lt;/p&gt;&lt;p&gt;It should be rare that a reviewer needs to point out an obvious mistake in a review. I personally feel embarrassed when a reviewer points out something that I know I could have found myself. And I feel doubly embarrassed if it&#39;s a mistake they&#39;ve pointed out multiple times.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Automate, Automate, Automate&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Take advantage of every opportunity to automate the tasks associated with code review. We have &lt;a href=&quot;https://en.wikipedia.org/wiki/Lint_(software)&quot;&gt;linters&lt;/a&gt;, &lt;a href=&quot;https://stackoverflow.com/collectives/articles/71270196/how-to-use-pre-commit-to-automatically-correct-commits-and-merge-requests-with-g&quot;&gt;pre-commit hooks&lt;/a&gt; in version control systems, &lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/code-quality/roslyn-analyzers-overview&quot;&gt;IDE integrations&lt;/a&gt;. There are ways to automate basically any tedious, repetitive aspects of code review. If reviewers are repeatedly finding the same kinds of mistakes, it&#39;s time to automate the checks for those mistakes, so submitters can&#39;t submit them in the first place.&lt;/p&gt;&lt;p&gt;Back-and-forth intra-sprint cycles are what kill sprints. Code review is a cycle, but what can we do to get down to one iteration per cycle as often as possible?&lt;/p&gt;&lt;p&gt;The tension between any kind of quality assurance (including code review) and sprint-based methodologies is impossible to erase, but we have techniques to make it less tense.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/8505477063199396745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/8505477063199396745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/8505477063199396745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/8505477063199396745'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/08/scrum-tensions-code-review.html' title='Scrum Tensions: Code Review'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8FOSvKOq2uPWHMp0qdDmsIrogqPaVTV2MylqYAk49Z-7r8Mro6nfsVMNw_SdJCFevZU2jIv4mVGHziIetenxfmvYI8uUbnn2_D9oOsEoEe154w9Yv2fmBaPS6BWXPmPtzKixhlgagoOhHommnzmRus2tb9M4nrfTWldUzN_zIGYd8xPnDriQ_N6H5fcXf/s72-w540-h271-c/raw.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-5019027455809000665</id><published>2024-07-29T21:24:00.001-05:00</published><updated>2024-07-29T21:25:50.183-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><category scheme="http://www.blogger.com/atom/ns#" term="Scrum"/><title type='text'>Scrum Tensions: Manual QA</title><content type='html'>&lt;p&gt;After working for many years in the software industry, almost always using a methodology resembling Scrum, there are certain tensions that I&#39;ve come to believe have no good solution--at least--I&#39;ve never seen them solved elegantly.&lt;/p&gt;&lt;p&gt;One of those tensions comes from manual quality assurance. When sprint backlog items need to be manually tested by dedicated QA people, there is simply no clean way to do it in my experience.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5rWLD88S-PBU0wK3x4doSp2UHmt6f_2P0OmVF6zSyBZViw3xOTtjpxNtShMtkDgpLF2sTk4YAmm7wtopGt2gfgNWVAmUTkFeDu48eq4OVYF8v3IKqLjPGFhbA_Ya_Tb6VexFgfE2Zq7QH6gm38h00PmFvJxJ8TJijT9pbI5tJ5GMICclkz30Fq6gjPvwC/s1900/trebuchet.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;700&quot; data-original-width=&quot;1900&quot; height=&quot;219&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5rWLD88S-PBU0wK3x4doSp2UHmt6f_2P0OmVF6zSyBZViw3xOTtjpxNtShMtkDgpLF2sTk4YAmm7wtopGt2gfgNWVAmUTkFeDu48eq4OVYF8v3IKqLjPGFhbA_Ya_Tb6VexFgfE2Zq7QH6gm38h00PmFvJxJ8TJijT9pbI5tJ5GMICclkz30Fq6gjPvwC/w593-h219/trebuchet.jpg&quot; width=&quot;593&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Here are some of the issues that I&#39;ve seen repeatedly:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;QA does not have time to test items where the development work is completed late in the sprint&lt;/li&gt;&lt;li&gt;QA people are sitting idle for the first few days of the sprint with no completed development work to test yet&lt;/li&gt;&lt;li&gt;If a bug is found, there is no time in the current sprint to fix it&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Here are some attempted remedies that I&#39;ve seen:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Let&#39;s build some slack into the sprint for the developers so they can complete their development work with X days to spare at the end to allow time for QA&lt;/li&gt;&lt;li&gt;Let&#39;s have the developers &quot;work ahead&quot; of the QA people, as in, the development work that we say is &quot;done&quot; within one sprint is actually tested in the next sprint&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;And here&#39;s where those remedies fall down:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Inevitably, there is pressure to work more items into successive sprints, and development work starts creeping over the false &quot;deadline&quot;&lt;/li&gt;&lt;li&gt;We end each sprint not knowing what is actually &quot;done&quot;, and any bugs that are found have probably already been merged into whatever common branch the developers work from&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;QA people are in a really tough position as they are always sort of passively pressured to not &quot;hold up&quot; the sprint. They know that everyone wants to see a clean sprint where every item is signed off on by QA by the last day. And the double whammy is that they get heat when bugs are found in production.&lt;/p&gt;&lt;p&gt;This is one of those essential tensions in Scrum-based development that I&#39;ve come to accept is not resolvable. I have never seen manual QA fit neatly into Scrum.&amp;nbsp;&lt;/p&gt;&lt;p&gt;As I see it, there are two options to break the tension:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Do manual QA, and abandon sprint-based methodologies (try Kanban, for example)&lt;/li&gt;&lt;li&gt;Use a sprint-based methodology, and avoid manual QA (some teams fully automate testing)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;In my experience, organizations do neither of the above, and the tension continues.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/5019027455809000665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/5019027455809000665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/5019027455809000665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/5019027455809000665'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/07/scrum-tensions-manual-qa.html' title='Scrum Tensions: Manual QA'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5rWLD88S-PBU0wK3x4doSp2UHmt6f_2P0OmVF6zSyBZViw3xOTtjpxNtShMtkDgpLF2sTk4YAmm7wtopGt2gfgNWVAmUTkFeDu48eq4OVYF8v3IKqLjPGFhbA_Ya_Tb6VexFgfE2Zq7QH6gm38h00PmFvJxJ8TJijT9pbI5tJ5GMICclkz30Fq6gjPvwC/s72-w593-h219-c/trebuchet.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-5802716892339372789</id><published>2024-06-27T23:05:00.000-05:00</published><updated>2024-06-27T23:05:14.969-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><title type='text'>Continuity of Leadership</title><content type='html'>&lt;p&gt;There&#39;s a Kafkaesque situation that develops in companies that cannot retain senior employees. A team feels a sense of urgency about shipping software, but no one can tell them what to build.&lt;/p&gt;&lt;p&gt;Engineers are responsible for making the products that sustain the company, but there&#39;s no one around who can say what the products should do exactly.&lt;/p&gt;&lt;p&gt;It&#39;s like a movie where the protagonist wakes up every morning with no knowledge of what happened the day before, and tries to piece together his identity from artifacts scattered about.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7SrmafLmWx77oSxY9Nhur2-rQv7G4yN3MvA3WyBNEZDLzZ4C3vcYvI4Lf3KgzJS6C3eVNLDMOFJHvNELM0_Lw4e9-6Ox2WAyflWpol163fvHIc1mTGISBWQucwPa2XwHkdNYNgsbjBFvqVsV_taRKtrdZtk9h0TqUwxf06nDSgoeIpcxVrkV3Rp-G-5nD/s1280/memento.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;545&quot; data-original-width=&quot;1280&quot; height=&quot;233&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7SrmafLmWx77oSxY9Nhur2-rQv7G4yN3MvA3WyBNEZDLzZ4C3vcYvI4Lf3KgzJS6C3eVNLDMOFJHvNELM0_Lw4e9-6Ox2WAyflWpol163fvHIc1mTGISBWQucwPa2XwHkdNYNgsbjBFvqVsV_taRKtrdZtk9h0TqUwxf06nDSgoeIpcxVrkV3Rp-G-5nD/w548-h233/memento.jpg&quot; width=&quot;548&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Big organizational initiatives fail repeatedly because there&#39;s no one around from the beginning to the end of the initiative. People working on the initiative find that they can&#39;t even remember why the initiative was necessary. The leader who championed the initiative isn&#39;t around to take credit for its completion, so there&#39;s no one working on the initiative at any given time who cares about its completion.&lt;/p&gt;&lt;p&gt;Cross-team relationships barely exist because whoever is leading one team at the moment doesn&#39;t know the leaders of the other teams and has no history with them.&lt;/p&gt;&lt;p&gt;Leaders are continually &quot;backfilling&quot; for other leaders that left, being asked questions that they can&#39;t answer.&lt;/p&gt;&lt;p&gt;Morale stays at a low simmer. People show up to work each Monday morning knowing they won’t be productive. Another week where they won’t know if they did good work or not, because no one can define the goal.&lt;/p&gt;&lt;p&gt;An organization without continuity of leadership is an organization with amnesia.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/5802716892339372789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/5802716892339372789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/5802716892339372789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/5802716892339372789'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/06/continuity-of-leadership.html' title='Continuity of Leadership'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7SrmafLmWx77oSxY9Nhur2-rQv7G4yN3MvA3WyBNEZDLzZ4C3vcYvI4Lf3KgzJS6C3eVNLDMOFJHvNELM0_Lw4e9-6Ox2WAyflWpol163fvHIc1mTGISBWQucwPa2XwHkdNYNgsbjBFvqVsV_taRKtrdZtk9h0TqUwxf06nDSgoeIpcxVrkV3Rp-G-5nD/s72-w548-h233-c/memento.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-451204225728663186</id><published>2024-05-30T19:30:00.000-05:00</published><updated>2024-05-30T19:30:59.451-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Career"/><title type='text'>Daring to Care</title><content type='html'>&lt;p&gt;The most effective technical leader I ever worked with had a track record for coming onto a project and whipping it into shape. His ideas were not groundbreaking. He was not a genius engineer. He was a smart guy, but not necessarily the smartest guy in the room. He wasn&#39;t an expert politician, or a charmer. His superpower was that he simply &lt;i&gt;cared&lt;/i&gt; more than anyone else around him about the project&#39;s success, and he would not back down when implementing improvements. When he noticed an area for improvement, he just did whatever it took to fix it. He would calmly but with absolute persistence run through his argument with whoever he needed to convince that it was the right thing to do. It didn&#39;t matter how many people he had to convince, how high up they were, how difficult it was to convince them. He just wouldn&#39;t stop if he knew he was right. No improvement was too small or too big. I remember him saying to me once that he didn&#39;t understand why people around him would acknowledge obvious problems, but not fix them themselves. What I didn&#39;t say, but was thinking silently, was &quot;because no one else here &lt;i&gt;cares&lt;/i&gt; as much as you do.&quot;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaZ6kqxe4ImJNZyw820FF-6kSjfmN6tGqBU5VU1h3O5M25Byy9Kd4_6bukLvG68JKmtOrncZFpqzp_q1iuCZgWOlYhb9vOjmSWu8_PxI3Crlalip5wiQkiM1TF3mWFaDYAezCvIRyGf1f4DMdGoYCHWs-FrlKyJa7D7_KjBCMV-jKP9AJIjnAT5AntdpMX/s1920/trash2.jpeg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;688&quot; data-original-width=&quot;1920&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaZ6kqxe4ImJNZyw820FF-6kSjfmN6tGqBU5VU1h3O5M25Byy9Kd4_6bukLvG68JKmtOrncZFpqzp_q1iuCZgWOlYhb9vOjmSWu8_PxI3Crlalip5wiQkiM1TF3mWFaDYAezCvIRyGf1f4DMdGoYCHWs-FrlKyJa7D7_KjBCMV-jKP9AJIjnAT5AntdpMX/w563-h203/trash2.jpeg&quot; width=&quot;563&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;There&#39;s risk that comes with caring about something. If I take the initiative to fix the slow build process, then I&#39;m now responsible for it. If I break something, everyone&#39;s going to look at me. I might have to talk to the Infrastructure team. Jeez, those guys take so long to get back to you. I&#39;ll have to open tickets. I might have to bother people I don&#39;t know well to make my task their priority. The build process works now, right? Yeah, it takes longer than it probably needs to, but it works. Do I really care enough to take all this on?&lt;/p&gt;&lt;p&gt;The individuals who rise to the top aren&#39;t always the smartest, the most creative, the most charming. They just &lt;i&gt;give a damn&lt;/i&gt;. They &lt;i&gt;care&lt;/i&gt; more than the people around them. When someone truly cares, they will find no shortage of problems to solve around them. They will find solutions. They will push through objections. They will argue with people. They will take on responsibility for things they don&#39;t strictly need to, things no one asked them to take responsibility for.&lt;/p&gt;&lt;p&gt;The open question is: How do you get someone to care? Why do some people care so much more about a project than those around them? Those people are worth their weight in gold.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/451204225728663186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/451204225728663186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/451204225728663186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/451204225728663186'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/05/daring-to-care.html' title='Daring to Care'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaZ6kqxe4ImJNZyw820FF-6kSjfmN6tGqBU5VU1h3O5M25Byy9Kd4_6bukLvG68JKmtOrncZFpqzp_q1iuCZgWOlYhb9vOjmSWu8_PxI3Crlalip5wiQkiM1TF3mWFaDYAezCvIRyGf1f4DMdGoYCHWs-FrlKyJa7D7_KjBCMV-jKP9AJIjnAT5AntdpMX/s72-w563-h203-c/trash2.jpeg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-5958076273996120696</id><published>2024-04-26T12:05:00.000-05:00</published><updated>2024-04-26T12:05:44.372-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><category scheme="http://www.blogger.com/atom/ns#" term="Scrum"/><title type='text'>Movin&#39; Tickets</title><content type='html'>&lt;p&gt;Recently I was re-reading Joel Spolsky&#39;s classic blog post&amp;nbsp;&lt;i&gt;&lt;a href=&quot;https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/&quot;&gt;The Joel Test: 12 Steps to Better Code&lt;/a&gt;&lt;/i&gt;. I hadn&#39;t read that post in many years. Although a lot of the advice in that post seems almost quaint now, as many of the practices it encourages are ubiquitous and taken for granted in 2024 (Joel wrote that post in 2000), there is one passage that seems just as fresh as ever to me...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;...project managers had been so insistent on keeping to the “schedule” that programmers simply rushed through the coding process, writing extremely bad code, because the bug fixing phase was not a part of the formal schedule. There was no attempt to keep the bug-count down. Quite the opposite. The story goes that one programmer, who had to write the code to calculate the height of a line of text, simply wrote “return 12;” and waited for the bug report to come in about how his function is not always correct. The schedule was merely a checklist of features waiting to be turned into bugs.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;One of my frustrations with Scrum, or with many teams who say they are &quot;doing Scrum&quot; is the obsession with the Sprint. Teams develop a short-term mindset, where all things begin and end within a two-week period.&lt;/p&gt;&lt;p&gt;We have some sort of &quot;Board&quot; where all the tickets (or PBIs, or cards, or whatever you call them) are shown in one of several different columns each representing a &quot;status&quot; of the ticket. A ticket starts in the far-left column on the first day of the sprint, and by the last day of the sprint, it must be in the last column. That&#39;s how we know we had a &quot;good sprint&quot;.&lt;/p&gt;&lt;p&gt;Obviously the tickets on the board are just an abstraction representing work. But it&#39;s easy to get obsessed with this abstraction. Instead of making our users&#39; lives easier and adding valuable features to the product they use, we&#39;re just moving tickets across a virtual board, sprint after sprint.&lt;/p&gt;&lt;p&gt;I always think it&#39;s fascinating to hear the language people use to talk about a team&#39;s work. In standup, people will say they plan to &quot;have that ticket moved over&quot; today. The team&#39;s manager might talk about how &quot;good the board looks&quot; today. In a retrospective meeting at the end of a sprint, the team might talk positively about how quickly tickets were &quot;moving across the board&quot; during that sprint.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUQ2bWs_aUpZEngMngyVdjlfag2o8eDrpIcU7SxE8onSnAtecUx1T5W-XbEABrDix5NMoeq5RK3HV7ywKiANe7Hc8kmu4eIuhFErZFaF1uGc9aJBZxKwByqtAP22yo4hkf35P_6M1sW_LkqGDReU8A4s3ubGHes25bb6aScVp5cMnW1ghB7a8r0dRynuFI/s825/boxes.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;398&quot; data-original-width=&quot;825&quot; height=&quot;268&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUQ2bWs_aUpZEngMngyVdjlfag2o8eDrpIcU7SxE8onSnAtecUx1T5W-XbEABrDix5NMoeq5RK3HV7ywKiANe7Hc8kmu4eIuhFErZFaF1uGc9aJBZxKwByqtAP22yo4hkf35P_6M1sW_LkqGDReU8A4s3ubGHes25bb6aScVp5cMnW1ghB7a8r0dRynuFI/w556-h268/boxes.jpg&quot; width=&quot;556&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The people on the team actually doing the work know they&#39;re doing well when they&#39;ve moved a ticket from one column to a column to the right of that column. This is what they optimize for: efficient ticket-moving.&lt;/p&gt;&lt;p&gt;The necessary work of software engineering that doesn&#39;t have a ticket on the board feels downward pressure. A thorough code review for one ticket takes ticket-moving time away from the reviewer. If there are issues to be corrected, then the ticket being reviewed is stalled in its own rightward journey.&lt;/p&gt;&lt;p&gt;QA people on the team are in a difficult position of doing their quality assurance on tickets that are just to the left of the ticket&#39;s final destination--the place we all want it to be.&lt;/p&gt;&lt;p&gt;The whole team is incentivized to make sure all the tickets on the board are in the right-most column on the final day of the sprint. As in Joel&#39;s anecdote above, bugs found later merely become new tickets to move from left-to-right in a future sprint. Long-term concerns like sound architecture don&#39;t have a place on the board.&amp;nbsp;&lt;/p&gt;&lt;p&gt;When a team judges its effectiveness based on the movement of virtual tickets from one status to another, it can lose sight of the big picture. Who is ultimately benefiting from these ticket movements? Why are we moving them exactly? Where do they come from?&lt;/p&gt;&lt;p&gt;I think it&#39;s important that teams talk about their work, at least occasionally, without mentioning tickets. What are we accomplishing at a higher level? What are our users saying about our work? How is the business that pays our salaries benefiting from our work?&lt;/p&gt;&lt;p&gt;Surely we&#39;re not just movin&#39; tickets.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/5958076273996120696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/5958076273996120696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/5958076273996120696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/5958076273996120696'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/04/movin-tickets.html' title='Movin&#39; Tickets'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUQ2bWs_aUpZEngMngyVdjlfag2o8eDrpIcU7SxE8onSnAtecUx1T5W-XbEABrDix5NMoeq5RK3HV7ywKiANe7Hc8kmu4eIuhFErZFaF1uGc9aJBZxKwByqtAP22yo4hkf35P_6M1sW_LkqGDReU8A4s3ubGHes25bb6aScVp5cMnW1ghB7a8r0dRynuFI/s72-w556-h268-c/boxes.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5785686392623064369.post-1696848847384524959</id><published>2024-03-26T23:16:00.000-05:00</published><updated>2024-03-26T23:16:48.782-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Methodology"/><category scheme="http://www.blogger.com/atom/ns#" term="Scrum"/><title type='text'>Vision</title><content type='html'>&lt;p&gt;Vision is so important in software development. Without the engineers understanding the overall vision, they can&#39;t resolve ambiguity in their daily work without consulting someone who holds the vision.&lt;/p&gt;&lt;p&gt;If the engineers don&#39;t understand why they&#39;re doing any of these things, then they can&#39;t fill in the gaps logically. They can&#39;t suggest improvements, improvise, or have confidence that they&#39;re moving the organization closer to the vision. Teammates talk past each other. One person has more of the vision than another, but doesn&#39;t know that. Misunderstandings are common. The track being laid from each end doesn&#39;t meet up in the middle.&lt;/p&gt;&lt;p&gt;Every little bit of vision transmission compounds in value. The decisions we make today form the foundation for work that comes later. A misunderstanding in vision today requires re-work tomorrow, a week from now, a month from now.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyHN6wvdZerXOttCcr7ulbR6dcztWAlvchbjTsgUkXQnoLAfmQ5OvUqzrWI56G7XK0KBjO_jn3MQk-8pR94ZrttdIvAR4w8w76ToYKj01Y-v0rn69FCQedX0i3Xjiv3NxyvRuB2jujk3rJIermLIWNlO9sBCMiu8BKGhXO5HWIriV0Zh7T-Eo0mByW1ZaC/s1200/manhattan-project.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;550&quot; data-original-width=&quot;1200&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyHN6wvdZerXOttCcr7ulbR6dcztWAlvchbjTsgUkXQnoLAfmQ5OvUqzrWI56G7XK0KBjO_jn3MQk-8pR94ZrttdIvAR4w8w76ToYKj01Y-v0rn69FCQedX0i3Xjiv3NxyvRuB2jujk3rJIermLIWNlO9sBCMiu8BKGhXO5HWIriV0Zh7T-Eo0mByW1ZaC/w544-h250/manhattan-project.jpg&quot; width=&quot;544&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;One of the things that can get left behind in the just-in-time fashion of Agile sprints is that the team can get lost in the weeds. We have to remember that we&#39;re building toward a significant milestone of some kind for the business, not just a random sequence of tasks.&lt;/p&gt;&lt;p&gt;It&#39;s difficult when backlog items are being entered by one person or a small group of people separate from the engineers and QAs who will be actually building and testing the stuff. They get queued up and drip-fed every two weeks to the broader team. But often there&#39;s no shared context transmitted to the whole team about what broad goal we&#39;re doing all these tasks for.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.mountaingoatsoftware.com/blog/why-i-dont-emphasize-sprint-goals&quot;&gt;Sprint goals&lt;/a&gt; are tricky to set. But if a team can&#39;t ever seem to define a clear sprint goal, that&#39;s almost certainly a sign that the team is lacking a vision.&lt;/p&gt;&lt;p&gt;People like to make fun of heavyweight methodologies like SAFe, but doing a &lt;a href=&quot;https://scaledagileframework.com/pi-planning/&quot;&gt;Program Increment Planning&lt;/a&gt; event--although tedious--sure does get everyone on the same page with a shared vision for the next few months of work.&lt;/p&gt;&lt;p&gt;Most of us are not working on the&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Manhattan_Project&quot;&gt;Manhattan Project&lt;/a&gt;--the end goal should not be obscured from the individuals making the parts. In fact, the end goal should be so clear to everyone that any person on the team could describe it clearly in their own words.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mattblodgett.com/feeds/1696848847384524959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5785686392623064369/1696848847384524959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/1696848847384524959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5785686392623064369/posts/default/1696848847384524959'/><link rel='alternate' type='text/html' href='http://www.mattblodgett.com/2024/03/vision.html' title='Vision'/><author><name>Matt Blodgett</name><uri>http://www.blogger.com/profile/06115180196173160813</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KvVZyLLToLzZmEhU_rgKNaBlPW4Jse4jAISrD4rcZY8q6yC-b_lWuAYgDgmqRPaGHGrZaUhU83Q6-DPOnIcL_ikDlhO9qd9MPK6Zi1QNcTkDZZbIMyPMfAklbfKa9jQ/s1600/NM9YZ2z.jpg%3F1'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyHN6wvdZerXOttCcr7ulbR6dcztWAlvchbjTsgUkXQnoLAfmQ5OvUqzrWI56G7XK0KBjO_jn3MQk-8pR94ZrttdIvAR4w8w76ToYKj01Y-v0rn69FCQedX0i3Xjiv3NxyvRuB2jujk3rJIermLIWNlO9sBCMiu8BKGhXO5HWIriV0Zh7T-Eo0mByW1ZaC/s72-w544-h250-c/manhattan-project.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>