XPday 2006 – Love in the age of Software – James Noble & Robert Biddle

These notes are taken from the above talk on 28th November 2006, given by James Noble and Robert Biddle. Pretty much free-form soundbites, which was the manner of the talk in some ways.

We now best now. Order is best. Modern is best. Perfection – Repetition – Iteration.

BUT Why do the robots lose to the humans? (There was a brief Kraftwerk tribute around this point).

“We did it right, but the customer didn’t get what they wanted”. A technical success, but a business failure.
The fault lies with us, not the customer. Like Narcissus, we fell in love with our own image, our technologies, our methods, our knowledge. We couldn’t bring ourselves to look to them, so glorious are we.

In the postmodern age, Agile is Love. The danger is that it becomes self-love, in whatever sense you wish to read that.
Acceptance means more than just passing tests. Agile does have human tests. Planning Games, User Stories, System Metaphor, the On-site Customer. However these are in danger of being overridden by our love of the more empirical, definable, understandable. Automaton, tests, only looking to see the green bar of success for our tests which we have written.

New ideas too! One day iterations! Whole team (no customers)! Executable user stories! Automated acceptance! 80 hour week! 3 Month Crisis! Career Change Counselling! All in action, all inaction, too automated, not human.

The Modern Language of Love – points to Shannon’s model of communication. That communication is information being transferred from the lips to the ear.

The Post-modern Language of Love – we’ve learnt to how to communicate from developer to developer. The information isn’t always getting delivered to its final destination. The job of translation is a trial and error process, almost akin to bartering. Ideally, recourse to a grand narrative should be forbidden, small narrative is a far better form. Our tools should aid the translation between developer and user.

We should meet each others needs:

The customer knows business and wants software. The developer knows software and wants business. It can be a beneficial relationship. The customer also holds a lot more knowledge than we sometimes recognise, sometimes ignore in the appreciation of our own reflection.

If you do not love your customer, you are not doing Agile.

So what did I think?

I’ve read colleagues and other blogger’s views on this keynote speech, and going on those and other views I heard on the day, it would be fair to say it got a mixed reaction. The presentation style was loud, and disorientating. If you’ve read any of the Head-First & Head-Rush books by O’Reilly, well it was a bit like someone reading one of those and all the sidebars and speech bubbles at once. Repetition and reinforcement of their points through a variety of means. It was interesting they used Shannon’s model for communication, as it also indicates that the main barrier to verbal communication is noise. I think this was the case in getting their message across to everyone in the room.

I’m interested in how they are identifying some of the pitfalls and problems of modern development, and applying methods of literary criticism to analyse approaches such as Agile and XP. It shouldn’t just be technical and project management views driving how these methods develop, in order to achieve their goals of providing the right product effectively, they need to ensure they are keeping the knowledge of the customer involved, and that they are being sense-checked in a wider sense.

XPday 2006 – An Introduction to Scrum – Joseph Pelrine

What follows are my notes on the XP Day talk given by Joseph Pelrine, on Tuesday 28th November 2006.

Scrum is nothing to do with software, it is to do with managing work.

In any project, requirements, technology & people are all changeable, all come with uncertainty. Scrum can manage and prioritise this complex domain. Joseph pointed to several non-software projects he had managed with Scrum, including his wedding (which was indeed delivered on time and within budget).

The waterfall method assumes requirements do not change during the project, encouraging a tendency to stuff in everything in one go, all at top priority. Scrum looks to not wait for all the requirements, but instead to look to deliver with what is known now.

Waterfall can actually work in manufacturing, you do know your end product, you know what is an acceptable level of waste (although if you look at the Toyota Method of Production you may well see this is not necessarily the best way). When you can’t can’t define things enough so that they run unattended and produce acceptable output, then control is through constant inspection and adjustment. The comparison Joseph made of these two ways was that of the flightplan made by an aircraft, compared to the way in which a large flock of migrating birds move. Apply, inspect, adapt.

Building the Scrum process

Start with a product planning meeting. Plan just enough to drive the first developer sprint to deliver product increment that provides business value. Requirements will emerge as the customer sees product increments. Refactoring of the design and product will cause the system and product architecture to emerge.

Scrum Master

They are responsible for establishing Scrum Practices. They act as a gobetween for management and the development team, and also a coach. A Scrum Master is the agile equivalent of an IT Project Manager. They should be outside of the team, although if the team is too small, the pragmatic approach is to adapt the role to suit.

Daily Scrum Meeting

This ideally should be no more than 15 minutes long, taking place in the same location every day. The aim is that everyone attending answers 3 questions:

What did you do since the last scrum?
What will you do before the next scrum?
Is there anything in your way which will help you achieve what you want to do before the next?

