You are currently browsing the archives for the Agile category


January 2012 Meeting – Space Invaders vs Continuous Testing

Details 
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).

Location: http://www.pieandale.com

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 ( www.ncrunch.net ) – 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.

October Meeting: Lightning Talks and Kata

Details

Ka-boom (lightning) By Leszek.Leszczynski

Date: Thursday 27th October

Time: 7:15pm start to a 9:15pm (doors open at 6:30pm and close when the kata’s over).

Location: http://www.pieandale.com

Theme: Lightning Talks

Lightning Talks

The short format of a lightning talk means that we can fit a few in, while also leaving some time for some programming. We’re going to do just that for the October meeting and we’ve had the following topics and volunteers for quick talks, giving us a varied mix of content for the meeting.

Paul Williams – backbone.js

Paul wants to talk about a popular JavaScript “framework” he’s been using that allows you to organise JavaScript applications through models, views and collections, and provides binding between those three elements.

Trevor Adams – Teaching with TDD at Staffordshire University

Trevor previously presented to the group about teaching Agile methods and wants to give us some feedback from the ideas and practices that he’s tried out.

Paul Shannon – CQRS

Command Query Responsibility Segregation is a pattern originated by Greg Young that works on the premise of using a different model to write data to a persistent store than you do to retrieve the same information. This helps produce  efficient systems for read heavy applications and is the direction being taken by 7digital in their recent architecture changes.

Paul Williams – Frameworks

Paul has been reading about the varied use and timely use of frameworks and wants to talk more about this – vague I know, but it’ll be more of a surprise that way 😉

Paul Shannon – New Relic

If we have time, and if the internet connection works, then Paul will show off New Relic, a web app monitoring/analytics tool that breaks down web requests to a granular level – separating requests into page rendering, CLR/runtime execution, database calls, network traffic etc. This is currently in use on the 7digital API and live sites so Paul hopes to demonstrate the power of the tool by delving into some of the live data.

The Ordered Jobs Kata

Martin Rue recently posted a new kata he’d developed from a code problem he’d recently solved at work. He posted this on XP Manchester and has been adding completed solutions from various people as they have completed it in different languages. There are the usual suspects in terms of languages and even a few in SQL. You can tackle this problem at the October meeting in any language you like, using an test framework you like. As ever, there will be some TDD veterans at hand to help out anyone who hasn’t tried it before.

http://invalidcast.com/2011/09/the-ordered-jobs-kata

August Meeting: Code Smell Clinic

Details

Date: Monday 22nd August

Time: 7:15pm start to a 9:15pm (doors open at 6:30pm and close when we’re bored, or drunk).

Location: http://www.pieandale.com

Theme: Code Smell Clinic

Code Smells Presentation

Computer Scientists and Software Developers love analogies. You’ll find that the Agile fraternity love metaphors and double meanings more than any other breed of software developer. A Code Smell is one of the most obvious metaphors and comes from the instinctive reaction to bad smelling food – a primordial reaction to tell you that the food is bad, of low quality and should not be eaten. While smelly code might not poison you it can turn the stomach once you’ve honed your software craftsmanship skills.

We’ll begin the session with an overview of some of the more common code smells. Bring your argument hats, as some of these points are going to be controversial.

The Clinic

This will be a unique opportunity for you to take a step back and, along with the help of the rest of the group, analyse the quality of your code. We’ll identify smells, discuss how to fix them through refactoring and how to apply design patterns that would prevent similar in the future. For this session to work we will need code – don’t be embarrassed to bring in stuff you’ve been working on, stuff you’ve found, stuff you’ve seen – we’ll all work together to help you improve.

Language doesn’t matter, we’ll use Notepad++ to inspect the code – it doesn’t even have to compile or run. If you have a solution with some unit tests, even better, as we can verify our refactorings. Given the mix of people that usually attend hopefully we’ll see some C# web stuff, gaming code, PHP, JavaScript and good old smelly Java.

June Meeting: Flow and F1 In Paediatric Intensive Care

Intensive Air Flow © Paul Shannon 2010

Details

Date: Thursday 30th June

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

Location: http://www.pieandale.com

