Weekly Digest for Tuesday 31st December

It’s the last one of these for 2019 and the last of the decade. Woo. All the best for 2020 and the new decade ahead.

Media 2019

I’ve watched a lot of TV this year – the quality and quantity of TV thanks to the many streaming services that have launched is in some ways overwhelming. Highlights in no particular order: Line of Duty, Chernobyl, Watchmen, Fleabag, The virtues, The Mandalorian, Euphoria, The Expanse (binged seasons 1-3 in prep for seasons 4 – all good), Giri/Haji, Succession Derry Girls, Game of Thrones, This Way Up, The Boys.

As for films – Avengers:Endgame, Apollo 11, Booksmart, Fast Color, The Irishman, Marriage Story, Ad Astra. Gaming was strange this year – not much out as next year is new console time for both Sony and Microsoft so little to recommend apart from Apple Arcade.

Best Posters 2019

A good movie poster doesn’t always mean a good film. Here’s some of the best from 2019.

Recycling Sonos

This is bizarre. Sonos offer a 1/3 discount on your old product if you turn on “Recycle Mode”. But this bricks the device and makes it unusable. WTF!?! I’ve got a few Sonos devices but this will make me think twice about investing any more in their system.

Whats Next

Great article on the love for The West Wing right now. It’s one of my favourite TV shows ever and thanks to The West Wing Weekly podcast I’ve been rewatching all 7 series. There’s only 4 more episodes to go so it really will be a case of what’s next after January? If you’ve never watched The West Wing give it a try alongside the podcast…and if you’ve not watched it since it originally aired there’s no better time.

A Decade in Memes

Here’s a great list of memes that described the decade. Some classics in there.

Best of 2010s

I’ve linked to this a few weeks ago but if you are in need of more best of lists, Rex Sorgatz has pulled together an amazing index of best of decade lists.

Architecture Decision Record

An architectural decision record (ADR) is a document that captures an important architectural decision made along with its context and consequences.

What is an architecture decision record?

An architecture decision record (ADR) is a document that captures an important architectural decision made along with its context and consequences.

An architecture decision (AD) is a software design choice that addresses a significant requirement.

An architecture decision log (ADL) is the collection of all ADRs created and maintained for a particular project (or organization).

An architecturally-significant requirement (ASR) is a requirement that has a measurable effect on a software system’s architecture.

All these are within the topic of architecture knowledge management (AKM).

The goal of this document is to provide a fast overview of ADRs, how to create them, and where to look for more information.

Abbreviations:

  • AD: architecture decision
  • ADL: architecture decision log
  • ADR: architecture decision record
  • AKM: architecture knowledge management
  • ASR: architecturally-significant requirement

How to start using ADRs

To start using ADRs, talk with your teammates about these areas.

Decision identification:

  • How urgent and how important is the AD?
  • Does it have to be made now, or can it wait until more is known?
  • Both personal and collective experience, as well as recognized design methods and practices, can assist with decision identification.
  • Ideally maintain a decision todo list that complements the product todo list.

Decision making:

  • A number of decision making techniques exists, both general ones and software architecture specific ones, for instance, dialogue mapping.
  • Group decision making is an active research topic.

Decision enactment and enforcement:

  • ADs are used in software design; hence they have to be communicated to, and accepted by, the stakeholders of the system that fund, develop, and operate it.
  • Architecturally evident coding styles and code reviews that focus on architectural concerns and decisions are two related practices.
  • ADs also have to be (re-)considered when modernizing a software system in software evolution.

Decision sharing (optional):

  • Many ADs recur across projects.
  • Hence, experiences with past decisions, both good and bad, can be valuable reusable assets when employing an explicit knowledge management strategy.
  • Group decision making is an active research topic.

Decision documentation:

  • Many templates and tools for decisison capturing exist.
  • See agile communities, e.g. M. Nygard’s ADRs.
  • See traditional software engineering and architecture design processes, e.g. table layouts suggested by IBM UMF and by Tyree and Akerman from CapitalOne.

