Using LEGO to teach technical practices

Years ago now, Bryan Beecham came up with the idea of using LEGO to teach the concept of Test Driven Development (TDD). Since this is a topic most often used by developers, previous trainings had focused on demonstrating this technique on actual code. However, Bryan wanted to introduce it to a different audience; he initially wanted to explain TDD to management and then later to other non-developers on the teams. To do this, he needed to be able to illustrate the concepts away from the actual source code. And thus was LEGO-TDD first created.

Slicing stories

In an agile environment, we split our work down into what we call “stories”, that are the smallest unit of value passing through a workstream. Unfortunately, we have a tendency to over-complicate story writing, making it unnecessarily hard. Done well, it can be a simple process of taking small steps, repeatedly.

Premature optimization

We have a tendency to think that making any one part of the workflow more efficient will make the overall workflow also more efficient and that’s just not true. Part of that is that not all parts of the workflow are on the critical path and improving something that isn’t currently a bottleneck won’t help the overall flow. But there’s a second reason that’s less obvious - sometimes optimizing for simple cases in the workflow, can make other parts of the workflow much worse.

What’s wrong with our meetings?

When we look for opportunities for improvement, at some point every team will bring up “too many meetings” as one of their pain points, even though it’s frequently not the number of them that’s the actual problem.

Hero Culture

Hero culture is when we rely on individual heroics on a regular basis. Someone pulling an all-nighter to get one thing done, one time, may be ok. Relying on that on an ongoing basis is unsustainable and will destroy whatever teamwork and culture you used to have.

Amotivation: When People Genuinely Stop Caring

I occassionally hear from managers that their people just aren’t motivated to do anything. This is rarely the complete story as these people are clearly motivated to do many things, just perhaps not those things that the manager wants them to do.

Prime factors in Elixir

In the last article, we showed how pattern matching could solve FizzBuzz. It’s a deliberately simple example so let’s look at something a little bit more complex.

Exploring Elixir

I’ve long advised people to learn multiple programming languages, as each new language you learn will make you better at all the ones you already know. Not just languages with different syntax, but languages that challenge how you look at problems.

NLP Meta Model

Each of us has an inner map of the world with rich connections between all the pieces. When we attempt to communicate with others, we’re limited by the words we use, which can’t possibly capture the richness of our internal map. As a result, we lose significant information as we try to communicate.