<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
  <title>I am Michael Allen</title>
  <description>Thoughts on software and tech by Michael Allen</description>
  <link>https://michaelallen.io/rss.xml</link>
  <link>https://michaelallen.io</link>
  <lastBuildDate>2018-01-04T16:05:10+00:00</lastBuildDate>
  <pubDate>2018-01-04T16:05:10+00:00</pubDate>
  <ttl>1800</ttl>


  <item>
    <title>Your Security Accreditor is not (ever (never ever)) a User</title>
    <description>&lt;p&gt;&lt;strong&gt;This post is part of a series of &lt;a href=&quot;/story-writing-rules-of-thumb&quot;&gt;Rules of thumb for writing Agile Stories&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the last post in this series, &lt;a href=&quot;/story-writing-many-users&quot;&gt;Rule 4 - Many Users of many types&lt;/a&gt;, I gave a
very loose definition of what I call a user. That was:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;A user is “someone who will use a product of our teams work to do
something”.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some people this doesn’t cover are: your Security Accreditor, your Chief
Technology Officer, your Single Responsible Officer, the team themselves.
These people can never ever be users. That’s a pretty bold statement but I
think I can back it up.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/story-writing-not-a-user/</link>
    <guid>https://michaelallen.io/story-writing-not-a-user</guid>
    <pubDate>2015-07-09T12:46:00+00:00</pubDate>
  </item>

  <item>
    <title>Introducing Butler</title>
    <description>&lt;p&gt;I am a supremely lazy person. With the rise of wrappers like &lt;code class=&quot;highlighter-rouge&quot;&gt;virtualenv&lt;/code&gt;,
&lt;code class=&quot;highlighter-rouge&quot;&gt;bundler&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;foreman&lt;/code&gt;, etc, I find the shell commands I need to remember getting
really long. Things like:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run only unit tests&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;foreman run python test.py unit
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Run the database migrations&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bundle exec rake db:migrate
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Start my java app&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;java -jar target/my-java-app-0.1.5.jar
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I figure someone else should be remembering those for me. Ideally I should only
need to remember &lt;code class=&quot;highlighter-rouge&quot;&gt;migrate&lt;/code&gt; to migrate the db and &lt;code class=&quot;highlighter-rouge&quot;&gt;unit&lt;/code&gt; to run the unit tests.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/introducing-butler/</link>
    <guid>https://michaelallen.io/introducing-butler</guid>
    <pubDate>2015-04-16T16:48:00+00:00</pubDate>
  </item>

  <item>
    <title>Many users of many types</title>
    <description>&lt;p&gt;&lt;strong&gt;This post is part of a series of &lt;a href=&quot;/story-writing-rules-of-thumb&quot;&gt;Rules of thumb for writing Agile Stories&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There’s a problem with the “As a user…” that never sat right with me. Who is
the user? What defines a user? I think there’s too much focus only on the
“typical” user, the person sitting in front of a browser &lt;a href=&quot;https://gov.uk/performance/register-to-vote&quot;&gt;registering to vote&lt;/a&gt;,
or &lt;a href=&quot;https://www.gov.uk/transformation/exemplars/driving-record.html&quot;&gt;viewing their Driving License&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;I don’t agree.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/story-writing-many-users/</link>
    <guid>https://michaelallen.io/story-writing-many-users</guid>
    <pubDate>2015-03-27T11:23:00+00:00</pubDate>
  </item>

  <item>
    <title>Who-What-Why not Who-What-What</title>
    <description>&lt;p&gt;&lt;strong&gt;This post is part of a series of &lt;a href=&quot;/story-writing-rules-of-thumb&quot;&gt;Rules of thumb for writing Agile Stories&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A story is formed of three parts. Who has the need, What is the need and Why do
they have it.&lt;/p&gt;

&lt;p&gt;A rookie mistake I often found myself making was
confusing the Why and the What so that my stories read like this:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;As a User
I want to do the thing
so that I have done the thing.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;A story like this isn’t useful because it doesn’t describe the Why.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/story-writing-who-what-why/</link>
    <guid>https://michaelallen.io/story-writing-who-what-why</guid>
    <pubDate>2015-03-26T10:23:00+00:00</pubDate>
  </item>

  <item>
    <title>Embed context in your stories</title>
    <description>&lt;p&gt;&lt;strong&gt;This post is part of a series of &lt;a href=&quot;/story-writing-rules-of-thumb&quot;&gt;Rules of thumb for writing Agile Stories&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;As a User I want…
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;What is the User doing? Why are they here? What is their motivation? Is the
kettle currently on?&lt;/p&gt;

