The Guilded Rose Kata

The Guilded Rose Kata fictionalizes the experience of working with someone else’s code. You’ll probably groan when you first see the code provided to you. The amount of code isn’t overwhelming, its the prefect balance to evoke the feeling, “I can’t wait to re-write this cruft.” It’s suggested that you use Test Driven Development with this kata. Once done, read the **spoiler** section at http://craftsmanship.sv.cmu.edu/katas/gilded-rose-kata to see if you had a similar experience or not.

The above link also provides versions of the kata in C#, Ruby and Java. Google provides other implementation in other languages too.

So, bring yourselves, your colleagues and your favorite IDE along and we’ll have some pain/fun (delete as appropriate).

Sharing Agile Experiences

In this month’s meet up, we will come together as agile minded individuals to discuss and share our experiences. This is to help plan and prepare lightning talks for next months Agile Staffordshire where we will share our thoughts with the latest generation of computing students. See you there,
Jon

September – Agile Discussion

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

Rally round all agile advocates, this month we are coming together to share and prepare ideas for next months Agile Lightning talks. Next month, with the new academic year under way, we will be sharing our experiences of Agile with a series of Lightning talks about what agile it means to us.

How does agile affect as a developer, designer, manager, customer?
So come tell us, what does Agile mean to you, and sign up at http://meetu.ps/2ywP92, bring yourselves and your colleagues.

F# and Functional Programming Wrap-up

Agile Staffordshire were fortunate to have Ian Russell talk to us about functional programming. Ian’s session on functional programming really got us fired up with something new. I was swept away with Ian’s abundant enthusiasm for the discipline; thank you, Ian! If you get the chance to meet Ian and discuss F#, I think you’d be wise to do so.

I find being a novice entirely satisfying. I really enjoy picking up a new language and playing with it. Every single breakthrough changes your world and feels like a giant leap in understanding. I believe to be quite addictive. I know some members of the group have had some experience with functional-first programming languages and felt obviously at ease with the differences to our usual weapon of choice – object oriented programming. Others were like me, arriving at the subject without any information. I know it is good to have a fresh perspective, but sometimes I think we need to organise sessions to develop fresh perspectives more often. There’s a big difference between appreciating other perspectives and having them. I left the session with a buzz, eager to figure out how I could use the material and make something real!

I look forward to our August session – The Gilded Rose kata. I apologise for tardiness of this follow-up post. I’ve been working (with agility) on getting my house to stop leaking into itself – it has been one of those months!

 

August – The Guilded Rose Kata

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

The Guilded Rose Kata fictionalizes the experience of working with someone else’s code. You’ll probably groan when you first see the code provided to you. The amount of code isn’t overwhelming, its the prefect balance to evoke the feeling, “I can’t wait to re-write this cruft.” It’s suggested that you use Test Driven Development with this kata. Once done, read the **spoiler** section at http://craftsmanship.sv.cmu.edu/katas/gilded-rose-kata to see if you had a similar experience or not.

The above link also provides versions of the kata in C#, Ruby and Java. Google provides other implementation in other languages.

So, sign up at http://www.meetup.com/Agile-Staffordshire/events/201606022/, bring yourselves, your colleagues and your favorite IDE along and we’ll have some pain fun.

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 meetup.com

June 2014 – Is TDD Dead?

Is TDD Dead?

Here lies TDD…

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

Fear not, TDD is not dead, although it’s certainly been talked to death this month. This catchy title has been doing the rounds on the web recently since the Kent Beck + Martin Fowler + David Heinemeier Hansson talks. This month we are going to take a look at it ourselves, try out some different approaches and share our experiences.

For me it all started about 2 months ago when I watched Ian Cooper’s talk on TDD, Where did it all go wrong. I’ve been told over and over, that unit testing gives you the freedom to change code with the safety of maintaining functionality for the customer. So refactoring is the process of changing code without changing functionality, and those like Kent Beck would advocate your test suites allow you to safety refactor to design patterns as they emerge in the system. Yet this video struck a chord, I struggle to refactor code without breaking tests, and so lose confidence that the functionality is unchanged as the tests are now different.  Ian’s video addresses these points by highlighting different approaches and definitions to unit testing, and asks is the way some of use do TDD slowing us down.

