Working remotely

Monday, May 11, 2009 8:45:22 PM (Romance Standard Time, UTC+01:00)
For the past three months, I have been working with the team in Copenhagen from Barcelona.
There is no business reason for this, it is purely for the experience. Now, there are some obvious disadvantages to working away from the rest of the team. Office smalltalk, while not necessarily directly related to the project at hand, really keeps you in the loop in a way that is hard to obtain over a distance. On the other hand, constraints foster creativity. A real problem is rare and hard to find - and extremely valuable. So if I can help produce problems by working from Spain, I will be quite happy :-)

So far, my random observations are:

1) Skype is amazing. Video conferencing is at a point where it just works. There are glitches and every now and then, the connection will die but overall, having a meeting with the Copenhagen team feels to me like I am present. Having a decent web camera really helps in this matter as having a high quality picture makes a very noticable difference. I bought a couple of Logitech Pro 9000 cams which deliver a very nice quality and frame rate.

2) Timezones matter. We run a very agile process with stand-up meetings every morning (okay, I don't actually stand up but that's because I am in front of the camera) at 9. This is always a good thing but it becomes even more important if you are located elsewhere, just to get in synch every day. However, such meetings are much easier when you are in the same timezone. And while Barcelona and Copenhagen are that, they are in different cultural timezones in the sense that the Spanish have very different eating habits than the Danes. I'm still working on adjusting my daily routine to fit both as well as I can.

3) A good thing about working remotely is that you can actually force peace and quiet if you need to. If I turn off my instant messaging, people can only bother me by calling me which they only will if it is very important. This is much harder to achieve if you are in the same office. We usually solve this by running synchronized Pomodoro's though. I will get back to Pomodoros and working remotely in a later post.

4) If you are already using version control and Google Docs or similar for your code and management, going remote is dead-simple! I was quite astonished to find that I could literally sit down in my Barcelona office and be doing normal work within 10 minutes. Everything works just as it does when I am in Copenhagen. I guess this shouldn't surprise me but still, it was a pleasant experience.

By Kristian Dupont

A simple kanban system

Thursday, December 11, 2008 8:34:49 AM (Romance Standard Time, UTC+01:00)

Last week I attended an Agile conference in Copenhagen. Among the speakers were David J. Anderson, who did a session on kanban systems. He told the audience the story of the kanban system used in the Imperial Palace in Tokyo, Japan. The Imperial Palace, is really like a big park with various buildings inside. I was in the park with my colleagues during our Japan 2008 Lean study tour last spring, and I remember being impressed with the kanban system used in the park, as a simple and truly elegant solution.

When you enter the park, which can be done at several different locations, you receive a little plastic brick. When you leave the park, you hand it back to the lady in uniform at the exit. My first thought was, that it was used to ensure that everyone got out before night. Interestingly that same answer came up at the conference when David Anderson asked the audience what they thought it was used for.

However, imagine a single plastic brick is missing when the park closes. Did someone loose their brick, or are they still inside the park? Should resources be spent on going through the park looking for them? With thousands of daily visitors, bricks will be lost probably on a daily basis, so it's not a way to ensure everyone gets out.

Instead it is a way to limit the number of concurrent visitors in the park. The number of bricks is limited to the highest number of concurrent visitors accepted. That means that the entrance booth may run out of bricks, and then stop letting more people into the park. They can start letting more people in when they get some of the bricks left at the exit. If a brick is lost? No big deal - that just lower the maximum number of concurrent visitors by one.

The concept is exactly what is also used in Lean manufacturing to control the amount of work-in-process. And of course it can also be used in software development environments to limit work to current capacity.

If you should ever go to Tokyo, I would highly recommend going to the park. It is quite beautiful.

By Sune Gynthersen

How many user experience experts does it take to change a light bulb?

Sunday, December 07, 2008 4:17:36 PM (Romance Standard Time, UTC+01:00)

Have you ever heard the old joke about how many programmers it will take to change a light bulb? -- None, it's a hardware problem.

After the following experience, one might think the answer above is the logic of HP -- the worlds largest provider of printers.

The other day I found my self in need of scanning a document. A company was asking me to fax a signed non-disclosure agreement to them -- Who has a fax these days anyway??

So I thought to myself, aha, I'll just scan the document with my signature on the HP PSC 2110 combined printer and scanner I have next door. Though I had not used the printer with my current laptop, I thought to myself, How hard can it be to get a bit of HP hardware running these days? (man, was I wrong...) I had already used it on my old laptop, so I set out with confidence on what was to become a quest longer than expected.

First I eagerly put the document in the scanner, and connected to it via a USB cable. Windows came up with "Found New Hardware" dialog. I nodded - Sure BillG, please attempt to find the right driver for me. Then confidence started dropping. Another "Found New Hardware", and another, and another, and another. Damn, how many different devices exists in this printer/scanner that needs drivers installed seperately? Well.. the number of dialogs wasn't really what scared me the most. The fact that some of them completed successfully while others said the hardware could not be installed successfully, concerned me a bit more.

