How to manage a virtual team of developers using Spotlight

7
How to Effectively Manage a Virtual Team of Software Developers using Spotlight Are you planning on managing a team of virtual software developers, or are you already managing a team of virtual developers? I ask because if you are already managing a virtual workforce, then you’ve honed in on a key competitive advantage. In my 15+ years of creating software in various roles from developer to VP to business owner, I have always sought better, faster and more efficient ways to develop quality applications. Today, you have a whopping competitive advantage right in front of your face: the ability to find and hire talent from around the world, and with incredible ease. There are two key advantages to working with a virtual workforce. First and foremost, you remove the shackles of geolocation restraints. Instead of confining your search for that perfect PHP or .NET developer within 50 radius miles of your office, you open your search to an entire planet. Software development is a discipline of many, many specialties. Often, your project requires a good halfdozen specialized skills, like database, user design, SaaS, etc. Opening your search to the whole world increases your odds of finding the right talent, and very often talent with multiple skills that match your needs perfectly. That brings us to the second advantage of working with a virtual workforce: cost. Chances are very good that the talent you source will be located in a country whose cost of living is less than the United States; hence you pay less for equivalent talent. But there‘s more to this story. As you open the geoboundaries of your search, you increase the odds of finding developers adept in multiple disciplines. That means you may find a database guru who’s also great at UI design… two for the price of one! Sounds great, huh? So here’s comes the dark cloud. According to a study by the Aberdeen Group, about 50% 90% of all software development projects executed by virtual teams fail. That’s staggering. That means only 10% 50% of software development projects executed by virtual teams succeed. Learning and improving from very early failures, my career success rate of starting and delivering software projects utilizing virtual teams is 95%; way above the mean success rate. It’s the primary reason why my software development services company has grown so rapidly. How do I do it? How do I consistently beat the odds? I beat the odds with a methodical process. That’s what the rest of this paper discusses. And the good news is, the process can be taught and followed with precision using Spotlight. Planning your Project Would you build a house without a blueprint? Would you drive around in a new town without a map? I certainly hope you answered ‘no’ to both. Yet, so many entrepreneurs and developers code without a plan. “We wing it”, “We’re lean”, “It just writes itself”, and the list of excuses go on and on. Budget overrun, buggy code and worst of all, an app that does not meet business goals, are the usual consequences for not planning. But in my 15+ years of doing this, I can tell you that a good plan is essential. (Quick tangent: You’re plan will change. Your plan will probably change a lot from the first revision. This is called a “pivot” in software development terms. It’s a perfectly natural course of development that leads to ultimate success. But you cannot pivot to success if you do not already have a clear idea of where you are going.)

description

Spotlight is a cloud based application that improves productivity and decreases time to market for projects driven by remote teams. Improve communication and collaboration with your remote project team to improve the chances of project success.

Transcript of How to manage a virtual team of developers using Spotlight

Page 1: How to manage a virtual team of developers using Spotlight

How  to  Effectively  Manage  a  Virtual  Team  of  Software  Developers  using  Spotlight  

Are  you  planning  on  managing  a  team  of  virtual  software  developers,  or  are  you  already  managing  a  team  of  virtual  developers?  I  ask  because  if  you  are  already  managing  a  virtual  workforce,  then  you’ve  honed  in  on  a  key  competitive  advantage.  In  my  15+  years  of  creating  software  in  various  roles  from  developer  to  VP  to  business  owner,  I  have  always  sought  better,  faster  and  more  efficient  ways  to  develop  quality  applications.  Today,  you  have  a  whopping  competitive  advantage  right  in  front  of  your  face:  the  ability  to  find  and  hire  talent  from  around  the  world,  and  with  incredible  ease.    

There  are  two  key  advantages  to  working  with  a  virtual  workforce.  First  and  foremost,  you  remove  the  shackles  of  geo-­‐location  restraints.  Instead  of  confining  your  search  for  that  perfect  PHP  or  .NET  developer  within  50  radius  miles  of  your  office,  you  open  your  search  to  an  entire  planet.  Software  development  is  a  discipline  of  many,  many  specialties.  Often,  your  project  requires  a  good  half-­‐dozen  specialized  skills,  like  database,  user  design,  SaaS,  etc.  Opening  your  search  to  the  whole  world  increases  your  odds  of  finding  the  right  talent,  and  very  often  talent  with  multiple  skills  that  match  your  needs  perfectly.  

That  brings  us  to  the  second  advantage  of  working  with  a  virtual  workforce:  cost.  Chances  are  very  good  that  the  talent  you  source  will  be  located  in  a  country  whose  cost  of  living  is  less  than  the  United  States;  hence  you  pay  less  for  equivalent  talent.  But  there‘s  more  to  this  story.  As  you  open  the  geo-­‐boundaries  of  your  search,  you  increase  the  odds  of  finding  developers  adept  in  multiple  disciplines.  That  means  you  may  find  a  database  guru  who’s  also  great  at  UI  design…  two  for  the  price  of  one!        

