Agile 2008

I thought I should write a quick note to say how excited I am about the 'stage' concept at Agile 2008.

"Agile 2008 has adopted the metaphor of a music festival that provides multiple stages to attract audiences with common interests. The stages within our program are designed and organized by experts (acting as stage producers) who are truly passionate about their particular areas. Each stage will have a feel of a smaller, focused mini-conference whilst providing the conference attendee with a wide choice of stages to choose from."

I will be helping out with some small aspects of Brian Marick's Designing, Testing, and Thinking with Examples Stage. This particularly appealed to me after my experiences with teaching, and fits well with the model used at the Sussex Creativity Zone (CETL).

"...it won’t merely accept the need for examples, it will glory in them as one of the primary ways we learn, teach, communicate, test, design, code, and decide how to act in the world. The stage is therefore open to any kind of session that puts the concrete example front and center."
and
"We encourage risky sessions. If your session has a chance to succeed spectacularly, we won’t mind that it might fail disastrously. The success of the stage will be more about how high the peaks were than what the average session ratings were."

I am rather excited to see how well pushing for concrete examples, as the logical step beyond experience reports, works in practice.

I don't know yet whether or not I can attend, but I really hope so.

It has a name...

Dilbert_2
You know something has passed the early adopters phase when it is again referenced in Dilbert... (Thanks daveph!)

Mentoring

After much thinking I have accepted the mentoring that is available to me as a CommercialiSE Fellow

Recently my old boss pointed out that I would gain a lot more focus on, and complete more quickly, my PhD if I had some clarity about what I was going to do with myself afterwards.  It is apparently a  great motivator, and can help with that little problem I have with trying to appease too many groups at once.

