marcusoft.net - sharing is learning


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

Prioritization - some thoughts and tools


Basically we have a lot things to do, many different wills and opinions as to what is more important and 3 hours to get it done. Can you facilitate that for us?

The end of the first email from my “new”[^1] could not have been more direct and to the point. And yet part of me found it a bit scary too.

This is one of the hardest things you encounter in a project or any organization, and now I was going to do it as the first impression.

Therefor I thought that I could list a couple of thoughts and tools that have helped me through the years. Just to revise them for myself at least. You can peak if you want.

There’s high and low stuff here. Some of it might not be suitable for the kind of prioritization that you’re doing. Your mileage may vary.

Read on ...

Book review: 50 quick ideas to improve your retrospectives


I have a confession to make:

I think retrospectives are boring

There. It’s out there. I’ve attended many and facilitated even more. I don’t like it. But before you all start to throw wasted fruit and vegetables my way, let me follow that statement up with a contradiction:

I think that retrospecting is the fundament of agile, and what's needed to improve

If agile brought anything new to the IT table it was the idea that we repeatedly, often or even continuously look back on our work, our tools, our output or our environment and try to improve it. Admittedly that was not invented by agile, but that’s how most of us got in contact with it. And it’s the one basic idea that can be found in all agile framework. Because it’s essential to improve.

Anyway - those two statements causes a problem for me, as you probably can see. Hence, it was with some resistance that I picked up “50 quick ideas to improve your retrospectives”.

On page 2 the authors Ben Williams and Tom Roden had me. I read it in one go.

Read on ...

Riot.js: anatomy of a tag


Remember back in the days when you (or me at least) proudly could say: “I’m a back end developer”? Well, sorry those days are gone since a few years.

Now, front end can mean many different things and quite often, luckily for me, it’s been just feeding data into a already structured framework, but what if you need to set the architecture?

Naturally we turn to the frameworks of choice and … about at this point I run into problems. Because I really have a problem with “big” frameworks like Angular Js, Ember, Aurelia or React. They look nice and I have really tried to learn, at least part of, them. Sometimes I’ve been close, but they just don’t stick. Too much for my poor head.

Maybe Koa and Nancy has destroyed me. I’m now a micro-framework guy. I just want my tools, as much as possible, to stay out of my way. A micro framework also opens more options for how to do things, what architecture to use etc.

That’s why Riot Js made me so happy, when I found it. Here’s the tag line:

A React-like user interface micro-library CUSTOM TAGS • ENJOYABLE SYNTAX • VIRTUAL DOM • TINY SIZE

And I’m like: Yes! Yes! Yes! Love it already!

I wanted to share my very early learnings with you. Because sharing is learning

Read on ...

Some kanban questions from a keen learner, and my answers


I sometimes have the good fortune to get questions sent to me via email. Often they are very thought provoking and makes me put some (or in this case considerable) effort behind to be able to get a intelligent answer. Also, I try to share my answers on line to increase the learning possibilities.

I try to answer those questions when I get the can, especially when I see that the person really wants to learn. A really good example of that came to me the other day, when Jocelyn wrote me. He’s about to attend a course on kanban and was required, before the course, to conduct an interview with someone who knew the topic.

Read on ...

Barrier troops


I’ve been rereading the awesome ReInventing Organizations by Fredric Laloux. The first chapter in particular is awesome. It’s a history the evolution of organizations through history. What I like about it is that it highlights both the strength and weakness of each new stage of organizations.

As I was reading about Amber-Conformist organizations (think strict hierarchical, big organizations) I had train of thought that I wanted to share, as I’ve during the last two years experienced much of those types of organizations myself.

My point here is that I’ve also seen residues of this kind of behavior in modern organizations. I think it can be useful to notice it and do something about it before it gets… nasty as we soon will see.

Read on ...

Speed up Jekyll site regeneration


I’m a happy Jekyll user since about 1 year ago. Really nice experience so far and the auto-hosting on GitHub is just an added bonus that lifts the joy a little more.

The only thing is that I have 1017 posts on this blog. When I write the posts, locally, Jekyll rerenders all of them. That takes up to 50 seconds.

I feel the need. The need for more speed.

Read on ...

Using the scientific method on our board


For quite some time I have been working with the management team of Rumah Sakit Bungsu in Bandung. It’s been quite a journey and I’ve learned a lot from doing so.

The last couple of months we have been trying a new approach to get better control in what we do and faster feedback on our actions. A couple of days ago it took flight and the director of the hospital just got it. It was so rewarding to see and hear in action.