Decision guidance:

  • The steps above are adopted from the Wikipedia entry on Architectural Decision
  • A number of decision making techniques exists, both general ones and software and software architecture specific ones, for instance, dialogue mapping.

How to start using ADRs with tools

You can start using ADRs with tools any way you want.

For example:

  • If you like using Google Drive and online editing, then you can create a Google Doc, or Google Sheet.
  • If you like use source code version control, such as git, then you can create a file for each ADR.
  • If you like using project planning tools, such as Atlassian Jira, then you can use the tool’s planning tracker.
  • If you like using wikis, such as MediaWiki, then you can create an ADR wiki.

How to start using ADRs with git

If you like using git version control, then here is how we like to start using ADRs with git for a typical software project with source code.

Create a directory for ADR files:

$ mkdir adr

For each ADR, create a text file, such as database.txt:

$ vi database.txt

Write anything you want in the ADR. See the templates in this repository for ideas.

Commit the ADR to your git repo.

ADR file name conventions

If you choose to create your ADRs using typical text files, then you may want to come up with your own ADR file name convention.

We prefer to use a file name convention that has a specific format.

Examples:

  • choose_database.md
  • format_timestamps.md
  • manage_passwords.md
  • handle_exceptions.md

Our file name convention:

  • The name has a present tense imperative verb phrase. This helps readability and matches our commit message format.
  • The name uses lowercase and underscores (same as this repo). This is a balance of readability and system usability.
  • The extension is markdown. This can be useful for easy formatting.

Suggestions for writing good ADRs

Characteristics of a good ADR:

  • Point in Time – Identify when the AD was made
  • Rationality – Explain the reason for making the particular AD
  • Immutable record – The decisions made in a previously published ADR should not be altered
  • Specificity – Each ADR should be about a single AD

Characteristics of a good context in an ADR:

  • Explain your organization’s situation and business priorities
  • Include rationale and considerations based on social and skills makeups of your teams

Characteristics of good Consequences in an ADR::

  • Right approach – “We need to start doing X instead of Y”
  • Wrong approach – Do not explain the AD in terms of “Pros” and “Cons” of having made the particular AD

A new ADR may take the place of a previous ADR:

  • When an AD is made that replaces or invalidates a previous ADR, a new ADR should be created

ADR example templates

ADR example templates that we have collected on the net:

For more information

Introduction:

Templates:

In-depth:

Tools:

Examples:

See also:

From https://github.com/joelparkerhenderson/architecture_decision_record

Technical Debt

Software systems are prone to the build up of cruft – deficiencies in internal quality that make it harder than it would ideally be to modify and extend the system further. Technical Debt is a metaphor, coined by Ward Cunningham, that frames how to think about dealing with this cruft, thinking of it like a financial debt. The extra effort that it takes to add new features is the interest paid on the debt.

Martins Fowlers description of Technical Debt

The metaphor of debt is sometimes used to justify neglecting internal quality. The argument is that it takes time and effort to stop cruft from building up. If there new features that are needed urgently, then perhaps it’s best to take on the debt, accepting that this debt will have to be managed in the future.

The danger here is that most of the time this analysis isn’t done well. Cruft has a quick impact, slowing down the very new features that are needed quickly. Teams who do this end up maxing out all their credit cards, but still delivering later than they would have done had they put the effort into higher internal quality. Here the metaphor often leads people astray, as the dynamics don’t really match those for financial loans. Taking on debt to speed delivery only works if you stay below the design payoff line of the Design Stamina Hypothesis, and teams hit that line in weeks rather than months.

There are regular debates whether different kinds of cruft should be considered as debt or not. I found it useful to think about whether the debt is acquired deliberately and whether it is prudent or reckless – leading me to the Technical Debt Quadrant.

Technical Debt Quadrant

From https://martinfowler.com/bliki/TechnicalDebt.html.