It is the Scrum master’s job to note and then sort any of the impediments raised in the meeting.

Scrum Teams

They are self-organised, with no roles. Responsible for committing to work, and with the authority to do whatever is needed to meet commitment. Almost like the “total footballers” of development. The ideal size is reckoned to be 5-9 people, not too big, not too small.

Product Backlog

This is a list of functionality and technology issues, maintained by the product owner. If there are multiple teams, there should still be only one list. Anyone can contribute to it, be it is the product owner who is responsible for defining what is going to be done, and when. Their decisions in terms of timing come down to their defining if it will be in this sprint, if it may be in the next, or is to be considered further down the line. The combination of the product backlog and the product owner that drives the scrum process.

The Sprint

A 30 day calendar iteration of development. The development team builds functionality that includes the product backlog, and meets the sprint goal. If the sprint should lose meaning along the way, it should be abandoned and restarted with a restated goal. 5-10% of the sprint should be spent researching ahead for the knowledge and information that will be needed to complete it, or further sprints.
The Sprint Planning Meeting

This should consider the following:

Items Processing Action

Product backlog
Team capabilities Review
Business capabilities Consider Implement
Technology stability Organise
Executable product increment

Sprint Burndown

This is a method of charting the progress of the sprint. It is designed to measure results rather than effort, and shows how much of the sprint is left to do each day. Each developer must devote a few minutes each day to updating the burndown.

End of Sprint Review

This is fairly self-explanatory, review the product backlog, and set the next sprint goal in the light of what was achieved in the previous sprint.

So what did I think?

I enjoyed it, very well-presented session. I think that compared to what I have seen of Agile and XP, it is a slightly more formal, heavyweight system. Obviously it has influenced some of the thinking behind both of them as well. It could be easier for a team entrenched in the Waterfall method of development to transition to this way of working, than say jumping across to XP.

XPDay 2006 – Programmers are from Mars, Customers are from Venus

These notes are taken from the above talk on 27th November 2006, given by Angela Martin, James Noble and Robert Biddle.

The bulk of the first half of the session was an extended planning game, with several elements of chaos thrown into the mix. The intention was to give us all a good idea what it was like to be a customer. From the reactions indicated by many, the feeling wasn’t exactly pleasurable.

The answer being proposed by Angela, James and Robert was to build a customer team, in some ways reflecting the XP development team.

The Customer Team

Geek Interpreter

Technical Liason

Political Advisor

Acceptance Tester

UI Designers – Programmers focus on the system model, UI designers focus on the user model to design the system image.

Technical Writers

Diplomat

Super Secretary – intimately familiar with the stories, writes them down and keeps them organised.

Negotiator – The on-site customer.

Most of these are meant to be roles, rather than individual positions. The ideal customer people should have people doing all of these roles.

The Customer Practices

The customers need to adopt practices to manage their relationships.

Programmer on-site – Get them to understand and respect their users, and to understand the context in which the software is used.

Customer Apprentice – Have a developer writing up their stories, acting as their secretary, attending meetings with users and stakeholders. Have them walk a mile in the customers shoes.

Programmer Holiday – Customers sometimes need to give the programmers a project holiday, perhaps give them an iteration where they focus on technical refactoring/debt.

Story Standards – Use a common template for every story. Remember that customers need reasonable time to get their stories right.

Show and Tell (Demo) – To the customer. Programmers can learn much from user/sponsor reactions to their software. Also gives useful material for sales and marketing to use.

Customer Pairing – Yep, just like with pair programming, it can be beneficial to have a pair of customers dealing with the developement team.

Customer Counselor – Provides professional support to the customers. Just as XP programmers should have a coach, customers need one too. Should be outside the project, and not a manager.

Look before you Leap – Do just enough analysis upfront to make decisions and set expectations. See also Agile, Lean methodologies for more of this. Maintain continuous analysis throughout.

Three-Month Calibration – After three months, projects usually realise that their eyes were bigger than their stomach. During this crisis period, productivity and morale can drop. Need to be upfront when this happens, and prepared for it, be ready to change scope and embrace change. Possibly similar to the lull you get after starting a new job, once you’ve had your training and got used to things, round about the same sort of time people often find themselves suffering doubts as they assess the job properly, before building up again to fulfil themselves in it.

So what did I think?

I think some people, including myself, were put off slightly by an over-long and somewhat chaotic exercise at the beginning (although as I said, the chaos was intentional). However the second half had a lot more meat in it, definitely worth looking at your relationships with your customers, and seeing if they measure up to this sort of ideal. Chances are you could be a long way short, and keeping some of these in mind could help.