You are currently browsing the archives for the Software Craftsmanship category

From Chaos to Kanban

There’s always a great atmosphere and discussion at Agile Staffordshire whenever we have a guest speaker. February did not disappoint. Craig Judson (Operations Manager at Codeweavers) presented Kanban in general and then elaborated on how Kanban is utilised specifically for continuous delivery of software.

Subsequently, a vibrant and energised discussion took place on working practices and project/product management. It was great to have such a varied mix of disciplines and roles present to contribute; consultants, developers, academics and managers. It was particularly interesting to note how various people were adapting well-known techniques to their work place and teams.

Thank you, Craig!

Craig Judson discussing Kanban and software delivery.

Craig Judson gave a presentation on Kanban and how it is used to deliver software at Codeweavers.

Also in February, Rosie Anderson and Rebecca Mycock stopped by to introduce Outsource. While Agile Staffordshire is primarily a group to share experience, expertise and good practice it is useful to network and learn about jobs, careers and opportunities in the Industry. I am sure that we will welcome them again at some point in the near future. Students may wish to pay attention to our blog for news concerning graduate recruitment (as well as all of the great professional experiences they can learn about). Thank you, Rosie and Rebecca!

July – An Introduction to Functional Programming with F#

Date: Thursday 31st July 2014
Time: 19:00
Venue: Staffordshire University – Stafford Campus (Octagon building, K102)

F# is a functional-first programming language which helps you to tackle complex computing problems with simple, maintainable and robust code. In this session, Ian Russell will get you started on the road to thinking and writing code functionally.

If you’re interested, please sign up on

November 2013 – Brooklyn Beta and Testing with C

Date: Thursday 28th November 2013
Time: 7:00pm
Venue: Staffordshire University – Stafford Campus (K102 – the Octagon building)

Brooklyn Beta is a friendly web conference aimed at the “work hard and be nice to people” crowd. Trevor Adams, a long time member of Agile Staffordshire, attended the event and will be presenting a short talk on what happened and what it might mean. The fourth Brooklyn Beta happened during 9-11th October 2013 in Brooklyn, New York.

Later in the session we shall be refactoring some C code; an exercise that grew from a post-presentation discussion in October. To get the most out of the session, access to a C compiler will be useful. The code is available via a github repository.

September 2013 – Retrospective

Click for full size

Mind Map (click for full size)

Following some discussion on the Google Groups, and offline, we decided to do an ad-hoc group retrospective during Septembers meet up. We didn’t follow the normal retro questions – what’s gone well, what can be improved etc.

Rather, we brainstormed future session ideas, tabled the possibility of changing venues. We’ve been challenged on how to attract new members and speakers and pondered the symbiotic relationships between them.

We’re currently moving all the great ideas from a mind map into two Trello hosted kanban boards. The key areas discovered were future sessions and marketing – you will find a board for each area. If you would like to contribute to the boards, simply let myself or Neil know your Trello username and you’ll be added.

In particular, we’re moving back to basics with subject matter – more TDD, more pairing. In particular, more sessions on experiences – how agile does / doesn’t work. However learning evolves etc. Also, more lightning talks etc to promote collaboration and introducing new ideas.

As a tactical move to promote Agile Staffordshire at other community events, Neil and myself are sorting t-shirts to wear at Software Craftsmanship. Neil – order me a large!!

Finally we plan to get blog posts out earlier, with a session follow up post each month followed soon after by a post promoting the next session. We need to increase the volume and always welcome new members.


April 2013 – Ruby on Rails!

Ruby on Rails logo, on Flickr

Ruby on Rails logo by KSEltar (Wikimedia)

Date: Thursday 25th April 2013

Time: 7:00pm start (Please note time change)

Venue: Staffordshire University – Stafford Campus (K102 – the Octagon building)

Ruby on Rails

Ruby on Rails is a mature and well used web application framework. It’s ubiquity in startup culture has made it popular through its tool support and quick development support. However, it’s also received criticism on several fronts in terms of code quality, framework coupling and slow executing tests.

This session run by Paul Williams aims to debunk a few myths whilst presenting Ruby on Rails including:

  1. Demonstrating the original ‘Scaffolding’ approach to Rails
  2. Demonstrating a BDD approach to Rails development through Cucumber
  3. A discussion on some of the criticisms of Rails

This session is hands on, and a VirtualBox Ubuntu environment will be provided via USB stick. If you want to get your hands dirty, please install VirtualBox before the session – it’s free!!

Also, please note venue change. As many will know, we’ve had venue problems over the recent months, and we have provisionally booked a room at Stafford Campus – this will be confirmed as soon as possible, and broadcast on the Newsgroup.

