Iterations

Week of the Elephant

I'm not sure of the origin, but as I was watching an adventure race years ago, I heard an awesome quote.  One of the contestants was asked how he was able to trek a 300 mile course, navigating so many obstacles through so much adversity.  His reply was "even an elephant can be eaten, if you do it a bite at a time".   Though I try not to whip that quote out every time one of my colleagues appears stuck on a project, I do like to bring it out for special occasions.  I think this may be one of them. 3 things happened this week, that rate the reference:  Work during the day, school, and work during the night.

By day, I'm an adviser to a Federal Project Management Office.  I'm not in a position to tell government employees what they should or should not do.  It's my job to advise and support them in any way I can.  This week, they asked me to attend an invoice meeting.  This wasn't a surprise.  Upon reviewing the vendor's invoice from last month, I wasn't satisfied the Billing of Materials (BOM).  There was a lot of stuff ordered and I am very particular about asset management.  I recommended a 7 figure short pay.  I don't think it's important to be specific about the amount.  My client decided to do a 6 figure short pay.  At the 2 hour meeting, we went line by line and the vendor offered corrective actions for items I recommended not be paid.  I accepted some of their proposed corrective actions but they still need to deliver on some promised if they want all of the invoice paid.  One month down, another to go.

Our son started Kindergarten this week. We weren't sure how he was going to take to it.  Until Monday of this week, we were convinced he was going to be crying at the bus stop, wanting to say home with Mommy.  We figured he'd come around in time.  Monday arrive and so did the bus.  He ran aboard almost before we could give a hug and a kiss goodbye.  He returned some 8 hours later and ran off the bus with a big smile on his face.  The adventures that boy had!  Here it is Friday night and he's fast asleep.  One week down, 16 years to go.

At night, I find myself reading the PMBOK® or project management blogs and writing PHP, CSS, and JavaScript. Back in March of 2009, I realized I wanted to create something to help project managers on a grand scale.  That's when I started doing mockups and wireframes for what was to become the HueCubed engine and PMPrep Flashcards.  One year later we launched version 1.0.  This week I worked on 2 new jQuery elements and tonight deployed v1.2.12.  The web application has been progressing nicely and both customers and affiliates are signing up.  Though I never thought we'd get to v1.0, I now do an iterative build and deployment at least once a week.

For those interested, I still have plans for a PMPrep Exam Simulator web app and Prince2 Flashcard web app.  And yes, we're going to be doing an iPhone application.

Graphic: South African Tours and Travel

How To Effectively Manage An Offshore Team Of Developers

Offshore TeamsThere are probably two primary reasons you would go with an offshore team. (1) Your customers are also offshore, or (2) you're hoping to save money on development costs.

I'm going to assume your reason is number (2).  Though this post is brief for such a complicated topic, it should give you some things to think about.  Yes, you can certainly save a lot on development expenses. Then again, it can come back to bite you in rework expenses if there are communication issues.

How do you bridge the language barrier? (1) You need a go-to guy or gal who speaks the same language as your developers but will be working at your location. This is a must. Your probability for success is going to go way up by ensuring there is no breakdown in communications.

How do you receive the quality of code you need? (1) Use continuous integration (2) Use test scripts to understand requirements (3) Use short iterations (4) Have regular builds (5) Separate teams by functionality (not activity)

How do you communicate? (1) If you can afford to send/bring someone (an ambassador) over to work with the other team at the beginning of the project, do it. (2) It is critical that your "go-to" has a daily meeting with the team. Select a method that allows each side to see one another. (webcam/Skype) (3) Have everyone use Skype (VoIP) and/or a chat client for one-on-one communications. (4) Keep a Skype connection open between the offices. (5) Use wikis or other collaborative solutions for common project information. (6) Stay away from email, unless it is for formal communication. Information is going to get lost along the way and it will take longer to clarify.

Remember to use parallel communication methods, not serial.