Wednesday, July 23, 2014

Some thoughts I got after talking with Woody Zuil

Yesterday I had the good fortune to have a chat with Woody Zuill over Skype. I was a really nice hour that just flew by, where we exchanged stories, ideas and had a few laughs.

Let me, as a side note, just say that I love that; just exchanging stories with people. I **always** learn new stuff and quite often stories from my own experience pop back into my memory.
This is the best part of conferences - meeting, interacting with others. That's what I miss the most, being a little sidestepped here in Indonesia. Praise the Lord for Skype and Twitter... ah well for the Internet too (although I'm not entirely sure He had any hands-on action on either of those inventions).

I just thought I summarise some of the things that I took away with me from our conversation.

Friday, July 18, 2014

Coaching exercise - building Lego

From Amazon
I've just concluded a vacation during which I had time to build a lot of Lego (tm) with my sons. That's really a lot of fun and very developing for the kids I notice. With my oldest, Albert, we have much fun following description and building the house to the left.
My other sons more like to build something that just comes up with the pieces they have in hand.

After sitting with Albert a couple of hours I started to recognise the personality the Lego building brought forth in me; this was coaching-Marcus talking.

I think this is a really good exercise and in this short post I'll show you a couple things that I noticed and that was very eye-opening for me.

Thursday, June 19, 2014

KoaJs: Making the make file test, push and all that

The last couple of days I have enjoyed the speed and easy-going-flow that Node, KoaJs and Herkou gives me. It's truly blows me away and I have been tweeting stuff like:
But... In one regard I have lied. I told Woody Zuill (friend and role model) that I could push to production with a single command. While that was true the command (git push heroku master) did just that. Push to Heroku. But I wanted it to test my code, version it, push to GitHub and then push to Heroku. You know - all the continuous delivery stuff.

I had to look into the "scary" domain of Makefiles. Untravelled territory for me. I thought it was scary but it was just a bit weird and I actually got something nice to work.

This post described what I did - and how I redeemed my statement to Woody so that deploying to production is in fact one command (about 25 seconds).

Simple = Good. Complex = Bad. But what does it mean?

I’m a programmer. But I, for some strange reason, often find myself doing management consulting on different levels. Since my basic schooling is in programming I sometimes often find myself using principles that works well for programming in management.

One such principle was something I picked up about 10 years ago and I’m still reaching for that everyday. Here’s my current desktop background, showing that principle to me everyday:


This is a so called truism that nobody says again, but I fail to reach just about all the time. I find it very useful as a guiding north star both in organizations and programming. But what does it really mean?

Monday, June 16, 2014

KoaJs - the fast route between idea and production

A couple of days ago I had a great experience in why a modular framework is a great thing, that I wanted to share in this blog post. You will follow the EXACT path of my thinking. Yes, it might scare you but... it will not take very long.

Before we start, I'm sure theres a number of times when a very modular framework, like Koa Js and NancyFx for example, might be bad too - but for the most part I think my experience is the most common one.

Friday, June 06, 2014

Delegation and my jedi mind trick

A couple of days ago I learned about the 7 Levels of Delegation in the Management 3.0 book by Jurgen Appelo.

The last level of delegation (aptly named Delegate) is defined as:

You leave the decision to them and you don’t even want
to know about details that would just clutter your brain.

Yes, that. Give someone a responsibility and then step away. Today I got the opportunity to talk with a manager that have a tendency to micromanage a lot and we came up with conversation template that I think was worthy remembering.

Thursday, June 05, 2014

Move the information to the authority, and not the other way around

From’s no secret that I like the writings (and presentations) of Captain David Marquet.  If you haven’t seen this video do that instead of reading this. It change a whole lot about how I look at leadership.
One of the best tips in the book is the small imperative sentence:
Move the authority to the information!
However, often when I explain this to people and clients I often end up adding the opposite to this sentence. From that I got some interesting conversations going.
Let’s see if I can explain what I mean here.

Tuesday, June 03, 2014

The “talk about later”-list

When I was a kid (and teenager… oh, well still today too) I messed up a lot. I forgot things or did them in a stupid order and all of a sudden I was in an emergency. For example, I forgot that I should be in a rehearsal 1 hour away and here I was in my home, 2 hours from the rehearsal room.

Quite often in those situation someone, my parents predominantly, of course enlighten me about how stupid this was and gave helpful advice on what I should have done instead in order to not ended up here.

