<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Uncle Bob Archives - ShiftMag</title>
	<atom:link href="https://shiftmag.dev/tag/uncle-bob/feed/" rel="self" type="application/rss+xml" />
	<link>https://shiftmag.dev/tag/uncle-bob/</link>
	<description>Insightful engineering content &#38; community</description>
	<lastBuildDate>Tue, 13 May 2025 13:17:09 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://shiftmag.dev/wp-content/uploads/2026/09/cropped-Shift-32x32.webp</url>
	<title>Uncle Bob Archives - ShiftMag</title>
	<link>https://shiftmag.dev/tag/uncle-bob/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Things ancient Romans taught me about software development </title>
		<link>https://shiftmag.dev/things-ancient-romans-taught-me-about-software-development-5214/</link>
		
		<dc:creator><![CDATA[Hrvoje Rancic]]></dc:creator>
		<pubDate>Tue, 13 May 2025 12:28:48 +0000</pubDate>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Kent Beck]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[The Agile Manifesto]]></category>
		<category><![CDATA[Uncle Bob]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=5214</guid>

					<description><![CDATA[<p>History is the teacher of life. There are those who have been shipping software for decades, and there is much we can learn from them.</p>
<p>The post <a href="https://shiftmag.dev/things-ancient-romans-taught-me-about-software-development-5214/">Things ancient Romans taught me about software development </a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img fetchpriority="high" decoding="async" width="1536" height="1024" src="https://shiftmag.dev/wp-content/uploads/2025/04/software-engineering-philosophers.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2025/04/software-engineering-philosophers.png 1536w, https://shiftmag.dev/wp-content/uploads/2025/04/software-engineering-philosophers-300x200.png 300w, https://shiftmag.dev/wp-content/uploads/2025/04/software-engineering-philosophers-1024x683.png 1024w, https://shiftmag.dev/wp-content/uploads/2025/04/software-engineering-philosophers-768x512.png 768w" sizes="(max-width: 1536px) 100vw, 1536px" /></figure>


<h3 class="wp-block-heading"><span id="si-vis-pacem-para-bellum"><em>Si vis pacem, para bellum</em></span></h3>



<p class="wp-block-paragraph">If you want peace, prepare for war. In other words, if you wish to handle traffic spikes, <strong>stress test the service</strong>. If it can handle twice the expected traffic, it will handle the expected traffic. A similar point was expressed by <strong>Kentus Becchus</strong>, who <a href="https://www.goodreads.com/quotes/10376041-write-tests-until-fear-is-transformed-into-boredom" target="_blank" rel="noreferrer noopener">famously wrote</a> <em>Scribe probationes donec timor in taedium mutetur</em>.</p>



<h3 class="wp-block-heading"><span id="aequam-memento-rebus-in-arduis-servare-mentem"><em>Aequam memento rebus in arduis servare mentem</em></span></h3>



<p class="wp-block-paragraph">Remember to maintain a calm mind while doing difficult tasks. The natural response to a production outage is panicking. <a href="https://en.wikipedia.org/wiki/Phrases_from_The_Hitchhiker%27s_Guide_to_the_Galaxy#Don't_Panic" target="_blank" rel="noreferrer noopener"><strong>DON’T PANIC</strong></a>. Troubleshooting production issues is just an ordinary task with the highest priority.&nbsp;</p>



<h3 class="wp-block-heading"><span id="mens-sana-in-corpore-sano"><em>Mens sana in corpore sano</em></span></h3>



<p class="wp-block-paragraph">A healthy mind in a healthy body. Software development involves a lot of thinking, but it also involves a lot of sitting, which is <strong>not a particularly healthy activity</strong>.&nbsp; To keep the mind fresh and sharp, sleep and physical activity are paramount, as <strong>Vladus Mihalcaeus</strong> <a href="https://x.com/vlad_mihalcea/status/1335981628322148354" target="_blank" rel="noreferrer noopener">has put</a> it <em>Somnus octo horarum optimus emendator est</em>.</p>



<h3 class="wp-block-heading"><span id="divide-et-impera"><em>Divide et impera</em> </span></h3>



<p class="wp-block-paragraph">Divide and conquer. Apart from being <a href="https://en.wikipedia.org/wiki/Divide-and-conquer_algorithm" target="_blank" rel="noreferrer noopener">a well-known</a> algorithm design paradigm, it is a sound piece of advice: when faced with a complex task that takes a lot of time, <strong>divide it into a set of smaller tasks</strong> and handle those one at a time.&nbsp;&nbsp;</p>



<h3 class="wp-block-heading"><span id="ad-praesens-ova-cras-pullis-sunt-meliora"><em>Ad praesens ova cras pullis sunt meliora</em></span></h3>



<p class="wp-block-paragraph">A bird in the hand is worth two in the bush. First implement the basic functionality<strong>,</strong> show it to the user, <strong>ask for feedback and iterate</strong>. The same idea is expressed in the old dictum from <a href="https://agilemanifesto.org/" target="_blank" rel="noreferrer noopener">the Manifestum</a> which teaches us to prefer working software over a mountain of requirements specifications. </p>



<h3 class="wp-block-heading"><span id="bene-vixit-bene-qui-latuit"><em>Bene vixit,&nbsp; bene qui latuit</em> </span></h3>



<p class="wp-block-paragraph">He who remained hidden lived well. Although some malicious hackers may draw inspiration from this one, it is also inspiring to infrastructure engineers: if you break something, <strong>it will not go unnoticed</strong>.&nbsp;</p>



<h3 class="wp-block-heading"><span id="discere-faciendo"><em>Discere faciendo</em> </span></h3>



<p class="wp-block-paragraph">Learn by doing. The mastery of software engineering cannot be attained only by speculative thought, reasoning from first principles, or by learning the sacred texts by heart, to learn how to build software it is necessary, but not sufficient, to build it.  </p>



<h3 class="wp-block-heading"><span id="panem-et-circenes"><em>Panem et circenes</em> </span></h3>



<p class="wp-block-paragraph">Bread and circuses. A great deal of software engineering job is maintenance; it is necessary but not appreciated enough. To silence the murmurs, you need to show some impressive dashboard, shiny UI, or AI-related feature to management from time to time.  </p>



<h3 class="wp-block-heading"><span id="cessante-causa-cessante-effectus"><em>Cessante causa, cessante effectus </em></span></h3>



<p class="wp-block-paragraph">When the cause ceases, the effect ceases. Unless you <strong>know the root cause of an incident</strong>, you cannot consider it resolved. Rebooting or scaling may resolve the issue temporarily, but this is just buying time to fix the real problem.&nbsp;</p>



<h3 class="wp-block-heading"><span id="verba-volant-littera-scripta-manent"><em>Verba volant, littera scripta manent</em>  </span></h3>



<p class="wp-block-paragraph">Spoken words fly away, written ones remain. <strong>Agreements from meetings need to be written down</strong> in meeting notes, architectural decisions need to be documented, tasks need to have descriptions, when possible, agreements need to be expressed in code as automated checks. You will forget things!&nbsp;</p>



<h3 class="wp-block-heading"><span id="periculum-in-mora"><em>Periculum in mora</em> </span></h3>



<p class="wp-block-paragraph">Danger in delay. Integrate code changes to main branch often and <strong>deploy often</strong>. The more you wait the harder it is to integrate the change and the riskier it is to deploy it.&nbsp;&nbsp;</p>



<h3 class="wp-block-heading"><span id="historia-est-magistra-vitae"><em>Historia est magistra vitae</em> </span></h3>



<p class="wp-block-paragraph">History the teacher of life. As <strong>Patruus Bobus</strong> <a href="https://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html" target="_blank" rel="noreferrer noopener">points out</a> majority of programmers are not very experienced, however there are those who have been shipping software for decades, and there is much we can learn from them. <strong>Study their advice.&nbsp;</strong></p>



<h3 class="wp-block-heading"><span id="non-omnia-possumus-omnes"><em>Non omnia possumus omnes</em> </span></h3>



<p class="wp-block-paragraph">We can’t all <span style="box-sizing: border-box; margin: 0px; padding: 0px;">do everything. It is easier to ship software in a<strong>&nbsp;cross-functiona</strong></span><strong>l </strong>team&nbsp;made up of<strong>&nbsp;</strong>people with different skill sets and roles.&nbsp;</p>



<h3 class="wp-block-heading"><span id="omnium-enim-rerum-principia-parva-sunt"><em>Omnium enim rerum principia parva sunt</em> </span></h3>



<p class="wp-block-paragraph">The beginnings of all things are small. Big systems evolve from small systems. Create <a href="https://dannorth.net/best-simple-system-for-now/" target="_blank" rel="noreferrer noopener">the simplest thing that works well</a> and build on top of that. This was succinctly expressed by <strong>Johannes Gallus</strong> <a href="https://www.goodreads.com/quotes/9353506-a-complex-system-that-works-is-invariably-found-to-have" target="_blank" rel="noreferrer noopener">who wrote</a> <em>Systema complexum quod operatur, ex systemate simplici quod operavit ortum esse inventur</em>.</p>



<h3 class="wp-block-heading"><span id="pacta-sunt-servanda"><em>Pacta sunt servanda</em> </span></h3>



<p class="wp-block-paragraph">Agreements must be kept. <strong>Take care not to break backwards compatibility</strong>. Take great care when designing APIs; if it exposes some functionality you did not intend to expose, do not whine when someone starts to use it. </p>



<h3 class="wp-block-heading"><span id="vinum-bonum-pax-in-domum"><em>Vinum bonum, pax in domum</em></span></h3>



<p class="wp-block-paragraph">Good wine, peace in the house. Since <strong>building software is a group activity</strong>, it helps if members of the group can get along with each other. Occasional team building activity helps to foster a friendly atmosphere. </p>
<p>The post <a href="https://shiftmag.dev/things-ancient-romans-taught-me-about-software-development-5214/">Things ancient Romans taught me about software development </a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: shiftmag.dev @ 2026-10-24 13:59:06 by W3 Total Cache
-->