We are going to explore this issue by scratching an itch many of you had during last months lean coding challenge, Refactoring! After a quick summary of Ian’s video, we are going to pair up and refactor a completed C# implementation of last months Checkout Code Challenge. It will be covered by two test suites. One set focusing on implementation per method and another suite on behaviour of the system. After an hour of coding we will break for a retrospective to find out how everyone’s refactoring was influenced by the different test suites, the advantages each way of testing has to offer and insights into TDD for agile development.

As we’re going to be writing code in C#, bring your laptop with visual studio set up – Project Code on GitHub

If you’re interested, please sign up on meetup.com

See you there!

Jon Willis

Lean Code Retrospective

It’s great to consider concepts around a practical challenge. Lean code is best considered with a working example. It doesn’t take a complex/large problem to highlight the issues and this session hit home. Paul Williams gave a ‘lightning talk’ on Lean Code based on slides by Chris Parsons, and quickly got us in front of our IDEs and started the ‘Fresco’ challenge. To briefly explain, the challenge comprises a fast cycle of iterations (about 10 minutes each), where each pair delivers the requirements as per the specification and acceptance tests.

One might say the challenge is intentionally trivial, but it’s a great exercise because it neatly encapsulates many of the challenges in software development; especially in a rapidly changing context. Producing some code to address the problem was relatively simple, but how about the Lean principles? For convenience, I list the points that the group considered:

  • Eliminate Waste
  • Focus on value
  • Deliver fast
  • Decide late

The exercise prompted a valuable, albeit short, discussion of the Lean principles in regards to software development. In particular, where the Lean manufacturing and engineering principles perhaps do note related directly to software. Specific topics of note:

  • Waste is not simple to recognise/define in regards to software.
  • Development environment / platform / tools matter – especially version control.
  • Is there an upfront design / deliver fast trade-off? How would we know?
  • Context matters. Producing a car for a fixed and familiar environment. A car does not eventually turn into an aeroplane.

We have a lot to think about for our future sessions. Our post-exercise discussion could benefit from more time. We had a super turn out this month and some great ideas. I look forward to seeing everyone in June! Lean code gave plenty of food for thought.

May 2014 – Lean Code Challenge

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

For this month’s session, we’ve decided to re-run the Lean Code Challenge that was run back in July 2011. The format is quite simple – Paul will introduce 7 key Lean Software principles and their importance in software development. Following this, the code challenge will take an hour, although being split into six iterations, it really is fast and furious. Finally we will have a little retrospective about the challenge and what people have learnt.

As we’re going to be writing code, bring a laptop with your favourite language / IDE / compilers.

If you’re interested, please sign up on meetup.com

 

Open Data Institute Retrospective

Stuart Harrison, ruby developer for the ODI, introduced us to the ODI’s mission and how it facilitates ‘openness’.

I think for many Agile Staffordshire participants, including me, it was a great introduction to an organisation of which only the name may have been familiar. Stuart provided a spirited talk on the rationale for open data and shed some light on how open data has already gained some traction.

It is possible I am really late to the ‘open data game’, but I find the idea profound. I first encountered open data systems being realised during Brooklyn Beta 2013. Since then I have been interested in how applications can make use of available open data to overcome information hoarding. I think this is relevant to Agile Staffordshire, many of us being involved in software development for the web. How many great projects have stalled due to unavailable data; and particularly data that could really benefit society by being open, authoritative and reliable? Public information could be stored in several data stores, with no external access to the organisation responsible and with no arbitration or authority. Stuart explained the situation by way of a scenario involving an app designed to provide information on public transport.

The introduction to ODI provides Agile Staffordshire with a number of things to think about:

  • How can we become more open? Would it help attract more members if we were?
  • Could we make our projects open, inviting other interest groups to make use of the fruits of our labour?
  • Is there scope to making our event planning open? Again, some transparency may assist us with reaching more people in the local area.

Overall, for me the main message seems clear. Great software, great business and great people all seem to share one particular trait. They all create more value than they take. ODI embodies this principle and I think we are better off for their endeavours. Software that provides a great experience and service, but also provides opportunity for others to build on it and create value elsewhere is good for everyone.


Tag Cloud