June 16, 2012

The difference between developing software in Agile and implementing Agile at home

Agile@Home :


Talking to a fried made me realize that many software engineers struggle with the same questions.
“OK, so we know Agile and Kanban get things done at work. But is it really a good idea to do this at home?”
“It might work, but it feels too much like turning the family into a company - and we’re the management”.
Kelly Waters, from All About Agile, reviewed the Agile Kids book, and had a similar issue with bringing Kanban home.
According to him, although the concept is interesting, he “think(s) it feels a little awkward applying a management methodology with your kids (although my kids certainly need managing!).  So I couldn’t quite decide what I thought in the end.  I think it might be one of those things you either love or hate.”

You may be surprised, but I completely agree with him.
Our kids are NOT a project (although some parents will disagree with me ). We should NOT manage our home using a rigid “software project management methodology”. Just saying that makes it feel that the family is just a collection of resources, that have to give quality delivery results, and make sure we get a nice profit.
Doesn’t sound much fun now, does it?
Now, although a family does live within certain rules and boundaries, I think most of you will agree that there’s more psychology involved than project management.
(and there are many interesting psychology theories that compare families and organization managements, showing how management techniques are strangely similar to parenting techniques, and vice versa).
In a family, managerial skills like creating a healthy dialogue, self motivation, the ability to communicate, share ideas or act as a group are valuable, and of course, far more important than ‘delivering a project’.
But even a family needs to get things done, such as chores or tasks, that if not completed, will cause problems down the road.

Come back with me to the Agile software development world for a minute.
Here , our statement is: We aim to deliver something that can go live, in a relatively short period of time with the highest quality while answering customer expectation.
The short short version (and keep in mind, guys, that Agile software development is a long road with lots of engineering practices, tools and principles) is that we coach the teams to collaborate, to work as a team, to be self motivated. We coach the managers to empower their employees, to think about motivation and communication as a key to success and delivering a quality product. We use scrum and Kanban as tools. We coach to visualization and communication above all as powerful tool of getting things done.
Or, in a more simple form: We use the task board, which helps us visualize the project tasks, as a tool. We use the backlog to manage the release components. We use the daily stand-up meeting as tool of communication and collaboration and as a mean for self organization; we use the retrospective as a mean to improve.... and many more Scrum and Kanban mindset tools. Because we want to improve our delivery and quality.

But the bottom line of software development with agile  is that the mindset and tools are just the means to a better delivery (in this case, money)! It’s not the goal.

We teach all those soft skills because we believe they are key to delivering something that can go live, in a relatively short period of time with the highest quality answering customer expectation. 



At home, it’s exactly the opposite

The mindset and the agile attitude ARE the goal. The means are the project management tools. The Agile mindset is used to improve the family dialogue, and the tools get things done along the way.
We just use the Agile project management tools (task board, daily, retrospective) as means to reach empowerment, to elevate self motivation, to teach healthy communication and to elevate improvement culture. 

It’s a modern family; we have tons of tasks to complete, parents working all hours of the day, and we don’t have as much time to talk to one another as we used to. And along comes Agile, and offers an amazing tool to get things done AND improve communication in such a simple way. So why not use it?!
Of course we use the task board as a way of managing the family tasks (which need to be done) , but the real purpose is to start talking over those tasks. We use the daily gathering when we talk about tasks to create a period of quality time, where we can talk and be heard.
It’s not the delivery of the house chores and kids tasks that matter (well, OK, they do, but they are not the goal), it is the ability of the child and family to understand the goals, to be heard, to get feedback, to communicate with the parents, to make mistakes and correct them and to be able to see the way using visualization tools. Completing the tasks is a by product (a very important one!).  It’s the same mindset tools we use for software development, but here they become the goal.


We believe that Agile self motivation and communication tools will help our kids get things done in the future, and they will also make us a better family and those happier. And most of all, they will lead to a self and family growth!


Spoiler: it really works. Using Agile techniques at home, at school, with our kids just works. And the reason it works is that it is not at all project management, it’s all about soft skills.

3 comments:

  1. You have shared a very interesting post.Thanks for sharing. Now a days every thing like business, companies are depending on internet technology. I use Online Project Management Software which is very useful for every business, to manage my projects important data and also like to use Agile Project Management techniques for better result.

    ReplyDelete
  2. Shirly,

    Thanks for that post. One thing is absolutely true: you cannot and should not manage your home like your job. But that should not keep you from taking things that work, adopt them, adapt them, and make the best out of it at home.

    Jens

    ReplyDelete
  3. Agile test driven development is very important in Software development because Agile development provides opportunities to assess the direction throughout the development lifecycle.

    ReplyDelete