Sounds  great,  huh?  So  here’s  comes  the  dark  cloud.  According  to  a  study  by  the  Aberdeen  Group,  about  50%  -­‐  90%  of  all  software  development  projects  executed  by  virtual  teams  fail.  That’s  staggering.  That  means  only  10%  -­‐  50%  of  software  development  projects  executed  by  virtual  teams  succeed.  Learning  and  improving  from  very  early  failures,  my  career  success  rate  of  starting  and  delivering  software  projects  utilizing  virtual  teams  is  95%;  way  above  the  mean  success  rate.  It’s  the  primary  reason  why  my  software  development  services  company  has  grown  so  rapidly.  How  do  I  do  it?  How  do  I  consistently  beat  the  odds?  I  beat  the  odds  with  a  methodical  process.  That’s  what  the  rest  of  this  paper  discusses.  And  the  good  news  is,  the  process  can  be  taught  and  followed  with  precision  using  Spotlight.  

Planning  your  Project  Would  you  build  a  house  without  a  blueprint?  Would  you  drive  around  in  a  new  town  without  a  map?  I  certainly  hope  you  answered  ‘no’  to  both.  Yet,  so  many  entrepreneurs  and  developers  code  without  a  plan.  “We  wing  it”,  “We’re  lean”,  “It  just  writes  itself”,  and  the  list  of  excuses  go  on  and  on.  Budget  overrun,  buggy  code  and  worst  of  all,  an  app  that  does  not  meet  business  goals,  are  the  usual  consequences  for  not  planning.  But  in  my  15+  years  of  doing  this,  I  can  tell  you  that  a  good  plan  is  essential.    

(Quick  tangent:  You’re  plan  will  change.  Your  plan  will  probably  change  a  lot  from  the  first  revision.  This  is  called  a  “pivot”  in  software  development  terms.  It’s  a  perfectly  natural  course  of  development  that  leads  to  ultimate  success.  But  you  cannot  pivot  to  success  if  you  do  not  already  have  a  clear  idea  of  where  you  are  going.)  

Page 2: How to manage a virtual team of developers using Spotlight

Planning  starts  with  you,  and  then  passes  to  the  the  developers.  The  first  step  is  to  visually  and  textually  describe  your  app  in  detail.  The  best  way  to  visually  describe  your  app  is  to  create  “wire-­‐frames”.  Wire-­‐frames  are  a  sketched  version  of  each  screen  in  your  app  and  how  each  screen  connects  to  other  screens.  It  is  the  user  experience  (UX)  and  workflow  of  your  app.  For  example,  a  wire-­‐frame  for  a  login  screen  may  show  the  text  fields  where  a  user  enters  their  username  and  password,  as  well  as  a  login  button.  There  are  many  great  tools  to  create  wire-­‐frames.  Two  really  good  ones  are  http://www.balsamiq.com/  and  https://moqups.com/#!/.  

The  best  way  to  textually  describe  your  product  is  with  “use  cases”.  Use  cases  are  plain  text  that  accompanies  wire-­‐frames.  They  describe  what  each  control,  button,  link,  combo-­‐box,  etc.  do  on  a  screen.  Use  cases  describe  the  permutations  a  user  can  experience  when  interacting  with  a  screen.  For  example,  referring  to  the  login  wireframe,  a  use  case  may  describe  what  happens  when  a  user  presses  ‘login’.  For  instance,  what  screen  is  the  user  taken  to  next  when  he  presses  ‘login’?  Or  what  happens  when  a  user  enters  an  invalid  username  or  password.  The  various  user  experiences  are  described  in  use  cases.  

 

Figure  1:  An  example  of  a  wire-­‐frame.  

(On  a  side  note,  it’s  a  good  idea  to  run  your  wire-­‐frames  and  use  cases  by  a  few  third  party  eyes.  If  it  makes  sense  to  them,  you’re  on  the  right  track.  If  they  have  constructive  feedback,  that’s  even  better!)  

Now  that  the  wire-­‐frames  and  use  cases  are  ready,  it’s  time  to  plan  the  project.  This  is  typically  performed  by  a  minimum  of  a  senior  level  developer,  and  optimally  with  a  project  manager  to  help  with  scoping.  Project  planning  is  a  process  of  slicing  the  project  in  segments,  or  “sprints”  as  they  are  sometimes  referred  to  in  software  development.  A  project  is  comprised  of  several  sprints,  and  each  sprint  is  comprised  of  granular  tasks  assigned  to  various  members  of  the  team.  For  example,  Sprint  One  

