Monday, 31 August 2009

Book Review: Becoming Agile in an Imperfect World (Smith, Sidky)

Becoming Agile: ...in an imperfect world: .in a Imperfect WorldAnother book bites the dust and hits the “read” shelf. This time around is was “Becoming Agile in an Imperfect World” by Greg Smith and Ahmed Sidky.

What is this book about?

This book is designed for the people that are generally currently stuck in waterfall (or some other prehistoric software development methodology) and wish to adopt a more agile process.

Smith and Sidky then aim to arm the reader with knowledge and tools to overcome the common pitfalls in agile adoption and answer the difficult questions posed by PHB’s and the like.

It covers the common practices and key concepts that are used in agile teams such as the daily standup, iteration planning, estimation, retrospectives and roles and responsibilities.

What is this book NOT about?

This book is not really for those that are already working in an agile time and looking for new ideas to improve their methodology some more. It does not go into great detail on the specifics of major methodologies (which are agile or are used in agile teams) such as eXtreme Programming, Scrum, Lean and Kanban.

Content Summary

The book is broken down into “parts” that flow nicely from one to the next. Starting with the fundamentals, we then move into feasibility, to actually doing the project and then beyond.

A quick précis of the content:

Part 1

Essentially a “why we are here” – why should we move to agile and introduction to a case study that is used throughout the book.

Part 2

Now we know agile is right for us, it is time to get buy in from all concerned and pick a pilot project to run with. This covers in detail an “agile assessment” and provides tools to assess your current agility as well as answers to common difficult questions.

Part 3

Taking the current agility and amount of buy-in we have, is the project feasible? Here we assess that and get our project team together and in alignment.

Part 4

Here we cover building the project backlog and the all-important feature card. We look at maintaining agility by getting just enough information to move into scheduling (read “smart estimating”).

Part 5

Rough estimates in hand, we then move into iteration and release planning. We look at how we can estimate hard figures on time required as well as processes to improve the accuracy of these infamous numbers.

Part 6

Now we are up and running in our iteration, we look at building the product, to a high quality. Here we look at things like automated testing, continuous integration and release delivery.

Part 7

So we have completed our product (or an set of features for it) and released them to the client. Now they want some changes. How to we embrace the changes raised by the customer and maintain our velocity in development. This is what this part is all about.

Part 8

Product/project completed, what’s next? How do we rolls this excellent methodology out to the rest of the company?

My Thoughts

When I started this book, I found it really wordy. Too wordy. I tend to read a heck of a lot of content (like most geeks I guess) and put simply – I was finding it a real hard slog.

By chapter 6 I felt like I had been reading for about 2 weeks and gotten hardly anywhere. So many of the concepts were rehashed over and over. Now, while this kind of repetition may be good for some more technical reading (like code where you need to brute-force some of the syntax in) – for this kind of book I found it was too much. Many of the agile concepts are not rocket science, which is why I think it is so popular. I view it as KISS applied to software project management. We want a happy customer, high quality software and we want it FAST.

Following some reflection on this, I skipped to skim-reading mode and then started cutting through the book much quicker. I actually then found it a much more enjoyable experience. There is some really great content in here and TBH, I feel getting bogged down in the wordiness caused the excitement created by the excellent content to fade.

However, that said, if you are still working on your skim-reading skills, then the wordiness may well be a great thing (swings and roundabouts). Reading is a very personal process and I would hate to not recommend a book based on my own.

Upon completing, I then hit MindMeister and began brainstorming ideas for the office (we are still stuck in waterfall/hell).. A LOT of ideas. This book really does give you a tons of tools/tips and advice to chew on.

One other thing I really liked about this book is the amount of debunking it does. Many employers (including my own) knock the agile process (which they have never adopted might I add) since they only ever hear about the “we don’t do overtime”, “we don’t write documentation” and make their own [false] assumptions about agile. Smith and Sidky really did tick a lot of these boxes and provide great counter-arguments for them.

This book is definitely on the “keeper” list as a reference as I try to influence agile at work and adopt it at home. Real nice after the lack-of-learning I got from “The Art of Unit Testing”.

Sound good? Grab yourself a copy of “Becoming Agile in an Imperfect World” today!

A big thanks to Greg Smith and Ahmed Sidky for the great book!

Monday, 24 August 2009

GTD: Give “Something” a Name

