VGTech is a blog where the developers and devops of Norways most visited website share code and tricks of the trade… Read more

Are you brilliant? We're hiring. Read more

The 5 Whys – how to solve problems by identifying the root cause

The art and science of asking questions is the source of all knowledge. This simple, yet profound quote from the late American novelist Thomas Berger illustrates the power of questions – questions can make the invisible visible and the unknown known. Just as a coin has two sides, questions and answers are also intimately linked; understanding the nature of the question often lead us in the direction of the answer. It is humanity’s ability and willingness to probe deeper – to keep asking questions – that has led to incredible discoveries about our own nature and the complexities of our world and universe.

Asking questions in a directed, systematic way can also be an effective and practical method for resolving problems or inefficiencies in the workplace. The 5 Whys technique is one simple approach that is gaining popularity. Originally developed by Sakichi Toyoda at the Toyota Motor Corporation many years ago, this problem-solving technique quickly became an integral part of Toyota’s production process, which is renowned for its successful performance improvement activities such as Kaizen, Lean and Six Sigma.

The main purpose of the 5 Whys technique is to identify the root cause – or set of root causes – that is at the heart of a given problem. As its name suggests, this technique is an iterative process of asking why a particular symptom is present until one has revealed a total of five underlying causes. At this point, a practical root cause of the issue should be identified. Here is one example:

Problem: Our hotel is receiving bad reviews on TripAdvisor this week.

1. Why are we receiving bad reviews on TripAdvisor this week?
Because guests are complaining about the rooms not being clean.

2. Why are the rooms not clean?
Because the housekeeping staff is not cleaning properly.

3. Why is the housekeeping staff not cleaning properly?
Because they do not have proper cleaning supplies.

4. Why do they not have proper cleaning supplies?
Because the housekeeping manager didn’t order new cleaning supplies last week.

5. Why didn’t the housekeeping manager order new cleaning supplies last week?
Because the housekeeping manager was on vacation.

In this example, it would be difficult to come to a conclusion about why the hotel was receiving bad reviews until one had a clearer understanding of what ultimately led to the bad reviews in the first place. The root cause in this example was the unavailability of the person in charge of ordering the cleaning supplies. Perhaps the hotel’s management next time around would be more mindful about this particular issue so that someone else could take on this task in his or her place. That would solve this particular issue, all other things being equal.

Of course, in the real world, finding an isolated root cause is not always so simple. Everything is connected, and there may be multiple root causes, interdependencies or complexities involved. Also, the 5 Whys exercise could lead to different identified symptoms or root causes, depending on who is involved in the process or when the process is initiated. New information could change the assumptions about the circumstance and may also lead to different root causes.

The key is to create a cultural atmosphere where questions are valued just as much as answers. Questions that reveal the nature of things often lead to better answers – answers that more effectively address the issues facing the organization. By having a better understanding of the dynamics between cause and effect, one is better equipped to make decisions that promote flow, while reduce unnecessary waste and friction.

Light introduction to Web Components


Web Components is a new set of HTML5 definitions that is currently only partially supported in the latest browsers. This article intends only to glance at the technology hoping that you might get a little insight into one of the biggest evolutional steps of future HTML development.


The pros and cons of Apples Newsstand, is it worth it?


Apple introduced Newsstand in iOS5 as a single location for users to gather all their magazine and newspaper app subscriptions. From the users perspective its a type of folder where all their news/magazine periodicals (that support Newsstand) are located. There is also a link to the Newsstand section of the App store where a user can discover new publications.

If you are publishing a news app you have the option to add it to Newsstand, before you do you should consider the advantages and disadvantages of Newsstand.

Node and systemd, bff!


Since Centos7 was released in July, a “nondesktop” distro(other than rhel7 ofc) is using systemd.
Like it, hate it or discuss it, systemd is here to stay.
As we have been discussing internally how to manage startup of nodejs apps, using monit/pm2/others has been alternatives, and now, imho, systemd is sailing up as the better option. And the main reason is KISS. systemd will already handle the rest of your stack, so why add more.

So how to use it? This is the simplest way.

Less is more


One of the things I remember the most from my first year at design school back in 2002 is the phrase “less is more”. The words originally came from architect Ludwig Mies van der Rohe in the early 20th century, and is the unofficial mission statement for the “minimalist” design trend. Twelve years later I can still hear the voice of my teacher explaining the importance of white space, contrast, typography and grids.  (more…)

NPM, Travis, Node 0.8 and the “Caret Operator”


If you have a node.js project that you want to have tested using Travis-CI, you may run in to a problem if you want to support node <= 0.8. The reason for this is the new caret operator, which was introduced in node-semver.

This module is used by npm to figure out how to resolve versions for your dependencies, and while it’s a great idea, it fails to work on older node versions without upgrading npm first. It’s actually fairly trivial to fix this, however. (more…)

Setting up a mobile device lab


It is becoming more and more challenging to test apps and websites on different devices, with different screen sizes, running different operating systems and with multiple browsers installed. How can you guarantee that your website or app works on every device and on every browser?

Nothing beats testing on the same devices as your users, not emulated or simulated versions of those devices. Physical interactions like pinching, zooming and scrolling, hardware features like the camera, GPS locations, the accelerometer, testing real occurring events like battery consumption or site performance are all best tested using physical devices.

The pursuit of perfection

Many see the aspiration for perfection as an unrealistic endeavor and a recipe for unnecessary strain or disappointment. Most of us know from experience that virtually nothing in our world ever reaches a static state of perfection. Yet, there are ways to relate to the notion of perfection that is both practically useful and inspiring. Think of perfection as a journey – a direction, rather than a final destination. The pursuit of perfection is a consciously directed process of continuous improvement. It serves as a driving force, moving the present condition in the direction of perfection – the desired goal. (more…)

Less code, more beer


So, a couple of months ago I quit my job of almost 8 years as a developer here at VG to start a micro brewery in my hometown of Fredrikstad, Norway called Ego Brygghus. Because of this I won’t be writing any more posts on this blog (unless I can write some guest posts about brewing beer in the future that is).

I hope you have enjoyed at least some of the stuff I have been writing about since we started. I’ll leave you with a list of some of the (still relevant) posts I have written:

So, until next time, cheers!