This made me very mad a little upset, since those advice didn’t improve my situation one bit. I often “told” them (talk about re-writing history) about the futility of these tips at this point.

Aesop_pushkin01Years after, in my twenties I found support from one of the old Greek philosophers, Aesop, the guy with the fables, in this quote:

Help me first and argue with me later.

(Didn’t find a English translation for this sadly, so this is Greek to Swedish to English)

I have found use for that quote and what it teaches us later in my career. Most recently yesterday.

In this post I wanted to show you how I handle this in a more structured way.

Monday, June 02, 2014

You control the disappointment dial - use it!

Walking my oldest son, Albert, to and from school is one of the highlights of the days here in Indonesia. At least when he’s in a good mood. Today was not one of those days. He was angry because something didn’t turn out as he planned. He very often does that: makes up his mind about what we should do (often involving TV or games) and then gets very upset when it doesn’t happen the way he wanted.
I tried to talk with him about that and in doing so I had a little epiphany about me, the IT industry, estimates and uncertainty.
Oh, I should probably add that I re-watched this great presentation by Dan North two days before. It probably affected me, to maybe be wiser than I otherwise would.

Waiting is bad for you… and it’s worse than you think

I recently ran into a concrete example on waiting that showed me, again, why it’s bad. And how easy the alternative is.

At one of our facilities the cleaning has long been neglected. It was super-dirty in places and you could see that no one had clean here for months, maybe even years. A rescue operation was put into place and in just 5 days the facility was cleaned. About 15 people was engaged in the effort.

That’s really awesome because not only is the cleaning done, but the next time we clean it will not take as much time.

In this post I wanted to share some thoughts on how this is general and what we can do to avoid this situation.

Wednesday, May 28, 2014

What I missed, longed for, happy to not have from fasting from social media

Tomorrow I will end a 30 day social media fast.

I got a bit overwhelmed and depressed by some comments and discussions that I was drawn into and aired it with my buddies at Aptitud. 2 minutes later 3 of us decided to go on a fast.

I uninstalled all my social media apps and removed the shortcuts to the sites. The first thing was to make it
harder to use it. I was in real deep, and even felt a bit stressed that if I didn't read my stream the first thing in the morning.  The first couple of days it was pretty close that I got back in a couple of times. I realized that if I was waiting for a slow page (ALL pages when in Indonesia) I often switched over to Twitter to catch up.... And got stuck.

Full disclosure: I have been tweeting pictures from the @kanbanInAction account just to promote the book. And yesterday I was on facebook for my work, gathering examples of social media in the Salvation Army.

After about 5 days I forgot all about it and since then it just been a joy. I read a fictional book for the first time in several years. This has not only to do with not being on social media, but it gave some space and room.

In this post I will just list the things I have missed, not missed and the reasons for me taking it up again...

Tuesday, May 27, 2014

Screencast: What is yield and generators?

I made another little screencast about Koa Js. This time I talk about and shows the concept that Koa is built upon; generators. We're also visting the "yield" keyword in order to understand what's going on.

is my new way of explaining what happens when you say yield in your code. I hope you enjoy this.

Friday, May 23, 2014

Screencast: Installing Koa Js - a tutorial through failures

When I first started to use Koa Js I was, like many I presumed, slowed down by the fact that Koa is using features in Javascript not yet released in the current Node. Like generators for example.

When your quite new to a subject the errors that you is greeted with can be quite confusing. And the solutions are often not obvious. So I did a short screencast showing off the failures that I ran into when I tried to get started with Koa. It's a tutorial through failures, quite simple.

Monday, May 19, 2014

Screencast on Getting started with Koa Js

I got a comment from a reader. That's both encouraging and educating. Mr Robert Larsson asked me if I could show him and others how to write an API using Koa Js. Yes, sir. I can do that.

