What is agile?

About a year ago I got asked by my project manager to “just give a quick intro and overview; What is agile? 20 minutes or so…” That didn’t feel to bad – but when I got home and started to prepare it struck me; it’s really hard to sum up agile! For me agile has been become more a less a lifestyle and much of the things I argue for or fight against is about agile or being agile. And also, now that agile is 10 years old, the buzzword has gone into the next phase and almost anything good or cool that people does, related to software is branded with agile ™. Is TDD agile? If your not doing TDD are you not agile? Standups? Boards? The list goes on and on and I couldn’t come up with an intelligent answer. Either everything had to be included to be...
Read More

Applying the Switch framework to broken builds

I’m rereading a great book – Switch by the Heath Brothers and it inspires me. The last time I read this book it inspired me to write a post and it’s happening again. The book is about change, how to accomplish change and especially in situations where you are not in power or control. In short – how to talk to and influence others to understand the need for change and follow through on it. One very smart thing is that you can download a cheat sheet that contains the ideas in a nutshell – the Switch Framework – for free. Of course it’s not much use if you haven’t read the book, so you better do that first. Could very well be the best book you read. I thought I would apply the reasoning in the framework to a real life situation and see if I get any ideas...
Read More

Log4Net, RollingFile named by Date and the staticLogFileName setting

We have been chasing some strange logging bugs for a while in my current project. We are using log4net to do our logging and it works fine … until a couple of weeks ago. Some logging didn’t occur, in another case we didn’t get new files… The fix is, very simple, but quite surprising and I thought I’ll share something on what we did to fix it. We are using a RollingFileAppender and common strategy for how to handle the log files; we’re creating a new file for each new date. In order to achieve this we have set the following configuration: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: OK – nothing strange here really. And actually it worked fine for a long time. But all of a sudden we have ran into the problems I described above. The solution is simply to add the...
Read More

Creating a tools only NuGet package

I have started to help out in a new OSS project. The last one was SpecFlow and now it’s Pickles. Pickles is a tool that takes .feature-files from SpecFlow or Cucumber and turns it into a nice living documentation. It’s a great addition to SpecFlow. Ok – one of the things I have been doing in the Pickles project is to create NuGet packages for the project different runners and especially lately the PowerShell runner. This will be the main way to interact with Pickles locally, which basically means that you’ll just write a command in the Package Manager Console to generate the documentation frictionless. Later you will probably run it as part of your Nant or MsBuild build files. I learned a great deal about PowerShell and NuGet when I put that NuGet package together and since it was quite some time since I blogged I thought I’ll write...
Read More

What i learned from 'From User stories to Acceptance tests' with Gojko Adzic

I’ve just returned back home from a course. It’s the first course I’ve attended in over a year and I’m always amazed how much you can learn in a short time; if the course and teacher is good and if you engage yourself in the course. This time I knew it would be great since Gojko Adzic was the teacher and the subject was something that I find really interesting and useful - Specification by example. I would be completely impossible to write down even a fraction of all the stuff I picked up during the two days but I thought I stop at the main points and write down what stood out for me. As I’ve been following the BDD and Specification by example community intensively for two years I had quite a lot of knowledge on before hand - the main points I wanted to get out of this...
Read More

BDD and technical scenarios

I got a question from Sham (Shamresh Khan) that I thought was interesting and also common. So I thought I post my answer here in the public and maybe we all can learn a bit. Sham’s question was something like this: …some of my scenarios/examples, may be very technical (i.e. checking some algorithm for example). If I write these tests under a user story (using the Gherkin syntax), a business analyst will be able to see them which may confuse them as they try to work out what scenarios exist under the user story or am I wrong here? Maybe all tests should be visible under a user story? TDD and BDD This is really one of the things we struggle with when coming from using TDD for a while and then starting doing BDD. In my opinion BDD is more than anything a communication tool that helps all parts...
Read More

OreDev 2011 - day 3

Last day was great. I didn’t go to anything that was really bad and I had some real highlights with Dan North, Gojko Adzic and Mark Rendle on Zen standing out as the best. After a short and intense Lean Coffee I’m not sitting and waiting for the keynote with Jeff Atwood, who apparently just introduced himself and then went off the stage yesterday. Let’s see if he does the keynote himself today Jeff Atwood on StackOverflow Jeff did the talk himself (and talked fast, fast, fast!). He talked about how programmers need rules and likes to follow (or even create) rules. Take Facebook for example - who has a “list of their friends” at home. No-one! But a geek could understand social networks by creating rules around them. A list of friend for example. Huh - I didn’t know that Jeff Atwood did invent the game-ification part of StackOverflow by accident. By...
Read More

OreDev 2011 - day 2

As always - after the first day my head was just spinning. I was so tired that I slept before I hit the pillow. But today I’m feeling great again and am ready for another great day of learning. Dan North on Embracing uncertainty Dan North is one of my true heroes in our industry. I’ve learned a lot of the stuff that I’m excited about from stuff he written and spoke about. This is about embracing uncertainty - which seems to sit nice with the whole BDD - Deliberate Discovery body of knowledge. Here’s a few things I jotted down: Patterns of effective delivery (behavior patterns that is) How we turned the agile manifesto upside down nowadays The half-time of requirements - how long time before half the requirements needs to be rewritten “We would rather be wrong than be uncertain!” Christianity (!) and how faith become religion. Or values becoming rules and structure. And the...
Read More

OreDev 2011 - day 1

I was very fortunate to go to OreDev this year. It’s just a great show - I described it as a “free bar of knowledge alcohol for learn-o-holics”. I thought I’ll take a few moments just to jot down some highlights and stuff I picked up during my first day at OreDev 2011. This is mostly for me… but you can read it if you want. Jon Skeet on Async in .NET 4.0 I was late to the conference and missed the keynote, that I learned was awesome, and also late to this talk. Jon Skeet on the asynchronous features of .NET 4.0. I picked up some stuff though - most noteable I’ll check out the EduAsync blog posts and code that shows of all interesting features. Aslam Kahn on Functional programming From this great session I picked up how Alsam had learned functional programming and how that changed how he...
Read More

SpecFlow.Assist.Dynamic–maxing out with Simple.Data

SpecFlow.Assist.Dynamic came about from my own need when I wrote something that used Simple.Data. I saw the power and simplicity (duh!) in Simple.Data by using dynamics. And I started to thinking on how it could be used in SpecFlow to further simplify and shorten up the code in my steps. This is the third and final post on SpecFlow.Assist.Dynamic. Again this is not the formal documentation. It can be found here. These are just my personal preferences and thoughts on how to use it. This time with Simple.Data. And it won’t be long. SpecFlow and Simple.Data First you should check out Darren Cauthons post on using SpecFlow and simple data together. It shows the great use of a lightweight, simple data access framework in SpecFlow. As I said in my earlier post test data management is something that you often have to handle in your scenarios. Simple.Data is more than...
Read More