In this post I wanted to present the way we are working. Right now I might add. Hopefully we do something else in the future.

Way in the bottom of this post you’ll find an summary should you find it long to read.

Read on ...

Me and my kidneys


Instead of posting this longish description in the social medias I thought I’d write it up here. That way it’s easier to refer people here instead.

Ordinary and casual readers of my blog, sorry. I’ll be right back with normal content in a few weeks. Thinking about doing a new series about writing a NuGet package in DNX-land, using my Mac…

TL;DR;

I’m in hospital. Again. From the same kidney infection since the last 3 weeks. I’m better this time but it’s a little bit serious and I need antibiotics twice a day for seven days.

How did this happen?

Most likely I have passed a small kidney stone or crystal. Doing so damaged my urine bladder and … piping (Yeah, I know these terms well. NOT!). At that same point I have got some bacteria that traveled to my kidneys.

How do you feel now?

I’m not too bad. Since I’ve been eating (broad spectra) antibiotics and pain killers all this time many of the symptoms are very weak. I’m tired and weak and some pain in the kidneys.

Are you ok with everything practical?

Yes. The only tricky part was the last 24 hours. That sorted. I’m in a good hospital and well treated.

We will be fine.

Read on ...

Making dynamic chart in Excel


It was quite some time since I wrote a How-to-post. Here’s an Excel-thing that I managed to solve today that’s been bothering me for a long time.

Here’s the scenario:

  • We have plenty of data point, one per day, counting something (really the number of patients per day but it can be anything). This is displayed in a diagram like the one above.
  • After 2 months this starts to get out of hand looking at and really we’re only interested in the last 30 days
  • Sometimes though it could be fun to see more data in one view

Basically we want the diagram to dynamically show the last 30 days (or any other number of days we fancy). Like a 30-day window backwards.

This post describes how to do that.

DISCLAIMER I have, for some stupid reason, a Swedish Excel installed. I have translated the formulas but some other names (like menus etc) might be off. Please bear with me.

Read on ...

New PluralSight course: npm as a build tool


I’ve just (October 21 2015) got news that my latest course for PluralSight is published.

Find it here.

This time I took the opportunity to put together a course on using npm (Node Package Manager) as a build tool. I think it makes for a very lightweight and flexible option for any JavaScript (or front-end heavy btw) project.

As you might know I’ve written a couple of posts on the topic:

Read on ...

Review: #NoEstimates - the book


The #NoEstimates movement have lived a turbulent life on twitter. I guess that happens when you present ideas that challenges how we, as a collective, view the world today.

What’s funny is that after awhile, when the dust settles, it seems so natural and you ask yourself; “well, what was the fuzz about”. This is when the idea has got traction and maybe some of the early rough edges has been rubbed off.

My friend Tobbe puts it nicely;

One of those moments I think is when someone decides to write something (substantial) down to present compelling, practical, solutions to some of the discussions that’s been had so far.

The NoEstimates book is just this; a set of tools pointing towards another way of doing software development.

Read on ...

The metric / visualization pirate 'rules'


At my current client, the hospital RS Bungsu in Bandung, we are working a lot with metrics and visualizations. This has proven to have a profound effect in interest, focus and understanding for the entire staff.

During the last years a couple of “rules” (I’ll come back to the quote marks soon) has established itself. Based on our experience and feedback we have come up with a few guidelines that helps us to do better metrics and visualizations of them.

In this post I wanted to share our current set of “rules”. Hopefully this will be helpful to you and maybe even you can share your guidelines with me.

“This works for us” (™), “Your millage might vary” (™) and “Please see past the practice and look for principle that you might find useful in your setting” (™). All of those applies to this post.

Read on ...

How trust, kanban and a little structure changed a life today


I’ve seen many people change into something better over my years as a consultant. It’s beautiful thing - but I’ve never experienced something like that I witnessed today.

I was a small, small part of that change and I wanted to share the story with you. It’s a powerful testament to what capabilities lives in each human being that can be released if given the right circumstance and rooms.

Read on ...

Changes - reasons or the opposite


This is just a short post on a (in the western world) well-known topic. I think I read it first in Switch

People doesn't oppose change. People opposed being changed

Or maybe with more details, if you make a change without a compelling reason for doing so the change management will be uphill from day one.

I’ve mostly been the changer in this, but recently I was the person being changed (the changee?) and I wanted to share my experience and thoughts. So that I, at least, never ever does this again.

Read on ...

EADDRINUSE when watching tests with mocha and supertest


You are happy to meet me among the living. The error I’m describing nearly killed me with frustration, and if that didn’t happen I was about to help it by finish myself off.