Sabretooth Since moving to a biphasic sleep pattern, I have found that I now have a lot more time to undertake projects that have been sat on the back-burner for far too long. Many of these are not really “geek” related and span a number of aspects of my personal life, be it fitness, financial or simply learning something out of the norm.

“Something”

.. is where the problem comes in. Sometimes we just want to do stuff that is hard to slap a name on. For example, one of my projects is “sort fitness”. Sure, I could lump it all under “training”, but what about all the extra bits that come with it, like managing diet, tracking or research? Many of our big goals that tend to come out of things like a New Years Marmite Moment tend to be really “fluffy” and open-ended.

So What’s the Problem?

The problems I find with this are:

It Can Make it Hard to Talk About

If you have to rehash a sentence explaining what you are trying to do, each and every time you talk about it you are just making extra work for yourself (and whoever you are talking to). Something we are working [hard] on is going to come up a lot, be it in notes, task names or emails. Make it quick to reference.

You Might Have to Talk Too Much

On the flipside, you may be working on something that you do not really want to talk about a great deal. It may be a personal project, or simply something you cannot discuss in public yet.

So What Do You Propose?

Well, this kind of thing has been plaguing the software industry for a long time. When you are working on the “cosmic spangbobulator" module for the “whizzbang shiznit” that has not had a name made up by marketing yet, it can become quickly difficult when people ask “what have you been working on?”. There are also issues with talking too much, you may have NDA’s to adhere to, or simply not want to ruin the surprise.

What do they do in software? Code names!

What? You were expecting some totally original idea that would blow everything else away? If it isn’t broke, don’t fix it.

Why Code Names? This Isn’t MI6?!

Code names help simplify things a lot. Your peer group will quickly learn that project “SABRETOOTH” is something you are cooking up that is going to change the way that people wear their underpants FOREVER - they don’t need to keep hearing it.

If you are protecting a concept, you can protect it with a name that doesn’t suggest what you are working on. Who thinks “underpants” when they hear “sabretooth”?*
* FYI - I am not working on any underpants-related projects at this time.

Simplicity and IP protection aside, it can actually be fun to have some code names – why not have MI6 SIS-sounding project names?

We should all love what we do, and any little thing that makes you more enthusiastic about your project(s) should become a part of your working system.

Themes

Sometimes it can be hard to come up with some codenames, so if you want to have some fun, use a theme! Pick something you like and use names/words associated with that. If you a LoTR fan, rock on with project “Gollum”. You can then play on that some more and name the core component “Precioussssssss!”

For those interested, two of the projects I am working on ATM are “Bamford” and “"Dowell” – can you guess the theme? The first one gets a congratulatory comment-based pat on the head!

Summary

Make your projects easier to discuss, discussion brings conversation and insight which can ultimately improve the outcome. Have some fun with it and you will do it more.

Since I have labelled project “Bamford” it has actually been interesting eluding to it when talking to people. I don’t want to announce what it is until the project is complete. If/when it is complete, it should be a real nice interesting topic for discussion..

Work hard, play harder.

Wednesday, 19 August 2009

GTD: Biphasic Sleep Experiment – Trial Summary

So, we are finally here. One month ago I started my biphasic sleep experiment (if this is all new to you, I recommend you read my previous posts). I just wanted to take some time to share my thoughts on biphasic sleeping with you in the hope that it offers some insight (and perhaps inspiration) for you.

What Were My Aims?

In a nutshell, I felt like I had too much that I wanted to get done, so I wanted to see if I could make more time to make some headway and clear some items off the task list.

I had accumulated a rather large backlog of (to be blunt) crap. General administrative things like emails, RSS items, and household work. Alongside this however, I also had a rather large backlog of ideas that I at least wanted time to brainstorm on to see if there was any opportunity for an interesting and fun project.

Basically, I just wanted to really get stuff done.

Did I Meet My Aims?

This is the brilliant bit.. ALL of the backlog of crappy administrative items were completed within the first 2 weeks of the trial! This allowed me to then start doing other tasks that I wanted to do rather than had to do.

With that crappy backlog cleared and now in a nice “maintenance” schedule, I now find myself spending a lot more time working on projects that mean something to me. TBH, I met my aims and then a whole load more – I was expecting for the trial to be soaked up with clearing the backlog, not spending three weeks doing what the hell I wanted to! Excellent!

