Monday, August 11, 2014

Agile @ Home

Participating in various Agile-related activities in our office inspired me to think about implementing Agile approach in a rather unrelated field: our family.
The Agile philosophy contains some best practices, which, if adapted and customized slightly, can help us manage our personal lives in a more structured and productive manner.

Here is a write-up which outlines this approach.
Also available on SlideShare as a Microsoft PowerPoint presentation:
http://www.slideshare.net/gautamsoman/agile-at-home

Introduction

Agile is an incremental, iterative methodology used widely in software industry. Agile @ Home is a proposed approach to bring in the best practices of this methodology into our daily lives. The objective is not to make our family life a formal, mechanical process, but to bring in a structured approach to get things done without causing undue stress.

Stakeholders

Product Owner (PO)

In Agile @ Office, Product Owner creates the product backlog.
In Agile @ Home, Product Owners are primarily responsible for guidance and monitoring. They should ideally be the senior-most member of the family. They can also be someone from outside the immediate family; but someone whom the family trusts and respects; and looks up to for advice.They should help Scrum Master to resolve conflicts.

Scrum Master (SM)

Ideally a enior member of the family. Role can be rotated among two equally senior-members (husband /wife) after every few sprints. They would be responsible for tracking progress of all tasks.

Scrum Team (ST)

All members of the family unit (except infants!). The Scrum Team members should be coached by Scrum Master on Agile processes. This can be done during Sprint 0 (zero).
Preferably not more than 7 members should be under one Scrum Master. ‘Pair working’ concept can be used: two folks working on a big task.

Agile Ceremonies

Product Backlog

Just as in Agile at Office, this is the most important step. All the stakeholders (PO, SM and ST) sit together and brainstorm about everything that family wants to achieve, in the short-, medium- as well as long term.
This should be done periodically, at least once a year. Creating a solid, comprehesinve Product Backlog sets expectations clear, brings everyone on same page.

Sprint Planning & Sprint Deliverables

During Product Backlog, all stakeholders decide on time-boxed unit for a sprint. Recommended time-box is minimum one month and maximum three months. At start of every sprint, all stakeholders agree to select a chunk of product backlog.
Each family member:

  • Picks up the tasks at granular level. 
  • Commits himself/herself to the selected task.
  • Specifies exactly what they will deliver at the end of the sprint

Daily Scrum Meetings

DSMs are a crucial part of Agile @ Office.
For Agile @ Home, they can be held either at breakfast or dinner, when SM and ST are available. In case, it is not possible for SM and all ST to meet at a common time, SM must interact with each family member and keep track of progress.

Burndown Charts

Stakeholders can decide on a mechanism to track the progress.
Some approaches to track progress:


  • Verbal updates
  • Note pad/Diary
  • Sticky notes on refridgerator
  • Kanban boards 
  • Excel sheets… 

Sprint Deliverables

Agile @ Office focuses on ‘working software’ at end of each sprint.
Agile @ Home focuses on significant, measurable progress on each task. It can be:

  • A tangible, physical product 
  • A recommendation for a specific product/item
  • A ‘SMART’ plan for a long-term activity

Sprint Retrospective

All family members share their updates, preferably at a common meeting. Completed activities are discussed and agreed upon as DONE. Unfinished items are moved to the next sprint backlog.
Sprint Retrospective should preferably be clubbed together with next Sprint Planning.

Example Scenario

Stakeholders: 


  • Grandparents: Product Owner(s)
  • Wife: Scrum Master 
  • Husband, daughter and son:  Scrum Team 

SM and ST visit PO for product backlog:

  • Husband wants to plan a North India trip in December
  • Wife wants to start a jewellery shop
  • Daughter wants to go abroad for higher studies after her Masters degree
  • Son wants the long-promised gaming console

The stakeholders decide on the sprint duration: 2 months

Each team member picks up tasks at granular level:

  • Husband will identify holiday destinations and overall budget required
  • Wife to analyse feasibility of jewellery shop in the locality
  • Daughter to identify admission requirements and college names
  • Son to compare Sony PS3, Nintendo and Xbox and come up with final recommendation

All the stakeholders decide on priorities

  • Since admission dates are close by, daughter’s admission is top priority.
  • Wife’s shop is a potential source of future income, hence next on list. 
  • The gaming console was promised long ago, hence is included. 
  • Last is the vacation plan. 