Theme: Flow and F1 In Paediatric Intensive Care

Guest Speakers

For the first time in a few months we have not one but two guest speakers (rather than members’ contributions). Our guests are both internationally renowned speakers and doctors of their respective professions.

Flow – Dr. Kevin Rutherford

Kevin’s experience in the software development industry and wealth of knowledge on the subject of Agile and related topics makes him the finest Agile Coach for miles around. He will be demonstrating the theory of constraints and the benefits of concentrating on batch sizes using a simple dice game. This great way of illustrating how agile methods can improve the flow of your value stream and make your work life easier and simpler is not one to miss. I’d recommend that everyone at your organisation should attend this talk as it has relevance in all areas of business, and is a great way to convince senior management that agile methods can work in your organisation.

F1 In Paediatric Intensive Care – Dr. Harriet Shannon

In 2005 Harriet took up a post as research physiotherapist at the UCL Institute of Child Health to investigate respiratory physiotherapy techniques in intensive care at Great Ormond Street Hospital for Children.  Harriet’s PhD work focussed on the safety and efficacy of on-call physiotherapy treatments in intensive care and she is now a primary tutor for the MSc Course in Advanced Physiotherapy at UCL.

Harriet’s talk, “F1 In Paediatric Intensive Care: Reducing Bottlenecks in Time Critical Environments”, comes from a partnership created at Great Ormond Street Hospital for Children between the intensive care teams and the pit crews of Formula One teams. Both environments require precision in preparation and planning with constant analysis of process speed and obstacles. The talk should give you a good insight into the observations and changes made in these time critical arenas, where a slow reaction could be a matter of life or death (and winning or losing).

Agile North

Following a successful presentation by Agile Staffs regulars Paul Shannon and Neil Kidd they managed to shamelessly plug the June meeting so it seems appropriate to point out the information for New Members to show any “North” converts everything they need to know to come and join in the Staffordshire Agile fun.

April Meeting: Test Driven Development

Details

Date: Tues 26th April 2011

Time: 7:15pm start to a 9:15pm (doors open at 6:30pm and close when the till’s full)

Location: http://www.pieandale.com

Theme: Test Driven Development

Talk

A short talk from Shaun Finglas about his experiences in developing a version of Pong using test driven development, object oriented design principles, CRC and dependency injection. He’ll show us the production and test code, and explain design decisions he’s made. Hopefully this will illustrate how Agile software development techniques can improve games development by reducing close coupling, driving a better API and promoting the correct level of abstraction.

Exercise

We’ll try and get 90 minutes for the programming part of the meeting so that we can try a kata with a few more issues to solve. Having discussed the best kata to use for this session with a few people we’ve selected “Back to the Checkout” from Dave Thomas:  

http://codekata.pragprog.com/2007/01/kata_nine_back_.html

This involves producing a supermarket checkout application that takes a number of price reduction offers. The exercise starts with a simple “scan” method that is called again and again when the checkout operative passes a product over the bar code scanner. The way the bill is produced is open ended, but the system needs take into account offers like “buy one get on free”, “buy two get on free” etc which are represented in the post as lists of SKUs (stock keeping units).

We’ve chosen this kata because the final solution has some interesting problems to solve regarding the coupling of the classes produced. As we’re still introducing TDD to some people I believe this will illustrate that test driving code can produce a better API with better separation of behaviour in addition to providing the benefits of security, communication and confidence to change that we have already seen.

March Meeting: Session Outcomes

March’s meeting themes were Designing an Agile University Course followed by a test driven development exercise.

Agile University Courses

Trevor Adams, from the Staffordshire University, presented the group with a short talk on the challenges of teaching agile based project planning and software development techniques. He covered the motivations for including content relevant to agile development and the problems faced when trying to incorporate this content in a course that has multiple aims. The conflicting forces that drive the content for university courses are:

  • Attracting students – this is why games specific courses have been more prevalent recently and Trevor pointed out that a course purely based on Agile development would be quite a niche choice and may not appeal to the mass of students
  • Industry – while companies such as Agile Staffs regulars iWeb and Codeweavers can see the benefit of agile development there are plenty of employers that require different skill sets. Trevor noted that concentrating on one particular area could disadvantage students as their skill sets would be less marketable on graduation.
  • Assessment – a university needs to ensure that students are learning new skills and that those that achieve a better understanding are compensated with an appropriate grading structure. Agile development requires a great deal of collaboration with things like pair programming and stand up meetings, so individual assessment can prove tricky. This, in particular, was the aspect that Trevor wished to explore more thoroughly and was the focus of a group work session he organised.

