Sunday, March 22, 2009

Learning Lessons in Requirements, in the Shopping Line...

I was at the Children's Place the other night, grabbing some new footed pajamas for my 2 year old, when I found an interesting parallel between clothes shopping and locking down the requirements in a project. I had just been working on requirements earlier that day, and trying to schedule a meeting with stakeholders to review and sign off on requirements. So, what can I say, I had requirements on my mind.

I knew exactly what I wanted when I got into the store, went right to the pajama rack, found the last remaining size 3T pajamas and went right to the line. Also waiting in line with me, were some stereotypical annoying shoppers. Right in front of me was the couple who had a whole bunch of clothes piled onto their stroller and the wife did more shopping while the husband waited in line. Maybe there's not anything technically wrong with this, but it's annoying and I wish I had the nerve to push myself in front of them. Then, at the register was a guy who was changing his mind last minute and ran back and forth to put stuff back and get something else. Those people are even more annoying! So, fortunately they called in more register workers and the line moved a little faster, but in the time I was waiting my thoughts drifted to requirements gathering and management and the challenges of making changes in the beginning, middle and end of a project.

So, the shoppers are project stakeholders, and the time they spend walking around the store looking for stuff is the discovery process. They are not sure what they want and need time to explore and figure it all out.

Then, when they get in line should be the moment that they identified project requirements and are ready to confirm. For those who need to swap something after they have gotten in line, while sortof annoying...it won't slow things down drastically. I would compare this to making a requirements change while in the design phase. It can complicate things, but probably won't bring the project to a halt (hopefully!).

Next, at the register is development and implementation, and any changes made at this point will definitely slow down the rest of the line, and cause significant delays in our parallel project.
I'm reminded of one of my favorite software development charts, from the good people at Contrux, the cost of defects graph:




This chart illustrates the cost of repairing a defect at the beginning, middle and end of a project. The point here is to find and repair early. So, similarly with requirements, make sure they are clarified and confirmed early and make sure all stakeholders understand exactly what they are getting and the cost involved with making changes later on in the project.

So, if you're a project stakeholder or a project manager and sense anything unclear with requirements, just imagine that long line of angry shoppers behind you, furious that you're slowing everything down for them. Pick the right sizes and colors and make sure you know exactly what you want, otherwise you risk reeking havoc on your project.

Saturday, March 14, 2009

The importance of soft (serve) skills...


I debated posting this picture on the interwebs, I mean it's not something I would toss right up on Facebook or anything. I don't consider myself the most photogenic person, but this one is pretty embarrassing. But, I'm going to do it, will make this big sacrifice for my blog. That's how much you mean to me... blog.

Anyway, what's the picture all about anyway? This picture was taken in the summer of 1999 at the overnight camp that I worked at in northern Wisconsin. I was a division leader for the 16 year old group, so I directed a staff of about 10 adults and around 65 16 year olds. The kids put on a play every summer, and the night of the play after everything is over the kids get an ice cream party. Along with this tradition, comes the custom of having an ice cream fight in the dining hall where the ice cream party is held. It's probably the thing the kids look forward to most, they are so wired from the play that the ice cream fight is an excellent way to release some energy. But, of course the camp director and some of the other higher-ups would prefer that this not happen. And, as a member of the staff I should follow the camp directors wishes and make sure this doesn't happen. Well, as you can see by the picture, I didn't. And, this is the one picture from my 6 years working at that camp that I keep in a frame on my dresser and probably look at every morning.

Why is this picture so significant? It reminds me of the importance of moderation in all things, of having structure and holding to the rules when it's critical to do so, but also making sure to have fun and enjoy the moment when it's meant to be enjoyed. I remember thinking about whether I should let the kids have the ice cream fight and how long I should let it go, and then how I should end things and make sure they clean up, etc. I remember times when the fight got shut down immediately and the kids yelled at, and this only made the kids want to get into more trouble, which they did later that night. So, I discreetly got the word out to some of the kids earlier in the day that I was going to let them have their ice cream fight for a little while, and then shut it down when I thought it was the appropriate time. I told them that I wanted them to be responsible about it and be good about cleaning up and not doing anything crazy around the camp that night. I think they appreciate that I trusted them and had respect for what they wanted. So, the evening went pretty well, the fight went for a few minutes (sounds likes short time, but when you have chocolate syrup in your hair, its plenty of time!) and then I stopped it. The kids were great about cleaning up, and the rest of the night was quiet.

I'd like to think that this decision gave me nice brownie points with these kids, and it was important for me to win their respect. In situations I've worked in, it's important for me to feel trusted and respected, so I want to make sure to return that to those who I'm working with. I could never understand why people would use their position as division leader (or project manager) as a way to pull a power trip and talk down to and show little respect to their group. Just seems counterproductive, and then you don't get to have ice cream dripping down your shirt and a room full of very happy 16 year olds.

