Sunday, November 16, 2008

The Morning Shuttle, an exercise in Project Management

A few months ago I posted about the necessity of including uncertainty in estimates, for software building and todder shuffling in the morning (originally posted on the Flightpath blog and then reposted here). I've realized over the last few weeks that this morning routine is not just a matter of making sure there is enough padding in the schedule, but also includes exercises in risk management, scope and change control, and lots of other good fun project management stuff (in bold).

So, I just started working at a new place and even though they already told me that I can have the schedule flexibility I need in the morning, I figure I should try to make a good impression and get in as close to on-time as possible.

I took a close look at all of the steps involved in the morning routine and tried to figure out where I can trim the schedule. First, I should mention that three mornings a week I need to go three stops on the subway to shuttle the almost 2 year old to daycare (while dragging the 4 year old along) and then get back on the subway and go backwards 7 stops to get the 4 year old to preK. At that point, I walk back over to the subway and take the 35/40 min ride into Manhattan. I should emphasize here that this is ALL done on foot, no strollers and sometimes the occasional baby-carrier. And this is also working with the early (and not so early) drop-off times for daycare and school (my daughter's preK does not allow them into their classrooms until 8:55am). The other two 'easier' mornings are just making the trip to preK.

So, my first step was to identify my risks, figure out what events will have negative impact on my schedule and how I can mitigate those risks:


  1. Getting the girls dressed - can take anywhere from 5 to 15 mins, depending on how organized the dresser is, how picky the girls are, and how quickly I can find the matches to those "@#$%" socks. Response - pick out the clothes the night before, and try to get better at keeping their stuff organized.
  2. My own morning routine - can take up to 30/40 mins if I need to shower after exercising, or lose time hunting around for my own clothes. Response - give up on trying to exercise in the morning and do that and shower at night. Try to also pick out clothes the night before (including socks!).
  3. Lunches - not a huge impact, but can make the difference if I need to shave 5 mins off the schedule. Response - make my 4 year olds lunch the night before.

What risks do I have no control over?

  1. Trains - the time it takes for them to arrive and get us where we need to go.
  2. Bus - if it comes at all, and how long it takes us to get where we need to go.

What should my schedule goals be to keep me on track?

Major milestones:

  1. 6:30 am - need to be up by then to ensure we get moving early
  2. 7:15 am - if I want my younger one to walk to and from the train, then we need to leave enough extra padding time for her slower walking. Must be out the door by this time.

So, I've got my risks and milestones noted, now what happens in the morning when something unexpected slows us down? You can read the previous post I noted in the beginning to find out more about those, but then it comes time to figure out how to modify the activities in the morning routine to trim down the schedule.



  1. Walk or wear?
    Although my almost 2 year old would much prefer walking to and from the subway and I want her to have this opportunity to improve her walking and get good exercise, it can make the difference between a trip to daycare taking 25 mins and 45 mins. When I can I let her walk, but when we're short on time I'll strap her on my back and go (and haven't needed motrin yet, thank-you!).


  2. The Bus
    Although I have absolutely no control over the bus that can take us the 10 blocks from the subway to preK, if I see it coming and its not totally packed, I take it!


  3. Skip the trip into the school
    I started to realize, that (ironically enough) I am both the only working mom in my daughter's class and also the only mom to actually walk her to her classroom (and not drop her in front of the school and drive away). So, we compromised and I take her to the door of the school, say my goodbye's, then one of the teachers takes her to her classroom. This can save 5-10 mins on some mornings.


  4. Extreme skipping the trip into school
    The school has a very nice security guard, and any kids dropped off before 8:55 am are told to stay at the security desk until they are allowed to go to their rooms. I felt kindof guilty at first, but leaving her at the security desk seems to be the only way to win back some time before I get back on the train.

This has all shown me (again and again each morning) the importance of making estimates in ranges, keeping project risks on the agenda at all times, and finding ways to trim scope when possible or atleast not adding to it.

Have I made it in 'on time' yet? The first morning I was 5 minutes late, the second morning about 20 (the second morning was the double drop-off day). I'll keep working at it, again not because I am getting pressure, but it's actually a fun challenge at this point.

Now, if it was only this easy to keep large software projects within 5-20 minutes of their target completion time!

Sunday, November 2, 2008

The difference between saying you're sorry and meaning it: Formalizing the lessons learned process

I just read a great post on the pm411.org site, titled "Avoid the Same Old Mistakes by Focusing on Lessons Learned". The guest blogger is Duncan Haughly, and he writes about the importance of taking the time to review the good and bad of past projects and learn from them. He also discusses how organizations can create a culture "where people not only take the trouble to learn from past projects, but actually want to learn. A culture where we apply best practices and discard bad ones."

This is such an important idea, and he did a great job of outlining the key steps in making it happen successfully. Too many times you'll hear management say "Oh, that won't happen to us again, we'll do X or Y differently next time". Then the experience fades and months/years later the project team finds itself repeating the exact same mistakes. Steve McConnell in many of his books stresses the importance of reviewing lessons from past projects at the beginning of each new project. People might not always see the value in spending the time reviewing these important lessons, because as Derry Simmel says in the article that Duncan Haughly references, we're too much in a culture of 'let's go and get it done' and not 'let's make sure we plan properly and review lessons from the past before going forward with this new project'.


This reminded me of something I am going through now with my 4 year old. I should be grateful that atleast she is good at saying she is sorry for something, but what I am trying to get her to understand is that repeatedly saying sorry is ok, but making sure you think about what you did and the impact it had and try your best to not do it again is even better. It might be a lot for a 4 year old to fully understand, especially because many adults don't even get it.


So of course this whole idea is not just limited to software projects, it can apply to all areas of life. It's better to take the time to reflect on what was done right or wrong and learn from it than continue to repeat old mistakes.

Saturday, October 25, 2008

The best project specs I've seen so far -- by Dunkin Hines


I'm lousy when it comes to cooking & baking. I won't go into the stories of muffins gone wrong, chicken not cooked right, even hard boiled eggs not really hard. Thankfully my husband does the cooking and he's great at it. I'm the one who builds the furniture, deals with home repairs/renovations (not always so well), and smashes front 'yard' concrete with a sledgehammer so that we can make way for a little garden (should have seen the neighbors galk when I was pregnant and working the hammer!).


But anyway, I'm not much of a cook. But, when it came to making cupcakes for my daughters little party, I felt like it was my duty as a mom to make them for her. We bought the Dunkin Hines Devil's Food mix and with the instructions from the back of the box right in front of me, I nervously get started. I always get tripped up with the variations between baking temperatures for glass & metal vs dark or coated pans. But, since this time I was making cupcakes my situation was a little different.


Since these days I often find myself relating something I'm doing to something about managing software projects, I suddenly was thinking of project specifications. I was the lone programmer working on part of an application, and there was no project manager or information architect to answer my questions that came up...


- How do I treat the pan if its a cupcake pan and not a cake pan? Do I grease it, just put the little paper cups in, or put grease in the paper cups?


- How much batter do I put in each little cup? How many cupcakes should this make?


- What if I don't have vegetable oil, will another type of oil do?


Those of you bakers out there are probably laughing at my silly questions, but because of my bad history I really am a very timid baker. Fortunately, I had wonderful specs to work with. The back of the cake mix box had very clear instructions and color pictures showing exactly what I needed to do. There were accurate illustrations of each of the ingredients needed in addition to the mix, and each of the three main steps were broken into smaller steps with clear bold red headings. There was a little table at the bottom that showed what baking time is needed for different size pan and even my own (yes!) 24 cupcakes. If I had a question about something that seemed to be outside the realm of the normal baking process, in most cases the answer was there on the box.


I'm reading "Rapid Development: Taming Wild Software Schedules" by Steve McConnell right now, and am always impressed when I see the charts plotting out recommended times to be spent on each area of the project. In this and all other books I've been reading lately, there is always more time devoted to design and specification for the project than on coding. This seems consistent regardless of the Lifecycle model used (unless its the "Code and Fix" lifecycle). The general theme is that when enough time is put 'upstream' into planning through how things should work, both with interface, technical functionality, etc...then less time will be spent later 'downstream' with rework, bug fixing, or worse...cancelling the project all-together.


Did I have to cancel my cupcake project? Definitely not, they came out fine...a little lumpy but definitely edible.


Did I have to do any rework later on? A bit, I was a little too conservative with my batter amounts in the beginning so I had to go back and add more to the small cups at the end.


Was there any bug-fixing? Nope, I had all the right ingredients in there and the correct amounts of them.


All thanks to an excellent specifications document.. thank you Dunkan Hines!

Wednesday, October 15, 2008

Life in the slow lane... (for toddlers and team members)

Last week I was taking my younger daughter to daycare and decided that since I had extra time that I would let my younger daughter walk on her own rather than strap her into my back carrier. She'll be 2 in December and seems like all she wants to do these days is walk (she was a late walker so she must be making up for lost time). She was thrilled that I let her walk and loved the morning stroll. I got a kick out of watching her walk to the subway, she stopped at all of the flowers and touched them, picked up leaves and dropped them to find new ones, tried opening gates and going up steps. It was a true pleasure to take a slower walk with her, and not only was it great for her to get more practice walking (she's a cross between a zombie and a drunken sailer when she walks and even more when she tries to run) but also for her to get a chance to take in her surroundings and not be rushed off to daycare.



This reminded me of something that seems so crucially important with software developers, designers, QA, anyone involved with the project...which is getting the opportunity to 'slow down' and learn something new. Seems like everyone in this industry is getting pushed along and constantly pressured to get as much work done in as little time as possible, since that is what appears to be the most 'productive' way. After reading Peopleware: Productive Projects and Teams and Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency I completely see and understand how pushing people to their limits can have the reverse effect on productivity and actually cause more harm then good. Not to say that it didn't seem obvious before, but those books helped put some numbers behond the theories.

I've heard that Google programmers are all encouraged to pick up a side code project, try something new, research something, or build something that's never been built before. Sometimes the end result becomes part of one of their applications, sometimes it doesn't. But, even if it doesn't directly contribute to one of their applications, it can have an incredibly positive effect on programmers morale, creativity, loyalty to the company and productivity while they are doing their other work.

If we get past the idea that we need to make sure people are working 100% of the time and give them some time slow down and learn something new, I'm sure the payback will be totally worth it!

Monday, October 6, 2008

The last step in dropping the "a"...

So, without going into too much of the details, my husband and I knew that we liked the name "Lila Ruth" for our daughter who was born in December 2006. So, when it came time to fill out the paperwork in the hospital, I realized we never discussed how we wanted to spell her name. I liked "Lilah", but I figured since my husband wasn't in the room at the time I should give him a call and see if he had any opinions. He said he really liked "Laila" because he had seen it in a book somewhere and thought it was a pretty spelling. I figured I'd go with his suggestion, he is the english teacher after all and I'm just a software project manager...what do I know of names?!

When we announced the name to our friends most people said "Layla! What a beautiful name!" (think the Eric Clapton song). So, immediately we realized we had a problem. We didn't want our daughter going through life having people mispronounce her name all of the time. My husband was especially sensitive to this, since he was one of very few Garfinkels in Indiana and people always got his name wrong!

As time went by, I decided I didn't think it was such a big deal, but my husband still insisted on getting the name spelling changed. I told him that if he wanted to do it then he needs to do it soon, the older she gets the more documents are in her name (she already has a facebook account, a gmail address, etc.). Seriously though, I wanted to make sure the change was done before it came time to fill out preschool applications, which would be this year.

So, my husband committed to getting the process done this past summer. He downloaded the application, filled it out and got it notorized, then went to the civil court and waited in line to get it accepted. He then was given a date to go back and appear before a judge.

The last part of the process is to 'publicize' the name change, and this is where it gets funny. We must pay for an ad in the "Irish Echo" newspaper (apparently is has a circulation of 26,000 which qualifies it as a large enough audience) and announce that our almost 2-year old daughter is now "Lila Ruth" and not "Laila Ruth". I know that all of her friends who read the Irish Echo will appreciate that we reached out to them. Nothing against the Irish readers of the paper, but I don't understand how this will help us get the word out to the people it matters to.

In these days of super high technology and super fast communications, it seems so silly to put an add in a newspaper about a toddler's name change. There's so many other much more interesting and effective ways to spread the word. I see people announce their pregnancy on facebook, or watch their status changed from 'dating' to 'single' (hopefully not the same person who announced their pregnancy). I learned of someone's divorce through my newsfeed....that was wierd. I can easily post a question to tens of thousands of project managers on any number of social networking websites. I'm on a Brooklyn parents listserv of several thousand that's so active that I don't have the time to sift through even the daily digest version of the notices. Lately I've been pretty hooked on Twittermoms, what a wonderful way to connect with people!

So, how else could I tell the world that Laila is now Lila? Well, I could post on my facebook status ( I don't have 26,000 friends, but if I made my profile public for the day then more people might see the news). I could send an email with the news to everyone I know and ask them to forward the email to 20 of their friends. I could post the note to the neighborhood listserv, and easily get 7000 and probably some people who might actually know Lila! I could tell all the project managers in my networking group or all the mommies on Twittermoms, and add a note to twitter just to top it off. All of these things would not only get the word out faster, but to more people who might have an interest in our news.

Oh yes, and of course...my blog!

Saturday, September 27, 2008

Getting my priorities straight (both with project team members and potty-coaching)

Yesterday I was working at the computer and keeping an eye on my almost 4 year old as she was playing nearby in the same room. She needed to take a potty break and is at the *fun* stage where even though she can do the whole business independantly, if I'm around she wants me to stay in the bathroom with her and help out, etc. I know, I know...I should cherish these moments, and I'll regret not enjoying this time more when she hits the stage where I am just not cool enough for her and she doesn't want to hang out with me anymore. But, I'll be honest, I was focused on what I was doing, frustrated that I had to stop, and impatient with her when she was in the bathroom.

She was finishing up, and I found myself nagging her with different tasks:

"Pull up your panties"

"Put the seat cover down"

"Wash your hands!"

"Flush the toilet!"


All those things she knows to do, but since I was in there I felt like I had to coach. I was so busy giving her more stuff to do, I didn't stop to think that I might have been confusing her with all these different tasks, that were actually not in logical order. She stopped for a moment and looked up at me with this look of such total confusion, so I slowed down and started over, this time being careful to be more patient and take it one step at a time.


I find myself in the same position both at home and at work, when I am given several tasks and told that they are all equally important. I don't know what to do first, what needs to be done when, and how to properly manage my time to make sure the important stuff gets completed at the right time. When I saw the way my daughter looked at me, I knew exactly what she was thinking and I've been through it enough times myself.


Fortunately I am not involved in potty training any of my project team members, I trust that they are all fully competant in that area. But, I do occasionally find myself sending over one email after another with this task or that, sometimes related sometimes not at all. I have to remember to stop and think that this puts my team members into that same position of frustration that both my daughter and I were in. I've been good lately, I sift through that list of tasks and send out another note (or even walk over to the person and discuss with them face-to-face...imagine, so low tech!) that will list all of the tasks in order of priority, with any other relevant notes that will help him/her figure out how best to get it all done, without going crazy.


Having just finished and thoroughly enjoyed reading "Peopleware: Productive Projects and Teams", I know the importance of happy, comfortable and focused team members. Since I didn't have a camera handy with my at the time, I'll have to make sure to keep the mental picture of my daughter looking up at me so confused and pin it up at my desk at work, to make sure I don't put any of my team members into that same frustrating position.