marcusoft.net - sharing is learning


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

Motivating in a world without WHY


I wrote a post about Indonesian culture. In it I wrote about my experiences in Indonesia and how I’ve interpreted what I’ve experienced as many people here lives in a world without WHY. Read more in that post.

In this post I wanted to continue my thoughts about this and specifically around what actually motivates Indonesian people. Or how I could motivate someone that lives in a world without WHY. How do you get someone to start thinking in long-term goals in a culture that do not? This is has been my task for the last 1,5 year and I’m still struggling. Sometimes I have, accidentally mostly, succeed too and in this post I wanted to describe HOW I did and why I think that it worked.

As before remember:

  • these are my experiences by being here for close to 1,5 years, meeting the people I happened to meet during that time
  • Indonesia is a VERY big country with a big, big spread between poor and rich, in education level, geographical and also cultural.

Should I make any generalizations (which I will) it’s based on my own experiences. If they are wrong or weak is due to that. If they are good… well I was lucky I guess.

BUT, one thing that I am quite sure of is that I’ve learned a lot about my own culture by studying the Indonesian culture. All the phenomenas that I’ve observed here can be seen in Sweden as well, but in lesser extension maybe.

Basically - I’ve learned a lot. I hope you learn something too

Read on ...

package.json: engines & engineStrict - and how to use them


I’m poking around quite a lot with io.js recently for reasons that soon will be revealed. When doing so I used my favorite Node version manager - Node Version Manager to manage different versions of Node and io.js.

Switching back and forth is simple and sometimes I end up running some code on a version of Node/io.js that the code does not support. For example running EcmaScript 6 let-statements in Node.

I was hoping that I’d get a warning or preferable even an error when doing that. But no. Or…

In this post I’ll show you how to use the package.json file to make sure that you get warnings and errors when using the wrong version of the framework

Read on ...

What the traffic in Jakarta taught me about slack


Like most cities in Asia the traffic in Jakarta is horrible. Especially the motorbikes that are plentiful is an interesting phenomena to observe.

Once you mange (took me a year to do) to look past the total disrespect for human life on display, the drivers own lives as well as other people, I saw patterns that have bigger influence on at least me.

In this short post I wanted to share those with you and maybe you can also get some thoughts that can help you.

My good friend Håkan Forss wrote an excellent presentation called What can traffic in stockholm teach you about queuing theory. That inspired me to write this post, at least a little.

Read on ...

Open letter: Management tips to Dr Lillian


I’ve just ended one of the hardest but also most rewarding gigs I’ve been part of. As often I was merely a coach, but this time I marveled at the result. We took a company (hospital) on the verge of dying to being self-sustaining and profitable in 7 months.

The leader of the hospital is called Dr Lillian, a young doctor that been very responsive to my tips and radical changes. I’m very grateful for her cooperative spirit and hard work. The same goes for many many people in the hospital. As I said; they are the people who made this possible. I just gave some hopefully helpful (although hands-on) pointers.

Last Friday (the 13th…) was my last official day at the hospital. Now, it’s ca 150 m from my house so I will keep it under close surveillance during my time here.

But I wanted to leave Dr Lillian with some advice for the future. Although this is about a hospital I think that it can teach us something, as it has taught me while I was uncovering them.

So, here we go:

Dear Dr Lillian,

Now that I leave you I wanted to give you some advice that builds on all the things that we have talked about and that can help you in the future. Don’t read this as instructions but rather inspiration:

Read on ...

A world without WHY


When I first arrived in Indonesia I didn’t think nor knew much about the difference in our cultures. This quite understandable, although in hindsight I should have read up on it a little bit more. Now, as I know more and more, I also get more and more interested and confused about some very basic things in the society.