Hope to see you there,


January 2013 – Refactoring legacy code

A little evening refactoring by joe.oconnell

A little evening refactoring by joe.oconnell

Date: Thursday 31st January 2013

Time: 7:30pm start

Venue: The Stafford Ale House

Location: Google Maps

Why Refactoring?

Well, a Happy New Year to one and all! Over the last few sessions, we’ve discussed The Alien Invasion project muted for 2013 – this project aims to change the implementation of the original Alien Invasion Challenge to support language agnostic clients. This will require reworking of ‘legacy code’ defined by Michael Feathers as ‘code without tests’.

To support this project, Paul Williams, suggested that we start 2013 with a smaller challenge to equip the group with the skills and some experience in wrapping legacy code in tests. This will then allow refactoring to be applied safely, without worry that functionality will be regressed…

The challenge

This challenge focuses on a legacy C# component with an automated build script but no unit or integration tests. During the evening, we will progressively get the code under test, at which point we will be able to change the functionality through normal TDD refactoring.

To ensure we all get equal input into the session and encourage communication and shared learning, the session shall be in the Randori Session Format – a first for Agile Staffs? This format also has the advantage of only one development machine being used, and thus there are no software or setup prerequisites for the session. The session will however use Visual Studio 2010 and Resharper to drive unit Tests using NUnit so any exposure of these would be advantageous but not required.


The code is available on GitHub and the presentation on Paul’s website. The code will be pushed back at the end of the session for reference. This will also provide the group with exposure to Github to be used for the Alien Invasion.


November 2012 – Kanban Introduction


Simple kanban board via Wikimedia Commons

Date: Thursday 29th November 2012

Time: 7:30pm start

Venue: The Stafford Ale House

Location: Google Maps

Introduction To Kanban

At last months meeting, due to technical problems, we didn’t get round to the Minisculus Challenge. However we did discuss the idea of extending the Alien Invasion project.

The catalyst of this project is that back in  June one of the ideas was that we should work on a project together. When we first tried the Alien Invasion we found that, due to a dependency on a client side library, participants were constrained to a .net implementation. In the discussion following there was a consensus that it would have been better for the clients to be language agnostic.

The intended outcomes of the project are:

  • To refactor the code so that it can be used via any web enabled language.
  • To act as the catalyst for discussions at our monthly sessions

It was agreed that Kanban would probably be a good fit for our project management needs, as it doesn’t specify fixed iterations. Additionally a number of the group, while being aware, have not used Kanban “in anger” so it was decided that this months session would be an introduction Kanban.

By happy coincidence Ash Moran is running a getKanban session at madlab in Manchester on the 24th November.  I’m very pleased to say that Ash has agreed to come in and run the “short” game play session for us. I will be going to the Saturday MadLab session and at the time time of writing there are still places available, join us if you can.


Hope to see you there


July 2012 – Refactoring Session

Courtesy of the daily WTF

Date: Thursday 26th July 2012

Time: 7:30pm start

Venue: The Stafford Ale House
Location: Google Maps

Refactoring Session

During July’s meeting of Agile Staffs the plan is to have a refactoring session.  The purpose of the session is to get everyone to take part in an exercise of refactoring some simple code as a means of encouraging discussion about the process and the many ways that we can go about it.

Everyone participating in the exercise will be starting from the same basic code base and may refactor it in any way that they please to improve the code.  There are some simple acceptance tests that verify the code is doing what it should.  Aside from that everyone may work on the code however they see fit.  The exception to this rule being the acceptance tests cannot be changed as they govern that everyone’s source code will still solve the same basic problem.

We have a couple of options for how the evening could be run, and I would welcome feedback as to what you think you would prefer.

Initially, everyone pairs off with a programming partner and begins to refactor the sample code, refactoring goes on for approx. 40 minutes, after which we all break for a discussion, where each pair takes a turn to describe how they have refactored the code.

From there we have a couple of options, assuming there is some time left.  We could either; continue with the refactoring from where we left off or, reset the virtual machines back to their initial state, select new programming partners and start the exercise again (as per the code retreat process).

The Environment

To make sure that everyone is using the same environment and starting from the same point, an Ubuntu Virtual Box Instance is available that contains an install of IntelliJ, Git and the proposed exercise ready to go.  Each participant will need a copy of Virtual Box and the Virtual Machine that is available via Dropbox.  The download is almost 7Gigs in size, so I will also bring copies of both the Virtual Box installs and the VM on the night but the process would be sped up greatly if everyone was prepared beforehand.

