2.1.09

Outsourcing and process

The CMMI Maturity Levels, from Wikimedia Commons 

I have had dozens of conversations through the years about outsourcing and process. They usually start with questions about "what process is best" for a given team structure. I have a very pragmatic approach to this problem, that sometimes comes across as heretical.

The process doesn't matter.

I've worked in shops that spent a lot of time focusing on process. I've worked in shops that spent next to no time on process. I've come to the conclusion that process models and frameworks alone have very little impact on productivity or quality.

What matters is having smart people who know how to work well together.

The paradox in my heretical belief system comes in the nearly universal truth that smart people working together will develop and document a process, and will often optimize that process, write it down, diagram it with swim lanes and flow charts, and update it when they change it.  It's human nature to develop process.

The best teams I've been a part of developed process communally and adapted the process perpetually.  

The lesson for leaders in this observation is this:
  • Don't spend a lot of time focusing on your process model, whether it's for software development or IT service delivery.  Certainly don't do this at the expense or exclusion of first-order problems.  
  • Instead, give your team the mission of determining their own process definitions.  Make the mission of developing process definitions subservient to the mission of building software, or delivering service, or doing what ever it is your customers pay you to do for them.
  • Make sure your team writes their process or processes down.  Make sure it's reviewed by some contingent of your leadership team or executives.  (That's less to get input from the reviewers, and more to make the staff structure the way they talk about the process.)  
  • Make sure the staff has some way to train new hires or new team members on the expectations around how the team works together.
  • Make sure there's a feedback mechanism to get inputs and good ideas into the process.
  • Make sure the process is malleable.  
You'll notice that the CMMI process model doesn't define what kind of work flow you should use.  It doesn't mandate what format your functional specification takes.  It doesn't demand that you make your meetings 90 minute seated affairs with parliamentary rules of order.  Neither does it give guidelines that your meetings be held in conference rooms without chairs, to make them go faster.  The CMMI process model defines some broad, universal concepts that all projects go through.  As a process definition, it really just maps the high points.  It's up to you and your teams to fill in the details.  I think this is appropriate.  

So my ultimate guidance is that the process doesn't matter.  What matters is having one, and communicating what it is.  (In this, your SDLC can be thought of as just another high-expectation task you need to document.)  All a process model is is a statement of expected behavior of people in groups solving problems. 

I will add one caveat, because I've seen a lot of teams attempt to adapt their process to integrated global teams -- Agile software development methodology, with daily scrum meetings, does not work well if your scrums have to involve teleconferences with remote teams in different timezones.  It's too cumbersome to give the kinds of productivity lifts for which this particular process trick was designed.  Instead of doing one big scrum,  consider decomposing your project a bit more, and allowing the remote teams to each work on discrete release components, so they can have their scrum meetings be self-contained in their local centers.  It won't always work, because you won't always be able to break the project into discrete components, but it's a good hack to allow a bit more productivity across two lobes of a global team.



3 comments:

Allen said...

I came to your blog just when I was surfing on this topic. I am happy that I found your blog and information I wanted.

Outsourcing Philippines said...

Yeah it's a good blog. I came here through google blog search.

Denny said...

Interesting text. You have a nice blog. Keep it up!