See also The Human Cost of Technical Debt – the human side of the problem.  And, make no mistake — in business, all human problems are also business problems,viewed with a wide enough lens.  Unhappy humans are unhappy workers, and unhappy workers are less productive.  Yet, this angle of technical debt is seldom discussed, in my experience.

  • Unpleasant Work
  • Team Infighting
  • Atrophied Skills
  • The Hidden Business Cost: Turnover and Attrition

Weekly Digest for Monday 23rd December

Presents bought and wrapped ☑️

Christmas Dinner bought ☑️

Advent calendar finished – 92%

Not long until the big day and prep work is done. Wherever you are and whatever you are doing I hope you have a good Christmas.

Gallery of Modern art in Glasgow with the Duke and his cone.

100 per cent

Two big stories from the weekend all around racism in the UK. First up – Stormzy. He’s got a new album out so has being doing a lot of press. In one interview he said that the UK is racist and it’s worse under Boris Johnson. I don’t know anyone that would say the UK doesn’t have a racism problem. If they do then they are part of the problem. As for Johnson, he’s got form and has normalised everyday racism in my opinion so Stormzy is spot on. However that didn’t stop the media spinning the story.

ITV spinning the story

One of the worst was ITV who claimed that Stormzy had said the UK is 100% racist. A very different meaning to what was said. A few hours later they backtracked, deleted the tweet and changed their story, but the damage was done and the story spread over social media. To see why it was such a bad article, read the original interview in the tweet below – he did not say the UK is 100 per cent racist.

The media spin has now become a bigger story a bit like how the election issues were spun into something else to avoid tackling the original issue. Let’s get back to the real issue – racism is on the rise in the UK. What’s to be done?

Racism in Football

This year especially has seen an increase in racism at football matches in Europe especially but also the UK. This weekends Spurs v Chelsea game saw a player targeted again. Step forward Gary Neville who, on a live show, articulated what many were feeling. Something needs to happen. Authorities need to do more. The main political parties have to clean up their act.

Sky Sports host David Jones though didn’t agree. “I am compelled to say, they are the views of you, Gary Neville, and not those of Sky Sports, that is my duty.” “I’m here to try and hold a balanced debate” he later said. What the fuck? How can you have a balanced debate about racism unless you bring on Tommy Robinson, Nigel Farage or Boris Johnson? It’s bad enough people at football matches feel it’s OK to do this….but there must be hundreds of others standing around hearing this and doing nothing. People need to step up.

The rise in nationalism across the UK is partly to blame. The ability of social media to amplify the minority and give voice to right wing extremists is another. Racist views that had long been stamped out and at best kept behind closed doors are now more prevalent as people have become emboldened. Johnson and other right wing media establishments have profited from being openly racist. Johnson even has the cheek to threaten the footballing authorities with action unless they clean up their act. He really has no shame. However I do hope the football powers that be do take more meaningful steps. Small fines at club and international level aren’t enough. And it’s not just an English or European issue. It’s the Old Firm match this weekend which see’s many racial taunts from both sides. This is Glasgow today.

The Wrong Fight

Labour is going through an awful lot of infighting after one its worst performances in decades. It will take more time and analysis to truly understand what went wrong but it’s clear that it and its union friends are picking the wrong battles. An ex Labour MP, Anna Turley, took Skwawkbox to court after being slandered in an article in 2017. She won her case but Unite spent over £1M defending the story on Skwawkbox. If you are a Unite member paying your fee’s, are you really comfortable that so much money has been spent in this way? Why not on the election campaign?

Collision Course

ProPublica has published an article on what went wrong with the USS John S. McCain. A long read but really worth the effort. Flawed tech was at the heart of the problem.

A Decade of Tech

More tech retrospectives but this time looking at the negatives of the last 10 years. The New York Times talks about tech losing its way over the last decade. I like the interactive nature of the article but don’t fully agree that all tech has lost its way….just needs a course correction. Meanwhile The Verge looks at the 84 biggest flops. So many failed products…Google Glass, 3DTV’s…Apple Keyboards!

The work of Neil Slorance

Political Cartoons

