Alan Gardner

Blogging a dead horse

Page 2


Grokking Lean UX

I was tidying up my study last week and stumbled across my copy of the Lean UX book. It’s a pretty quick read, so I thought I’d go through it again. I’m glad I did, because something struck me that I missed the first time round.

Lean UX is not just about UX.

I was first introduced to Lean UX on a course that Jeff Gothelf and Josh Seiden gave in London in 2012. I was already familiar with Lean in the context of manufacturing and software development, but not so much in the context of UX. Like many developers I was familiar with a process where the Design would come down the mountain etched in granite. If there were any changes to the Design, the whole process would kick off again and we would find ourselves back at the foot of the mountain. The agile software development process existing within a larger waterfall one. I had this baggage in tow during my first experience of Lean UX. As

Continue reading →


Design for noobs

Every so often I remember that my knowledge of design is lacking. It’s not that I don’t always know this, it’s just that sometimes it matters to me more than others. This year I made a promise to myself that whenever I found a topic that interested me I would find a good book and read up on it, so I asked Twitter what books I should read on design. See below for the results.

If you have any recommendations to add, please tweet them to @mr_urf. Thanks and enjoy. :)


101 Things I Learned at Architecture School (@stevenmilne)

A Type Primer (@mcaulay)

Basics Design series (@wilfreeborn)

Bootstrapping Design (@SaltineJustine)

Design for Hackers (@mgdm)

Design is a Job (@mcaulay)

The Design of Everyday Things (@paulanthonywils)

The Elements of Typographic Style for web (@mgdm)

Five Simple Steps (@leckie)

Hack Design (my own discovery - not a book but still looks like a decent

Continue reading →


Pseudo Random Number Generation in Elixir

I recently started learning Elixir and decided for my first “real” project to implement a basic genetic algorithm. I like to do this to kick the tyres on a new language because it’s a non-trivial problem that gives you a good idea of what it’s like to work with that language.

Genetic algorithms rely pretty heavily on the ability to generate random numbers. They need them to create the initial population of possible solutions, to generate new child solutions and to potentially mutate solutions. The whole purpose of a genetic algorithm is to reduce the risk of getting stuck in local maxima by introducing a random element to the process.

This led to an interesting spelunk into the world of random number generation in Erlang. Elixir runs on the Erlang Beam VM and uses Erlang modules to provide random number generation. Along the way I came across a few interesting areas and gotchas, so I

Continue reading →


Distributed Agile Anti-Patterns

Paul Wilson and I gave a talk last month at Lean Agile Scotland on Distributed Agile Anti-Patterns.

The précis of the talk is as follows:

In the original Extreme Programming Explained Book, Kent Beck asks a question of Boehm’s Cost of Change Curve: what if all that had been learnt over the previous 10 years – simple design, object oriented programming, programmer tests – could flatten the curve and move us away from big upfront specification and design? In the same book, he points out the crucial importance of collocating your teams.

What if in the 14 years since the publication of XP Explained, the advances in technology and all we have learnt about running Agile projects means that collocating is no longer the only way to run an XP project? Sure, having all the team members in one room is still optimal but is it micro-optimisation? What if the advantages of distribution (increased

Continue reading →