<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Anthony Sciamanna</title>
		<description>Anthony Sciamanna&apos;s Software Development and Coaching Blog. Focusing on Extreme Programming (XP), Lean Software Development, Modern Agile, DevOps, continuous improvement and experimentation.</description>
		<link>https://anthonysciamanna.com</link>
		<atom:link href="https://anthonysciamanna.com/feed.xml" rel="self" type="application/rss+xml" />
		
			<item>
				<title>Evolutionary Design and Lightweight Architecture</title>
				
				
					<description>&lt;p&gt;Evolutionary Design is an essential practice for software organizations to deliver great software continuously, yet it is often overlooked. Software is still frequently planned and designed in large batches upfront, with complex architectures already determined, slowing delivery, increasing risk, and missing opportunities for collaboration and learning.&lt;/p&gt;

</description>
				
				<pubDate>Thu, 15 Aug 2024 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2024/08/15/evolutionary-design-and-lightweight-architecture.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2024/08/15/evolutionary-design-and-lightweight-architecture.html</guid>
			</item>
		
			<item>
				<title>SPOT and Coincidental Duplication</title>
				
				
					<description>&lt;h2 id=&quot;blog-article&quot;&gt;Blog Article&lt;/h2&gt;

&lt;p&gt;My friend and colleague, Tim Ottinger and I published this blog post about SPOT and coincidental duplication. You can read it on the Industrial Logic blog &lt;a href=&quot;https://www.industriallogic.com/blog/spot-and-coincidental-duplication/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;conversation&quot;&gt;Conversation&lt;/h2&gt;

&lt;p&gt;Tim and I also hosted a TwitterSpace conversation on this topic which can be heard here:&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/cSHZ9HUayvM&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

</description>
				
				<pubDate>Wed, 02 Aug 2023 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2023/08/02/spot-and-conicidental-duplication.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2023/08/02/spot-and-conicidental-duplication.html</guid>
			</item>
		
			<item>
				<title>Adopting a Shared Test Double Vocabulary</title>
				
				
					<description>&lt;p&gt;&lt;img src=&quot;/img/crash-test-dummy.jpg&quot; alt=&quot;crash test dummy head&quot; class=&quot;img-responsive&quot; style=&quot;max-width: 300px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When software development teams begin practicing TDD and mircotesting, they commonly adopt a mocking framework and use it everywhere. This practice can cause harm to the codebase as well as the team’s interactions. It’s easy to overlook the overuse of mocking frameworks without the experience of working with high-quality microtest suites.&lt;/p&gt;

</description>
				
				<pubDate>Mon, 12 Sep 2022 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2022/09/12/adopting-a-shared-test-double-vocabulary.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2022/09/12/adopting-a-shared-test-double-vocabulary.html</guid>
			</item>
		
			<item>
				<title>Code Kata Websites</title>
				
				
					<description>&lt;p&gt;&lt;img src=&quot;/img/code-kata-site-listicle/programming.jpg&quot; alt=&quot;Programming&quot; class=&quot;img-responsive&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I frequently practice code katas with the development teams I coach and train. I’ve pulled this list of code kata websites out of my notes a few times in the past month, so I decided to publish this information as a listicle (list article). I’ve found code katas to be an important practice to help build new skills and establish habits. Practices like Test-Driven Development, refactoring, automated refactoring techniques, and microtesting can all be improved by practicing code katas. Now on to the list.&lt;/p&gt;

&lt;h2 id=&quot;code-kata-resources&quot;&gt;Code Kata Resources&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.industriallogic.com/&quot;&gt;Industrial Logic&lt;/a&gt; offers a free &lt;a href=&quot;https://www.industriallogic.com/katas/&quot;&gt;Code Katas album&lt;/a&gt; from its eLearning — Java &amp;amp; C#&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codingdojo.org/kata/&quot;&gt;Coding Dojo Katas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/emilybache/&quot;&gt;Emily Bache’s Github&lt;/a&gt; contains many code kata repositories in a variety of programming languages&lt;/li&gt;
  &lt;li&gt;Dave Thomas’ &lt;a href=&quot;http://codekata.com/&quot;&gt;Code Kata site&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://katalyst.codurance.com/&quot;&gt;Katalyst&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/gamontal/awesome-katas&quot;&gt;Awesome Katas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://exercism.org/dashboard&quot;&gt;Exercism.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kata-log.rocks/&quot;&gt;Kata Log&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://tddbuddy.com/&quot;&gt;TDDBuddy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://understandlegacycode.com/blog/5-coding-exercises-to-practice-refactoring-legacy-code/&quot;&gt;Five Legacy Code Katas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sammancoaching.org/kata_descriptions/index.html&quot;&gt;Samman Coaching’s Kata Descriptions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;code-kata-screencasts&quot;&gt;Code Kata Screencasts&lt;/h2&gt;