What’s the Catch?

Of course, as with all things, they come at a cost. For me, these are the most noticeable “issues” I have had to, and perhaps still dealing with:

Lead-In

This is basically the tiredness that comes with moving from one sleeping pattern to another. Very much like jetlag, you will feel drained for a few days. For me, this was relatively light (2-3 days) but I know some people can really suffer.

My advice here will be to either create a transition period, make sure you are well-nourished, avoid caffeine to “pull you through” (you will only be kidding yourself) and ensure that your sleep periods are well-honoured (make sure they are uninterrupted and make the minutes count).

Social Aspect

While it’s great that biphasic sleeping does not interfere with your (normally) core working hours (0900-1700), it can have a real impact on evening social events.

During week three I really fell off the horse because I had a number of evening engagements that I really struggled to meet. In the end the sleeping pattern got shot to pieces and it then blew everything else to pieces (including my productivity). I’ll be honest, this is something I am still getting to grips with.

I think the main problem here is me. I need to be more assertive when arranging things with other people that I cannot break the sleep pattern. I have also (this week) moved my evening nap to an earlier slot (1830-2000 rather than 1930-2100) which I think will actually help a lot.

Physical Impact

I am (or at least I think I am) pushing the bar quite high with only 4.5 hours sleep a day. Another contributory factor to me “falling off the horse” last week was me adding physical training to the mix. I found it really ground me down quite quickly. And coupled with a badly-practiced sleep pattern it really messed me up.

Now, I need to be clear, I do not think this a problem with biphasic sleep. Rather, me being a jackass and not sticking to the plan. I have now got myself back into routine and ensuring I have a good diet, with plenty of supplements to fill any nutritional voids. Moving my evening nap has also helped a lot since I sleep pretty much straight after exercise, so as soon as my body is put through the mill, it has a chance to recover (FYI, I workout, take 10 mins and have a good proteins/recovery shake then sleep for 1.5 hours, this gives the shake plenty of time to work it’s magic). Pushing yourself hard is fine, being stupid is not.

Family Life

Now, this is not so much an issue for me since I don’t have a girlfriend/wife or kids. However, I can imagine this would really be a problem for some. Based on zero experience, do with this what you will.

  • Educate them, let them know what’s going on and that Daddy/Mummy cannot have their sleep interrupted unless its a real emergency.
  • Accommodate your significant other. They are probably going to miss having you around when they go to bed. Understand they have needs too. Now and then, why not see them off to sleep and then get back to work. The amount of time/productivity gain you will have will still be massive and the sustained relationship will do you good ;)
  • Return he favour. I know you are trying to get stuff done here, but think about what means more to you. Your family are going to have to change a lot to accommodate you and your “crazy” sleep pattern. Try to prioritise/organise your work and household chores to help them out. (e.g. if your up at 0200 and winding down from your evening work, why not prepare breakfast so people can wake up and go?).

A fair bit of writing there, but as you can see, the “con’s” are actually reasonably minor (they are all “fixable”).

The Pro’s

Now, on to the good stuff!

You Will Get More Done

Seriously, I am still in shock and awe at how much I have done over the past month. Even if you just have a “trial” and nothing comes of it, the ToDo list will thank you! You are essentially working a double-shift with very few actual side effects once the ball is rolling.

You Can Do More

Sounds kinda obvious after the first one right? But the point here is different. I am picking up projects that I would never have had the time to do before. And these aren’t uninteresting (or at least to me) things like “do more spring cleaning” (although that’s fine if your into it) these are things I have wanted to do for a long time.

Your Brain Will Be Faster and More Creative

One of the strange things I noticed (quite quickly) was how much quicker my brain was working. It really does not seem to get anywhere near as tired as it did before. Ever. Even when working right thought the night it still functions faster than ever before.

Also, I am not a creative person, but I found myself naturally being more creative. I’ve started brainstorming left-right-and-centre on many topics (thank you MindMeister!). This again has led to some really interesting thought, reflection and project ideas,

You Will Learn to Sleep/Relax

This might sound weird, but you will learn how to fall asleep quicker. The minutes really do count with 4.5 hours sleep so you will want to make sure you are getting the naps off to a great start quickly.

I find that since starting biphasic sleeping, I can quickly get my body to a relaxed state. Much quicker than before. It’s not rocket science either, the Buddhists have been doing it for centuries. Even when not going to sleep, just being able to take 5, relax and clear you mind can be really helpful.