</description>
    <link>https://michaelallen.io/story-writing-embed-context/</link>
    <guid>https://michaelallen.io/story-writing-embed-context</guid>
    <pubDate>2015-03-24T12:30:00+00:00</pubDate>
  </item>

  <item>
    <title>Ask why first</title>
    <description>&lt;p&gt;&lt;strong&gt;This post is part of a series of &lt;a href=&quot;/story-writing-rules-of-thumb&quot;&gt;Rules of thumb for writing Agile Stories&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first thing we do when writing a story is describe what it’s going to do.
Usually a short name for the story has been described and we’ve been talking
about the story for a few minutes (or maybe a few hours) before we decide to
actually write the body of the story.&lt;/p&gt;

&lt;p&gt;Say something like:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Name: “Do Thing”
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When we sit down to write the story the first thing everyone wants to write is
what it’s going to do:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Name: “Do Thing”
I want to do the thing
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It’s the natural thing to do.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/story-writing-ask-why-first/</link>
    <guid>https://michaelallen.io/story-writing-ask-why-first</guid>
    <pubDate>2015-03-19T19:38:00+00:00</pubDate>
  </item>

  <item>
    <title>Rules of thumb for writing Agile Stories</title>
    <description>&lt;p&gt;&lt;strong&gt;TLDR:&lt;/strong&gt; I’m using these rules of thumb when writing stories for Agile projects&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/story-writing-ask-why-first&quot;&gt;Rule 1 - Ask why first&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/story-writing-embed-context&quot;&gt;Rule 2 - Embed context into your stories&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/story-writing-who-what-why&quot;&gt;Rule 3 - Who-What-Why not Who-What-What&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/story-writing-many-users&quot;&gt;Rule 4 - Many Users of many types&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/story-writing-not-a-user&quot;&gt;Rule 5 - Your Security Accreditor is not (ever (never ever)) a User&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Rule 6 - It’s a problem, not a solution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How many times have you read the following:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;As a User
I want to do the thing
so that I have done the thing.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;or:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;As the Accreditor
I want to ensure you have done the thing
so hackers can’t do this other thing.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;or even:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;As the team
I want some other team to do this thing
so that our Users can use our thing.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you work in an Agile team I guarantee you’ve seen those stories. You may even
have a set of them on the wall right now.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/story-writing-rules-of-thumb/</link>
    <guid>https://michaelallen.io/story-writing-rules-of-thumb</guid>
    <pubDate>2015-03-19T19:17:00+00:00</pubDate>
  </item>

  <item>
    <title>Overuse of reuse</title>
    <description>&lt;p&gt;I’m currently working with the Department for Work and Pensions and I’ve found
that not everyone means the same thing when they say “reuse”. This has led to me
sitting in meetings telling people “this won’t be reusable” to people who think
reusable means something different than I.&lt;/p&gt;

&lt;p&gt;As I see it we are building a single service that will be deployed once and
other services will hook in to it. I’d call that “sharing”, it’s a form of reuse
but it’s not the only one. It’s also worth noting that it’s a very hard thing
to do.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/overuse-of-reuse/</link>
    <guid>https://michaelallen.io/overuse-of-reuse</guid>
    <pubDate>2014-12-15T12:49:00+00:00</pubDate>
  </item>

  <item>
    <title>Five nines</title>
    <description>&lt;p&gt;&lt;img src=&quot;/assets/sleepy.gif&quot; alt=&quot;Sleepy&quot; /&gt;
I wrote this 2 months ago at the end of a long project. Now having recently
finished Alpha on a new project for DWP that was even more challenging…
I wish I had listened to my own advice.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/importance-of-downtime/</link>
    <guid>https://michaelallen.io/importance-of-downtime</guid>
    <pubDate>2014-11-26T21:13:00+00:00</pubDate>
  </item>

  <item>
    <title>Using Mustache on Register to vote</title>
    <description>&lt;h1&gt;&lt;img src=&quot;/assets/mustaches.jpg&quot; alt=&quot;Mustaches&quot; /&gt;&lt;/h1&gt;

&lt;p&gt;One of the more interesting stories that came out of our work on Individual Electoral Registration (IER) was our adoption of Mustache, a logic-less templating language.&lt;/p&gt;