To not come out as very prejudiced there’s some of disclaimers to be made and I’ll do that throughout the post, but here are few to get started:

  1. These are merely my observations after 15 months in the country. I’ve been working with quite a lot of people (met maybe ≈500) and in a few different companies.
  2. It’s very easy to jump to a conclusion that some behavior (mine, your or theirs) is stupid or wrong. I don’t want to do that, so in everything I write here I will try to remember that it’s just different cultures that have formed us under many many years into what we are. For example, consider some strange tradition that you’ve seen in another culture (dressing up like dragons and jumping around on poles for Chinese New Year for example). It shouldn’t take you long to find a similar ridiculous event in your own culture (Santa anyone? Easter Bunny etc).

Oh, this post is mostly me reasoning. I have no ambition so solve any problems. Although, I think that this can be useful for you even if you never leave your own country (in which case I pity you - get out there!). Remember that each organization form subcultures of their own. Maybe this can help you understand things in another department. I can tell you that many of the things I find puzzling here in Indonesia can be observed to some degree in Sweden as well.

Let’s get started… I’m fearing it might be long.

Read on ...

Why I built page-logger... and how it made me money


I wrote a little application called page-logger for purely selfish and lazy reasons. It was fast, quite fun, I learned a lot and apparently I could make MONEY by using it. Which I didn’t thought of when I wrote it.

In this post I’ll take you through some code, point to some things that I learned and finally some thoughts about learning from your data. I hope you like it.

Read on ...

CoffeeScript - what I've should have done


The blog post I wrote yesterday was from my experience at the time. I even ended the post with a callout for better ways.

And sure enough, twitter to the recscue:

As a side, this why I hang out on twitter. There are brilliant people there that will push you towards ever better. Thanks Erwin for this.

So… what does that mean for my post yesterday… Let’s find out:

Read on ...

Get started writing NodeJs with CoffeeScript - not a piece of cake


For some reason I’m from time to time drawn to different languages that compiles to JavaScript. And then I’m drawn away again. Especially nowadays with ES6 coming up many ideas and needs for CoffeeScript or TypeScript goes away.

So the other day I found myself thinking again:

Hey - CoffeeScript. That's not such a bad idea. Maybe I should try to write some.

CoffeeScript and I have a dormant but warm relationship because this little language was the one that helped me understand not only JavaScript but also got grips of functional programming.

I thought I’d write a simple little kata in Node to fresh up my CoffeeScript-fu. How hard could it be?

Well… there’s quite a lot of setup and idiosyncrasies that you need to be aware of. This post tries to summary what I learned as I got my environment up and running. Specifically; initialization, run tests, write code and run my app.

Read on ...

What if money was not an issue?


In Indonesia there’s an interesting development going on right now in health care. A nationwide health insurance is being rolled out. For everyone. Until now health care has been paid for privately or via private health insurances, but with the advent of BPJS (that it’s called) everyone can now afford to go to the hospital… or at least there’s fixed tariffs.

Before we continue, imagine the effort to roll this out in the world 5th biggest population… 250-270 million people. Most of which is very poor. I think this is such a great thing and I applaud the Indonesian government for doing it.

However… I work for hospitals in Indonesia. On the “other” side of things. For us this is also an opportunity since this will bring more patients to our hospitals and we get to serve those in need. But there’s another side of the story that have very interesting implications around service quality, of all things.

In this post I will tell you a little about that, quote a great book and then ask myself some tricky questions that I cannot answer. It will be a blast - tag along!

Read on ...

Config handling in Node and Heroku - with secrets


Once you’ve coded and tested a Node application we are anxious to deploy it and put in front of real users. I’ve blogged before on how you can do that very easily and fast with Heroku.

But one thing that trips me up a lot is the configuration and especially things that I want to vary per environment, like connection strings to databases or user names. Hey - some of those things I don’t even wanna check into source control at all. They might be secrets that I don’t want anyone else to get hold off.

In this post I’ll show you a little function / object that I’ve found plenty use of and that I now include in almost every project I deploy. I’ll finish up with a little discussion on how to handle secrets too.

Read on ...

All the great teams