You Can REALLY Do More

This one was so good I thought I should say it again. Working in the midnight hours allows you to be much more focused simply because there is less external distractions (read “the rest of the world” – or at least most of it).

Wrap Up

So, I don’t want to go on about how “cool”, “hip”, “pop” and “fresh” it is. It’s a great system that has worked for me really well. My personal opinion is:

why the hell didn’t I do this sooner?

But, it may not be for you. It takes discipline. I already fell off the horse towards the end of the trial (but I have learned from it). It will be difficult, but take the system and adapt it to suit you. Sleep is a very personal thing. I hope you can take some of my experiences and use them in your endeavour to get more done.

I think by now, you have realised that my trial is over, I am still biphasic and at this point in time, I see no reason to return to monophasic. I am having a great time so why the hell would I stop!?

I would just like to say a big thanks to all the friends & family that have been supportive of the trial (and concerned for my health!). It’s been real fun going through the experience, and I hope the lack of stress has made me better company to be around :)

Of course, if you have any questions that you would like to see answers to up here, please ask!

Thursday, 6 August 2009

Gifts: Be Clear on What You Wish For

Well, my birthday is rapidly approaching and I am soon to be a quarter of a century old. LAME! (on the bright side, I am a Leo, and we are AWESOME!) :D

The cool thing is, sometimes I get gifts! (I tend to get less now I am older, LAME! :). One thing I always hear when it comes to people handing over gifts is:

“I really didn’t know what to get you”

This is because I am a geek. I am pretty much the only “real” geek in my family and friends and I am inherently hard to buy for. No one really understands what I do, or what I would find interesting. This isn’t all bad.. I tend to end up with a lot of Jack Daniel’s since people know that is the easy way to my heart :)

Who Wants to Feel Bad?

But, sometimes, I have to be honest, I get a gift that TBH, is totally NOT what I would want. And I always feel really, really bad.

And no, this isn’t me being selfish, I genuinely feel bad. This person has shelled out their hard-earned cash to be kind enough to get me a gift. And sadly, I know deep down it is just going to collect dust and ultimately end up in the garbage in the next “junk I don’t use” purge. That’s just an awful position to be in. And even though people often say “I still have the receipt”, do you ever want to look them in the face and say that? Really?

Help You to Help Me

So, after much thought, I have decided to create and share an Amazon wish list to give people ideas of things that I would like. I actually saw this tip a couple of years ago on a GTD thread, I just never took action with it since I was unsure of how people might feel. But, we are all adults, and to be clear:

This is NOT me saying:

  • Buy me something.
  • I only want something off the list.

This IS me saying:

  • Feelings can get really hurt on either side of the fence with a “bad” gift. I don’t want that to happen.
  • You don’t have to get something on the list, but it could give you ideas.
  • I really appreciate the sentiment :)

So, without further ado, here is my Amazon wishlist. Do with it what you will.. Thanks a lot :)

GTD and Podcast Subscriptions August 2009

As you can probably tell, I have been on a real productivity push recently. This has meant that a lot of feeds have been added (and purged) from my GTD and Podcasts streams.

A few people have expressed interest in what these feeds are, so I thought I would share them:

Note: The file is an OPML File, this should be easily importable into any half-decent RSS reader (like Google Reader).

Hope you enjoy the content – if you have any feeds that are not included and would recommend, please do let me know!

Tuesday, 4 August 2009

GTD: Staying Connected with Google Sync

I am a massive user/lover of the Google Products especially Mail, Google Reader and Calendar. As with most online services, I am always looking for ways to get them connected to my Xda.

The last time I looked however (which was pretty much when I got the device), there was no great way to sync with my Google Calendar. I ended up going with a third party application called OggSync, which up until now has served me very well. The only downside was that there was not decent scheduling option. So I ended up having a daily reminder to fire off a sync.

Then it all changed..

Introducing Google Sync

Now, this may have been out a while, but I never heard anything about it (is it just me or are Google terrible at marketing their products?). But anyway, I was listening to an episode of the StartupDaddy podcast (which is a great podcast by the way – thanks Ian!) where Google Sync was mentioned. Now, I almost dismissed it straight away, but then Ian said something like (can’t remember the exact words):

