blog: Exceptions over rules
This commit is contained in:
parent
3e2053e884
commit
97cdd9fb1b
3 changed files with 122 additions and 40 deletions
|
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
title: The exceptions are more interesting
|
||||
date: 2023-02-13T22:29:48.797Z
|
||||
slug: 2023-02-13-the-exceptions-are-more-interesting
|
||||
author: Thomas Wilson
|
||||
|
||||
---
|
||||
I'm going to open with three buzzwords and a bland sentiment:
|
||||
|
||||
Theories, policies, and frameworks are useful.
|
||||
|
||||
Things like \"do the uncertain things first\" or \"automate the process\" are snappy little things that help us conquer problems by dividing, or sorting, or some other action.
|
||||
|
||||
Left alone, people will pretty much always make a theory expand. They'll only do uncertain things, and automate all the once-a-quarter tasks they can find.
|
||||
|
||||
Frameworks that do more, probably don't do it as well. Theories get fuzzier when they try to explain more. You cannot be specific and generic at the same time. Every \"clarifying\" *but only when* or *otherwise you should* shrinks the on-the-ground usefulness of a policy.
|
||||
|
||||
Always be honest... except with children about some things.
|
||||
|
||||
Judge people by their actions not their words... unless their words are hateful.
|
||||
|
||||
You'll collect a lot of frameworks on your journey through apprentice to master. Keep them like every other tool: in a belt with their friends.
|
||||
|
||||
Earlier in my career I loved the rules. I loved the certainty of knowing what to do, and when.
|
||||
|
||||
Later in my career, my ears perk when I hear about exceptions to rules. Then I'll spend some time talking about them.
|
||||
|
||||
I used to think this makes every framework or theory useless. I don't think that's true now. It's no more true than how money and laws and language are all made up. They all seem pretty useful.
|
||||
|
||||
When something becomes an exception, you might have found the limit of your approach. You've found something you haven't accounted for, or something you cannot do.
|
||||
|
||||
What you should not do, with this fresh exception, is ignore or massage or change it. That would be putting the solution before the problem.
|
||||
|
||||
Say your proof-reading checklist works well for blog posts, but not an academic essay. Or your data analysis won't work on a sample size below 50. You've found a new problem.
|
||||
|
||||
Everything has a limit to what it can help you with.
|
||||
|
||||
Everything has a long tail of exceptions. Taken alone, these exceptions will feel like a one off. Taken together, they make up the majority.
|
||||
|
||||
And left alone, a lot of people will simplify, and try to make a theory expand.
|
||||
|
||||
But otherwise *all* we have is One Off Exceptions. I reckon we could group some of them into similar buckets, and stop re-inventing the wheel...
|
||||
"
|
||||
|
|
@ -35,19 +35,34 @@
|
|||
<p class="post-date">{intlFormat(date)}</p>
|
||||
</header>
|
||||
|
||||
<article>
|
||||
<article id="article">
|
||||
{@html post.content}
|
||||
<a href="/blog">See other articles</a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="scss" global>
|
||||
header {
|
||||
padding-top: 24px;
|
||||
}
|
||||
|
||||
article {
|
||||
#article {
|
||||
max-width: 65ch;
|
||||
|
||||
p,
|
||||
a {
|
||||
line-height: 160%;
|
||||
font-size: 1.29rem;
|
||||
font-weight: 400;
|
||||
margin-bottom: 1.5rem;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
li {
|
||||
margin: 0;
|
||||
line-height: 140%;
|
||||
font-size: 1.29rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 700px) {
|
||||
|
|
@ -58,18 +73,19 @@
|
|||
|
||||
.post-title {
|
||||
text-align: center;
|
||||
padding-bottom: 1rem;
|
||||
line-height: 125%;
|
||||
}
|
||||
.post-author {
|
||||
font-size: 1rem;
|
||||
font-size: 1.3rem;
|
||||
text-align: center;
|
||||
line-height: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.post-date {
|
||||
font-size: 1rem;
|
||||
text-align: center;
|
||||
line-height: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,47 +1,70 @@
|
|||
<script lang="ts">
|
||||
import Navbar from '$lib/components/Navbar.svelte';
|
||||
import Navbar from "$lib/components/Navbar.svelte";
|
||||
</script>
|
||||
|
||||
<Navbar />
|
||||
|
||||
<main class="thomaswilson-container">
|
||||
<section class="main">
|
||||
<h1 class="main__text">Software Engineering Principles</h1>
|
||||
<p class="main__text">This is a collection of things I've learned about, and while, building software. <br />
|
||||
They are best guesses. <br/>
|
||||
I reserve the right to be completely wrong about all of them.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<ul class="principles">
|
||||
<li class="principles__item"><a href="/blog/2022-11-28-all-problems">All Problems are People Problems</a></li>
|
||||
<li class="principles__item"><a href="/blog/2022-03-13-discover-complexity">Discover Complexity</a></li>
|
||||
<li class="principles__item"><a href="/blog/2021-12-12-build-the-platform-ship-the-product">Ship the product, build the platform</a></li>
|
||||
<li class="principles__item">
|
||||
<a href="blog/2022-04-10-recognise-and-reduce-risk">Recognise and Reduce Risk</a>
|
||||
</li>
|
||||
<li class="principles__item"><a href="/blog/2022-10-22-maintenance-plus-plus">Make your software opinionated</a></li>
|
||||
<li class="principles__item"><a href="/blog/2022-03-02-concentrate-on-concentrated-tests">Concentrate on Concentrated Tests</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="main">
|
||||
<h1 class="main__text">Software Engineering Principles</h1>
|
||||
<p class="main__text">
|
||||
This is a collection of things I've learned about, and while, building
|
||||
software. <br />
|
||||
They are best guesses. <br />
|
||||
I reserve the right to be completely wrong about all of them.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<ul class="principles">
|
||||
<li class="principles__item">
|
||||
<a href="/blog/2022-11-28-all-problems"
|
||||
>All Problems are People Problems</a
|
||||
>
|
||||
</li>
|
||||
<li class="principles__item">
|
||||
<a href="/blog/2022-03-13-discover-complexity">Discover Complexity</a>
|
||||
</li>
|
||||
<li class="principles__item">
|
||||
<a href="/blog/2023-02-13-the-exceptions-are-more-interesting"
|
||||
>The Exceptions are More Interesting</a
|
||||
>
|
||||
</li>
|
||||
<li class="principles__item">
|
||||
<a href="/blog/2021-12-12-build-the-platform-ship-the-product"
|
||||
>Ship the product, build the platform</a
|
||||
>
|
||||
</li>
|
||||
<li class="principles__item">
|
||||
<a href="blog/2022-04-10-recognise-and-reduce-risk"
|
||||
>Recognise and Reduce Risk</a
|
||||
>
|
||||
</li>
|
||||
<li class="principles__item">
|
||||
<a href="/blog/2022-10-22-maintenance-plus-plus"
|
||||
>Make your software opinionated</a
|
||||
>
|
||||
</li>
|
||||
<li class="principles__item">
|
||||
<a href="/blog/2022-03-02-concentrate-on-concentrated-tests"
|
||||
>Concentrate on Concentrated Tests</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<style>
|
||||
.main {
|
||||
border: 1px solid black;
|
||||
padding: 12px;
|
||||
align-text: center;
|
||||
display: grid;
|
||||
place-content: center;
|
||||
}
|
||||
|
||||
.main {
|
||||
border: 1px solid black;
|
||||
padding: 12px;
|
||||
align-text: center;
|
||||
display: grid;
|
||||
place-content: center;
|
||||
|
||||
}
|
||||
|
||||
.main__text {
|
||||
text-align: center;
|
||||
line-height: 180%;
|
||||
|
||||
}
|
||||
|
||||
.main__text {
|
||||
text-align: center;
|
||||
line-height: 180%;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
Loading…
Reference in a new issue