2007-12-01

Agile Living

Agile. One of the great buzzwords of the software industry today. Lean development. Yet another related paradigm of cutting waste and getting to the core of things. Scrum. A way to run a project when things are getting out of control. Extreme Programming. One of the most known collection of agile practices.

We are currently talking, thinking and studying a lot of agile methods and practices at work. It is all very interesting. And most of it makes sense. Some of it is applicable to the software projects I am currently in. Some of it is not. Some of it is applicable in a broader sense.

In the book Extreme Programming Explained - for some known as the XP bible or the start of agile - I read today that you could always "start at home". By that the author obviously meant that if you cannot change your team or your environment into adopting agile practices, you could always start with yourself. Start using them in your daily work. Start test-first developing, start your own daily deployment, etc.

But this blog is not about software development. I will write about that another day. This blog is about the literal interpretation of "start at home". Is it possible to run your home in an agile way? Is it possible to live your life agile? Would that bring the same effects as running a software project in an agile way? Would it make it easier to adopt to a changing environment, to changing requirements? Would it be easier to find the root-cause of problems, to get to the core of any problem that might arise and handle it in the best possible way and ultimately - to have a more efficient life? And please note: I don't intend "efficient" in a "get more work done" way - I mean it in a "fill your life with more of what is important to you" way.

So. Where do we start. Think agile. Your life. The first thing to remember is that just because you start thinking and acting agile, you cannot cut the big plan. You have to have a vision of where you are going. You have to have a goal. What does that mean for your life? That's up to you to decide. Perhaps start by asking yourself - what are the core values that I value in my life? What parts of my life is it that I like most? What would you like your life to be like - in ten years, in five years or perhaps today? This vision would probably be called the product backlog if you asked a Scrum Master. It would probably be called a set of base lined requirements if you asked someone working in a non-agile way. And it would probably be called a wish-list if you ask a layman.

When you got that mental image of your life, of your goal and vision for the product, aka. yourself, we cut down to some practical things that you can to do achieve that vision in a more efficient way.

Short development cycles. Some methods talk about one month cycles. Or one week cycles. Or one day cycles. The keyword is cycles and we're not talking about one year cycles. So. What does that mean? That means that in order to achieve your ten year plan for where you are going you will not be able to sit down right now, plan the next coming ten years and then just perform according to the plan for ten years. So instead of trying and then make small changes to that plan every now and then - locking us into a mindset where we can only stray so far from the set path, we only plan for the first step and perhaps have a loose plan for the next one as well. When we are done with a step/cycle/period of time we evaluate and plan for the next (but this time it will be the first step again) step.

So? How do we know which step is the right one to take? I guess the correct answer is we never know. If we knew, we could probably make a ten year plan and go with that. What we can do is finding some areas that we would like to work on, prioritize according to our own liking and just go for it. And evaluate in the end. Did this change/action take me in the right direction? Do I feel happier, more satisfied with my life or what ever was the goal we wanted to achieve?

Lean development talks about cutting waste. Cut waste from your life. Anything that does not add to the value of the product is waste. Documentation is waste if it does not help your customers get more value out of the product. Similarly anything you do that does not add to the value of your life is waste. Of course, value of life is a very complex measure. Value of life is most often about balance between work and spare time, between friends and your own time, between doing things you like and things you have to do (because you will regret it later if you don't), etc. But if you can find something that you do that does not create more value of life, then ask yourself why you are doing it.

There are loads of parallels I could draw between agile developing and the way you can think about and live your life. I will probably return to this subject some day because it interests me and I think that this is an interesting approach to talking about life and what is important in your life.

Concrete things to do then? Write down the core values that you have and wish to have more of in your life. Write down a list of possible solutions to problems you find in attaining more of these core values. I did this. I will not share all of this list with you all, but one thing that got on the list was to have order and structure in my life because it makes sooo many things easier and it feels good to know where I have things, what I am about to do the coming week, etc. And the problems? Normal everyday stuff. Boring stuff mostly. But from another view fun things. Fun things once I get them done, because then I can feel good about my self and about the order I get in my life. Thus I have a mental list (some of it on paper) where I can see that, for example, I would like to get my apartment in order (paintings, curtains, flowers and other "do once"-things) and to keep my apartment in order (dishing, washing clothes, cleaning, etc). I also see stuff on my mental list that would allow me to grow as a person, to learn new things and to get new experiences. Thus I take Chinese classes, I go to wine tastings and I start learning more about billiards in a structured way. And so on. A lot more interesting things in my head, but those I will keep to myself.

So. Sorry for my rambling. It probably took you a full 15 minutes at least to get here. I'm impressed if you did. Let me know if any of this made and sense. Let me know if you would like to hear more thoughts on the subject some time. Otherwise I know that I will warn you in the start of the next blog post on this subject so you can stop reading in time. :)

2 kommentarer:

Olle sa...

A lot to think about even if I am not 100 % sure of what agile stands for, beside in the physical meaning.

I just got my workshop in working shape - well equipped, warm, well lit, laid out in a practical way. That was a project which took half a year. And I look forward to do stuff there! Very pleasing!

There is of course the book which is going to be written next year and which occupies me a lot. Good content - and well written is the intention. Time is now short for completing it.

But there are other things that don't lend themselves to agile acting, like Peter's funeral next week. Some things are there for living through.

jmitchem sa...

I actually am fairly familiar with certain aspects of agile programming.

I came across this in a search for "agile living". I'm trying to do the same things for myself.

One of the biggest problems that I've had is that I have the agility and freedom to do what I want, when I want, but that I lack many simple routines that cause problems later down the road. For instance, the habit of doing dishes frequently, or laundry, or picking up, or, eating.

How do routine/habit/schedules fit into this "agile" life?