My Personal Agile: Introduction

(This column is posted at www.StevenSavage.com and Steve’s Tumblr)

All right people, money where my mouth is time.  I’ve been talking to several friends and my girlfriend about my use of Agile methods (Scrum specifically) at home.  They’re curious, but they noted it’d be easier if I wrote this up.  Realizing I’m a writer I felt kind of dumb because, you know . . . I should have thought of it.

So guess what you’re going to see for the next few weeks?  That’s right – a detailed (but light) guide to my own Personal Agile system readable by normal humans.

Now let’s talk Agile, but first . . .

If You’ve Used Agile:

Don’t worry this isn’t fanatic or preachy stuff.  I come from an engineering and science background, bits and bytes and blood and guts.  I’m interested in results.

However I am big on learning and making good productivity part of everyday behavior.  That might get annoying.

You can probably skip the next section.

If You Haven’t Used Agile:

So what’s this Agile stuff?  Let’s go to a basic outline that is hopelessly minimizing everything but still useful.

  1. Formally or informally a lot of management and productivity has been top-town – orders, schedules, hierarchy, etc.  You get the idea – build a plan and follow it.  These days this is often called “Waterfall” but the basic idea’s been around for most of human history, and “Waterfall” as a concept is a comparatively recent invention.
  2. For a few decades at least (and informally throughout human history) people also have known this whole plan-it-then-try-it method doesn’t work.  Methods of alternate management and workflow have been developed.  Many are older than people realize, but were in specialized markets.  Look up the history of Kanban sometime.
  3. Software really seems to have blown the lid off of a need to find new ways to organize.  Software jacks all the problems of doing any task up to 11: it’s fast, it’s variable, it’s evolving.  A lot of methods to make software management and productivity work better evolved, and people started calling these collectively “Agile.”
  4. In 2001 a whole bunch of Agile people met at a resort to discuss this and produced the Agile Manifesto and the 12 principles, which are seriously worth reading.  This really consolidated and kicked off Agile practices – Agile had a Philosophy, and there was feedback between Philosophy and Methods.
  5. Since this time, people have been adapting various forms of Agile all over.

So that’s it.  People knew traditional management didn’t always work, software really revealed that and drove people to fix it, and from that emerged a more coherent philosophy that sent things into overdrive.

EXERCISE: Go to the Agile Manifesto and read it.  How do you apply (even if accidentally) the four core elements of it?

EXERCISE 2: Read the 12 Agile Principles.  Which make sense to you and which don’t.  Why?

Why Is Agile Different From Other Methods?

(Hey those of you who have used Agile?  You can keep reading now).

Here’s how I see Agile differing from other methods of getting organized that aren’t, well, Agile?

  1. Agile focuses near-obsessively on value and why you’re doing something.  As you may guess, Agile also helps you realize when something is stupid.
  2. Agile focuses on adaptability and responding to – even embracing – change.  This helps you get the most out of change, even when unwelcome.
  3. Agile is heavy on feedback and adjustment and review.  Improvement is baked in.
  4. Agile is about everyone involved practicing it.  This is why I think the Agile Manifesto is so important, it was a basis for people not just doing Agile but becoming Agile.

Cool, So What’s This Scrum Thing?

Scrum is one of the Agile Methodologies or Practices (I see people use the terms interchangeably).  It was my first encounter with Agile, and frankly I consider it and the older practice of Kanban (which I use parts of) to be the best stuff I’ve seen.  Yes, I’m biased.

At a high level, Scrum works like this:

  1. You keep a list of things you want to do in priority order.  That’s the Backlog.
  2. You set aside a block of time to do work, called a sprint.  This is often two weeks in software, but I use a month for myself since my life has a monthly cadence.
  3. Every sprint you look at your Backlog and take all the things you can do from the top down.  You do not skip an item unless it turns out something is more important.  Basically you take the most important things that you can do in that timeframe – that becomes your Sprint Backlog.
  4. You do the work and adjust and adapt.  Sometimes you find that there are issues, sometimes you find old work.  Sometimes you even find you have more time and grab more to do – off the top of the backlog.
  5. At the end of the sprint you figure out how you did, look over the backlog, and do it all again.

Scrum hits a sweet spot of “free-form” and “organized” for many.  You can predict work done more or less.  You know priorities.  If anything goes wrong you review every sprint and can navigate.  You also know what’s expected of you (or from yourself) in a timeframe.

You can probably see how this helps out.  When I implemented my own Personal Agile, which is mostly Scrum, I actually got everything done within the first 3/4 of the month.  I had a gain of 25% productivity – and I was already pretty productive using the Agile-sih “Getting Things Done” method (which is well worth reading up on).

EXERCISE: If you were more efficient – without overloading yourself – how much more do you think you’d get done?  Can you put a percent of gain you think you’d experience.

So What’s Coming Up?

Fine, you got the backstory.  Let’s get to the methods – next up we talk why things matter.

– Steve

 

My Agile Life: By The Numbers

(This column is posted at www.StevenSavage.com, Steve’s LinkedIn, and Steve’s Tumblr)

(My continuing “Agile Life” column, where I use Scrum for a more balanced and productive life continues).

Let’s talk estimating how much work something takes. This may sound boring, it will get abstract, but stick with me here – it’s pretty interesting.