No worries though - I found the solution. Hence I’m alive and can tell the story.

This is the error, that haunted me into the wee hours of the night, in all it’s glory:

1)  Uncaught error outside test suite:
 Uncaught Error: listen EADDRINUSE :::3000
  at Object.exports._errnoException (util.js:837:11)
  at exports._exceptionWithHostPort (util.js:860:20)
  at Server._listen2 (net.js:1231:14)
  at listen (net.js:1267:10)
  at Server.listen (net.js:1363:5)
  at Application.app.listen (node_modules/koa/lib/application.js:70:24)
  at Object.<anonymous> (index.js:10:5)
  at Object.<anonymous> (test/site.spec.js:1:73)
  at Array.forEach (native)
  at StatWatcher._handle.onchange (fs.js:1285:10)

I got that error from mocha when watching my tests with the --watch flag. But only when I ran that watching command as a npm script from package.json. Yeah, it was pretty complex to sort it.

Read on ...

Requiring the os - runtime-js


This is my second attempt to write this post. It’s not that the post itself is hard to write but the concept makes my head … go ouchie. That tend to happen to my head when I see potential quantum leaps.

Instead of the fancy intro I had planned, I’m just going to give a short introduction, point you to an awesome article, tell you how to get this to run.

So what is it then? Basically runtimejs is a tiny, unikernel OS that you can bundle together with your application, as a dependency to your application. Which is basically what a OS is, right? Our application needs some libraries like koa, a runtime-platform (like Node) and an OS (like Linux) that the platform can run.

What if that last part just was a dependency like normal to our application? Like this:

"dependencies": {
    "a_small_little_os_just_for_me": "latests"
}

That would be so cool. Let me show to get that to work for a Koa application

Read on ...

The forced swing in my garden... and coaching


The other week we put up a thick rope to use as a liana, al á Trazan, for our kids. Extremely simple; just a rope, and I made a big tangled knot at the end. You can see my kids use it on the picture to the left. They loved it.

Then one day one of our neighbors, that often help us and stops by - nice people, came by. He looked that the rope, saw my kids struggling to climb it and said:

you know... it should really have a plank or something at the end so it's easier for them to stand on.

I said: Nah… this is good enough for them. They are enjoying themselves plenty.

Two days later …

This is a post on coaching, asking before helping and not improving things that works fine.

Read on ...

The Lars-principle


Today I had a session with the management group of one of our hospitals. We ended up talking about how to choose what we’re going to do next. Questions like; “but how can we know what is best”, “there’s so many things to do” or “everyone have a different opinion” were discussed during and after the meeting.

I was reminded of a tip from a colleague and (to me) mentor from way back, Lars Littorin. I was complaining about so many things to do, not knowing where to start etc. His answer:

Great! Then you know exactly what to do; make a list of the things you need to do, and then start doing one of them.

There’s much truth in there. I think Lars is a great guy, but I doubt he knew how much use I have had from this single quote. Maybe, just maybe, he doesn’t even remember saying this to poor confused soul from way back

I dedicate this post to Lars, who helped me so much in the early stages of my consultancy. We worked daily and very closely between 2000 and 2005 ca.

Read on ...

Review: Nature by Ron Jeffries


Got a recommendation to read Nature by Ron Jeffries and I did. What a read! I loved it from the get go.

My short review is quite simply;

“This book made me think. It left me with more questions than I had going in. But better more concrete questions. Seeking simple(r) answers. Also it’s sprinkled with challenges and gentle provocations of the current state of mind and process.

The underlying principle ‘Simplify it’ is something that resonate very deeply with me. I recommend anyone doing, struggling to do or thinking about doing this thing we call ‘agile’ to read this book.

And then give a copy to every important person in your organization.

Thank you for a great read!”

Read on ...

Indicators; leading, trailing - short or long


This is a just a short post, mainly an idea that I can get out of my head.

I’ve been helping the management team at one of our hospitals to come up with something to track our progress against. The main question was actually quite simple:

How would we know if this hospital is awesome?

We came up with a couple of balancing scores that we will take for a spin in our first experiment round. The idea is the these values will guide our actions - if we can make things that improve the values (one or more) it’s a good thing. In the spirit of balancing scores we are keeping track on more than one to make sure that we’re not tilting our efforts toward, say only financial values.

Hmmm… need to write some of those ideas down, maybe. Ok - now to the topic of this post:

In talking about the targets we mentioned leading and trailing indicators, the difference between them and I had a little personal revolution about the difference and usefulness of both kinds.

Read on ...