Facilitated by some well prepared worksheets we ended Trevor’s session with group work around the actual planning of a university module. We are invited to design the module through aspects of topic, format and assessment. Having to actually consider this in depth raised some important questions, some of which the people from industry hadn’t thought about. Deciding on an effective assessment technique was the most difficult part of the exercise.

The more favoured topic for each group’s course was TDD with some element of pair programming. This is thematic with the current trend in topics at Agile Staffordshire and seems important to members in terms of continuing the spread of TDD and learning techniques too.

Trevor said that while he saw it as important for the rest of us to see the challenges he faces as a course leader when designing modules with agile content he also wanted to take ideas away from the session. He promised to attempt some of the modules we’d planned and would present feedback at a later session. We look forward to hearing tales his triumph and stories of the new challenges he has faced.

iWeb also posted about this part of the session on their blog: http://www.iweb.co.uk/blog/2011/03/iweb-work-with-staffs-university-to-design-course/

Test Driven Development Exercise

As this was the first classic TDD exercise the group had attempted we started with a video from Corey Haines. Recorded at the Orlando Ruby User’s Group in 2009 this performance kata is designed to last around 15 minutes and be performed over and over again. This notion of deliberate practise is taken from martial arts but is also analogous with how musicians practise using scales. By repeating the same steps over time you can adapt and refine your technique within a simple isolated problem. You can experiment more than with production code as the kata code is discarded at the end of the process so you are free to make mistakes. It also affords the opportunity to try different design decisions.

While the Corey performed the kata in Ruby we were left to choose any language we wished. I saw PHP, C# and JavaScript being attempted and everyone made quite good progress with the problem. One set of pairs were using two laptops to view one set of code being developed, so that they could see how TDD helped the code to evolve. The PHP camp had some problems with the first, basic tests as the typing style of the language meant that the “null” and empty string of the C# most of us were used to couldn’t be used as a default. This mean we could not force the next change by coming up with a test – eventually we opted for the quickest route to green and returned an unexpected string rather than null- this meant the test went red so we could solve the problem, refactor, and get on with the next test.

We were reminded that the test driven cycle is Red – Green – Refactor and I was attempting to walk about enforcing this like the TDD police. Most people took on this pattern well though and I think everyone saw great benefit in how TDD was helping them develop this simple code.

Slides and Additional Content

As always, I prepared a few slides for this session which this time included some additional content. If we’d had time I would have covered some of the outcomes of a similar session I attended at XP Day last year. The motive for that session was to design a whole agile course, including a fourth year for MSc. I summarised the topics discussed for the 1st, 2nd and 3rd years, and those for the MSc extension. There is more information on the XP Day page.

Here are the slides: https://docs.google.com/present/view?id=dg7kxgdk_156c5bgg6hq

March Meeting: TDD Exercise and Designing A University Course on Agile

Details

Date: Monday 28th March

Time: 7:00pm start to a 9:00pm (although doors open at 6:30pm and close when the beer’s gone)

Location: http://www.pieandale.com

Theme: TDD Exercise and Designing A University Course on Agile

Test Driven Development Exercise

Following feedback in the last meeting’s retrospective it was noticed that TDD is a central part of adopting a set of agile practices. Continuous integration, refactoring and high standards of code quality are all achieved more effectively with a suite of unit tests, and code that has been written test first. While some of these practices can be adopted without TDD it is a useful tool for anyone attempting to try a more agile approach to software development.

We’ll be undertaking a short exercise where we test drive a String Templater class based on a similar exercise performed as a prepared kata by Software Craftsmanship Journeyman, Corey Haines. Participants will need a laptop and the ability to write and compile/interpret/run code. This exercise will be language agnostic so you can choose the language you use every day, something you’re experimenting with or something completely new – the only thing you will need is a unit testing framework. A good list of xUnit based TDD frameworks can be found on http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks

I use NUnit for C# which is very similar to JUnit for Java. PHPUnit is another similar framework but SimpleTest for PHP is also adequate. Ruby and Python are popular options but for ease of use you could use JSUnit or QUnit for JavaScript and just use a browser to run your tests. There are even TDD frameworks for database languages, functional languages and XSL.

We’re planning to take TDD from the beginning so please come along if you would like to learn some basic TDD. Also if you have experience and would like to help others to learn then come along too.

Designing A University Course on Agile

Trevor Adams, long time group member and university lecturer at Staffordshire University, will be preparing a discussion to focus on items that people working in software development think that universities could teach while also providing ideas for how this could be achieved. Hopefully this will explore the topic that has been a talking point at most meetings so far as the guys from the university are keen to get relevant agile content into their modules while local companies want graduates with agile experience. If you have ideas, experience or opinions then please drop in.

Retrospectives

At the February meeting we ended proceedings in a truly Agile manner by inspecting and adapting the way that the group and meetings were conducted through a Retrospective.

For those who found this useful and want to take this away and try it elsewhere then here is the format we used:

  • Give everyone some sticky notes, a pen and 5 minutes to consider the following two questions:
    • What have we done well?
    • What can we improve?
  • Invite everyone to write down as many points as they want, one per sticky note, that answer one of the two questions.
  • Place the two questions (or a 🙂 and 🙁 will suffice) as headings on a whiteboard, a wall, a chart, a table – anywhere that is visible and accessible
  • Invite everyone to stick their notes under the relevant heading.
  • Once everyone has had a fair chance (5 minutes) to stick their notes and think of any additional points then get everyone to sit down ready for the next step.
  • Group any related notes together to avoid duplication.
  • Invite everyone to take a pen and place a mark, dot, circle, tally or cross against the points they wish to talk about:
    • Each person gets 3 votes
    • They can vote for any of the notes, including their own
    • They can place their 3 votes on any note, with all 3 on one if they wish
    • Allow around 5 minutes for this activity
  • Once everyone has voted you should see an order to the points that people want to talk about – take the top 3 notes as the topics that will be discussed.
  • Spend the remainder of your timebox (we used 30mins but at Codeweavers we generally use 1 hours) discussing the 3 top points.
  • Appoint a chairperson to control the flow of conversation and to ensure everyone gets a fair chance to speak
  • Appoint a time keeper who ensure that the 15 minute timeboxes for each point are kept to – this isn’t strict but ensure the timebox is not abused.
  • Try to summarise discussion into actionable points – two or three per point should allow you to complete these actions before the next retrospective. Some things don’t have actions, just the discussion is enough.
  • When the timebox is up, the discussion comes to a close and no further points are discussed – if a point was not discussed this time, and it reoccurs for next time, it is likely that it will get discussed. Only points that the whole group deem important will be discussed so no one person will get to dictate the course of improvement.

Variations

  • If you find that you don’t have time for 3 points, try just 2, or try extended your timebox.
  • If you find you are not covering enough items then try taking the top 5 – be aware though, that your goal is to raise actionable points from the issues raised, so ensure you only cover what is likely to be actionable before the next meeting.
  • Don’t make the timebox too long as people lose concentration and other stakeholders think you are wasting time in meetings. Keeping the discussion focussed and producing action points mean that other stakeholders (managers etc) can see the results of the meeting, and if you follow up on the action points, they can see the improvements being made.
  • Give it a go, if it doesn’t work, have a retrospective retrospective – what went wrong, what can you improve, what went well? Change the format, ask on the google group for suggestions.

Welcome to the New Agile Staffordshire Web Site

Hello,

I’ve installed WordPress so that we can use it to record meetings and blog about any additional topics or resources. After a rocky start with some hosting issues it appears to be working well now. You should notice the Google Group information in the side bar and hopefully some posts should appear here soon.

Let Paul Shannon know via the Google Group if would like an account.

For group information check out the google group http://groups.google.com/group/agilestaffordshire/


Tag Cloud