&lt;p&gt;The brilliant &lt;a href=&quot;https://github.com/tombye&quot;&gt;Tom Byers&lt;/a&gt; and I have wrote up our process of migrating to &lt;a href=&quot;http://mustache.github.io/&quot;&gt;Mustache&lt;/a&gt; templating on the &lt;a href=&quot;https://www.gov.uk/transformation/register-to-vote&quot;&gt;Register to Vote exemplar&lt;/a&gt;.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/using-mustache-on-register-to-vote/</link>
    <guid>https://michaelallen.io/using-mustache-on-register-to-vote</guid>
    <pubDate>2014-08-05T15:28:00+00:00</pubDate>
  </item>

  <item>
    <title>Unconference</title>
    <description>&lt;p&gt;A few weeks ago during Kainos kickoff event I ran a
short unconference for our GOV Business Unit, the unit that focuses on
Government projects like the &lt;a href=&quot;https://www.gov.uk/transformation&quot;&gt;Government Digital Services&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;TL;DR&lt;/em&gt;&lt;/strong&gt; - It was great fun and well worth the time: &lt;a href=&quot;https://www.flickr.com/photos/mikeyallen/sets/72157644036971992/&quot;&gt;Photos&lt;/a&gt;,
&lt;a href=&quot;http://michaelallen.io/gov-bu-unconf&quot;&gt;Session topics&lt;/a&gt;, notes from the sessions to come soon.&lt;/p&gt;

&lt;h2&gt;&lt;img src=&quot;https://farm8.staticflickr.com/7103/13911542125_5ca5f2850a_b.jpg&quot; alt=&quot;An unconference session&quot; /&gt;&lt;/h2&gt;

</description>
    <link>https://michaelallen.io/not-another-conference/</link>
    <guid>https://michaelallen.io/not-another-conference</guid>
    <pubDate>2014-05-13T00:34:15+00:00</pubDate>
  </item>

  <item>
    <title>Self-documenting using pattern matching</title>
    <description>&lt;p&gt;I’m a big fan of self-documenting code. The idea is that code is written in
a language humans can understand for a reason. It isn’t meant to be read by a
computer, that’s why we have compilers and interpreters, it’s meant to be read
by other people. Or in fact by yourself, weeks or months after it was written.&lt;/p&gt;

&lt;p&gt;So if code is meant to be read by people then it should be easy to understand.&lt;/p&gt;

&lt;p&gt;Secondly code is written to fill a purpose. A purpose usually described in a
story, or a requirements document depending on your teams process, that once
finished usually will never be looked at again.&lt;/p&gt;

&lt;p&gt;On &lt;a href=&quot;https://www.gov.uk/transformation/register-to-vote&quot; title=&quot;#1&quot;&gt;Register to Vote&lt;/a&gt; we have quite a lot of rules and laws we have to follow,
often confusing and convoluted. Rather than writing extensive documentation
explaining why the code does what it does, I’ve been making a point of trying to
document the business rules in the code itself.&lt;/p&gt;

&lt;p&gt;As it happens Scala has a very handy set of pattern matching abilities that has
made it very easy to do this.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/self-documenting-using-pattern-matching/</link>
    <guid>https://michaelallen.io/self-documenting-using-pattern-matching</guid>
    <pubDate>2014-03-30T14:15:21+00:00</pubDate>
  </item>

  <item>
    <title>Why I want to write</title>
    <description>&lt;p&gt;The “Hello, World!” post of a new blog is a difficult one to get right,
hopefully I bypassed that one last week with my &lt;a href=&quot;/git-init-git-commit-first-post/&quot;&gt;first post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Before I start in earnest though I thought I should explain why I want to write.
It’ll be interesting to, after a few months, write a follow up to this and see
what I have actually got from writing.&lt;/p&gt;

</description>
    <link>https://michaelallen.io/why-write/</link>
    <guid>https://michaelallen.io/why-write</guid>
    <pubDate>2014-03-29T15:25:00+00:00</pubDate>
  </item>

  <item>
    <title>Git init; git commit -m 'first post';</title>
    <description>&lt;h2&gt;&lt;img src=&quot;/assets/first-post.gif&quot; alt=&quot;first post gif&quot; /&gt;&lt;/h2&gt;
</description>
    <link>https://michaelallen.io/git-init-git-commit-first-post/</link>
    <guid>https://michaelallen.io/git-init-git-commit-first-post</guid>
    <pubDate>2014-03-17T18:01:12+00:00</pubDate>
  </item>


</channel>
</rss>