It is possible to download the image, spin it up in Virtual box to the login screen for Ubuntu to make sure it works and I would recommend that people do this so that on the night they can simply get the password and crack on.

Links to downloads:

Virtual Box:

The Ubuntu Image and Instructions:

The Exercise

I am going to keep the exercise itself as my little secret for now.  I was going to make something up, however a quick Google search turned up an exercise for which, the initial source, an ideal final source and acceptance tests are available so I have opted to go with this instead.  Firstly, because it was there and saved me from having to worry too much about providing something that was too complicated or too simple for two 40 minute sessions and secondly because it has an ideal solution that I will hold back until much later in the session as a kind of yard stick to see how we all did.

Anyway, the aim of the session is to have a little fun, have a lot of discussion and hopefully learn some stuff as we go.

In the meantime, if anyone has any issues getting setup or queries about the session, please email me at and I will try my best to help out.


In the meantime, below are some further links for information about in case anyone would like to brush up beforehand.


See you there



January 2012 Meeting – Space Invaders vs Continuous Testing

What it should look like with no glare [1680x1050]

What it should look like with no glare by DUCKofD3ATH

Date: Tuesday 24th January 2012

Time: 7:15pm start to 9:15pm (doors open at 6:30pm).


Theme: Practical Session

Space Invaders vs Continuous Testing

Paul Williams will be running this session, that he first took part in at the Software Craftsmanship Conference in 2011. Paul has since gone on to run this session at his place work, so he now has a fair bit of experience with it!  To minimise possible complications, we intend that the server will be run locally and connected to a wireless access point.

The description shamelessly taken from the original session description is (my emphasis):

A fun coding challenge to find the fastest way to develop reliable software, between: * Manual testing * TDD * Continuous testing. Participants will write code to defend earth from alien invasion. Score will be accumulated over 60 minutes depending on how many cities are successfully defended. Participants will be split into 3 groups, each representing a different testing practice. Scores will be averaged between the groups at the end of the session to determine some interesting statistics.

This session is for .NET developers only. Participants who wish to operate in the TDD group must have a manual test runner available on their machine that can run NUnit tests. Participants who wish to try out continuous testing are recommended to first try NCrunch on their machine ( ) – though there will also be some setup time at the beginning of the session for those unfamiliar with this tool. Visual Studio 2010 will be used along with .NET v4.0. A downloadable solution will be made available at the beginning of the session containing the code and instructions needed to get started.


Lightning Talks

As yet their are no volunteers for a lightning talk. If you have any topic you’d like to share with the group then you can have a 10 minute slot at the beginning of the meeting. Please email the group or mention it at the venue before we start.

See you there.

July Meeting: Back to TDD with a Lean Code Challenge


Pineapple Bike by gipukan

Date: Monday 25th July

Time: 7:15pm start to a 9:15pm (doors open at 6:30pm and close late).


Theme: Back to TDD (with a Lean Code Challenge)

Back To TDD

Following the session on the Software Craftsmanship 2011 conference, and then a great session with two speakers, it makes sense to get back to some programming, and use some of the examples picked up at the software craftsmanship conference.

Test Driven Development enthusiast and Agile Staffs member, Paul Williams, has volunteered to run a session from Software Craftsmanship originally created by Chris Parsons. It involves the building of a small shop checkout application for a fruit seller that has to expand quickly to meet customer demand. The increasing complexity and high pressure features that will need to be added mean that test driven, clean code should help you out – no-one says you have to test drive and refactor though, the only requirement is to produce the features in time. As this is in a TDD session, and being run at Agile Staffs, it might be a clue which approach should yield the most successful project outcome, but we just don’t know.

As ever, there will be some developers experienced in test driven development around, and there will be lots of pairing going on, so don’t worry if you are unsure about TDD,  just ask.


You’ll need your favourite development environment and the ability to write, run and unit test code. The “acceptance tests” of each stage involve typing in the fruit purchased to compare the expected price. Your application should have the ability to accept this input from STDIN, command line or a web interface. Other than that, you can use any language you like. We’ll have limited internet connectivity so please download anything you think you may need in advance. Again, for those PHP and JS types amongst us I’ll bring the licence code for PHPStorm so if you want to download and install the latest version in advance you can just register it at the meeting.

Lightning Talks

I’ve not had any volunteers for a lightning talk yet although this doesn’t mean we won’t have any. If you have any topic you’d like to share with the group then you can have a 10 minute slot at the beginning of the meeting. Either let me know via twitter, the email group or in the bar before we start.


Tag Cloud