Anagram Kata (Strikes Back)

Date: Thursday 27th March 2014
Time: 19:00
Venue: Staffordshire University – Stafford Campus (Octagon building, K102)

March is all about code kata. We shall be visiting a kata that has been run before – Anagram! If you do not know what code kata is, start with Dave’s Blog and then read his anagram kata post.

We like change, so consider throwing some into this exercise (particularly those who have done it before). Some suggestions:

  • Profile the application, perhaps in both time (execution speed) and space (memory usage).
  • Consider intermediate list processing and storage (structure the word list).
  • Try TDD in a pair.
  • Complete Dave’s suggestions - For added programming pleasure, find the longest words that are anagrams, and find the set of anagrams containing the most words (so “parsley players replays sparely” would not win, having only four words in the set).

The word list we used last time is still available on my blog. Bring your own laptops and whatever programming tools you wish. Wireless Internet access and a desktop computer with which to cut code will be available should you require it.

I look forward to seeing you this March!

Lego Robots

Date: Thursday 27th February 2014
Time: 7:00pm
Venue: Staffordshire University – Stafford Campus (Octagon building, K102)

This month, LEGO ROBOTS! Andrew Seward (@MrAndrew) will show us how to bring together as one the two higher art forms of programming and Lego – an overview of what’s involved and why it’s such a great idea, and then we’ll get the chance to build and program a Lego robot of our own!

January 2014 – Kata with Constraints

Calculator Kata

Calculator Kata

Date: Thursday 23rd January 2014
Time: 7:00pm
Venue: Staffordshire University – Stafford Campus (Octagon building, K102)

With the new year now behind us, to kick start 2014 Agile Staffordshire will be going back to basics with a twist. A key technique in agile development is Test Driven Development (TDD), a difficult skill to master yet often practiced through simple Kata exercises. For the uninitiated, Katas are a reference to martial arts where students repeatably practice a set of moves in order to better learn and understand. Programming Katas are similar short 10-30 minute challenges where the goal is the same but each attempt can lead you to experience a different journey.

This month we will be pairing together to do the String Calculator by Roy Osherove but with a constraint of your choosing. Kata rules are below, as are a selection of constraints but feel free to choose your own. There is no set language, but you will need one with a testing framework for TDD.

String Calculator

The following is a TDD Kata- an exercise in coding, refactoring and test-first, that you should apply daily for at least 15 minutes (I do 30).

Before you start:

  • Try not to read ahead.
  • Do one task at a time. The trick is to learn to work incrementally.
  • Make sure you only test for correct inputs. there is no need to test for invalid inputs for this kata

String Calculator

  1. Create a simple String calculator with a method int Add(string numbers)
    1. The method can take 0, 1 or 2 numbers, and will return their sum (for an empty string it will return 0) for example “” or “1” or “1,2”
    2. Start with the simplest test case of an empty string and move to 1 and two numbers
    3. Remember to solve things as simply as possible so that you force yourself to write tests you did not think about
    4. Remember to refactor after each passing test
  2. Allow the Add method to handle an unknown amount of numbers
  3. Allow the Add method to handle new lines between numbers (instead of commas).
    1. the following input is ok:  “1\n2,3”  (will equal 6)
    2. the following input is NOT ok:  “1,\n” (not need to prove it – just clarifying)
  4. Support different delimiters
    1. to change a delimiter, the beginning of the string will contain a separate line that looks like this:   “//[delimiter]\n[numbers…]” for example “//;\n1;2” should return three where the default delimiter is ‘;’ .
    2. the first line is optional. all existing scenarios should still be supported
  5. Calling Add with a negative number will throw an exception “negatives not allowed” – and the negative that was passed.if there are multiple negatives, show all of them in the exception message

    stop here if you are a beginner. Continue if you can finish the steps so far in less than 30 minutes.

  6. Numbers bigger than 1000 should be ignored, so adding 2 + 1001  = 2
  7. Delimiters can be of any length with the following format:  “//[delimiter]\n” for example: “//[***]\n1***2***3” should return 6
  8. Allow multiple delimiters like this:  “//[delim1][delim2]\n” for example “//[*][%]\n1*2%3” should return 6.
  9. make sure you can also handle multiple delimiters with length longer than one char

Kata Constraints

Select ONE constraint from below.

  • No If, Else, Switch Statements
  • No mouse
  • No Classes
  • Use a functional language
  • No Mutable State
  • No Getters/Setters
  • No IDE
  • 2 Refactorings after each passing test
  • Single word method names
  • Or make one up yourself…