I’m using the Agile method of Scrum in my own life, which involves sizing work to know how “big” it is. If you’re not familiar with Agile practices, just know this is an area where pros argue a lot, so if you think we’ve got it figured out, you’re wrong.

I size my personal work in terms of hours to complete because I’m self-aware enough to get those estimates reasonably right. It’s not perfect, and I wanted to get better. I think I found a solution while reading The Elements Of Scrum as a refresher, because the authors explained the challenges of sizing work better than I’ve ever seen.

Again hold on here, because we got some backstory.

In Scrum (and related methods) work is often sized in abstract points – the smallest piece is a one point, something twice the size is a two, and so on. Then people figure out how many “points” of work they can do in a given time – and this often works very well (I’ve seen new teams get it 80% right out of the gate).

Why does this work? Because people are great at relative sizing (this is twice the size of that thing) but not so much at doing specific time estimates. Leverage this ability and people get an idea of how big (or small) work is, and they can then do a decent job of figuring what can be done in a given time. Sort of zooming from general to specifics.

Sounds simple? It is, but many Scrum practitioners require points to be in the Fibbonacci sequence – 1,2,3,5,8, and so on. So something twice the size of “1” is a “2” – but if something is twice the size of a “2” you have to call it as more likely to be a “3” or a “5.” Sound weird? There’s a reason.

The author explained it simply that drove this point home:

  1. People are good at comparing the sizes of small things but have trouble with larger things. This applies to time take to sizes of physical objects and more.
  2. #1 gets worse the larger the things being compared are.
  3. You use the Fibbonachi sequence as the range between “allowed” sizes gets larger and larger, forcing you to make a judgement call and giving you a bit of buffer.

Where does this come into my time estimates? Well my time estimates weren’t bad, but they weren’t great. I also didn’t want to use points as some of my “life stuff” was far better measured in hours. So I started using Fibbonaci sequencing to estimate hours of work because this simple explanation made me realize I’d falsely thought I could estimate large stories as easy as small.

So right now the smallest piece of work is one hour – but I can’t say something is six hours, I have to ask if it’s more likely to be 5 or 8. Sure there’s probably over and under-estimation but it evens out.

I started doing this late June and in full this July – and it was an eye opener:

  • In larger pieces of work, had I used Fibbonachi numbers on big things, those would have been more accurate. Yes, some of my estimates were worse when I tried to be specific instead of using some constraint like “is it closer to 5 hours or 8”
  • Some of my fiddly little estimates (45 minutes, 90 minutes) were less accurate than their Fibbonachi counterparts.
  • My best estimates happened on things that were 2 to 3 hours long – fortunately the majority of my work. However there was enough “mis-estimation” in large and small items to probably throw off my monthly estimates by around 10-20 hours.
  • Items that were 8 hours or more were a warning sign to break things down – those were often woefully inaccurate and hard to work with.
  • Items that I did break down usually surprised me – there was often more work than I thought.  Breakdowns (again, using Fibonacci) were more accurate.

I’m going to be sticking with Fibonacci hours for now – maybe you want to try this in your own life, even if you’re not using Scrum or Agile techniques.

(By the way I do plenty of books for coaching people to improve in various areas, which may also help you out!)

– Steve

My Agile Life: That Glorious Flow

(This column is posted at www.StevenSavage.com, Steve’s LinkedIn, and Steve’s Tumblr)

(My continuing “Agile Life” column, where I use Scrum for a more balanced and productive life continues).

I’m using Scrum to help order my own life. It’s going pretty well, and one of the things that helps is ease of communication, because most of my communication is with me. That’s the Agile ideal of regular, personal communications among team members made easier by me being pretty much the team.  Communication is easy when its in your own head.

This made me think about Scrum and Agile methods when multiple people are involved, from developers to customers. The clarity of my own Scrum-At-Home made me realize how many projects are held up by poor communication, even supposedly Agile ones.

How often is communication delayed on a project? An hour delay in communication can mean days of delay in a project.

How often is communication withheld to avoid conflict or trouble? A lack of information ultimately has to be made up for.

How often is communication handled by some people that aren’t doing, testing, or otherwise involved in the work? Someone abstract from the results will be abstract in their communication.

How often is communication the result of endless layers of people? It becomes a game of telephone operator, of checking and re-checking.

A lot of projects go wrong because of communication.  This is why communication matters, and why the Agile manifesto is almost entirely about communication:

  • Individuals and interactions over processes and tools – TALK directly to people.
  • Working software over comprehensive documentation – RESULTS over documenting them.
  • Customer collaboration over contract negotiation – WORK with people over messing around with fiddly pits.
  • Responding to change over following a plan – CHANGE in response to information.

Running a “Scrum of One” gives you an idea of what near-perfect communication is since you’re the only one involved. That feeling of flow, of productivity, is what you should be feeling in Agile projects at work. When you don’t feel that, something’s wrong.

My guess is you’re used to feeling something is wrong in your projects.

This is one of the many reasons I reccomend personal Agile to people. Done right, you know what real productivity feels like, real communication. Done right, you learn lessons you can apply.

(By the way I do plenty of books for coaching people to improve in various areas, which may also help you out!)

– Steve