it works via the Exchange protocol

And that got my attention – last time I looked, it did not.

So It Uses Exchange? Big Whoop, Wanna Fight About It?

Well, the reason why it’s important that it uses Exchange is because ActiveSync (which syncs the device tasks, contacts, calendar etc with Exchange) is baked in to the Windows Mobile system, making the whole sync process a LOT easier. So, I headed over to the Google Sync page to check it out..

Limitation

Thought I should cover this before you run off and download it. From what I can see, there is only one limitation to Google Sync – it only syncs your primary calendar. I thought this was a limitation at first, but to be honest, I had no real benefit to keeping my work and personal calendar separate (I am either doing one or the other at the same time) so I merged the two and got on with it.

However, I don’t know your circumstances, so do with it what you will.

Setup

Ironically, the setup instructions appear to actually be out of sync with the process on my Windows Mobile 6.1 device. If I remember correctly, the “server settings” page actually comes last. But to be honest, it’s not rocket science.. :)

Setup was completed in under 3 minutes, then a couple of mins to sync everything for the first time. Now my calendar and contacts (yeah, a little Brucie there) are all in sync with Google! ActiveSync comes with some great configuration too (such as syncing more often during definable “peak” times).

Wrap Up

While I am sorry to see OggSync go, as it really was the best out there when I got it. This feature from Google is really great, not only is it quick to setup, but just having a third party system appear to be a lot more native to my device is really nice.

I have no idea what work was involved for them in getting their calendar system to work with the Exchange protocol, but the usability increase in doing so is second to none. I am wondering if people like Remember The Milk will perhaps do something similar so I don’t need to run a separate application for tasks?

Again, thanks to OggSync, Google Sync and StartupDaddy!

Monday, 3 August 2009

GrokGit: Launchy & Git Bash – Perfect Unison

image I thought I would share this little nugget of info as part of my “GrokGit” series.

As you know, I am aiming to master the command line with Git rather than the GUI. It’s no secret that GUI’s are inherently slow – and I am aiming to improve my productivity as much as possible so screw that!

What is Launchy?

Launchy is a great application that is VERY high up on my tools list. It allows you to create shortcuts to programs and URL’s so you can quickly access them. I would strongly recommend giving it a whirl.

Here is a quick rundown of my setup:

  • WIN + ESC – Opens Launchy.
  • I have two folders added to the “Catalogue”:
    1. A local folder for shortcuts specific to that machine (useful for programs that are work/home specific).
    2. A folder that is shared via Live Mesh which syncs to all my computers. Great for shared applications with common paths etc.
  • From the Launchy Plugins I use:
    • Weby to set location-specific favourites.
    • Runner to set location-specific command line shortcuts.

“Runner” is the one that we are interested in at this point.

Setting Up Runner in Launchy to Run Git Bash

Pretty simple for this one:

  • Open Launchy, right click > “Options” > “Plugins” > “Runner”.
  • Click the “+” button to add a new item.
  • Enter the following:
    • NameGit Bash
    • ProgramC:\WINDOWS\system32\cmd
      (Obviously change the path as required to point to your Windows directory).
    • Arguments
      /c "pushd $$ && "C:\Program Files\Git\bin\sh.exe" --login -i"
      (Again, alter the path as appropriate to point to your Git install) – Also note you need ALL of the above (including the “/c” and the quotation marks).

Using the New Shortcut

Now that we have created our Git runner, lets use it!

  • Press WIN + ESC (or whatever your shortcut is to bring up Launchy).
  • Type “Git – “Git Bash” should appear or will appear in the dropdown if you have similarly-named items in Runner already (the reason I say only type “Git” is that Launchy remembers what you use).
  • Press “TAB” – A small “>” should appear next to “Git Bash”.
  • Start typing in the path to your “working folder” (the one with a “.git” directory in it). Notice you get the autocomplete support from Launchy.
  • Hit “Enter” – BAM! The Git Bash prompts fires up, in your working directory and you are ready to rock and roll with source control! :D

Hope this little nugget comes in useful. I use it like 600 times a day* :)

* Yes, these figures are massively inflated, but I do use it a LOT.

GTD: Biphasic Sleep Experiment – Update

Physical State/Tiredness

Nothing major to really report here. It has to be said the exercise has certainly made the hard pace of only 4.5 hours sleep a night more noticeable.. :)

