- sharing is learning

function share(knowledge){ return share(++knowledge) }

Bash script to add file(s) to all repositories in an organisation

Hey Marcus, can you just add a License file to each of our repositories?

All of them?

Yeah, all 42…

This was a task given to me about 50 minutes ago. I’m done now.

Obviously I spent all that time writing a script to do this. And I wanted to share this with you guys and my future self.

Obviously I learned a lot as well.

Read on ...

Kanban - cementing the flow?

I got another email from a former client that I wanted to answer here on the blog. In fact, in this instance, I also got the same question during a Lean Coffee discussion at a current client too.

Without stating the whole email the questions were a little bit like this:

With kanban - isn’t there a risk that you lock in and cement the different parts of the board?

Also, are we not risking to focus too much on the efficiency of the individual steps in the workflow?

Since the board clearly shows bottlenecks in some areas we risk putting in an effort to solve that and then just move the workload to another place in the workflow.

and then in the lean coffee

I don’t like those columns - it looks like a waterfall. I just want DOING to show that we are working together.

Well.. thanks for your questions. My answer is Yes, Yes, Yes and Ok. … but also No, No, No and Why.

Let me explain.

Read on ...

3 basic (priorization) assumptions

The last couple of weeks I have talked a lot about prioritization at my current client. In many conversations, I’ve felt the need to go back the foundation of things that I build my coaching and consulting on. For example, I might question how we prioritized as we done, and then I notice that people become defensive - thinking that I am questioning them rather than the way. This has led me to reflect, formulate and then re-iterate three basic assumptions that are increasingly important to me:

  1. Everyone did their best, and continue to do so
  2. There’s always more work to do than we have the capacity to do
  3. We don’t know what will work best

Let me describe a little bit more what I mean.

Read on ...

Playing with names

At my current client, we are trying to make a change to focus more on flow than on resource utilization. This is harder than it sounds because much of the current ways of working, structures, roles and rewards are built to support another mindset.

One of the things that lately have popped up for me are the words we are using to describe the roles we have in different parts of the organisation. This heavily prevailing in the IT-industry and maybe agile actually has helped to cement a few of these (an excellent keynote by Michael Feathers put me onto that idea).

This also ties into a great quote from David L. Marquet and his excellent Turn the Ship around book

There’s no they on Santa Fee!

Let me try to explain.

Read on ...

What should I pick?

I got a question the other day from Enea Zuliani and Michele Degrassi. It was particularly heartwarming to read as they just read Kanban In Action and now have started to use. Kanban. In action.

They now had a question and I asked if I could share that question and my answer here on the blog. They kindly obliged.

Here’s the question (I’ve edited it a bit):

Dear Markus, let me get back to you with a question. If an agent has to choose between different kanbans (cards) which one to work on, and all the kanbans have the same characteristics (dimensions, etc.) and he can actually decide to work on every one of them, is there any “rule” you might suggest in order to pick a kanban - everything else being equal?

Read on ...

Reflections after Agile Greece

I’ve just attended Agile Greece Summit which was a wonderful event. Many awesome speaker, met a few of my heroes (Linda Rising, Michael Feathers, David Snowden and Mark Schwartz) and met new friends (Portia Tung, Alison Coward, Lisi Hocke, Gary Crawford and Gwen Diagram, just to mention a few) and finally had many interesting and challenging conversations throughout the conference.

All in all it was a very good event to attened, expertly organised by an awesome team and I consider myself lucky to have been here.

As with many conferences an underlying theme starts to emerge from the different talks. I suspect we take inspiration from other speakers and conversations, but I’ve observed this too many times to think it’s a coincidence.

I wanted a few reflections that I got during this conference. It can be summed up in a few very strange sentences:

It’s all about people, and they are complex systems working in complex systems. So you cannot trust their experiences or facting them into do what you want. But you can put down your sword and listen, and that will open new possibilities that you didn’t have before

Let me explain how I interpret the messages of the two days.

Read on ...

Some reflections after a few days as a musician

I’ve had the great opportunity to do some extra work in a very different environment this week; I’ve been a musician in a professional orchestra - the awesome Östgöta Blåsarsymfoniker.

It was quite a treat to work in this group and get to play my instrument on a high level. Also, as an amateur, getting paid to play my instrument is … mindboggling.

Being part of this group for a few days made me notice a few rituals and practices that I think we can learn from. I wanted to share a few thoughts on them here.

Read on ...

What I learned when installing 33 developer computers in 5 hours

Yesterday I had a very interesting task for a client. I work as (brace yourselves for a cool title) “Head of curriculum” for School of Applied Technology. They create and run bootcamps and the first one we are running is “Fullstack JavaScript developer with React and Express”. That title means that I’ve been creating the content of the course together with the person (Jakob) teaching it.

Ok, to the point of this post. Part of this work means that we need 33 students to get up and running with their developer computers super fast. We want code to be written after a few hours.

Said and done - I created a set of dotfiles which will configure their computers properly with all the tools and (my opinionated) settings they will need.