Neil Slorance is a local cartoonist and the BBC have done a lovely little feature on him. If you like his work then stop by his Etsy store.

Radiohead…on YouTube

Radiohead have always done things a little differently. This week they’ve put all their albums on YouTube making them free to stream. Merry Christmas!

Charlie Kindel 5 P’s

Charlie Kindel – how to achieve focus in any endeavor you embark on by simply writing down the PurposePrinciplesPrioritiesPeople, and Plan (the 5Ps). An endeavor could be a software development project, a job search, or a phase in your life. I have personally found the 5Ps a useful tool for small projects (e.g. prepping for a VC demo/presentation) as well as large scale projects that include 1,000s of people.

  • Purpose: Why do we exist? Why are we in business? Where do we want to be in the future? What will we deliver?
  • Principles: What are the non-negotiable rules and key strategies? How will we act?
  • Priorities: What’s the framework for tradeoffs? In what order do you do things? How much mass or energy do you apply to each element of the plan? What is not important?
  • Plan: How are we going to stage and tackle solving the problems? What are the known dates & forcing functions on the calendar?
  • People: Who’s accountable for every key part of the plan?

From https://ceklog.kindel.com/2011/06/14/the-5-ps-achieving-focus-in-any-endeavor/

Ranking Star Wars

The Rise of Skywalker

Having watched Rise of the Skywalker on Thursday it only seems right (as others have done) to rank the films.

  • The Empire Strikes Back
  • A New Hope
  • The Force Awakens
  • Rogue One
  • The Rise of Skywalker
  • The Last Jedi
  • Revenge of the Sith
  • Return of the Jedi
  • Solo
  • The Phantom Menace
  • Attack of the Clones

I rewatched Last Jedi this week and found it hard to watch through so it’s dropped further than I expected. You can find a prettier version of this list on Letterboxd.

Conway’s Law

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.

Melvin Conway

Conway’s law was not intended as a joke or a Zen koan, but as a valid sociological observation. It is a consequence of the fact that two software modules A and B cannot interface correctly with each other unless the designer and implementer of A communicates with the designer and implementer of B. Thus the interface structure of a software system necessarily will show a congruence with the social structure of the organization that produced it.

Easily observed in organisations today Conway’s law still has merit and should be considered when designing software or reviewing organisational design.

From http://www.melconway.com/Home/Conways_Law.html

Also, from https://www.linkedin.com/posts/jonny-williams-83433836_do-you-care-about-conways-law-if-youre-activity-7009445165320790016-ZYTW/

So what might caring about Conway’s Law help you to do as a team enabler?

👉 Understand misalignment between the organisation’s communication structure and the systems and products they are creating.
👉 Recognise potential organisational impediments that might limit effective collaboration and communication.
👉 Offer practices, tools, and techniques that can help teams to navigate the limitations of the structure around them.
👉 Avoid common pitfalls and challenges that arise when working on complex systems.
👉 Help senior colleagues to understand that they play a role in shaping systems and products through their influence over communication structures.

Capture, organize, synthesize

Takeaway from a Mozilla user study studying how people find, save and share things on the web:

  1. Capture as much as possible. Capture without judgment: your thoughts are more valuable than paper. Externalize what you learn. Once an idea is captured in a tangible form you can begin surveying and manipulating it.
  2. Organize only after you capture. Filter, but don’t delete irrelevant information. Computers are big enough to search and store everything. Make them manage it.
  3. Synthesize into new meaning. Re-contextualize what you learn. This is the creative act. Experience becomes art, notes become a novel.

Most creative bottlenecks happen when you try to organize and synthesize before you capture. Spread it all out before you try to arrange it.


Many creative tools are designed for organizing first. Name the file before you can write in it. Create your Photoshop layer before you can draw on it. This causes friction.


From http://gordonbrander.com/pattern/capture-organize-synthesize/

Weekly Digest for Monday 16th December

On holiday now until next year. Needing the break as tiredness and health haven’t been great the last few weeks. Looking forward to a lazy recharge over the next couple of weeks.