I have had a couple of days where I have simply needed to sleep! On one of them, I just went to bed an our early. However, on day 13 I really pushed myself hard with the exercise. I went to bed and had a night of monophasic sleep to allow the body to recover. This was obviously much needed, woke up bright and spritely! Looking forward to playing with my iron balls again later! :D

It was interesting how having a single night of monophasic sleep did not affect my biphasic sleeping pattern at all. Nice to know I have the option there to take if I feel I need it.

Mental State

Still rocking and rolling. Just completed my (newly) regular retrospective session. It’s real nice to see the positive attitude reflected in my daily reviews. There were a lot of smiley faces!

Diet

Started upping the white meats, vegetables and supplements. However, I need to dedicate some time to researching some more quick-and-easy meals that I can prepare. So I can remain productive and have a well-balanced diet.

Now pretty much ay zero coffee (I might have one on a Saturday morning as a treat) and boy do I feel great for it. I’ve also taken the attack to my tea intake and traded in the regular tea and sugar for green and herbal teas (obviously with no sugar). This has also had a noticeable impact on energy levels etc. (as well as the fringe benefits of blood pressure and digestive system).

Productivity

Tomatoes Completed

Total number of Pomodori/Iterations from The Pomodoro Technique completed.

Still averaging about 16 a day. This drops off a little bit on training days due to the hour out, but still very, very happy with productivity levels. Relieved that the training has not totally smashed a hole in it!

ToDo List Zero

Are all items that were on the “ToDo” list at the start of the day/added and urgent completed?

Always :)

Inbox Zero

All emails in the Inbox processed. (i.e. relevant tasks created/replies sent)

Always :)

Review

I am just really getting used to getting things off the list now. Stress levels have totally dropped right off. I am also in a position where I do not think twice about taking opportunities up to take some time out. While I keep it under control (since if I took time out every night everything would slide!), I am not afraid of it.

Exercise

Starting to get in the swing of the exercise pattern now. Not yet through the pain barrier yet, but I know I will get there in a week or so. Going to start stocking up again on the supplements. Also going to start tracking the metrics to monitor progress. Blog posts are likely to follow!

Summary

Glad that I have started putting these posts into a a digest. Again, I will only really blog when I feel like I have something to say/offer. Looking at the calendar though, I have just realised that the one-month trial actually “ends” next week! Wow! Doesn’t time fly!?

Based on that, it is likely that there will be nothing major between now an then, so it’s very possible that there will be just one more “wrap up/summary” post to close off the experiment.

Of course, if you have any questions etc, then you are always welcome to ask and I will happy to either respond in comment or post separately.

Saturday, 1 August 2009

GTD: “Personal Kanban” – The PAIR System

imageIn my Personal Kanban “Getting Started” post, you may have noticed the “PAIR System” in the mind map. You are probably wondering “what the hell is that? Did you make it up?!”

Yes, yes I did :P :)

While going over, and over, and over the processes in my mind, several stages started to emerge as logical “pull points” for processing my “Life” story cards.

Backlog

The backlog is basically a repository of stories that have yet to be completed. So when you have a bright idea or come up with something you want to achieve, it doesn’t go on a task list, the refrigerator or a post-it note stuck to your significant other’s forehead so you get reminded every time you see them. It goes in the backlog.

This is a standard part of most Kanban boards, of course you may want to set limits on this also. I personally prefer to just focus on keeping it lean and clearing out the crap, but avoid limits (who wants to limit their dreams etc?).

Before doing ANYTHING, we first pick the highest value item from the backlog.

Preparation

At this point we review the item of value that has been pulled from the backlog. We assess the kind of actions we will need to take to get the job done. This might include tasks like:

  1. For us code-cutters: analysis of requirements, mockups, spikes. “What implementation routes could work here?
  2. Sending emails to confirm required information for third parties. “What do you need to get this job done?
  3. Researching information if moving into unknown territory (new ventures that you just want to try). “Where the hell do I begin with this?

The idea here is not “big up front” work, but rather figuring out “the best way forward”. This is a different mindset. You are not looking to cover everything, but enough to get the job done.

You will be amazed how much time can be saved by spending anything from 2 minutes sending an email to an hour having a coding spike. External parties also appreciate the fact that you are trying to keep them productive also. I have had some really interesting replies from bank personnel etc. the amount of gratitude they have expressed has been surprisingly great. Help others to help you.