Over the period of sprint, the SM and ST have discussions over dinner.

After 2 months (sprint exit), all stakeholders meet.

  • Daughter is ready with short-listed college names and admission details. The discussion is done and she will start with admission process in next sprint. 
  • Wife informs that her analysis indicates that jewellery shop is not feasible due to presence of big brands in local vicinity. Hence idea is dropped. But there is much scope for a boutique. This will be analysed further. 
  • Son specifies Xbox and provides reasons (many gaming titles, etc.)
  • Husband informs that finances are not sufficient to meet all above requirements and the vacation; hence the vacation plan is moved to general backlog with a provision for an abroad trip to visit the daughter.

Sprint planning is done for the next sprint… and the cycle repeats.



Monday, March 31, 2014

Be that Someone

I came across this blog post on one of the MSDN blogs that I sometimes read, and thought of sharing with you...


On one of the mailing lists in the Windows project, somebody spotted some behavior that seemed pretty bad and filed a bug on it. The project was winding down, with fewer and fewer bugs being accepted by the release management team each day, so it was not entirely surprising that this particular bug was also rejected. News of this smackdown threw the mailing list into an fit of apoplexy.
 Don't they realize how bad this bug is? Somebody should reactivate this bug.
 Yeah, this is really serious. I don't think they understood the scope of the problem. Somebody should mark the bug for reconsideration.
 Definitely. Someone should reactivate the bug and reassert the issue.
After about a half dozen of messages like this, I couldn't take it any longer.
I can't believe I'm reading this.I decided to Be Someone. I reactivated the bug and included a justification.
Don't just stand around saying somebody should do something. Be that someone.



For those who are curious, the name of this wonderful blog is "The Old New Thing" , written by Raymond Chen, a veteran of the Microsoft Windows product team.

Wednesday, September 18, 2013

Using OneNote

Ever since my early college days, I have been a regular user of notepads — those small, spiral-bound things that you can easily carry in your shirt pockets. The notepads were an immense help in tracking the studies and various activities.*
When I started my IT career, I was pleased to see Microsoft Outlook. It has a great Calendar feature and a neat Tasks feature++. For a while, it seemed to me that I wouldn't need anything more.
Yet even after a few months, I was still carrying my notepad around. The reason being that Outlook doesn't have any provision for free-form note-taking. Sure, you can always type out the content and save it as drafts, or mail it to yourself, but it only adds to the clutter.
So again I was back on the road, looking for a better tool. I tried using sticky notes (both the digital and paper kind), Google Docs, Evernote, but none seemed to work. **

On  joining my current project, I was intrigued to see my scrum master, Pradnya, using an application that looked familiar but couldn't quite place it. So I asked her, and she graciously walked me through it. And thus started my journey with perhaps one of my most favourite software tools: Microsoft OneNote. 

OneNote is a digital note-taking tool, and it comes bundled with Microsoft Office suit. In fact, it has been around since Office 2003 ( and hence the notion of my being familiar with it, even though I had never tried it before). It is organized as a typical notepad: you create a notebook, which has multiple pages, and each page contains one or more sections. You can move or merge sections and pages either within the notebook or across other notebooks.
You can do all sorts of things using OneNote: type in notes anywhere at random, capture a screenshot and insert it directly into the page, record audio or video, create free-form sketches or drawings. There is no need to manually save the document, the data is saved automatically as you type.
OneNote has a seamless integration with other Office products: you can email a page directly using Outlook, you can import your Outlook tasks into OneNote, you can directly insert Excel documents or Visio diagrams into OneNote, and so on.
Another powerful feature is the wide range of in-built tags: To-Do, Highlight, Remind me later, Critical, Idea and so on. 
The search feature is quite powerful: it can search across text, images and audio recordings.
OneNote also works as a superb collaboration tool. You can use it as a digital whiteboard and share notes with other users and edit each other's notes (with required access privileges). You can invite people to view/use your notebook, share the notebook with a meeting in progress or share it on Web as a link.
And of course, you can also password-protect your notebooks :)
With SkyDrive, all the notes are automatically saved to the cloud and are available on all the devices you use (for example: office desktop, personal laptop and smartphone). You can download and 'save' the entire notebook (with all its pages and sections) either as a OneNote file or a PDF and email it to other people.
I have been using three versions of OneNote till now: OneNote 2007 on my personal laptop, OneNote 2010 on my office desktop and OneNote 2013 on my phone#. In fact, having OneNote  was one of the prime considerations in choosing Nokia Lumia Windows Phone as my new smartphone.
I would highly recommend this tool to everyone. A quick tip: Add OneNote to your start-up programs list so that it is launched every time the machine boots up.
This blog was completely written in OneNote.
And, I don't carry a notepad anymore.