Hmm... okay, plug and play -- yeah right. I decided to do it the ol'fashioned way. Pick the right drivers directly from hp.com, and install it myself. At this point I was yet to discover that the road ahead was to be filled with trouble and despair.

I went to Google and typed "HP PSC 2110 driver download" - And as anyone would expect I found the correct site in a few seconds. I clicked "Windows XP" as operating system and got a list of downloadable files. I scrolled to the "Driver" section. ...And stopped. I need to download a 166 mb driver?? You got to be kidding me HP! Though I haven't written a lot of hardware drivers I just know, that no hardware driver will even come close to 166 megs!

You would think that engineers at HP had tried Windows Update from Microsoft, which - though not perfect - features to ability to download, only whats needed, in the user's particular context. But no, some product owner guy at HP probably convinced everyone around him that users would rather spend their precious time downloading 166 mb of bloated irrelevant software (with photo viewing capabilities!! - amazing!)

Though shocked I convinced myself that if I just downloaded the driver, everything would work out just fine.

..30 minutes later..

I started the installer and for a second I was thinking ... "Hey, maybe it will just work right away". After a few moments the installer asked me to plug in the scanner in the USB port. And so I did ...and waited.... and waited... I went to pick up lunch, and came back 10 minutes later. Now it said that the installation was unsuccessful, and asked me to look in the readme file (only way out was an "Okay" button). What in the world should I look for in the readme file? Why was it unsuccessful? Why doesn't it just work...? I was all of a sudden feeling very tired.

I could see that the installer had put two shortcuts on my desktop. "HP Director" which I had no clue what might be, and "HP Photo & Imaging"... I clicked the latter, found a Scan button and clicked it. The program asked me to select a source... unfortunately the list of available sources was empty, though my scanner was plugged in. Hmm... great, a partial install.

..an hour passed, I tried back and forth but still wasn't able to scan my document and I gave up. I thought to myself, maybe I should just buy another scanner?

Looking back, I wonder if it is possible to find a vendor that takes software, drivers and particularly user experience more seriously?

I admit, that if had I bought a just-released-to-market, highly complex, all-new-technology piece of hardware - I might run into problems like this. But dammit, this is a printer and scanner, using technology that is 20 years old, running on the most common operating system on the planet.

Well.. the PSC 2110 is a couple of years old. So maybe HP is so busy releasing new printers that they don't update and maintain drivers for their old stuff? While this could be true... I certainly doesn't hope it is the case. Dear HP... users don't need new printers, they need working printers!

If I put my software background aside, and step into the world of my favorite fictional user, nice old Mrs. Jensen, it all seems even more bizarre. How on earth did HP expect her to figure this stuff out?

So dear HP - I got to say, you got one sceptic customer, to say the least. And I can't believe I'm the only one who is experiencing this. Why not seize this opportunity to tap into one of the most valuable sources of information -- user feedback. The guys responsible for maintaining content at hp.com seemed to get that user feedback is important. I guess otherwise they wouldn't have implemented an online feedback system. I got to admit that I found it a bit strange that they asked me to give them feedback about the web experience in the "driver downloads" section of their website. See for yourself: "Thank you for taking the time to provide this information. This will help us to provide a better download experience in the future."

I did consider writing "I'll give you feedback on the experience in 30 minutes, once my printer driver download is completed", but maybe they wouldn't get the irony.

Who gives a damn about the download experience anyway? I'm not the kind of guy that comes about driver download pages without an underlying reason, like wanting to scan a document. So why not ask me for feedback in the context of the whole experience, instead of "Is this web page useful?". I mean -- dear HP, you do not earn money from having a nice structured website. You earn money, marketshare and respect by understanding and helping users users facing problems - like "I need to print a document". So if I were to give you some advice based on this experience - ask yourself: "How can we solve the problems our users face, faster and easier than anyone else?"

I could talk for days about this bizarre experience -- but I'll leave it here, for HP or anyone else to comment :-)

Oh and by the way, yes - I did submit this experience through HP's online feedback system. Now the real question is whether those responsible for the drivers download pages, will actually forward it to the appropriate team inside HP...

---
What if there was just ONE file to download from the HP website, no matter which HP printer you had. A simple probing utility no larger than 500kb, which would probe your printer, download and install the right driver. And I bet it could be done with no more than a single click by the end-user. I wonder how that would affect the number of support incidents at HP.

By Sune Gynthersen

The Fourth Option

Sunday, November 30, 2008 8:21:22 PM (Romance Standard Time, UTC+01:00)
Reading the danish newspaper Jyllands-Posten today, I felt like writing a blog entry in a category we rarely touch on this blog. That is, commenting on political issues in Denmark. I was quite surprised reading that a recent study showed that infants born in Denmark in the year 2008, would during their entire life end up costing society more than they contribute. Naturally a problem, especially considering that Denmark already has one of the highest income taxes in the world (up to around 62% depending on your total income).

According to the article politicians are faced with only 3 options, to overcome this lack of balance between national income and expenses.
  1. Increase taxes       
  2. Make people work longer
  3. Cut budgets