&lt;p&gt;I’ve recently done a few code kata screencasts. You can find those screencasts &lt;a href=&quot;https://anthonysciamanna.com/tags/screencast.html&quot;&gt;here on my blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you have other great code kata resources, feel free share them in the comments and I’ll add them to the list! &lt;i class=&quot;fa-solid fa-hand-point-down&quot;&gt;&lt;/i&gt;&lt;/p&gt;

&lt;div class=&quot;bottom-separator&quot;&gt;&lt;/div&gt;

&lt;p&gt;&lt;small&gt;Photo credit: &lt;a href=&quot;https://unsplash.com/@cgower?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&quot;&gt;Christopher Gower&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&quot;&gt;Unsplash&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
				
				<pubDate>Thu, 05 May 2022 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2022/05/05/code-kata-websites.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2022/05/05/code-kata-websites.html</guid>
			</item>
		
			<item>
				<title>Roman Numeral TDD Kata Screencast in Kotlin</title>
				
				
					<description>&lt;p&gt;&lt;img src=&quot;/img/roman-numeral-kata/roman-numeral-kata.jpg&quot; alt=&quot;The Roman Numeral TDD Kata&quot; class=&quot;img-responsive&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Code katas provide an opportunity to practice our software development skills, recognize patterns, and learn how to apply techniques. In general, we professional software engineers don’t spend enough time practicing. The Roman Numeral Kata provides an opportunity to practice creating an algorithm via TDD and following some of the TDD patterns like: &lt;em&gt;Identifying the Essence&lt;/em&gt; and &lt;em&gt;Doing the Simplest Thing That Could Possibly Work&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;video&quot;&gt;Video&lt;/h2&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/wEDy4vv-fVM&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</description>
				
				<pubDate>Wed, 20 Apr 2022 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2022/04/20/roman-numeral-tdd-kata-screencast-in-kotlin.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2022/04/20/roman-numeral-tdd-kata-screencast-in-kotlin.html</guid>
			</item>
		
			<item>
				<title>Refactoring - The Gilded Rose Kata</title>
				
				
					<description>&lt;p&gt;&lt;img src=&quot;/img/gilded-rose-kata/gilded-rose-kata.jpg&quot; alt=&quot;The Gilded Rose Kata&quot; class=&quot;img-responsive&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Code katas provide an opportunity to practice our software development skills, recognize patterns, and learn how to apply techniques. In general, we professional software engineers don’t spend enough time practicing. The Gilded Rose Kata is one of my favorites. It helps build skills necessary for successful refactoring, to make small incremental changes relying on automated refactoring tools as much as possible.&lt;/p&gt;

&lt;p&gt;Follow along as I refactor the Gilded Rose code to eliminate the code smells identified at the beginning of the screencast. My goal was to keep the screencast to an hour or less. I deferred a few design decisions and refactorings at the end. However, the most significant improvements made adding the new &lt;em&gt;Conjured Inventory Item&lt;/em&gt; a simple, two-minute code change. The Gilded Rose Kata is an example of Kent Beck’s advice:&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;for each desired change, make the change easy (warning: this may be hard), then make the easy change&lt;/p&gt;&amp;mdash; Kent Beck 🌻 (@KentBeck) &lt;a href=&quot;https://twitter.com/KentBeck/status/250733358307500032?ref_src=twsrc%5Etfw&quot;&gt;September 25, 2012&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;h2 id=&quot;video&quot;&gt;Video&lt;/h2&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/5mViuPccb8s&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</description>
				
				<pubDate>Thu, 03 Mar 2022 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2022/03/03/refactoring-the-gilded-rose-kata.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2022/03/03/refactoring-the-gilded-rose-kata.html</guid>
			</item>
		
			<item>
				<title>Writing Better User Stories?</title>
				
				
					<description>&lt;p&gt;&lt;img src=&quot;/img/drive-by-orders.jpg&quot; alt=&quot;Drive by orders sign&quot; class=&quot;img-responsive&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Issues with user stories are a common problem for software development organizations that adopt agile frameworks. At some point in their journey development organizations will ask, &lt;em&gt;“How do we write better user stories?”&lt;/em&gt; Well-meaning coaches or consultants come to the rescue. Their advice usually includes adopting the &lt;a href=&quot;https://www.agilealliance.org/glossary/user-story-template/&quot;&gt;Connextra user story format&lt;/a&gt; (also called &lt;em&gt;role-feature-reason&lt;/em&gt;). Sometimes the advice includes standards for acceptance criteria like using the &lt;a href=&quot;https://cucumber.io/docs/gherkin/reference/&quot;&gt;Gherkin syntax&lt;/a&gt;. When the goal is &lt;strong&gt;&lt;em&gt;writing&lt;/em&gt;&lt;/strong&gt; better stories the result is often a large, overly complicated template to use in Jira.&lt;/p&gt;

