March 2012 – Backbone.js

Details 

Backbone by Paul Garland, on Flickr

Backbone by Paul Garland, on Flickr

Date: Monday 26th March 2012

Time: 7:15pm start to 9:15pm

Location: http://themorrismanpub.co.uk
Google Maps: http://g.co/maps/ptzt5

Theme: Practical Session

 

New Venue

Please note the new venue. It’s our second meeting at The Morrisman. Follow the links above for further information.

At last months meeting, we sampled a selection of the menu and found it to be delicious and excellent value. The beer was pretty good too.

Backbone.js

In the modern web, great usabilty is vital. I believe Ed Yourdon (@yourdon) recently suggested that User Experience is as important a differentiator between websites / services as Transactions Per Minute was in the 90s.

Users are getting more sophisticated and more demanding. Web developers are embracing and pushing the boundaries of client side scripting to:

  • improve responsiveness
  • increase scalability
  • enable great user experiences

This has provided difficulties in the past, Javascript has had it’s challenges – accessibility, performance, cross browser issues and lack of suggested architectures. There have been some great libraries (Prototype, jQuery) to address some of these concerns. I’ve still struggled with how to apply consistent structure to Javascript heavy applications.

Several months ago, I watched Single Page Apps and the Future of History by Michael Mahemoff. It’s a great intro to the subject of Javascript centred web applications and the idea of client side templates, hashbang uri’s and frameworks like Backbone.js.

In this practical exercise I will introduce Backbone.js using underscore templates. Some Javascript knowledge is assumed but we can pair up accordingly. Also, please bring laptops with your favourite Javascript/html/text editor. I’ll be uploading the exercise to GitHub later this week, but will also bring the exercise on a memory stick.

Lightning Talks

As yet (usual!) 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.

Hope to see you there,
Paul Williams

 

February 2012 – Coding Golf

Details 

Golf Balls

Golf Balls by walknboston

Date: Tuesday 28th February 2012

Time: 7:15pm start to 9:15pm .

Location: http://themorrismanpub.co.uk
Google Maps: http://g.co/maps/ptzt5

Theme: Practical Session

New Venue

Please note the new venue. It’s our first meeting at The Morrisman. Follow the links above for further information.

When I called in, the menu and food being served looked excellent. The beer was pretty good too.

Coding Golf

Shaun Finglas has kindly offered to run this months session. His proposal email was as follows:

My proposal is simply Code Golf. We’ll spend an hour (ish) solving a fairly trivial problem in the style of a kata as normal. The twist is you must then refactor your code to an extreme level so that you can solve the problem in the least amount of characters possible.

Rules:
- The code must compile/execute
- You can use any language you want as long as you can accept user input/display output – think simple console application
- The code must implement the required functionality

The challenge will be revealed on the night so there is no prerequisites apart from laptops. The more laptops we have the better. People can work solo/pair if they want but as long as we have enough machines we should be fine.

“Golfing” real life production code is not something you would want to do, but I’ve found Code Golf challenges very fun, and they show just what sort of merciless refactoring you can do once you have a good suite of tests to back you up. These sort of challenges are incredibly hard without a good suite of tests, so you can often win over people who maybe do not see the value in unit testing production code.

Lightning Talks

As yet (usual!) 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.

Hope to see you there,
Neil Kidd

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

September Meeting: Systems Thinking Games

Details

Date: Thursday 29th September

Time: 7:15pm start to a 9:15pm (doors open at 6:30pm and close when the games have finished).

Location: http://www.pieandale.com

Theme: Systems Thinking

Systems Thinking

Following the excellent talks from Kevin Rutherford and Harriet Shannon in June we’re continuing to think about how teams and environments can be improved by considering how things influence one another as part of a whole. The practice concentrates on viewing complex problems as larger systems rather than focussing on the individual components out of context. It’s all about relationships, philosophy and common sense – much like the topics we’ve covered already at Agile Staffs. The topic is vast and is best discovered over time, rather than via my bumbling summary here. There are plenty of online resources and even a user group in Sheffield. We’ve covered some aspects before (Theory of Constraints, Lean) so this meeting should give us all a good understanding of the basics, giving us the opportunity to go away and learn more.

Playing Games with Ash

Our speaker for the evening will be Ash Moran, a software developer, agile coach and user group regular from Stoke-on-Trent. He provides advice and training on these matters too through his company Patch Space. He is an ex-colleague of a few group members and we’ve been planning on having him pay us a visit for some time. I’m not entirely sure what his plans for the meeting are but I know they are going to involve some games. These will likely be in the form of interactive exercises to illustrate the various concepts, much like the dice game exercise we did with Kevin. I’ll update this when I know more, or I might just leave it as a surprise…

Bring Your Friends

As the meeting will have a less technical theme than recently it is a great opportunity to bring new members, bring your boss, or even your non-computery friends as Systems Thinking has been widely used in all manner of contexts. By the sounds of some of the games (Ash asked me how much room we’d have!) we could do with as many people as possible too. Information for new members can be found on the New Members page.

 

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.

July Meeting: Back to TDD with a Lean Code Challenge

Details 

Pineapple Bike by gipukan

Date: Monday 25th July

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

Location: http://www.pieandale.com

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.

Requirements

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.

 

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.

May Meeting: Software Craftsmanship

Bombe at Bletchley Park © Bletchley Park

Details

Date: Tuesday 31st May 2011.

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

Location: http://www.pieandale.com

Theme: Software Craftsmanship Round-up

Software Craftsmanship

The analogy of software development as a medieval style craft will romanticise our profession but it also provides a keen set of principles that will ensure software produced today will be used and evolved well into the future. The movement has been popularised by the likes of Uncle Bob Martin, Corey Haines, and, particularly in the UK, Jason Gorman. It is Jason Gorman that organises the Software Craftsmanship conference at Bletchley Park which is the main European conference on software craftsmanship. The attendance is limited to around 120 participants and demand always outstrips supply. This year though Agile Staffordshire will be represented by 8 members –  4 of which also attended last year.

A call to action by Jason Gorman at the end of last year’s conference urged us all to go out and spread the word about high quality, well tested, communicative code in well designed and usable software. This, coupled with the upcoming conference and the release of Uncle Bob’s follow up to Clean Code: The Clean Coder: A Code of Conduct for Professional Programmers, means now is no better time to talk about software craftsmanship.

The Meeting

Software Craftsmanship 2011 is on Thursday 26th May and the plan for the Agile Staffordshire meeting the following week is to bring as much content and discussion as possible back up the M1 and across the A50 (and down the A34). This does mean that those involved will have to come up with something over the weekend so we don’t know yet what will be discussed. The programme for the day is available on the SC2011 web site so please take a look and let the group know what you’d like to know more about – some people already have which is great.

The format of SC2011 sessions are a mixture of programming, discussion and talks so we’ll probably have a mixture of topics at the meeting – bring a laptop as we’ll no doubt be writing some well crafted software.

I’ll not be organising this meeting from the end of this week as I’ll be on holiday. My able assistants Neil Kidd, Shaun Finglas and Paul Barrett are all on hand via the mailing list for any queries or suggestions.

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.


Tag Cloud