There were three clear options:

  • Go out get a job, make money
    • Appealing.  I have been a student or employed researcher for many years now, and money is suddenly something that I am aware I would like...
  • Do consultancy and/or build a business from the consultancy and any output from my PhD
    • Risky but potentially rewarding.  I lack a clear idea of how to develop a business from what I am currently doing, but have some entrepreneurship training.
  • Stay in academia
    • My original plan.  A relaxed and varied work environment that will tax me, and never bore me, for the rest of my career if I chose.  Academia is one of the few  true 'career' paths remaining these days.  I already have experience in research and teaching (even if I don't love the latter I know I am more than adequate at it).

I'm still not decided, but on meeting my potential mentor I realised that she was someone who would challenge me.  This is something I have been lacking recently, and the idea of someone who is capable of keeping me in check was fascinating.  As it stands any business I could build would not be scalable, but it may be that something could be productised over the next year and a half from my work.  We shall explore and by the end I will know whether this option is a workable one.

Our agreement stands: as long as I do the work.

Next I'll be venturing into the heady world of market analysis.

Agile SkillSwap

I had the sheer pleasure of giving a SkillSwap talk on agile with Tom entitled 'Agile: Iterating the Reasons' on 21st November.  As it occurred the day after XPDay, although shattered, there were a lot of arguments fresh in our heads.

I did the dry conceptual basics and Tom countered with the enthused practicalities.  It was the first time I had ever co-presented and it turned out to be a complete joy, together we could look at a subject from more than one angle and bounce ideas off each other.  I think it also gave a nicer pace.

I'd be curious to see whether much study has been done on co-presenting for teaching - I think there may be a strong parallel to pair programming.  Quality was improved, interest (at least on our side!) was maintained, and - as this type of presenting is much less draining - may be more efficient.  Teaching is exhausting, but much less so under these conditions.  Theoretically it may be possible to teach more classes under this model where the work is shared.

I loved doing this, and just hope that the people attending gained something from it as well.  Our slides are available on request.

XPDay 2007

This year I helped out with the organisation of XPDay - I had hoped to talk myself into a student volunteer role, but sadly ended up doing some actual work in advance (poster chair and working on various tasks such as conference feedback, student volunteers, t-shirts, flyers etc.).

I helped Karl Scotland re-run the coding dojo session that I designed for the Brighton Festival Dojo.  It was interesting to return to this with a group of professional programmers  rather than a mixed skill group.

I also got to attend a number of fun talks and workshops.

I think XPDay was a success all in all, despite the split across two venues.  The feedback gathered was positive, and I had a great time.

Next year I may consider submitting a session of my own, we shall see.  Either way we'll need to order more small t-shirts next time...

My photos are here.

Scrum Gathering 2007

I was happy that I managed to 'student-volunteer' myself onto one day of the London Scrum Gathering 2007.

Glad I did, as it meant I got to see some very interesting talks in exchange for some passably awful speaker introductions on my part (for day one of the Human Side of Scrum talks).  I also got to sneak out to attend Joseph and Jiri's "Why Scrum Projects Fail" in advanced of the re-run at XPDay.

I have a lot of notes from the talks that I am still musing through.  Some of it may yet help me with context for some of my forthcoming analysis.

My photos are here.

Leadership on Agile Projects

"Leadership that moves the emphasis from doing-things-right to doing-the-right-things is a better complement to agile methods than the detail oriented task management popularized by modern project management. Interestingly, project management (emphasising achieving things through task control) is a relatively new phenomenon based on Fredrick Taylor’s Transformation View of task decomposition (1900). Whereas Leadership (emphasising achieving things through collaboration and shared vision) is as old as human collaboration itself. "When the best leader's work is done, the people say, We did it ourselves." - Lao-Tzu (604 BC)"

The True Role of a PM on Agile Projects.

...with a cliff on either side...

"On the left is cowboy coding, aka hack-and-slash, aka "lost in the woods" (LITW if you need an XTLA). On the right is "plan driven". Agile is in the middle somewhere.

Actually, agile is really up a bit. There are two separate dimensions in play here, discipline and flux (see Agile Software Development: The Cooperative Game, 2nd ed.). Cowboy aka Lost in the Woods development is high in flux and low in discipline, plan driven development is low in flux and high in discipline. Agile development is moderate to high in flux, and moderate to high in discipline (for example, Crystal is moderate in discipline and high in flux, XPv1 is high in flux, high in discipline).

The point is that agile is (can be) the "middle-way". Groups fail when trying to implement agile because they either end up doing "lost in the woods" (absence-of-)practices, or plan-driven practices. Neither is right.

I was asked to name a Letterman-type top-10 list of ways projects fail in trying to be agile, and I found that my answers were mostly of the variety: "If you are straying to the left (LITW), the symptoms are these; if you are straying to the right (PDD), the symptoms are these.""

Agile development as the middle way with a cliff on either side (Alistair Cockburn)

Master?

I'm not sure whether I gained anything* from ignoring everyone's advice and going for 'certification'.  I think the class leader may well make a large difference in the course experience.

I can see why people are arguing for skill-based certification instead.  Two days training and I am a certified scrum master - without any checks of understanding or practical real-life application.

----

* Apart from gaining the confidence that I really did know and understand the area already and getting my name on the official roll of course.

Agile 2007

Agile 2007 in Washington D.C. marked my first international conference and my first time out of Europe.  It therefore could not be anything but an experience.

I was signed up as a student volunteer (again, I just can't seem to not), had a research in progress paper for Agile Narratives and an experience report on informative workspaces so it was set to be a busy conference.  I thoroughly enjoyed myself.

Icebreaking_2 Workspace

My photos are available here.

Visualising the Post-Mortems

Bugbash20070716_3

Brighton Agile Forum

Prompted by the interest that several companies and individuals around Brighton have expressed in Agile methods I have started the ball rolling on creating a Brighton-based agile group.  Much as I enjoy travelling up to London to attend XtC*, it would be lovely if there were such a group down here.  I think I would find it very beneficial and so would many others. 

So, I have started to set one up.

The idea is to build a Brighton Agile Forum community; through monthly pub get-togethers combined with the standard wiki and mailing list.   

It is very early days yet, so I am spreading the word to gather interest.  Anyone who may be interested should feel free to add information or re-write the wiki, sign up to the mailing list, spread the word, and generally get involved if they are interested.  (Everyone knows the drill.)

---

* Err, I suspect that should really say 'despite having to travel up to London I still enjoy attending XtC'...

Global Coding Dojos

At last there has been a move made by Brazilian developer/coach Ivan Sanchez to keep track of all the Coding Dojo groups worldwide, and actually form a community from our very disparate groups over a nebulous concept.

He has been getting in touch with people related with Coding Dojos around the world, trying to build a collaboration space for all dojos.  As ever a wiki has been created as well as a discussion list.  It is hoped that these will help all the groups to share experience and discuss how to improve and promote the ideas embedded in the existing coding dojos.

About time someone did it, so I am hoping it will work out well.   It will be very interesting to hear more about how the other groups run.

Help Him Stir Things Up

Rachel Davies recently needed to step down as chair of the board of the Agile Alliance. I’d proposed the following in response to my disquiet over the state of Agile as it moves into the mainstream, so someone suggested I run for chair on a platform of carrying it through. I did, and I was elected. I’ll be chair until August, and I take it as my responsibility to bring some derivative of this to a vote of the membership. We’ll be working on this proposal at the Agile Software Development forum. Help out, please.

Help Brian Marick Stir Things Up in his new role as chair of the Agile Alliance

On Rabbits, Space and Cards

I have finally got my act together and finished off my experience report for Agile 2007.  It is called 'On Rabbits, Space and Cards: Moving Towards an Informative Workspace' and I will be presenting it later this summer in Washington D.C.

I'm excited, as not only will this be my first time out of Europe, but it is also conveniently timed for leaving me in the states in time for Burning Man.  It is also a nice paper, and the only one I had time to produce properly* for the full IEEE proceedings.

It will be nice to finally have something published which focusses on the Nabaztag, Radio 2 and the joy of open-plan offices.

That will be the final of three conferences I will be attending (for talking about my research) this year: The Narrative Practitioner in Wales in June, PPIG'07 in Finland in July, and Agile 2007 in Washington D.C. in August.   Returning from that will also mark the time when I move into the depths of deepest-darkest data analysis - and will mark the start of movement towards the end of my PhD.  (Eek.)

---

* I have two more papers submitted for the Research-In-Progress workshop, one of which is about the work I have been doing for the Agile Narratives Project.

Brighton Coding Dojo Night

I have been so in shock at the Coding Dojo Night being over and done with that I have been very lax in posting about it.

Due to the generous sponsorship of the University of Sussex, Agile Alliance and Future Platforms we managed to create something quite special in a lovely venue.  We were able to provide food, plenty drink and prizes (books courtesy of Apress, and Sushi lessons thanks to Okinami). 

We had a badgemaker  (manned by Dom), thanks to the lovely resource centre, which allowed everyone to name themselves and give us a feel for the mix of programming levels present (people chose a colour badge according to whether they felt they were a novice, journeyman or master).

The night started with a Aikido demo (co-staring my brother and Tom Hume), and was then followed by a talk from Karl Scotland briefly explaining agile and the history of the coding dojos.

We then launched into our four groups of ten people to have a stab at programming in Inform 6. (Although Inform 7 would have been easier to pick up and had a nicer interface, we liked the very traditional style of Inform 6).

Each group worked together for an hour and a half to collectively create a text adventure game.  They weren't the most playable of games given such a short space of time to learn and produce, but they were fun to produce.  The code should appear here soon should anyone want to take a look.   

The photo pool from the night is looking fabulous as well:

Dojo3Dojo7Dojo6_2Dojo2Dojo4_2     

 


I'm really happy so many people came and contributed to help to make it such a great night.

Thanks to the lovely people at InQbate for helping set this up - and putting so much effort into making the venue really special.  And obviously thanks to everyone who organised this alongside me.

Sudoku and Agile

[...] there’s an important lesson to learn here: agile approaches are about software development, not about algorithm design. To be more precise: they are mainly about achieving software quality, not correctness. It’s the purpose of tests to help the developer maintain functional correctness - not to guide her towards a correct solution of an algorithmically non-trivial problem, such as Sudoku solving.

I think, this is a good example for the old saying “If your only tool is a hammer, every problem looks like a nail.”

How to not solve a Sudoku

This somewhat reflects our experiences with sudoku solving in the dojo.

Paperwork Saves...

But is all this paperwork, this structure, this procedure, a good thing? Not always. With structure come downsides as well as up. We lose risk, but how much, and how much agility and responsiveness do we also lose?

For this reason our production team are exploring more flexible approaches including Agile, and other lightweight rapid prototyping approaches for projects or clients that might particularly suit a different strategy.

The thing is paperwork doesn't always save lives. Most clients are like the rest of us - they want balance. They want substance but not overwhelming seas of mulched Norweigan timber. Sometimes however experience has taught me to spot a difference type of request. At its worst a client's hunger for documentation can hint at something else - a 'paperwork saves lives' culture.

Interesting post on paperwork from Will McInnes

Agile 2007 Experience

So, paper one (the experience report) has been accepted for Agile 2007.  It comes with a free place at the conference, which I shall sadly not be taking up as I .. want to be a student helper.

I now have two more papers to finish off for submission as research in progress papers - one for my research and one for Agile Narratives.

Once my current set of interviews are over I shall need to sit down for some serious writing time.

XPDay 7 Call

XP Day 7 is a two day international conference for anyone who wants to create software better. XP Day focuses on practical knowledge, real-world experience and active participation of all attendees. We welcome submissions from anyone involved in creating software, whatever your role.

That means you.

See more at the XP Day 7 Call for Proposals.

Simply Buy Tickets

Ticket sales are properly launched for the upcoming Brighton Coding Dojo night which will be held at the Creativity Zone at Sussex on 10th May as part of the Brighton Fringe Festival. Tickets are £3/£2 and the night includes a full buffet (making it a real bargain). 

Public, students and professional programmers are all welcome (although some knowledge of programming constructs is preferred).

Come and join us, and tell your friends.

Coding Dojo 11

The eleventh Code Dojo (my, this is starting to look well established!) was on 26th March at the FP Offices.  We continued Kata Four (Data Munging) in Java - looking at the second part of the Kata. 

It was good to have some new people attending (PiersCawley, GrahamCarlyle and MakotoInoue) and they helped instigate a lot of interesting conversation at this session about ways to address problems, Test-Driven Development, Up-Front problem discussion (as opposed to solving), refactoring, the limitations of Java, and applications of Agile. 

I almost wish I had taken notes. 

(Thankfully the session was recorded so I can just watch the video again at another time should I choose.)

As Dom puts it: "I learned an enormous amount from the interaction this evening. [...] Chatting  afterwards made me realise how I tend to be very focussed on solving the problem at hand rather than stepping back and trying to create something beautiful."

Revisiting Agile Fun

Ran another Agile Fun session for the folks at FP at the Pitcher and Piano - this time on office space. 

It was interesting to see what people came out with as the main features of an office to be developed.  I wasn't convinced by the idea of a giant fax machine in the middle of the office that would get in everyone's way, but that was what the customer requested.

AgilefunI think a different venue to the Pitcher and Piano may need to be found.  The table, and table service, is spot on but the noise levels can be problematic - and would cause problems for me explaining some concepts to novices.

More photos here.

---

I have since received my packs of XP Playing Cards in the post, which I hope to put into practice soon.

Agile Certification

While it might be nice that an employee has been trained in an agile practice, or has read books, nothing beats the experience gained by working on a team and learning for yourself. making mistakes, enjoying successes, and facing both with equanimity and humility.

Jon Kern on the Agile Alliance's position on Agile Certification

QCon - Post Conference Info

Post conference Info:

QCon wiki

QCon slides
QCon Flickr Pool

Key Takeaway Points and Lessons Learned from QCon 2007 - summary article based on blog posts about QCon, nice to be quoted.

Retrospective Loss

Very sad to have missed a workshop on Retrospective techniques being run by Diana Larsen and Rachel Davies - Had place, had train ticket, had directions, had to be ill all night.  Such is the way.

Sad to have been so ill I ended up in bed for two days - also missing XtC and an XPDay meeting.

QCon - Friday

It being my birthday I only stayed at QCon for the morning.  This was a shame in a way as this day had some of the most interesting talks of the three days.  It also ended up being one of my busiest as a student helper (although I did not get the chance to use the video camera again).

I got to run about and help with the Open Space Sessions being run by Diana Larsen - but sadly had no time to attend.  I got to see some very interesting talks from Joseph Pelrine and Dave Thomas (although given the numbers of people I ended up sat on the floor!).

I also had a 'twitter moment' - as I was asked what my twitter id was just as the lift doors closed on my way out back to Brighton.  I never had the chance to answer but I did get the chance to twitter it. Such is life.

---

Notes from talks (hoping I have them right now):

Joseph Pelrine:

  • (Sad to miss most of this talk - given he had props.)
  • Every time you put a team together they will organise in a different way.
  • Sensemaking involves Observation, Interpretations and Conclusion.
  • People may not even be playing the same game, let alone speaking the same language.
  • If you are doing Agile by the book you are not doing Agile.
  • Humans don't like to deal with rules - they don't do best fit but first fit pattern matching followed by some subconscious post-rationalising.
  • Process, Protocols, Ritual and Ceremonies can be both a reflection of culture and a buffer to human interaction.

---

Dave Thomas:

  • Novice - Needs to know when they are done.  Experts  use different language, they use metaphor and story.   Using Drefus Model to look at programmers.
  • You cannot treat people uniformly, different people have different needs.  There is no such thing as a 6-pack of developers.

Poppendieck Video

Competing On The Basis Of Speed:  Google Tech Talks December 15, 2006:

Companies that compete on the basis of speed create a huge competitive advantage. But going fast is not easy. Speed requires a precise understanding of value: who, what, when, where, how, and why people will love your product. And it means getting value to them without complexity creeping into either your product or your process.

Complexity comes in three basic flavors: 1. Inconsistency - Anything that is uneven, unbalanced, or irregular. 2. Overload - Any excessive or unreasonable burden. 3. Waste - Anything that unnecessarily takes up time, effort, space, or money.

All three flavors of complexity are rampant in software development processes, and you can't go fast until you root them out.

....

See also 12 Questions with Mary Poppendieck

QCon - Thursday

User Stories - Rachel Davies

Philosophy, stories and lifecycle of agile covered as an introductory session.

Agile aims to satisfy the customer - this does not mean that it is somehow cheaper or needs less developers.

Rachel made a very interesting point that traditional requirements documents are based on the traditional model of knowledge transfer - a model which was exemplified in teaching with lectures where the expert can pass knowledge directly to a student (who will then retain it).  The view is that knowledge can be poured out, captured, recorded and then delivered on to other people without a loss.  This view has changed, with increasing education activities focussing on reflection, group activity and tacit knowledge.  The same change could be seen in the shift from requirements capture to user stories. 

User stories are a way to work with other people, and to encourage communication.  If you haven't had a conversation about the contents of the cards then something has gone wrong - they are promises for discussions.

The Ron Jeffries three C's:
Card - Facilitate
Conversation - Discuss using agreed language
Confirmation - Acceptance Test

Traditional Form:
"As a <User Role> I need <Capability> so that <Business Benefit>"

It also helps when the story has a name.

Development Cycle:
Exploration -> Release Planning -> Iterations to Release -> Production

Create a roadmap of deployable releases - all iterations should be deployable but it may not be possible in the business case that it can be deployed each time.

Each iteration has the stories and features planned - generally estimated in story points.  There is normally more detail in the plan for the closer iterations.  At the end of each you review and refine the plan, adjusting and adding detail accordingly.  However the release dates are always fixed.

Generally in an initial planning meeting the business sponsor will present the case, allowing the development team to ask questions.  The development team can then go on to have a more detailed technical conversation.

Business people and developers must work together - and welcome changing requirements.

---

Steve Freeman - Test Driven Development

The motivation for the talk was to encourage people to go away and try it out.

So, why use TDD? - arguably because you end up with half the defects but similar productivity.  It helps to give the confidence to get the job done, and you don't need to worry so much about side-effects.

"    Write a test
"    Make it pass
"    Refactor

Tests are best named after what they will do for us and not the methods that they are testing.

Never stray far from the green bar.  This ensures steady continual progress (real not illusory), focussing on one thing at a time.   It also encourages neat, clean simple code and modular design.

Listen to the tests, analysis effort can be put into tests.  Refactoring supports design aspect by removing duplication and helping to express intent.

Code is more reliable, needs less debugging - and shorter!

Encourages test-driven management.

---

Boris Gloger - Heartbeat Retrospectives to Amplify Team Effectiveness

The idea of a retrospective is to tell a tale - the history of the team or a project.

Why retrospectives? We would like to improve what we have done in the past.

Disappointment of expectations stops learning.  Retrospectives need to occur after events to encourage learning.

6 step process
- security first
- collect facts
- ask: what went well?
- ask: what could be improved?
- who is in control?
- Prioritise activities

Security first: Prime directive - everyone has done the best job they can given their knowledge of the situation at the time.  What happened was the only thing that could have happened.

Collect Facts: Create shared team history or story.  Each person writes important event on post-it and adds to timeline on the wall, while briefly talking about it.  Only tell about your own story when you put it up, but once it is up there it becomes a team event and part of the team story.

What went well? (Creates positivity)

What could be improved?  (no manager enforcement, all ideas come from the team)

Who is in control? (who can make this happen?  The team?  The organisation?)

Prioritise activities: Create team backlog and impediment backlog.  The latter is hard, but important to make visible.  Important but hard to do and takes bravery.

Heartbeat retrospective can last 10 to 90 minutes. Use a dedicated room, not a project room, preferably in a secure environment that is not the team work area.

Some say project retrospectives should take at least 3 days - these are longer, more details as they cover a longer project in its entire history.  They also try to create solutions.  Heartbeat retrospectives are more designed for iterations.

Make conflicts visible, don't try to hide them.  However, safety is built over time as the team is built.  Hard to deal with highly charged situations in such a short time frame.  Talk about things on wall and not about each others.

By telling the story you get the information.

---

At this stage in the day the internet came back, however so did people in my room.  The talks that followed had up to 140 people and required more attention from me.  I even got to briefly work the video camera.

Am now in greatly enjoying the Martin Fowler / Dan North keynote, so had best go back to listening and stop typing.  I will have a lot of videos to watch when they go up on the qcon website.

QCon - Wednesday

Once I got past the security scanners at QCon I immediately found myself in my role as a student helper. 

Here a student helper role involves: helping with directing people, attending two meetings a day, manning the registration desk, counting heads in rooms and collecting feedback.  Mostly that means a lot of free time to attend the sessions you are interested in, and a host of free items (as well as free attendance at what would otherwise be a very expensive conference).  The exhibitor area was rife with flyers, pens, stress balls and notepads advertising some very nice companies (I am easily convinced by free toys). 

As I was not so interested in the talks I helped out on the registration desk (fending off the people from other conferences who wanted our conference bags for free) used the lovely wireless facilities, had a pleasant telephone interview for some business training, bought a replacement train ticket then headed back down to Brighton for 6pm eager to return the next day.

My photos are up on flickr here.

Festival Dojo

We are almost ready to launch ticket sales for the upcoming Brighton Coding Dojo night which will be held at the Creativity Zone at Sussex on 10th May as part of the Brighton Fringe Festival.   Tickets will be £3/£2 and the night will be fully catered (a real bargain).  Public, students and professional programmers are all welcome (although some knowledge of programming constructs is preferred).

Further information will become available on http://www.brightoncodingdojo.co.uk/ within the next week or so.

My major question right now is whether I think people can learn a new language and the concepts of test driven development in one session…  Should we announce the language so that people all have the chance to level the field and then apply TDD?  Should we just emphasise the learning the language together and make it an exploratory night?

This question will impact strongly on how the coding dojo night will be organised – as we cannot guarantee skill level, language or knowledge.  So far it is proving quite difficult.

The lack of clarity of purpose has affected even our publicity:

Codingdojoevent  Dojo1


I fear people may expect some kind of performance-art martial-arts display on coding…

Dojos 9 and 10

19-02-2007 - Kata 4 Data Munging in Java

Enjoyable night where everyone left satisfied that they had successfully completed the first part of Kata 4 (Data Munging).  There was even time to look at some decent refactoring.  Once again there was an entertaining tension between those that believe in test-first at all times, test sometimes, and those that just don't see it at all.

---

07-03-2007 - Kata 4 Data Munging (Wednesday Ruby Session)

The interesting thing for me this night was that I actually understood what was going on to a significant level, which almost tempts me to play with Ruby.  Otherwise the session was, as Dom says, "Exactly the same as the last time, we only completed the first part of the kata."   That doesn't mean it wasn't enjoyable.

Bugalanch

We couldn't cut features to meet the schedule because by the time we realize we're in trouble, the features have been integrated and now have interactions with other features, and trying to pull them out would introduce more bugs.

Probably the most effective thing we did was institute per-engineer bug limits: if any engineer's bug count passes 20, they have to stop working on features and fix bugs instead. The basic idea is that we keep the bug count low as we go so that we can send out usable versions to alpha testers earlier in the cycle and we don't have the bugalanch at the end.

Adobe edits the development cycle

Agile Narratives Director

So after a conference call, that sounds like it went very well, I am now officially a director of the Agile Narratives Project funded by the Agile Alliance.  We also have some more money for interviews and publicity, so I should probably plan some time to get on with this - I wonder if I'll have time to gather stories at Agile 2007...

Agile Retrospectives

Project retrospectives help teams examine what went right and what went wrong on a ... all » project. But traditionally, retrospectives (also known as "post-mortems") are only performed at the end of the project -- too late to help. In organizations where teams develop using iterative, incremental methods, Agile retrospectives at the end of each iteration or increment stimulate continuous improvement throughout the project. Exceptional software process and project improvement grows out of solid data and good planning.

Google Tech Talks: Agile Retrospectives

Coding Dojo 8

Coding Dojo Eight was last night.  We somewhat resurrected the number of attendees by finally appealing to a language other than Java, which I think constituted a good thing and was a refreshing change.  Dom ably led the session, and had put a lot of work into preparing slides and a starting point for addressing the soduku solving challenge for a second time.

This time the problems with finishing the challenge seemed lay more in the depth of the challenge to be explored, although there was again a divide between people who prefer using TDD and those who are not so familiar with it.  The age where the solver class sat empty will stick in my mind for some time, and will remind me of the power of well-timed tea-breaks to help the group along (and not to forego them in future).

My dojo energy is currently split between organising the weekly sessions and the exciting plans for the Fringe Festival Coding Dojo Night which will be held at the InQbate Creativity Zone at the University of Sussex on 10th May.  More details will become available on the event website soon.  It's enough to say that I am very excited about it.

Also, I have finally changed the FP dojo wiki from friki to vqwiki - affording me the option to actually make it look nice down the road.  The data is all transferred and the wiki is ready to be used.

Agile and UCD Links

To formulate thoughts on down the road.

Leadership Issues Reading

Leadership issues reading.  (Perhaps something for the coming weekend.)

Leadership Reading List (From the Scrum Alliance)

Project Management and Scrum – A Side by Side Comparison

Process Facilitator Mission

Here is a possible "mission statement" or definition for the Process Facilitator:
    "The Process Facilitator is a person who is both experienced with Agile Work and trained as a facilitator. The Process Facilitator acts as a coach to the team to monitor the process, foster the understanding of the Agile Work Axioms, the development of the Agile Work Disciplines and adherence to the Agile Work practices. The goal of the Process Facilitator is to assist a team to become "performing" so that they are able to actively and independently persue continuous learning and improvement."

Process Facilitator Role

Agile Reading

More reading for me. 

The long list of Agile Advice Recommended Materials

The New Agile Roadmap

Stand-Ups

The daily stand-up meeting (also known as a "daily scrum", a "daily huddle", a "morning roll-call", etc.) is simple to describe: the whole team meets every day for a quick status update.  We stand up to keep the meeting short.  That's it.  But this short definition does not really tell you the subtle details that distinguish a good stand-up from a bad one.

Given the apparent simplicity of stand-ups, I was quite surprised the first time I saw one that wasn't working. It was immediately obvious to me what was wrong but I realised that it was not obvious to the team. I realised that my team was not aware  of the underlying principles and details that would allowed them to diagnose and solve problems with stand-ups.

...

We stand up to keep the meeting short

The underlying theme is self-organisation

What is the purpose of the daily stand-up meeting?

  • share commitment
  • communicate daily status, progress, and plans to the team and any observers
  • identify obstacles so that the team can take steps to remove them
  • set direction and focus
  • build a team

Effective daily stand-ups have a particular feel

Patterns of daily stand-up meetings

Who attends the daily stand-up?

  • All Hands
  • Pig and Chickens
  • Attend by Proxy

What do we talk about during the daily stand-up?

  • Yesterday Today Obstacles
  • Focus on the Backlog
  • Blockage Board

When and where are the daily stand-ups held?

  • Same Place, Same Time
  • Use the Stand-up to Start The Day
  • Don't Use the Stand-up to Start the Day

How do we keep up the energy level of the daily stand-up?

  • Huddle
  • Stand Up
  • Fifteen Minutes or Less
  • Signal the End
  • Time the Meetings
  • Take It Offline

How do we encourage self-managing daily stand-ups?

  • Last Arrival Speaks First
  • Round Robin
  • Pass the Token
  • Take a Card
  • Rotate the Facilitator
  • Break Eye Contact

Smells are about when things are going wrong

  • Reporting to the Leader
  • People are Late
  • Stand-up Meeting Starts the Day... Late
  • Observers Interrupt
  • Socialising
  • I Can't Remember
  • Story Telling
  • Problem Solving
  • Low Energy
  • Obstacles are not Raised
  • Obstacles are not Removed
  • Obstacles are Only Raised in the Stand-up

If the feel is good, you're probably okay 

It's Not Just Standing Up: Patterns of Daily Stand-up Meetings

Lava Lamp Feedback

I was given a usb lava lamp for Christmas.  When I have my Easter holiday, I may need to look into these instructions for converting mini lava lamps into build monitors.  Sadly I know I am terrible with this kind of thing, but may be worth a play anyway.

Coding Dojo 7

Coding Dojo Thoughts..

Session 7 (22-01-2007):
This session focussed on Sudoku Solving.  Although the group never really came close to exploring the algorithms for solving sudoku they did work hard and representing the board.  Again, this was a case where perhaps something should have been created in advance, for example an example board.  It should be interesting to see how the code they created can be continued to another session.  The new layout based on the recommendations from the previous group seemed to work well.  Now all we need is less deadly chairs...  (As ever Jez is much more reflective about the session.)

Fringe Festival:
A group of us are currently toying with the idea of running a large dojo session as part of the Brighton Fringe Festival in the exciting Cetl in Creativity space.  If the idea carries off it will be impressive.  Contact me if you are interesting in volunteering your time or support to this project.

Agile Fun Night

My 'Agile Fun Night' appeared to manage to be true to its name, and generally seemed appreciated by the people I ran it for. 

I facilitated a version of 'Extreme Hour', with a warm up of 'pair drawing'.    Photos here

Tom summarises it very well.  I certainly enjoyed myself.  I wish that there had been more time for reflection on the process, interaction and achievements for both activities, but hopefully I will draw that out next time I run the session.

Of course, it just makes me increasingly tempted to set myself up as a consultant to help pay for my existence as a student...

Retrospective

Retrospectives are interesting, fun to run, useful, and I suspect will have to form a vital part of my DPhil research in the long run. 

I shall have to put much more work into researching them.

This is not a bad thing, it just requires more thought about my approach.

Fortunately, I am finding a wonderful world of practical experience here that feeds in to my research at the same time. (Double-plus-good)

Coding Dojo 6

Dojo 6 was again a quiet affair - looking at Kata 6: Anagrams.   The small-group dojo is consistently more fun and more productive, and this was generally agreed in the call I put out to the group about how we should run it in the future. 

The main things which came up this week was not interactional but organisational, which made a nice change.   I think we may be mostly settling into a rhythm for pairing.

I just need to think about this issue with layout for the next session:

Dojo6
(drawn by an attendee)

Agile Games

Some sources for learning Agile through play:

This has made me wish I was at Using Play to Enhance Learning About Objects workshop at OOPSLA'02.

User Stories

User Stories are:

  • Feature descriptions from anyone on the team or any customer.
  • Use a simple template to insure correct communication.
  • Have "Conditions of Satisfaction" which are things that can be seen or tested in the review.
  • Are estimated.
  • Are not dependent on other stories.

From Hours Vs Story Points

Dojo 5 - Return to basics

Hmm, so this week's coding dojo session was a very small one.  I'm hoping that the reduced numbers has been due to general illness and the desire to stay indoors in the warm and dry, that generally comes upon us all at this time of year, rather than anything else.

It was good to look at the binary chop kata at last.  Four implementations were managed out of five, although more were discussed.  I really wish we had had more time to actively discuss and reflect on the goals of the kata:

  1. As you’re coding each algorithm, keep a note of the kinds of error you encounter. A binary search is a ripe breeding ground for "off by one" and fencepost errors. As you progress through the week, see if the frequency of these errors decreases (that is, do you learn from experience in one technique when it comes to coding with a different technique?).
  2. What can you say about the relative merits of the various techniques you’ve chosen? Which is the most likely to make it in to production code? Which was the most fun to write? Which was the hardest to get working? And for all these questions, ask yourself "why?".
  3. It’s fairly hard to come up with five unique approaches to a binary chop. How did you go about coming up with approaches four and five? What techniques did you use to fire those "off the wall" neurons?

It was interesting that having a pre-written test helped the group greatly to pull in the same direction, but not to produce efficient code.

I must sort out my knowledge of java for the next session - I keep feeling like this is a game I want to play rather than just watch.

XPDay London 2006

Brief, very delayed, review of sessions at XPDay 2006.  My photos are up on flickr.

Day One

Opening.

As invariably happens when I turn up early to any conference that I have not organised I end up trying to help out.  This year I was early due to my ulterior motive for coming to XPDay, that of advertising and promoting the newly viewable (but still being worked upon) Agile Narratives website (funded and supported by the Agile Alliance).   After putting out flyers and laminated poster I decided that what I really wanted was to help out with the registration process, so I took up a post handing out T-Shirts.  It appears to be a hard-to-break habit.

--

Keynote 1.

Joshua Kerievsky's talk surprised me.  He made some very interesting points in relation to selling agile, but I was not expecting anyone to start promoting teaching agile through basic e-learning...  It seemed somewhat contrary.

--

Embracing Change: An Introduction to Agile Software Development, Clarke Ching

A clear introduction based around the 'manufacturing' model of product development based on pre-existing spec.

Agile was defined as: Able to cope with change/Iterative and Incremental.

Advantages:

  1. Customer requirements are prioritised
  2. Increments mean working software
  3. Customer can release
  4. Customer can add, delete or reprioritise as needed
  5. Protect schedule commitments despite change
  6. Reviewable at the end of each increment
  7. Reduce wastage from features which are not really needed
  8. Forces early failure

Nothing new here, but good to have made sure and to have it written down.

Slides available here.

--

Making XP Crystal Clear, Andy Pols and Romily Cocking

This talk inspired some creative drawing on my part.  It, well, could have made either XP or Crystal clearer, although I did greatly enjoy the roleplay and retrospective elements. Fun, but felt like it could have used more preparation and distinguished more clearly between XP and Crystal in the talk as I didn't feel like would have made either XP or Crystal clear to a person new to the area.

--

Are We Nearly There Yet?, Ivan Moore

This session was interesting, and encouraged discussion around tracking agile projects; estimation, load-factor, velocity and burn-down charts. Sadly, due to unexpected numbers, we did not get to make paper aeroplanes, although I did get to do some nice drawings of the backs of people's heads.

--

Why is Simple So Difficult?, Facilitated by Nat Pryce and Jonathan Clarke

Very interesting talk layout.  "Normal goldfish bowl rules apply: when someone joins the discussion circle someone in the circle must leave." So, six chairs in a circle in the centre, with the rest of the room in circles around them.  If you wish to comment / join in the discussion, you must move onto one of the chairs, but one chair should always be free (so whoever is no longer directly contributing to the current turn should then move out).

I was completely sold on the fishbowl approach as it seemed to encourage discussion around many levels of the same topic in a way strongly reminiscent of the coding dojo.  You can see new people come in and shape the direction and level of discussion, and old faces return to previous themes.  Interesting and certainly worth further thought.

--

Social Monday.

Off to the pub, for a long supply of nibbles, drinks and free toys.    This perked me up, and I had a good time chatting with people.  I only had to deny working for ThoughtWorks three times.

As most things are these days it seems, the social was funded by the power of Google so I left with my obligatory "I'm Feeling Lucky" t-shirt and flashing badge.

---------------------------

Day Two

Keynote 2. 'Love in the Age of Software'

James Noble and Robert Biddle managed, rather impressively, to make part of the audience walk out of their talk in fear.  Whether it was from the content or the presentation style I could not say, although the occasional bursts into song did remain with me for the day.  They did raise some interesting points to my mind, but postmodernistic presentations are probably problematic for most professional programmers.

Points I happened to note in no particular order:

  • It is important when thinking about metaphors what the reality is of the metaphor you are using.  (Waterfall is a large amount of dangerously out-of-control water plummeting.)
  • 'Technical Success' is often equivalent to 'Business Failure'
  • In the church of agile, agile is love
  • Agile loves tools.
  • We should focus on tools to help us communicate that are not machine-based tools. 
  • XP Tools:
    • User Stories (Promise to have a conversation) - Often automated
    • On-Site Customer - Excused as not always practical
    • System Metaphor - Expunged from new edition
    • Planning Game - Often Resisted
  • Train Wreck vs. Death March
  • Lord Shannon's view of information transfer had a slight problem with noise
  • Developer to Developer talk mostly mastered
  • Problem with the customer developer relationship
  • That's numberwang.
  • Eco "No perfect form of communication exists"
  • Love in an unequal power relationship has implications

--

An Introduction to Scrum, Joseph Pelrine

A good clear, professional, introduction to Scrum.

Noted points:

  • Three types of uncertainty in a socially complex domain: requirements, technology, people.
  • Scrum defined as empirical processes that wrap engineering processes.  Control is through inspection and adaptation.
  • Origins from smalltalk engineering tools; new new product development game, timeboxes, interative, incremental development.
  • Prioritise (information and value)
  • Maximum flexibility
  • Scrum Master is a deliberately silly name
  • Stand up meeting.  No drinks. Three questions to ask:
    • What did you do?
    • What are you going to do?
    • Are there any problems or impediments to this?
  • People work best when they are allowed to take responsibility for what they do.
  • You need seven or less for a conversation of equals, otherwise the conversation will split into two.
  • Product Owner role is vital
  • Do documentation and design upfront as needed.  We do what's necessary at the time it makes sense.

--

The Toyota Way of Managing, Pascal van Cauwenberghe

A very interesting talk based on 'The Toyota Way' by Jeffrey Liker.  The following 14 management principles were discussed and illustrated:

Long Term Philosophy

  1. Base your management philosophy on a long-term philosophy, even at the expense of short-term financial goals

The Right Process will Produce the Right Results

  1. Create continuous process flow to bring problems to the surface
  2. Use 'Pull' systems to avoid overproduction
  3. Level out the load: 'Heijunka'
  4. Build a culture of stopping to fix problems, to get quality right the first time: 'Jidoka'
  5. Standardized tasks are the foundation for continuous improvement and employee empowerment
  6. Use visiual control so no problems are hidden
  7. Use only reliable, thoroughly tested technology that serves your people and processes

Add Value to the Organisation by Developing Your People and Partners

  1. Grow leaders who thoroughly understand the work, live the philosophy and teach it to others
  2. Develop exceptional people and teams who follow your company's philosophy
  3. Respect your extended network of partners and suppliers by challenging them and helping them improve

Continuously Solving Root Problems Drives Organizational Learning

  1. Go and see for yourself to thoroughly understand the problem: 'Genchi Genbutsu'
  2. Make decisions slowly by consensus, thoroughly considering all options.  Implement decisions rapidly ('Nema Washi').
  3. Become a learning organisation through relentless reflection ('Hansei') and continuous improvement ('Kaizen')

This ended up being one of the best talks of XPDay to my mind.
--

Metaphor and Stories, James Noble and Robert Biddle

An interesting session, which aimed more towards discussion around the problems with implementing systems metaphors and less on narrative.

Topics:

  • Agile and Communication - see notes from keynote
  • Jacobson's Axes (Paradigmatic (Substitution) Axis and Syntagmatic (Combination) Axis 
  • System Metaphor
  • Peircean Semiotics
  • Semiotic Model of Metaphor
  • Choosing a Metaphor
  • Evaluating a Metaphor
  • Actantial Analysis
  • Narrative Trajectory
  • Semiotic Squares

--

Social Tuesday.

This social was sponsored by Kizoom, so everyone piled off to XtC to drink and be merry.  I sat on the floor and happily chatted until it was time for me to make my way home and collapse. 

I'm certainly already thinking of options for presentations next year.  I also left with the knowledge that there are apparently only two responses to any consultancy question: 'It depends' and 'Why'...

As A

Also when given a template people can start treating story cards written this way as mini-requirements specs focussing on the written words rather than using stories as tools for driving a conversations. Even worse that stories that don't fit this form will be battered into shape until they do. Stories help you ask the right questions about the context and reason for the request in release and iteration planning the important part is not about the words on the card but the shared understanding developed in the team.
As a Coach I want a Story Template so that People Ask Questions

Rachel Davies, reiterating the commonly forgotten point that User Stories should encourage communication not list requirements, with an example exercise for playing with user stories.  Handy.