General Election 2019

So clearly many people spent last Thursday kicking children and pensioners into traffic as well as voting Tory. Since then the Labour Party have imploded, the LibDems have disappeared and lost their leader while the SNP are pushing Scotland to independence much like Wales and Ireland. Hard to see there being a United Kingdom by 2025.

Moment of the night was Swinson losing her seat and Sturgeon celebrating. Some will say its unbecoming of the FM. Bullshit. Show’s the cut throat business of politics.

Clearly Brexit was the issue. Some of the other reasons and demographic breakdowns behind the vote are interesting. The split between old and young in this election is telling. No wonder the Tory’s don’t want 16-18 to vote. The Tory’s have been voted in on half a manifesto but were the only (serious) ones to say they will deliver Brexit. As ever, Marina Hyde sums up how many are feeling.

So we end this year/decade on a downer in my opinion. The worse off in our society will be further penalised while the have’s feel less of the impact of Brexit. What a mess.

Greta Thunberg – Time Person of the Year

Time’s person of the year is often controversial but hard to argue with this years choice – Greta Thunberg. Her story is remarkable and she’s had a massive impact on the conversation around climate change even if it’s not delivered a material difference yet. The difference in a year is striking.

From September 2018 to September 2019

Simone Giertz

Loved this profile of Simone Giertz in Wired. She’s went through a lot of health issues and I’ve loved her videos on YouTube for years – nice to read she’s moving on to more ambitious builds and goals. If you’ve not seen anything from Simone before start with her Truckla Tesla mod.

Passwords

Everyone hates passwords. This article proves that almost half of users iterate their passwords. No surprise in this day and age of complex passwords, three out of four characters, number, symbol types etc. We need to do away with forcing users to change passwords every x days and help and support with alternative methods or allow them to set a complex password but not enforce the frequent change – we’d be far more secure.

Doddie Weir

Watched Sports Personality in tears last night seeing Doddie Weir receive the Helen Rollason award. He’s been fighting MND for a couple of years now and raised awareness and money to find a cure. The BBC have more on Doddie here and a great documentary now on iPlayer. To donate visit the My Name’5 Doddie Foundation website.

LEGO cartography

So geeky but so good – a Lego map of Scotland. It’s expensive at £1500 but I want one.

The Decades best Gadgets

The 2010’s have seen some great gadgets and The Verge has a nice top 100 round up. Stand outs for me from the list – iPhone 4, DJI Phantom and the iPad. That iPhone 4 design is such a classic.

The Deep Sea

Almost my new favourite thing, The Deep Sea is a great website that you must visit. Just keep scrolling….it goes on for a long time.

AI Dungeon

This is amazing. AI Dungeon popped out of nowhere a couple of weeks ago. Years and years ago text adventures were all the rage. However they were limited by the path the developer wanted you to take – think Bandersnatch. Not so with AI Dungeon. You can ask it to do anything you can in written language and it has scope and scale to grow according to your commands. Give it a go while you still can – it’s costing the dev’s $65k a month to host.

The Streak Hits 1000

A while back I blogged on how I was using the Apple Watch to keep active. So much so I hit a streak of 365 days. That was a long time ago and like Forrest Gump said “For no particular reason I just kept on going”. Today was day 1000 of the streak.

1000 day streak….boom

I still find great benefit from doing this. It gets me out and about on days that I would literally do nothing apart from sit at a computer screen. It’s also kept my weight in a fairly good place despite not being able to get back to running or other more active pursuits. I know I’m being gamed doing this but if it’s helping what’s the harm?

There have definitely been days when I wanted to do anything apart from a 30 minute walk. Sick days, wet days, snowy days, windy days (remind me of this tomorrow when I’m getting blown away during a downpour), far too hot days but I’ve stuck with it. I’m sure I’ll keep going too until there’s a sick day that just stops me from continuing but hopefully thats a while away yet because there’s always more podcasts to listen to while walking. Onwards!