Funny, through and after college so many people I know went off to do very impressive sounding summer internships, and I spent 6 summers as a leader of kids and adults at an overnight camp in Wisconsin. This was probably the best soft skills training I could have had, and the ice cream incident is just one example of why.

Saturday, February 14, 2009

Are we there yet? ... Are we there yet?


I'm brushing my older daughter's hair one night (well, this happens on most nights) and even though I try to be gentle and use that spray in conditioner, she still winces and cries "ouchie" at each stroke. I'm tired and the only response I can give her is "We're almost done!" Same coaching technique I use when I'm clipping my kids toenails, walking with them somewhere in bad weather, or doing any other unpleasant task that I know they just want to be over.

But, I realize that I'm a hypocrite when I say "we're almost done" a few times before we're actually done, or something like "just one more brush" when I know there might be more than one. I mean, I want to keep her spirits up, but I'm also being misleading and not holding up to my side of the bargain by not my promises. She hasn't yet said back to me "but Mommy, you said one more and you're still brushing my hair!"...but she's 4, give her time and I'm sure she'll figure it out.

I worked for many summers at an overnight camp in northern Wisconsin. Campers of mine from the summer of 1996 told me a story of the year before, when their head counselor took them on a 'short hike' one night after a day of fasting (it was a Jewish holiday that required a fast) and repeatedly told them it was going to be just 10 more minutes, until the hike ended 1 hour later. You could imagine the kids weren't thrilled, and I think there might have been some fainting and worse that evening.

So, this reminds me of the problem we face when reporting project status to the client, senior management or any other stakeholders. As the project is heading through system test and approaching launch, it's easiest just to say "the project is almost ready to launch." But, this isn't good enough, this doesn't provide an any helpful measure of time to allow the stakeholders to plan. On the other side of the spectrum though, I have a hard time accepting the report that a project is "87% complete" or some arbitrary number like that. Of course, this number probably comes from looking through all the tasks completed and the ones remaining and doing the math that way. But, we know software, it's impossible to predict with 100% accuracy when something will be complete until it's actually complete. Books and blogs I've read support the idea that nothing is ever 75% complete or 50% complete, it's either finished or 0% done. How many times have you found yourself checking in with programmer's who report a task 95% complete, every week for 3 weeks! It's always 'almost' done, and something else always comes up to delay things once again.

So, I prefer to rely on ranges. In the same way it's best practice to make task estimates in ranges when possible, the remaining time should also be reported as a range. So, rather than say that launch will be on March 1st and then a few days later report that launch will be March 5th, keep the launch date as a range of dates for as long as possible. Of course when the launch needs to be a hard date or stakeholders are pushing for a solid commitment this flexibility won't be available. In an ideal scenario, the project manager can set realistic expectations from the start and keep those final dates in a comfortable range rather than commit to an exact date very early on.

So, I don't see myself saying to my daughter "I will finish brushing your hair after 3 - 10 more strokes", but I'm sure I can find some way to stop leading her on, and should try to soon before she calls me out on it!

Monday, January 26, 2009

So, what exactly DO you do??


I run a youth group a couple weekends a month. It feeds the part of me that worked at overnight camp for 6 years through and after college and still enjoys informal education and just doing good stuff with teenagers. And I'm sure there are some parallels between running a teen youth group and managing projects, but that's not what this post is about.

