Moving to Indonesia

Well the title really says it all, but there’s big changes coming for me and my family this autumn. We’re moving to Bandung, Indonesia to work at a hospital for the Salvation Army there. That statement may cause some questions to arise in your head. Let me see if I can foresee them?

Why?

There’s three big answers to that question and they come in chronological order. On my first date with Elin (8 years ago now, my wife since 6 years) she told me that she wanted to work abroad. In a “developing country”. That’s her life long dream and the reason she’s decided to become a nurse in the first place. Now the opportunity has come to fulfill that dream - and I get to be part of it!

Secondly: I have the Salvation Army to thank for so many things. Things that I use in my everyday life at...

Read More

Low WIP, Hairdressers, and Lean Operation Strategy

I was at the hairdresser yesterday. I’m not very particular about my hair, but it was starting to look a bit like this:

Dolph

When I want it to be more like this guy to the left.

The conversations at most hairdressers in Sweden are not very interesting, mostly due to the fact that I’m not interested in hair, particularly mine. So while I was seated in the chair, thoughts from some discussions on prioritization and flow for a team at a client came to mind.

Low WIP and flow are concepts that are well understood and often implemented at this particular client, but the implications of such a strategy were interesting. And, oddly enough, I saw some great strategies implemented at my hairdresser.

I sat down with some guys, and we talked about Mob Programming as they had read my blog post on the...

Read More

What if ... mob programming?

I’m back from AgileSverige, the premier agile conference in Sweden (IMHO), and this year was no exception. Or rather, it was—exceptionally great from where I sat.

One of the talks that really got me thinking was about mob programming by Tobbe Andeberg and Ville Svärd. Not the technique itself but rather the implications of such a team.

Mob programming is easy to do: put your entire team in a room, give them a single keyboard, and work together to solve the problem at hand. Then take the next problem. And so on. It’s like pair programming but for an entire team.

I’m not sure a team would benefit from mob programming all the time, but the concept got me thinking, thanks to the great presentation by Tobbe and Ville. What if… In this post, I’ll share some ideas and thoughts that sprung from that...

Read More

MVP is not another word for iterations - it's for learning

In recent years, the Lean Startup movement has gained significant traction. It offers a compelling framework for rapidly validating startup ideas. However, like many concepts, it’s often misinterpreted and misapplied. In this post, I’ll share some reflections on the concept of Minimal Viable Product (MVP) and its relationship to learning.

MVP

At the core of Lean startup methodology lies the scientific method, emphasizing experimentation and learning. The MVP, or Minimal Viable Product, serves as a vehicle for conducting these experiments. It’s not merely a delivery package but a tool for validating hypotheses and gathering insights from customers.

Lean Startup Feedback Loop

User Stories, MMFs, Themes, and Epics

It’s essential to distinguish between MVPs and other project artifacts like user stories, epics, themes, and MMFs (Minimal Marketable Features). While these terms often overlap, they serve different purposes and represent different levels of granularity in project...

Read More

Let's do something instead!

I’m surrounded by brilliant minds at work. Both at my company (Aptitud), at my clients and in my community. They make me think a lot and quite clearly thinks a lot themselves too.

But sometimes I think we think too much (cannot wait for the reaction to that contradictive sentence :)) - and we should do things instead. It’s in doing we learn and see how stuff work out and how well our hypothesis stands up to the reality that we throw them into.

Let me give you a few … well examples and ideas that have formed my thinking around this.

Getting to know new people

From http://redstarresume.wordpress.com

I have never been in a situation to hire someone - although I have done A LOT (50+) prospect interviews. This is a ridiculous situation; 1 hour with someone that I never have met and then asked if I think they...

Read More

Are you coding for change or stability - the followup post

In my last post, I shared two stories that got me thinking about what we code for: change or stability.

The post received unexpected attention, prompting questions that led me to reflect further. Here are some thoughts and answers to recent discussions:

Mindset vs Practice

My initial post didn’t emphasize the mindset aspect. Coding for change means anticipating future modifications and making them easy. It shifts how we approach coding, focusing on simplicity and adaptability.

Consider a thought experiment: imposing a constraint to rewrite code every few months. How would this change design, coding, testing, and documentation practices? While impractical, it prompts valuable reflections on code flexibility.

“WHAT WAS CHANGED IN THE GAME SPECIFICATION???”

A question from Reddit referred to a game development scenario where we introduced a new player feature. We adapted our code to accommodate this unexpected change, leveraging existing infrastructure and generic constructs.

Read More

Are you coding for change or for stability?

Let me tell you a story: when I was in university I took an “advanced” object oriented programming course. This was my first exposure to the topic and I was lost big time. The course was taught in SmallTalk had a very different format; the first day we got an assignment from the professor that ran throughout the 4 week course.

We were very excited since we were going to write a game. An old-school text-input adventure game a la Zork. We teamed up three people in groups and went to the professors small crammed room. Here we got the instructions on a single sheet of paper. We almost ran out of there.

Just as we reached the door of the room he called us back (I’m sure he had time that call to perfection):

“Oh yeah, almost forgot. Two weeks from now I will come by and change...

Read More

Context injection of driver object in SpecFlow

SpecFlow is a wonderful tool. With a lot of hidden gems inside of it. I have been using and coding on it now for about 4 years and still I often forget about features and extension points that Gaspar and the community has put in there.

For example: did you know that there’s an inversion of control framework built right into SpecFlow? Now you do and in this post I wanted to show you one way that you could use that feature to make your step definitions more maintainable.

I found this feature (again, I had heard about it before) when Gaspar mentioned it too me after my presentation at CukeUp 2013 and the usage is part of “Pushing the HOW down” which I wrote at length on before.

The Context injection feature (as it’s called in SpecFlow) is one of those “just works”-feature and you...

Read More

Cucumber / SpecFlow pro tip - push HOW down

I’ve just attended my first ever CukeUp conference, that is given by Skillsmatter each year. It’s organized by Aslak Hellesøy that created Cucumber five years ago. It attracts a nice audience and community that share a lot of interest with me. For me it was extra fun to meet some of my heroes and friends that I’ve followed and interacted with for quite some time (Matt Wynne and Gaspar Nagy to mention a few).

As always at conferences the learning is plentiful, even though my focus and nervousness was at my talk for a few hours. I especially like Matt Wynne’s talk on Cucumber Pro Tips. There’s two excellent books (The Cucumber Book and Cucumber recipes) that Matt and friends has written that contains loads of tips and pragmatic hands-on descriptions for any Cucumber user. His talk was an extract from...

Read More

Limit WIP doesn't mean doing less

I’m coaching in an organization new to agile practices. This challenges my assumptions, like explaining practices I’ve taken for granted. Recently, a dialogue unfolded:

Me: You’re doing a lot at once here… Product Owner: Yes, but we’ve promised to finish a lot by [date]. Me: Why not limit your work in process (WIP)? It speeds things up… PO: What do you mean? We can’t limit work. We must complete this [pointing to board] now, as fast as we can.

I realized I missed explaining WIP (work in process) and why stakeholders aren’t concerned about it.

First, what’s a WIP limit? It’s a team agreement on how much work to take on at once. It’s flexible and guides our work to flow smoothly.

In Scrum, teams commit to work for a sprint, ensuring balance and commitment. WIP limits serve the same purpose—controlling how much work to take on at once....

Read More