Yesterday 33 MacBook Pros came to the Aptitud office and 5 hours later I had installed, configured and test them all.

In this blog post I wanted to describe how that was accomplished and what I learned in the process. The post will be some lean learnings and some bash scripting and something about dotfiles.

Read on ...

Integrate JIRA search results in Google Sheets for fun and profit

As an agile coach working in bigger companies you are sound exposed to JIRA. JIRA - a tool that started out as a good idea and then grew into … a not as good idea.

But hey - we got to live with it, I suppose.


In this post I wanted to show you how to easily import data from a JIRA query to Google Sheets (or Excel I presume). That is, in all honesty, not that complicated so I will share a few other tips around this whole process.

In short:

Tweaking export of JIRA data for fun and profit

Read on ...

Keeping copies of charts from Google Sheets updated automatically

At my current gig, we are using Google Apps (Docs, Slides, Sheets etc) a lot. I’m getting quite fond of it.

My favourite part is the sharing between the apps. I create a nice diagram in Google Sheets and then I can easily copy it to Slides to present easier.

In this short post, I wanted to walk you through how I’ve made a very small hack to keep those slides updated automatically. This is really handy if you’re doing a dashboard, or presentation that is running in a kiosk of sorts.

Read on ...

Testing a Koa application with supertest using async/await

I’ve been playing around with refactoring a Koa application to use modern JavaScript constructs like async, await => and do away with generators etc.

In doing so I had an epic battle with mocha, monk and supertest to use async / await etc. I finally found a good structure for this purpose that I wanted to share.

Read on ...

Refactoring a Koa app (part V) - refactoring the root app

This is the fifth and last post in a series where I refactor an old (4 years) code base (an API written in Koa) to modern Javascript and tools.

Here are all the posts in the series

Read on ...

Refactoring a Koa app (part IV) - update the production code

This is the fourth post in a series where I refactor an old (4 years) code base (an API written in Koa) to modern Javascript and tools.

Here are all the posts in the series

Read on ...

Refactoring a Koa app (part III) - async tests

This is the third post in a series where I refactor an old (4 years) code base (an API written in Koa) to modern Javascript and tools.

Here are all the posts in the series

Read on ...

Refactoring a Koa app (part II) - refactoring the tests

This is the second post in a series where I refactor an old (4 years) code base (an API written in Koa) to modern Javascript and tools.

Here are all the posts in the series

Read on ...

Refactoring a Koa app - or how I learned a lot about modern JavaScript while refactoring an old app

I have learned so much by following the Koa Js community and framework over the years. My first post on the topic was written in March 2014, when Koa was just a little tiny bird trying out its wings (look up that reference…).

From that point I’ve written many posts, done a few screencasts for fun and other for profit.

4 years (MY GOD!) is a long period but in the JavaScript world it’s eons of time. I noticed that the other day when I refactored one of my later Koa applications into something more modern. I learned so much about the topics that I ran into, while upgrading my code and the resulting code was much more elegant, functional and understandable.

So… I thought I’d do it again. This time you can tag along. This post will be long, but hopefully worth it.

Read on ...

What are you going do when it's really important, then?

I have a very particular set of memories from my childhood, that revolves around me falling, hitting or otherwise hurting myself. If it was just a bruise my father often said to me:

How bad is it? Is it worth crying for, like you do now?

(I was probably exaggerating quite a lot). Of course, it was!

Tell me, what are you going to do if it really hurts, then?

That was maybe not pedagogically correct for a child in pain but it at least got me thinking. Indeed… what comes after screaming and crying? Could I turn this up? Would it make a difference? Would I get … yes, what was it I wanted, really? Maybe just a hug or comfort. Could I get that by other means of communication that the display I was putting on now?

Of course, 7-year old Marcus didn’t reflect on his behaviour this deeply. Hey, 44-year old Marcus barely does that. But at some clients, that thought comes back to me from time to time. In the way deadlines are communicated.

Read on ...

Thinking in flow - some recent thoughts

I talk a lot about flow these days and I’m continuously fascinated how many good things follow by shifting our focus to supporting a better, faster and smoother flow.

In this post, I just wanted to share a few thoughts that have been on my mind lately.

Read on ...

Priority 0 - we meet again

I once worked at a large company where they had so many priorities 1 features that they decided to introduce … bam-bam-ba-baaaa … Priority 0. But after a few minutes, we ended up with about 5 items in that category and we realized the ridiculousness of continue to do Priority -1 etc.

Today I saw this pattern in action again, and a new realization about a missed teaching opportunity washed over me. I wanted to share this with you in this post.

Read on ...

A simple diagram and some conversations on flow efficiency

The last couple of weeks I have been re-discovering an old diagram (eerm … sketch really). You can find it scribbled on close to every whiteboard in our office now. Because it opened a lot of interesting discussions on flow, flow efficiency and optimizations for value delivery.

I wanted to share this with you here, in a few iterations and also share some of the discussion that it triggered.

Read on ...