Action

At this stage, we have all the information gathered in Preparation, so what do we do? Action it of course! The focus of this stage is to produce high-quality output for implementation. This will mean things like (sticking with the three examples above – remember, keep the flow):

  1. Producing high quality, readable, maintainable, tested code.
  2. Draft emails to third parties, ensuring all required information is contained and it is quick and easy to read.
  3. Detailed information gathering and analysis based on direction established in Preparation.

Implementation

This is what we were aiming for, actually getting the damn thing done. At this stage we are actually looking at “applying” the changes. Again, following on from previous examples:

  1. Deploying/releasing a product, version or feature.
  2. Await confirmation that third party has completed your instruction.
  3. Produce reports, documentation or future stories based on research etc.

Review

And finally, the hunt for Kaizen. How did the story go? Could we have done it better. Here we analyse the process to see if there were are any opportunities to reduce/solve weak areas.

Archive

Once stories are completed and reviewed, they can simply go in the Archive for safe keeping. This is not really a “required” part of the process, but it can be great for retrospectives and later analysis.

Blocked Items

Now, process reviewed, this is where things can get interesting. What if something goes wrong with the implementation?

“Stopping the Line”

The Toyota Production System (TPS) makes a key point in it’s process:

Build a culture of stopping to fix problems, to get quality right from the first.

This may sound kind of obvious, but it often helps if you imagine the Toyota Production line at work (this is based on what I have read – I would LOVE to see this in action)..

  • There are people, parts and machines everywhere. This thing is a behemoth of well-oiled machine.
  • Everyone on the production line has a red cord that they can pull which will shut the entire thing down.
  • If high standards of quality are not met, every person on the line has the power to stop it due to the “blocked” item.
  • When the line is stopped, it literally STOPS. Everything shuts down, sirens go off, lights flash – you get the idea.
  • Then, the system changes. It’s “all hands on deck” to fix the problem and establish why something went wrong.
  • Changes to the working process are made to ensure that this kind of defect/blockage never happens again.
  • The line is started and production continues.

Now, you are probably thinking “wow, that’s a bit excessive” right? Well, not really.

The whole reason the TPS is so successful is because it fosters and empowers social change. A blocked item is not “just a minor defect”, it’s a breakdown in quality. How can you say you have “high standards” if you do not treat ANY breakdown in quality the same?

Blocked Items and The PAIR System

The notion of a blocked item was a big part of the thought-process behind the PAIR system. Each of the phases are carefully selected because they each focus on a certain core skill-set:

  • Preparation – The ability to analyse a problem and plan a appropriate course of action.
  • Action – The ability to hone your working processes to produce high quality output.
  • Implementation – The ability to take what you have have produced and create a smooth, efficient handover to others.
  • Review – The ability to critically examine your own work, then adapt and improve as necessary. This process cannot really be “blocked” – but I would suggest that you ensure you review early while the story is still fresh in your head – so you may want to set up “Work in Progress” limits.

So the idea is, when a story is “blocked” – you do your absolute best to remove the blockage, detail why it happened and remove (or at least reduce) the change of it happening again.

So, lets think about this and how “blocking” might work in certain scenarios..

Cutting Code
  • Preparation – Blocked due to insufficient requirements specs from the client.
  • Action – Needing to clean up nasty legacy code that was buried in the system.
  • Implementation – Broken build.
Third Party Requests
  • Preparation - Lack of understanding of what you are trying to achieve. There may be a need here to do some brainstorming etc.
  • Action – Need to gather information from other sources before being able to continue.
  • Implementation – Information sent to third party is missing some required information.
Unknown Territory (New Ventures)
  • Preparation – Similar to “Third Party Requests”, lack of understanding of why you are here and what you are trying to achieve. Get back the drawing board.
  • Action – Lack of “domain knowledge” (i.e. you come across something that you need to understand, and wasn’t obvious in preparation).
  • Implementation – It is actually more probable that the implementation step will involve the creation of new stories that are more focused. Therefore, it is unlikely blockages will occur at this stage.

Wrap Up

So, there it is. I have of course started using this system and will no doubt be blogging about how it is working out for me in the near future. I wanted to get the initial concept out early to see if others have any thoughts and/or can perhaps start making use of it themselves.

What are your thoughts on this process?