Working to the Cake-limit

When teams transition from an iteration-based (i.e., Scrum) to a more flow-based (i.e., Kanban) approach to software development, they often face three big risks: no planning, no retrospectives, and no celebrations. Which, when you look at it, just leaves work work work.

Exactly - I wouldn’t want that either.

In this post, I’ll show you a little trick I picked up to handle the last one: no celebrations. I know I’ve stolen it from somewhere, but for the life of me, I cannot remember where. Please enlighten me, and I’ll attribute you accordingly. [UPDATE] I picked this thing up from Joakim Sundén (see comments). Yet another thing he has taught me. Thanks, dude!

In iteration-based approaches to software development, there’s a natural endpoint, a goal for the current work: the end of the sprint or iteration. That’s one of the really great things about Scrum, I think. The little...

Read More

Getting Visual Studio 2012 Test Explorer to work with NUnit, xUnit, and SpecFlow

Yes, this is another “hey, this is a cool feature of Visual Studio 2012” post. If you know all about the new Test Explorer and how to get NUnit, xUnit, and by association SpecFlow to work with it - you can stop reading here. For me, it took a while to get up and running.

I don’t remember where I first read about it, but I remember that I was happy to read that Visual Studio 2012 comes with a new Test Explorer. What’s really cool about it is that it’s no longer limited to just MsTest tests, but can run NUnit, xUnit … you name it.

This means that my SpecFlow tests can be run from the new Test Explorer as well. You know, all SpecFlow actually does is translating the Gherkin lines you write into unit tests of your framework of choice. It should...

Read More

Summer sprints - a time to learn

Sweden is a great country! We even have laws that states that everybody has the right to five (5!) weeks vacation every year. Many people even have 6 or more. And most of us take at least 3-4 of them in a row during the summer - the best time to be in Sweden.


That’s all good but what happens at the offices do you think?

Well that’s easy to figure out. There’s no-one there. And since not everyone has vacation at the exact same time (normally) this can go on for about 2 months or more. This of course poses a problem for teams that want to work close together.

Even if you don’t have 7 weeks vacation in your country you may find the reasoning in this post interesting. I learned a lot when I thought about this (and from brilliant people I...

Read More

Great Visual Studio integration - another of the many reasons to upgrade to SpecFlow 1.9

This is a small tribute to a great tool. Mostly for fun but there are some great stuff in the latest release of SpecFlow. Check it out. And get the tool from the Visual Studio Gallery, but be sure to uninstall any previous versions first.

For more serious look on some of the code features, head over to Vagif Abilov’s excellent post.

Marcus enters the office. He boots up the computer and opens Visual Studio 2012. With a smile he thinks about that not only Vs2010 solutions opens nicely in Vs2012 but also the new release of SpecFlow works fine for both.

Where was he now again. There were something about the feature file. He opens it and due to the nice color coding of lines, Marcus is reminded of one of the steps that he didn’t had written a step definition for.


      <a href=Read More

Experience report from rolling out agile in a big (120+ ppl) organization

I just ended my biggest coaching assignment in my career. So far. It started in January and aimed to roll out agile in a organization of 120 (and then some) people – 60 on the business side and 60 on the IT-side.

I first thought of writing about how it all went down and what we did, but I then realized that I would reveal way too much about the customer and it’s organization.

So instead I’ll write about a couple of things that I’ve experienced and thought of. Hopefully you can learn something from this - I know I did learn a lot.

Let me first state that not everything in this article is based from experience from this one client. If you read this and work there; not all of this happened at your place. Know this - it’s the same at a lot of places where I’ve...

Read More

What BDD is all about

I got an email from a colleague a couple of weeks back. We were members of the same team for awhile this last autumn. He (and the rest of the team) are great programmers - way better than me. I had some difficulties to keep in step with them, but to some extent that had to do with F# being the language of choice. A first for me!

We had a lot of discussions about TDD and if it’s feasible or pay off. This project made me realize that TDD done backwards (writing unit tests after the production code) is not only NOT TDD but also doesn’t pay off. But as I am dunked deeply in the BDD pool I suggested that we’ve take a look at that and get started that way. I never got through there…

So I was very happy when he wrote me an...

Read More

System.InvalidOperationException No automation provider available MsTest and FluentAutomation

We’ve run into a little issue with FluentAutomation and using MsTest at my current client. I’ve blogged about the setup before but then I used NUnit and everything worked just fine. With MsTest… we had some problems. The first was an exception that was thrown to us like above:

System.InvalidOperationException: No automation provider available

It was a quite awhile since I’ve used MsTest and I’ve forgot about some of it’s quirks. With the combined help of Håkan Forss and Hugo Häggmark I managed to get this to work.

Scroll to the end for the short version, by the way.

The first thing that I had forgot was that MsTest uses a Visual Studio project template of it’s own. You cannot use the Windows Class Library template, but rather should use the Test project (under the Test-category).

Once that...

Read More

Find the control–a way to stabilize UI automation… a bit

I have been diving deep into automating web pages for my current client. I have a love – hate relationship with this. It’s quite cool but I would also recommend against using it. I wrote about why just a post or two ago so I won’t repeat it here.

In this post I will instead acknowledge the fact that we are going to automate against the web page and do our best to handle the brittleness of such tests. One challenge that you are facing when writing code to automate elements of a page is to actually get hold of the elements themselves. This is done in different ways with different automation framework, but typically you can search by Id (or other attributes on the elements), order in the page and position.

In this post I will examine those different approaches and suggest one way that...

Read More

Ask simpler questions–agile for non-techies III

A couple of years ago I attended a course with David J Andersson, father of Kanban, on Kanban. I learned tons of stuff that I now use everyday but one quote really stood out for me. We were talking about prioritization and how it’s often hard to get business users to put values on a certain item and thus making them hard to prioritize. David said:

If you get a bad answer you have to ask a simpler question

I think it’s brilliant. It’s actually up to us to help them be able to answer the question we want. So we have to help them understand the question better. (In this case you might ask them to draw a graph showing the possible revenue or cost or something). Since then I’ve been carrying this thought with me; ask simple questions. And then all of...

Read More

SpecFlow, page objects and FluentAutomation

I’ve been putting together a sample for my client on how to automate against a web page. The purpose is to show how the tools are used and give a starting ground for training and elaboration. When I was done I realized that this could be useful for many – so here is my story on how I set this up, problems I’ve ran into and solutions to them and the code. Please join me on the journey!

Why test against the UI now again?

The first thing to notice that testing against the UI is not the best thing you can do. There’s an excellent article on that by Gojko Adzic here. But sometime you don’t have much choice, the application may not be in shape for writing tests against a level under the UI, or you don’t have access in (or knowledge about)...

Read More