Page 3: How to manage a virtual team of developers using Spotlight

may  be  the  Database  Sprint,  which  has  10  tasks  assigned  to  several  developers  that  will  build  the  database.    

 

Figure  2:  Using  Sprints  to  manage  projects  in  Spotlight  

 

 

Figure  3:  Sprints  consists  of  tasks  assigned  to  developers  

A  typical  sprint  will  run  anywhere  from  1-­‐3  weeks.  Properly  planning  the  correct  number  of  sprints  in  a  project  and  in  the  correct  order  will  lay  the  entire  foundation  of  the  project’s  execution  and  delivery.    It’s  vital  that  you  ensure  that  the  necessary  time  is  spent  on  this  phase,  which  usually  runs  about  1-­‐2  weeks,  depending  on  the  size  of  your  project.  It  is  time  very  well  spent,  and  I  personally  would  never  do  a  project  without  this  phase.  With  the  sprints  in  place,  you  now  have  a  timeline  for  your  project.  The  tasks  assigned  ensure  everyone  knows  their  marching  order.  This  creates  a  sense  of  accountability  within  the  team  to  perform  to  the  mandate  laid  out  in  the  sprints.  Now  it’s  time  to  execute.  

Building  your  Dream  Managing  a  virtual  team  of  developers  is  an  art  built  upon  a  process.  The  art  form  is  something  you  will  enhance  and  perfect  over  time  based  on  your  own  management  style  and  flair.  Naturally,  I  cannot  teach  the  art  of  management,  that’s  your  own  unique  approach,  but  I  can  teach  a  proven  process  to  manage  virtual  developers.  This  is  a  process  that  I  have  perfected  over  many  years  of  successfully  managing  virtual  employees  from  the  United  States,  Latin  America,  India,  the  Middle  East  and  the  Ukraine.  It’s  a  

Page 4: How to manage a virtual team of developers using Spotlight

process  that,  if  followed  with  strict  adherence,  will  greatly  improved  your  chances  of  success  when  managing  a  team  of  virtual  employees,  whether  they  are  developers,  testers,  or  any  other  discipline.    

First,  start  each  day  with  a  15-­‐minute  meeting.  In  the  software  development  world,  these  meetings  are  called  “daily  scrums”  or  “stand-­‐ups”.  The  purpose  of  these  meetings  is  communication  and  accountability.  Each  person  in  the  scrum  quickly  states  what  they  accomplished  yesterday,  what  their  goals  are  for  the  day,  and  cite  any  impediments  to  their  goals.  These  daily  scrums  should  run  15  minutes.  It  is  an  overview  meeting  to  get  the  entire  team  synched  for  the  day.  Any  sideline  conversations  should  be  conducted  after  the  daily  scrum  with  the  interested  parties.  Keep  the  daily  scrum  short  and  focused.  

Who  should  attend  the  daily  scrum?  Most  development  teams  confine  the  daily  scrums  to  key  developers.  I,  on  the  other  hand,  involve  the  entire  team.  I  involve  developers  as  well  as  testers,  designers  and  project  managers.  My  rationale  is  that  if  everyone  in  the  team  knows  what  everyone  else  is  working  on,  then  a  true  synergetic  atmosphere  is  built.  If  QA  knows  what’s  coming  down  the  pike  from  a  developer,  they  can  be  better  prepared.  If  a  designer  listens  in  on  a  new  feature  discussion,  they  may  lend  valuable  UX  insight  early  on  in  the  development  process.  In  my  experience,  the  quality  of  a  product  is  directly  related  to  the  more  involved  and  intertwined  the  various  members  of  a  team  are.  

Now  that  the  team  is  synched  and  producing,  it’s  important  that  the  team  continues  communicating  throughout  the  day.  If  the  team  were  all  sitting  together  in  a  brick  and  mortar  office,  this  would  naturally  happen  as  the  project  manager  makes  his  or  her  rounds,  or  the  developers  chat  by  the  water  cooler,  at  lunch  or  elsewhere.  But  this  is  less  natural  for  a  virtual  team  so  a  process  is  needed.  I  have  found  that  regular  status  updates  facilitate  communication  thought  out  the  day.  A  status  update  is  an  email  sent  to  the  entire  team  that  states  a  few  key  attributes  to  the  team:  

1. What  are  you  working  on  now?  2. What  is  your  progress?  3. Are  there  any  issues?  

These  status  update  emails  should  be  sent  3-­‐5  times  per  day,  or  as  tasks,  progress  or  statuses  change.  They  should  also  include  availability.  In  other  words,  team  members  must  inform  other  team  members  what  time  they  will  be  online  until,  or  what  time  they  will  be  returning  back  to  work.    