This past Saturday night I had a program with the kids at our local synagogue, we were painting a mural and making bead bracelets to sell to raise money for charity. While we were breaking for pizza, one of the girls saw me sneak away to check my phone for email/etc. She asked me what my real job was (always a funny thing, because for the longest time the kids didn't think I did anything else besides organize their little programs).

I told her I was a project manager.

She said (with not so much enthusiasm), "Oh, ok. What does a project manager do?"

I said, "Well, I help build web sites and applications. I make sure that people working with me know what they have to do and when it needs to get done. I have to keep things organized."

At which point she said (with still not so much enthusiasm), "oh...ok."

And then I thought later, "Boy, she must think my job is utterly boring!" But then I realized, had someone told me when I was 16 that I was destined to be a project manager, I would have laughed! When I was 16, I wanted to be a concert marimba player, then a professional soccer goalkeeper, then a special effects artist for the movies. Well, I ended up studying mechanical engineering and after a handful of years as a web developer, ultimately became a project manager. After almost four years of working as a project manager I was still not even sure if it was the career I wanted. I decided to go for the PMP, to get some formal training to complement the real life experience I had from managing web projects for a large scale custom content management system. I told myself then that if after my PMP crash course that if I didn't like what I learned then this would be the right time to leave project management and try something else.

Well, the course was good and the content was just the start of a whole new chapter of professional development. I actually really enjoyed topics like risk management, estimation techniques, change control process, work breakdown structure, and more. The course was just a very brief overview, enough to wet your appetite. So, that began my quest to learn more about what it really means to be a project manager. Picked up lots of used books on amazon and surfed the project management blogosphere. It's been a great ride and it still continues.

So, why do I like it so much? It's interesting, it's challenging, it keeps your blood pumping. There's drama with quick and intense decisions, there's "ah-hah" moments when you can figure out something to improve a process and watch your team benefit from it. Where I am working now at Horn Group, I love the opportunity to be able to experiment with new communication methods and try figure out what processes will help improve the groups project work. There's the fun and challenge of working with different personalities and trying to keep people happy, and for that I'm sure the years of being a camp counselor and youth group leader must have been good preparation. Not to say that every single day has the roller coaster ride, but there's always something interesting to do.

So, will the girl from the youth group be inspired by my words and go on to be a project manager? Probably not...I don't remember meeting anyone in college who was actually studying to be a project manager. But, I'm happy I found my way here and enjoy what I do enough to make time outside of work to read & learn more about how to become a better PM. If that's not a satisfying career, I don't know what is!

Thursday, January 15, 2009

New post on NYC Moms Blog

Yes, I'm blogging around these days... this one isn't exactly about project management, but touches a bit on the poor management of a process.

It's the therapists that made me crazy...

When my 4-year-old was younger, she would call balloon "a-boon", balloons "buna", and yellow "wellow". All kids do have cute ways of saying things, when they are still figuring out how to put the sounds together. And it's fun, it's fun to listen to them say those cute things and know exactly what they are trying to say, and those are the things we write down or save somewhere in the baby memoirs (more about that in another post)....

Read More....

Wednesday, January 14, 2009

New Blog post on Brass Tacks - Horn Group Blog

Getting the Word Out, about the After School Art Class and Project Tasks

I’ve been thinking a lot about communication lately, both because I’m a project manager and well…that’s what project managers are supposed to do, and because I’ve had my share of frustration with my older daughter’s preschool and their process of sharing information. It’s funny to me that professionally I try to be completely on top of information and making sure it gets to where it needs to go, but yet I can’t seem to keep anything of importance about my daughter’s school, the schedule, meetings with teachers, etc. anywhere on my radar. A few times already I’ve had to dash out to get her because she had a half day that I didn’t know about, or the after school program was canceled that day. Fortunately I’ve been able to keep straight what days she gets school lunch and what days she gets lunch from home…so I am proud to say I have not let her go hungry yet!

Read more....

Saturday, January 10, 2009

A Lesson in Software Specifications, from Amelia Bedelia...


I read kids books a lot...to my kids of course. I've also been on a software/project management book reading kick lately, but more about that in a minute. Tonight I was reading Amelia Bedelia to my 4-year-old and it got me thinking about something else I had just read in Steve McConnell's Rapid Development this week.


So, for those who may not know, the Amelia Bedelia series is about Amelia Bedelia, a house maid for a wealthy family who always gets the instructions wrong because she uses a different meaning of the key words. So, when asked to 'trim the steak' and 'dress the chicken', she procedes to add bows and ribbons to the steak and put the chicken in baby clothes. She always saves herself from being fired by cooking something really great for her employers.


While reading the story (probably for the 60th time since we got it a couple years ago) I thought about how you can never just assume people will understand what you want them to do or what you are trying to describe to them. The more you can get out of your head and on paper the better. Amelia Bedelia is a great example, and another way to think of it is when there are not enough details and too much left up for the next person (let's say a software developer) to design on their own. When given this opportunity, the sky is the limit for how basic or extravagent the feature can be designed.


Steve McConnell gives a great example of this in his book Rapid Development. He discusses the importance of making clear goals, and uses an example of a specification that is silent on the question of whether to provide the user with the abiliy to control polymarker's sizes. The developer is left to answer that question and has any number of paths to take:


"1. Do not provide any control at all.

2. Set up the source code to be modified in one place for the whole set of polymarkers (that is, sizes of all polymarkers are set by a single named constant or preprcessor macro).
3. Set up the source code to be modified in one place, on a polymarker-by-polymarker basis, for a fixed number of polymarkers (that is, size of each polymarker - square, triangle and so on - is set by its own named constant or preprocessor macro). "

all the way up to..

"8. Allow for interactive, end-user modification of a single polymarker-size specification.

9. Allow for interactive, end-user modification of polymarker-size specifications, with one setting per polymarker, or a fixed number of polymarkers.

10. Allow for interactive, end user modification of a polymarker-size specifications, with one setting for polymarkerfor a dynamic number of polymarkers."

And you can just imagine the differences in development and testing time between option 1 and option 10. Unfortunately project teams can't cook killer brownies or lemon merengue pie to make up for overblown budget or to soothe angry clients or end users. So, learn from Amelia Bedelia and make sure that the software specifications include as much detail as possible. And save the great brownies for celebrating a sucessful launch!