</description>
				
				<pubDate>Sat, 26 Feb 2022 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2022/02/26/writing-better-user-stories.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2022/02/26/writing-better-user-stories.html</guid>
			</item>
		
			<item>
				<title>Programming By Coincidence</title>
				
				
					<description>&lt;figure&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;/img/pocket-developer.jpg&quot; alt=&quot;Pocket Developer&quot; height=&quot;50%&quot; width=&quot;50%&quot; /&gt;
    &lt;figcaption style=&quot;text-align:center&quot;&gt;Pocket Developer from &lt;a href=&quot;https://pretendstore.co/collections/office/products/pocket-developer&quot;&gt;Pretend Store&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;One of my primary roles as a development coach is helping software development teams and their organizations build a culture of technical excellence (often helping them build the skills to get to Continuous Delivery). When teams begin their journey to becoming high-performing they need to shed their current habits that are obstacles to their advancement. One of the most common and problematic practices I see is called &lt;em&gt;Programming by Coincidence&lt;/em&gt;. It is important to be able to spot this practice and help reverse its negative impact on codebases and teams.&lt;/p&gt;

</description>
				
				<pubDate>Wed, 17 Nov 2021 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2021/11/17/programming-by-coincidence.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2021/11/17/programming-by-coincidence.html</guid>
			</item>
		
			<item>
				<title>Refactoring - The Parrot Kata</title>
				
				
					<description>&lt;p&gt;&lt;img src=&quot;/img/parrot-kata/parrot-kata-header1.jpg&quot; alt=&quot;The Parrot Kata&quot; class=&quot;img-responsive&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Code katas provide an opportunity to practice our software development skills, recognize patterns, and learn how to apply practices. In general, we professional software engineers don’t spend enough time practicing. Code katas are one way we can practice. The Parrot Kata is based on a code sample in &lt;a href=&quot;https://martinfowler.com/&quot;&gt;Martin Fowler&lt;/a&gt;’s Refactoring book. It is inspired by Monty Python’s Flying Circus &lt;a href=&quot;https://en.wikipedia.org/wiki/Dead_Parrot_sketch&quot;&gt;Dead Parrot sketch&lt;/a&gt;.&lt;/p&gt;

</description>
				
				<pubDate>Fri, 27 Aug 2021 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2021/08/27/refactoring-the-parrot-kata.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2021/08/27/refactoring-the-parrot-kata.html</guid>
			</item>
		
			<item>
				<title>The Bolden Rule and Software Development Teams</title>
				
				
					<description>&lt;p&gt;There are a handful of books that have had a significant impact on me. One book, in particular, inspired me to become a software consultant, Gerald Weinberg’s &lt;em&gt;&lt;strong&gt;The Secrets of Consulting&lt;/strong&gt;&lt;/em&gt;. If you don’t know who Weinberg is I suggest reading &lt;a href=&quot;https://en.wikipedia.org/wiki/Gerald_Weinberg&quot;&gt;his Wikipedia entry&lt;/a&gt; as a first step. He was a well-known software consultant and author, having written over 40 books in his lifetime. His books are timeless and I find myself returning to them from time to time and getting more out of them each time I read them. As I read through &lt;strong&gt;&lt;em&gt;The Secrets of Consulting&lt;/em&gt;&lt;/strong&gt; again, I realized that we can apply his &lt;em&gt;Bolden Rule&lt;/em&gt; to help software organizations and their leaders improve.&lt;/p&gt;

</description>
				
				<pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate>
				<link>https://anthonysciamanna.com/2021/08/19/the-bolden-rule-and-software-development-teams.html</link>
				<guid isPermaLink="true">https://anthonysciamanna.com/2021/08/19/the-bolden-rule-and-software-development-teams.html</guid>
			</item>
		
	</channel>
</rss>