If you haven't tried OneNote yet, here are a few links to get you started:
And if you're already using OneNote, these MSDN blogs would be of great help.
http://blogs.msdn.com/b/chris_pratley/: a very informative and educative blog by co-founder of OneNote
Mike Tholfsen, Test Manager for OneNote crafted this wonderful poem:


* It is a matter of nostalgic joy to leaf through these pages.
++ It's another matter that I didn't have as many meetings back then. How I yearned for those, and man, how I wish these days to have lesser meetings so that I can get some meaningful work done.
** I am surprised that Evernote — which was quite a rage back then, and is widely popular even now, didn't work for me.
# Just as am about to post this article, my office desktop is already upgraded to Office 2013 ( and hence OneNote 2013) and my personal laptop got the Office 2013 as well via Microsoft HUP. Yay!!

Monday, December 17, 2012

Be That Someone...

I came across the following post on one of the MSDN blogs I regularly visit.

On one of the mailing lists in the Windows project, somebody spotted some behavior that seemed pretty bad and filed a bug on it. The project was winding down, with fewer and fewer bugs being accepted by the release management team each day, so it was not entirely surprising that this particular bug was also rejected. News of this smackdown threw the mailing list into an fit of apoplexy.

Don't they realize how bad this bug is? Somebody should reactivate this bug.

Yeah, this is really serious. I don't think they understood the scope of the problem. Somebody should mark the bug for reconsideration.

Definitely. Someone should reactivate the bug and reassert the issue.

After about a half dozen of messages like this, I couldn't take it any longer.

I can't believe I'm reading this.
I decided to Be Someone. I reactivated the bug and included a justification.

Don't just stand around saying somebody should do something. Be that someone.


For those who are really curious, the name of the blog is "The Old New Thing". It is written by Raymond Chen, who is one of the veterans on the Windows project team.

Wednesday, January 4, 2012

Non-Goals

Some time back, I read an informative book titled “One Strategy”, written by Steven Sinofsky of Microsoft and Marco Iansiti of Harvard Business School. Apart from some fascinating insights into how the Windows Team came together to pull off a mega-project like Windows 7, the book also taught me some thought-provoking concepts. 
One of such concepts was “Non-Goals”. A non-goal is a scope-limiting attribute that explicitly states some objectives which will not be fulfilled.
Wikipedia has an entry for Non-Goal.
non-goal (plural non-goals)
  1. A potential goal or requirement which is explicitly excluded from the scope of a project.
That's a hard problem, but it's a non-goal for us here.
We always talk about having definite goals, things that we will or should do. It seems counterintuitive to have a list of things we won’t do, but it makes a lot of sense when you think about the complex nature of most of the projects and communication issues between geographically-distributed teams.
In a scope-definition exercise at the start of any project, we usually focus on the things we are required to do. Having a section for non-goals helps to set the expectations of project team (and also of the client)!
For example, consider a scenario: Your project team is working on product planning.  After some consideration, you decide to develop the UI only in English language in the first release, and to localize the product in the subsequent releases. So, in this case, for the first release:
  • Goal is delivery of English UI
  •  Non-goal is localization support
This clears the scope of work, and avoids doubts in minds of the project team.
Non- Goals are directly related to strategy. It is easy to get carried away and vigorously nod “Yes, Yes, of course!” to everything that’s being asked of us, but it takes a certain amount to courage to say “No”!
Furthermore, defining the things you are not going to do enables you to focus on the ones that you are, and to ensure that you deliver these features with the best possible quality.
Steve Jobs, one of the best entrepreneurs of our times, famously remarked that “Secret to innovation comes from saying no to 1000 things.”
At the beginning of a new year, when many of us are usually excited about planning for the year ahead,  this concept brings a clarity to our thoughts, and reminds us that while we may have almost infinite things to do,  distinctiveness  (and hence success) often comes from doing less, and doing it better.