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....

Read More

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...

Read More

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.

I don’t know really where I picked this construct...

Read More

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…:

Sat together

The great teams I’ve been part...

Read More

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...

Read More

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...

Read More

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 

H: “Dude, is this a screen cast or are you going to tell me something interesting already?”

M: “Well hang on for just a few seconds more. I wrote my first simple route, to verify it. And I’m glad I did”

var app = require("

      Read More
    

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.

The board that my client, a hospital, have doesn’t really look like your normal kanban board, we saw another need here. It’s also in Indonesian but don’t worry, I’ll walk you through it. Here is how the board looked a couple of weeks ago.

  • The board has 4 lanes
    • The top 2 lanes are for bigger projects that will run for considerable time, up to 6 months
    • The lower 2 lanes are called “Perbaikan” or “Improvements” and is used for smaller things that we want to improve...
Read More

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...

Read More

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).

Emergency lanes

The rationale behind having a emergency lane is that sometimes works comes in that is truly is an emergency and it then feels a bit strange to put it a Todo-column and wait until it’s time for it.

Emergency is emergency. And...

Read More