I reflected a little bit about the great teams I’ve had the honor to be part of. It’s just a few out of all the teams that I’ve been part of that I would call great. But they all shared some common traits.

My first ever scrum team was a great team, that I still think back on fondly. Gothenburg Brass Band was an orchestra that I had the opportunity to be part of for almost 2 years - total awesomeness. My “current” (since I don’t play with them now) band Vasa Band is another group that I hail as a great team. The prayer group we had 2006-2010 in our home was an amazing group too.

Looking back I remember these things that was common about them, in the very particular order that I remember the traits…:

Read on ...

How far have we come?


A few days back I said something to my client that apparently many people on twitter found interesting.

My client, the hospital that I’ve written about many times before, has a big project ahead. We are going to be accredited for quality in all our processes. So… there’s a lot of documentation, implementation and training to be done.

Nobody really knows how much. We think, for hearing other projects, that it’s about 6 months and made that our goal. But we haven’t got a clue how much work it is left for us.

The work is divided into 4 areas that we’ve formed teams around. Each of this area has a number of targets that they need to consider and help the hospital to meet.

So I asked them:

How far have we come?
Read on ...

Review: Cucumber for Java


Imagine that you want to learn a new technology or tool. Who would you want to learn that from, and how? For me I’d want to sit down and pair program with the creator (not The Creator, but you get what I mean) of the tool, and then someone who has vast experience implementing this and finally someone who knows this tool well on my platform. Preferable all three together.

This book is exactly that. It’s an opportunity for you to learn Cucumber from Aslak Hellesøy (the creator of cucumber), Matt Wynne that has consulted and trained on the tool for a long time and Seb Rose that have build the Java Implementation.

Now, the important thing to remember about Cucumber is that it’s not about the tool. Specification by example (BDD) is first and foremost a communication and collaboration technique that doesn’t really need a tool. I’ve got a lot out of just “specifying with examples”. But soon you want to verify your specifications and then Cucumber is great choice.

The author stresses this point throughout the book and make the reasons for Cucumber and human-readable tests (as opposed to JUnit test) very clear.

The books consists of 3 parts; the first gives you the basic knowledge about the tool but also the basic understanding of the process and how to use the tool. The second part is a “worked example” that goes beyond the basic. Not only do we get to know more about Cucumber and it’s capabilities but also how to make sure that you are building a structure for you glue code that is maintainable over time. Also - there’s more in this part on the process and what works and not. The final part is more in the form of patterns and recipes and gives you techniques and approaches to handle common scenarios and situations, such as using Dependency Injection frameworks, testing web applications and APIs and running cucumber in a continuous integration tool.

Throughout the book there’s a very nice “this is not that hard really”-tone that I enjoyed throughly.

Even though I’m not a Java programmer (and through the examples in this book, I hope never will be either…. GOD some of it is verbose) I got a lot out of this book. I am a long time user of Cucumber on the .NET platform (SpecFlow as it’s known there), I even built part of the tool on that platform. Still I learned new things, tricks in the tool and ways to work with the tool that I haven’t tried before.

I cannot recommend this book enough. In fact, I’d recommend the book to anyone working with Cucumber, regardless of platform. It’s the best treatment I’ve seen on the tool.

Thank you!

Below you’ll find my detailed, but rough, notes that I wrote as I read the book.

Read on ...

Koa and the 'ReferenceError: Promise is not defined.'


M: “… hahaha, exactly. And speaking of RT*M, you know what I did yesterday?”

H: “No, but I like it already. Tell me more.”

M: “So I wanted to whip out a fast little Koa site. It’s sooo good for those”

H: “Yeah, I know. You told me like a million times.”

M: “Ok… sorry. Off to the terminal I went and went through the usual steps:”

mkdir newAwesomeApp
cd newAwesomeApp
git init
npm init
npm install koa koa-route --save
touch app.js
Read on ...

How we created the need for an emergency lane