Many of the constraints above which affect the design of code, work towards improving object calisthenics. More on this can be found here.

The goal of the session is not to complete the Kata (you may even restart several times) but to learn through the experience of your selected constraint.

This will also be a special month, as it will be the last regular attendance of one of Agile Staffordshire’s founding members. Neil Kidd will be moving on to a new position at 7Digital, so all please wish him the best.

Hope to see you there.


December 2013 – Christmas Gathering

christmas decorations

Christmas-Decorations from

Date: Tuesday 17th December 2013

Time: 7:00pm

Venue: The Morris Man

Location: Google Maps


We have not planned a particular theme or activity for this meeting – simply a jolly good pre-Christmas meal and get together.

Hope to see you there,

Review: Brooklyn Beta and Maintainable C

Brooklyn Beta

A big thank you  to Trevor for sharing his brilliant talk on experiences at Brooklyn Beta earlier this year, which focused on web platforms delivering. It is really encouraging to see the move towards organisations exposing data allowing the creation of business that can deliver the real value of that data by matching the needs of those in the community. The event is highly recommended with further details on Trevor’s Blog, so if your interested in attending next year, watch out for details here  -

Maintainable C

We then moved onto Trevor’s C code used for stenography and discussed how it can be tested. The ideas presented for testing involved simple regression tests to ensure it was functionally working using shell scripts, then work on breaking down the single function into logical methods/applications that are effectively unit tested. You can contribute to the project at Trevor’s repository.


I’ll be sure to get a link up for the slides from Trevor shortly.

It was good to see new faces, and thanks to everyone for attending.

Next Month

The provisional date for next month is 17th December at Morris Man for the annual Agile Staffordshire Christmas Meal.


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.

Last month’s agile experience session with Craig Judson

Firstly, I’d like to thank Craig for an excellent October session on Codeweaver’s experiences with agile. It was our first session in a Staffordshire University lecture theatre so well done Craig for dealing with such an imposing stage, especially with the growing number of attendees :)

It was good to see this increase in newcomers and regulars – surely due to the combination of the interesting presentation, Cathy’s excellent work on publicising our group around the University and the site attracting newcomers.

Back to Craig’s talk (Development in an Agile Environment -slides) – he briefly covered the Chaos to Kanban era at Codeweavers which saw their development team and wider organisation transistion towards Lean service provision. Craig discussed their popular introduction to agile through Scrum, how using an agile coach (Kevin Rutherford) helped, and how agile means change to all stakeholders within an organisation. In particular, he introduced many to concepts like ‘work in progress’, ‘flow’, ‘feature switches’ and ‘SOLID principles’ which fuelled a healthy barrage of questions at the end.

9PM came too quickly, and the questions had to be interrupted temporarily while we walked / drove to  the Morris Man pub. On completion of the traditional ale purchasing, the questions and discussions continued for some time – another great Agile Staffs session.



October 2013 – Agile Experience Guest Speaker

Go to Codeweavers

Date: Wednesday 30th October 2013
Time: 7:00pm
Venue: Staffordshire University – Stafford Campus (Lecture Theatre 2 – the Octagon building)

This month we welcome Mr Craig Judson from Codeweavers Limited. Codeweavers are a local company, based just outside Stafford in Dunston. They adopted agile techniques in 2007, starting with Scrum and have continued to evolve their agile techniques ever since.

Following graduation from Staffordshire University School of Computing, in 2006, Craig joined Codeweavers as a developer and has since progressed to become an Operations manager. He has previously spoken at international conferences and BCS meetings.

Craig’s talk will discuss how Codeweavers have adapted agile techniques to fit their requirements. A taste of the topics covered are:

  • OO and behaviour
  • Code smells and ‘if’ statements
  • Continuous Integration and Source Control
  • Pair Programming and the Pragmatic Programer
  • Kanban and Single Piece Flow
  • University is only the first step!

As I’m sure you’ll agree, some of the topics could be controversial! Come along and see a hands on report.

Hope to see you there,

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.


September 2013 – First Contact

First Contact

First Contact

Date: Thursday 26th September 2013

Time: 7:00pm

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


Last month we continued our discussions and began creating the RESTful implementation of our alien invasion game with the creation of the game controller.

Continuing with getting the minimal feature set completed, this month we look to address the missing features to move us towards our first RESTful client integration.  The server needs to respond to requests for a wave and generate responses to a defence strategy. Once the simple implementation of London is working, we can then look towards multiple stages, persistent weapons states and teams.

Hope to see you there,

Tag Cloud