Spotlight  facilitates  the  status  updates  by  assigning  Status  Cards©  to  each  of  your  team’s  members  and  organizing  your  entire  team  in  a  complete  overview.  Status  updates  are  displayed  on  the  Status  Cards.  This  eliminates  the  need  for  emails,  which  are  often  lost  and  disorganized,  and  provides  a  bird’s-­‐eye  snapshot  of  what  your  entire  team  is  working  on  in  a  single  glance.  

Page 5: How to manage a virtual team of developers using Spotlight

 Figure  4:  Status  Cards  keep  you  on  top  of  your  developers.

 

 

Figure  5:  Flip  Status  cards  over  to  dive  deep  into  a  developer's  work  day  

 

Page 6: How to manage a virtual team of developers using Spotlight

 

Figure  6:  Status  cards  are  simple  to  update  and  take  far  less  time  than  creating  and  sending  an  email  

 

A  steady  stream  of  status  updates  keeps  the  team  talking  in  a  manner  that  simulates  the  office  experience.  It  takes  a  bit  of  getting  used  to,  but  once  employed  as  a  habit,  communication  and  collaboration  skyrocket  as  the  team  members  become  accountable  to  each  other.  Now  to  wrap  the  work  day  up.  

A  daily  reflection  on  the  day’s  activities  and  a  mental  preparedness  for  the  next  day  is  a  practice  I  personally  employ  to  stay  sharp.  Once  again,  this  happens  almost  automatically  in  the  office  as  developers  wrap  up  their  day  and  cite  to  their  manager  and  each  other  what  they’ll  be  working  on  the  next  day.  It’s  not  so  natural  in  the  world  of  virtual  employees  so  once  again  a  process  is  employed.  A  daily  progress  report  sent  from  each  team  member  to  their  immediate  supervisor  sets  the  stage  for  a  productive  next  day.  The  daily  progress  report  should  be  a  simple  form  which  answers  3  questions:  

1. What  did  I  accomplish  today?  2. What  I  will  accomplish  tomorrow.  3. Any  impediments  to  my  goals.  

Similar  to  the  morning  scrum,  this  daily  progress  report  is  a  tight  and  efficient  way  to  wrap  up  a  day’s  work.  Team  members  can  mentally  prepare  their  next  day’s  activities,  as  well  as  team  leads,  superiors  and  managers.  The  daily  progress  report  may  be  the  single  most  important  way  to  create  a  synergy  of  communication  and  accountability.  

Spotlight  embraces  the  daily  progress  report  by  designating  reports  from  team  members,  team  leads  and  even  from  project  managers  to  clients.  Reports  can  even  be  automatically  emailed  to  any  recipient,  regardless  if  they  are  a  Spotlight  member.  It  is  such  an  import  and  integral  part  of  managing  virtual  developers,  that  Spotlight  lets  you  optionally  require  daily  progress  reports  from  team  members  in  order  to  let  them  continue  using  the  system  on  a  daily  basis.  

Page 7: How to manage a virtual team of developers using Spotlight

 

Figure  7:  Daily  progress  reports  are  an  integral  way  to  manage  virtual  developers  

The  trinity  of  (1)  the  daily  morning  scrums,  (2)  3-­‐5x  status  updates  throughout  the  day,  and  (3)  the  daily  progress  reports  at  the  end  of  a  work  day  forms  the  foundation  for  a  process  of  communication  that  will  yield  amazing  results.    As  you  can  see,  it  forms  a  sense  of  group  accountability,  where  the  team  is  all  working  together  synergistically.  Your  own  personal  flair  will  shape  the  process,  but  the  basics  should  remain  intact.  

The  benefits  of  employing  a  virtual  team  provide  a  necessary  competitive  advantage  in  today’s  world  of  software  development.  It  enables  you  to  find  the  perfect  talent  at  the  perfect  price.  But  managing  a  virtual  team  is  a  process  different  than  managing  an  onsite  team.  Managed  properly  with  a  proven  process  that  produces  positive  results  will  reap  the  rewards  of  a  virtual  team.  Take  the  care  to  find  and  hire  the  right  talent.  Expend  the  time  and  effort  to  plan  your  project.  Exercise  the  diligence  to  see  the  trinity  of  processes  of  virtual  team  management  is  followed  each  day.  These  are  your  keys  to  successfully  manage  a  virtual  team  and  unlock  their  potential.  

 

Try  Spotlight  free  for  30  days  and  see  how  you  can  improve  your  project  success  rate!  Sign  up  at  http://www.spotlightppm.com/pricing.html.    

Questions  or  comments?  Visit  http://www.spotlightppm.com  and  contact  us.