I thought that I would try something different (for me) and did a screencast out of this. I had great fun doing this and it was a bit nervous to record this (would the internet act up, would any dogs or cats outside my house be audible), but the end result was pretty good I think (Elin opened our VERY squeaky door twice but other than that it came across fine.

Monday, May 12, 2014

“Waiting” should be a note and not a column

Quite often when you create a visualized version of your workflow you end up with a waiting column. This is where items goes while your are waiting for someone else, or something else to happen before you can continue to work on it.

It might look something like this on your board:


For example, you are writing a report and need it feedback on the report before you can continue. Sadly that person (Daphne, let’s call her that) that can give you feedback is sick, so you’ll have to wait until Daphne is back again. You are blocked for this item and cannot complete it. (Coders, exchange the word “report” for “module” and you’ll be able to tag along Smile). You move the sticky to the waiting column and pull the next one…

This is a bad idea. Waiting-columns is a place where work items goes to die. Slowly.

I have now explained the contents of this blog post to a number of teams, although it’s simple, and thought that I should write it down so that I don’t have to restate it over and over.

Tuesday, May 06, 2014

MongoDb and the "10309 Unable to create/open lock file" on Ubuntu

Ok, this was about to drive me crazy, and it seems like a lot of people have run into the same problem but sometimes my Mongo installation dies on me with an error like this:
10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Yeah, I didn't get that either. The actual error is not hard to understand, there's some kind of permission needed on the /data/db-directory. But why? And how to fix it?

Friday, May 02, 2014

Marcus Node Bits: Basic Authentication with Koa

As you might know I have fallen in love with Koa Js. I have, from experience, also come to realize that if you want to really understand a framework or tool you need to build something real with it. In that spirit I created a little voting site that we will in my current job.
The whole application is simple; basically you can create a simple question (poll maybe is a better word) that you want someone to answer. “How did you enjoy your stay?” for example. There are then only 4 valid answers (Sad smile, Disappointed smile, Smile and Open-mouthed smile). The whole idea is that answering this is just pushing a button on your way out. Like a physical Facebook like-button. From this we can gather some simple, but interesting data about what people thinks about the question asked.
However, soon I came to realize that I wanted to be able to add new questions, or fix spelling errors etc. But since the site was open I needed some sort of authentication to make sure that not everyone could change this. I opted for the most basic I could think of. Hmmm Basic Authentication.
Yes – I know that I could have done this with Twitter etc. but this was just a simple thing. I would think that maybe some of you might use this for internal applications etc.
In the rich Koa echo system there’s support for basic-authentication (koa-basic-auth) and this post describes how I set that up. In doing so I learned a couple of things about Koa and how the middleware works. It was interesting for me – I hope you enjoy it too.

Monday, April 28, 2014

Do something together - what Indonesians taught me, part I

One of the things that really surprised me and my wife when we were about to move to Indonesia was the schedule for our office. Every Friday there's a scheduled 2,5 hour exercise pass from 8. Special exercise clothing is provided by the office. Except once a month when we're spending that time cleaning or repairing the office. These activities are required and nothing else happens in the office at the time (no meeting for example).

And everyone office (that I have seen and passed by on the streets) are doing this. The bank down the road is exercising or playing soccer in their parking lot. The police office is doing some aerobics in their court yard and even the churches and the people working in them are outside, exercising.

It felt a bit strange, but I can tell you that I have come to appreciate these activities a lot, and maybe not for what you first would think.

This is my second post (find the first post here) on things in the Indonesian culture that I have been happily surprised by and that I think is well worth thinking about in a western culture too.

Monday, April 21, 2014

Marcus Node Bits: Deploying to Heroku (and MongoHq)

I've been doing something for real! A very simple little polling site, that actually turned out pretty ok (saved the UI but I have a friend brushing that up for me) and might be useful.
It's built with KoaJs, of course, and using MongoDb as database. Basically you can create a "question", tag it with some meta data and then send a link to a page where you can start receiving answers. And there's some very basic "export to excel"-reporting. Simple stuff. I spent maybe 3-5 hours altogether on it, in the hospital bed with my son in the bed next to me. He was pretty ok, so the concentration was not on top on either tasks for me. Bad!

This Sunday I wanted to deploy the first version of it. To Heroku. It went pretty smooth but I wanted to share my story and some problems I ran into.

Looking for better

Apparently my last post was not completely gibberish and contained some thoughts that you could make use of. Thanks for the feedback. Let me continue my train of thoughts here. It's not a very long train, but it's still a train.
Here's where we ended: there's a customer, we are here to delight them (thank you Stephen Deming for that phrase). Everything we do right now is just best so far in our strive to more effectively give value to the customer. We can and should, change our current state, process, organisation, tools or what have you, to try to improve. If we do the change in bigger steps there will be bigger impacts in our productivity, in smaller steps smaller impact.

See? Nothing really new or amazing here. In this post I wanted to talk a little bit about where this can take us. Because I see this as a guiding star, as a "true north", designed to draw improvements out of us. Taking us to ideas, places and innovations better than we ever thought. It's a bit "to infinity and beyond", I know.