Now, I would agree if the assumption of time spent working, directly affected the tax incomes at a fixed ratio. That certainly isn't the case. Let's try and shift the problem. Imagine if companies were able to become more profitable, they would then pay more taxes, hopefully to the benefit of the nation. All without picking any of the options above.

So what options do companies have at becoming more profitable?
  1. Increase prices on products and services
  2. Lower average employee salary
  3. Layoffs
Not surprisingly it looks a lot like the list in the top. Also, it has the same built-in assumptions.

It seems like a common misunderstanding that there is a direct link between time spent and value created. Does people that work longer create more value? Maybe, but not necessarily. It obviously depends on what they spend their time on.

None of the options listed above are particular popular, as they all have negative impact somewhere. But as I see it there is at least one more option, which is far more interesting. I am surprised that it is really so hard to see, that we jump to conclusions on time and value being part of a fixed equation.

The Fourth Option: Do more with less.

Sounds impossible? It's not. You see, working is not a goal - if it was, we could all just be digging holes in the ground and once done, we could fill them again. Value creation is the goal and work just happens to be a necessity in the process of creating value. By focusing on maximizing work, we are not necessarily maximizing the value created. Have you ever considered that much of the work we do today could be as value-adding as digging holes in the ground? And if that is the case, we have a potentially of increasing value creation, without working longer hours.

It makes you wonder, if doing work is not the goal why do we spend so much time talking about lowering unemployment rates? Unemployment is cleary related only to whether people work or not? I personally wonder why this nation have something called The Ministry of Employment? It should be changed into The Ministry of Value Creation.

I think it's about time we change focus from working hard, to thinking hard. I bet we could work towards unleashing the abundant source of human creativity, and surely we can find ways to add more value to our customers, our society and ourselves without working longer hours.

I'd love to hear your thoughts on this.

By Sune Gynthersen

One more thing about Estimation (and Planning)

Tuesday, October 14, 2008 7:55:49 PM (Romance Standard Time, UTC+01:00)
In a "Traditional"  approach to estimation a set of detailed requirements are analyzed, and from that analysis a solution is designed that will fullfill these requiments. We then estimate the time it will take for us to build that design.

If we do Agile development, we instead measure the relative size of each of a set of high-level requirements (e.g. in the form of User Stories). We then assign a conversion factor to the relative sizes of the User Stories, to be able to predict, when we can have what done. If we do not know how long time it takes, we can do a small iteration, and see how much we are able to complete in e.g. a week. We then use that knowledge to extrapolate from the whole set of requirements, to arrive at a delivery date.

If I am to choose from those two methods, I will greatly recommend the latter. simply because the detailed analysis and design, always misses something, and because it has an underlying assumption that nothing, or very little will be changed over the course of the project - thus the investment in the detailed analysis and design is justified. Anyone who has created software in the real world know that is never the case.

But both approaches treat estimation, as if the size of a piece of functionality or time it will take to complete it, is a real characteristic of the feature, and what we do in estimation is trying to find that hidden, true number.

I will call both these approaches Reactive estimation.


And off course there is something I will call  Proactive estimation. In this kind of estimation, the estimators acknowledge that creating a piece of software, is a creative process, where problems are solved on a daily basis, and that the level of teamwork, dedication, creativity and problem-solving skills are the factors that really determine the lenght of a software schedule. In this kind of thinking, a team will commit to deliver a product to a certain date, but they know, that what will be delivered, will depend on their ability to learn and solve problems along the way. The development process is then organized to accelerate learning, and plan  in a way that keeps decisions  open as long as possible. In that way the team will arrive at the best possible result at the given date.  Much the same way a play normally always will have premiere at the date that was planned months of even years earlier.

Does this sound to crazy to you? Maybe - but that is the way Toyota creates new cars, on time and with fewer resources than their competitors, and I am convinced that some kind of proactive estimation was used when the iPod and the iPhone was created.

By Bent Jensen

Solving Problems -- and looking cool at the same time

Wednesday, August 27, 2008 9:04:19 PM (Romance Standard Time, UTC+01:00)

"I'm Winston Wolfe. I solve problems."

Talking with my colleague Thomas Blomseth a while ago, revealed how we were both fascinated by the fictitious character Winston Wolfe, appearing in Quentin Tarantino's popular Pulp Fiction. Mr. Wolfe a.k.a. "The Wolf", played by Harvey Keitel, shows a remarkable sense of pragmatism during his work in the so-called "problem-solving" business. With his simple, yet highly effective, approach to problems he is able to earn respect in record-time, even from the most brutal criminals, while drinking coffee and looking cool at the same time. It just seems like a very appealing way to make a living.

If have boiled down The Wolf's problem-solving approach into this:

1. Calmly asses the problem
2. Perform necessary trade-offs
3. Implement rapidly

As I am a big fan of both simplicity and A3 posters, maybe I should post this universal
"Process for Problem Solving" on the office wall in the company.

Should you be one of the few who have not yet seen this movie, or does the name Winston Wolfe no longer ring a bell, I would recommend you to go and see it as soon as possible. Alternatively you can join the cult of Mr. Wolfe by viewing this flick http://www.youtube.com/watch?v=ANPsHKpti48

By Sune Gynthersen