One Hour Ahead

A couple of things have changed in the last three months and I also wanted to do something different, so I quit my job in Hungary, made a quick decision, moved to Finland and started to work for Ericsson Finland. I want to thank my old colleagues at Digital Natives the huge amount of help they gave me, while I was re-learning the web development. I got some great presents from them: a flashlight for the dark nights in Finland and a great solar toy set:

I learnt a lot about how to work closely to the customer, how to value time and money and keep the focus on the important things. Thank you folks again!

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)

Offtopic: The Different Meanings of Free

A couple of weeks ago, after watching Scott Allen‘s presentation about Modern Javascript at SPSE2012, I decided to learn Javascript. I quickly realized that knowing Javascript was not enough, I had to learn jQuery as well, so I started googling and found a great reference card at DZone. The card’s website had a button “download free pdf”, so I pressed it and instead of a download dialog I got this form: Read more »

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)

Cucumber JVM: Mocking

In the previous cucumber-jvm post I introduced dependency injection, which makes it possible to use mocks during testing. Usually, it is a bad idea to introduce mocks in cucumber scenarios, because they are supposed to test the whole system as it is, however there are cases when mocking comes in handy: for example, a module or component of your system communicates with a 3rd party system. In this case, running the scenarios may be difficult, and the best option here is to mock or simulate that 3rd party system so that your application or product can still be tested. Technically, it is really easy to use mocks with cucumber-jvm, but there are certain limitations, which you’ll see at the end of this post.

Let’s say that the munger functionality in our SimpleTextMunger application is a 3rd party system, which communicates through the network, but that network is not reachable from our test system. Here is the current code:

public String execute(String sentence) {
  List words = sentenceHelper.split(sentence);
  for (int i = 0; i < words.size(); i++) {
    words.set(i, munger.munge(words.get(i)));
  }
  return sentenceHelper.join(words);
}

In order to mock the calls of the munger object we need something like this – I’m going use mockito as a mocking framework:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
// ...
when(munger.munge(inputWord)).thenReturn(mungedWord);
// ...

Read more »

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)

Software Passion Summit 2012

Last Monday and Tuesday was really important to me, because I gave my first talks in front of an international audience. I was at the Software Passion Summit 2012 conference in Göteborg, Sweden where I was talking about how to measure and manage software development projects and how to make improvement steps in software maintenance projects. Both talks went very well, and I even got the large keynote room for my maintenance related presentation instead of the smaller room where I talked about measurements. The audience was really great, I got good feedback and questions. Thank you for coming and listening! Here are my slides:


Read more »

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)

Visualize the Flow on the Highest Possible Level

I gave an internal workshop about Kanban a couple of days ago, and the colleagues who were there looked enlightened when I mentioned that Kanban should visualize the whole process, because this is the place where it can help the most. Don’t get me wrong, it is also fine to have Kanban on the team level, but the real optimization and improvement should happen on the highest possible level. Since their reaction surprised me – I thought the goal of Kanban was clear to them – I decided to write a bit about the reasons. A little repetition won’t hurt.

The first core principle of Kanban says: “visualize the workflow” which means that we should make the steps of our processes visible so that we have a clear picture of what happens after the customer sent us a request and we deliver a product. In case of a small company where there’s a direct contact to the customer, and delivering the product does not involve a third party, the [work]flow can be visualized quite simply:

However, large companies tend to have complicated processes, and several teams are participating in the whole flow:

Read more »

VN:F [1.9.17_1161]
Rating: 10.0/10 (2 votes cast)