In my last post I told you about some practices and policies around emergency lanes. Today, when I visited my client I realized that we, ourselves, had created the need for them. That’s great news because that means that we can also take that need away.

Let me explain what I mean.

Read on ...

Things I say often: I don't care about efficiency


I’ve talked more about effectiveness vs efficiency than you all care about. The reason for this fascination might be that the word is mixed up in Swedish I guess; there’s only one word for these both concepts. Boooh… Swedish.

Because the difference is paramount.

In the excellent book the Goal Dr Goldratt puts it like this:

Productivity is meaningless unless you know what your goal is

This is the same thing. I hear many people talking about efficiency, or that we should become both effective and efficient and yes, but all means, become efficient. BUT don’t speak another word about that until we all have a shared view on what the goal is. Without a clear goal - there can be no effectiveness. And then efficiency is pointless, as Dr Goldratt said.

My favorite explanation for the difference of effectiveness and efficiency makes this very clear;

Usian Bolt take the blocks. He has trained his muscles to perfection - they are very efficient for moving him fast. He has the latests experimental shoes from Pumaddike on - super efficient! No air resistant at all. The same goes for his clothing - they are super light, no air resistance. He knows how to get out of the blocks the fastest in the world. Even his hearing and reflexes are the best in the world. He’s focused. Everything around him is blocked out. Now the referee is calling “Set”. Usian Bolt is preparing his body.

BAM - the gun goes off. Perfect start! It’s the fastest ever measured speed in the world. His leg movements are amazing, his hands is held perfect.

But… he’s running off the track right into the middle of the field.

He’s very very efficient but not very effective. Because he didn’t know the goal.

All that efficiency… wasted.

Read on ...

Emergency lanes - some tips


One of the things that first made kanban known and loved was the introduction of emergency lanes. Or at least the lack of fixed scope for a sprint where sudden urgent work items was hard to handle in other methods.

Many kanban boards have an emergency lane. However often I see it abused (or being feared to be abused) and hence it will not be as useful as it could be. It’s a really great tool, both for “product owners” and the team alike. In this post I wanted to share some policies that I’ve found useful to manage emergency-lanes (or equivalent).

Read on ...

Things I say often: I run on feedback


This thing I say often “thing” is quite new and a bit personal. It’s very important for me personally and I hope that you like it.

I’ve had the great, but scary, opportunity to play a couple of times under the late James Watson. For any non-brass-players he’s one of the truly great trumpet players of the world, brought up as a wonder boy in the brass band movement. Later in his career he returned and made the world famous Black Dyke Band into a new being - possibly changing what people thought a brass band could be for ever.

Also - he’s know for being very … direct … even mean sometimes during rehearsals. But I fondly remember a lot of things from the hours I got to spend under his direction.

Read on ...

Things I say often: I'm into leadership - not management


This is just a short one. I don’t know where I picked the thought up, probably from David Marquet or Simon Sinek.

But really I’m so tired about talking about management for organisation and teams. Manage. That’s what I do with computer resources, stuff and sheeps.

I have higher thoughts for just about every person I ever met. If something these people need a leader. Someone that points, with clarity, towards the better future we are trying to reach, creates an environment where I can feel safe and give room and be challenged to be the best I can be.

I much rather talk about leadership and leading than management and managing. Leadership is what you use on people, management is for your pens or harddisks.

Read on ...

Make it smaller - some practical experiences


One of the “clients” I work with right now is a hospital. We have tried to turn their performance around and they are improving immensely. In fact - I think they will be just fine. I did not think that just 4 months ago.

One of the things that we have talked with the management team about is trying to do smaller things often and act on the feedback we get from that. Nothing new … in software development or other lean practicationers, but in this setting. I hear eyelids popping open everyday.

How does that look? What have we done? Most of the work we have done has not directly with health care to do but rather change management and business in general. Very practical stuff mostly. In this post wanted to share two of our current projects (or Focus areas as we call them) where our approach made a big difference.

Read on ...