Current Articles | RSS Feed RSS Feed

Mercenary Development: A framework for building and managing great global teams

Posted by Jonathan Stillman on Fri, Nov 20, 2009 @ 02:00 PM
 

As I look at the practices that Assembla has been most successful with over the past several years, I think that there is a new framework emerging for building and managing software development teams that are both nimble and "flexibly sourced". While I'd posit that Assembla has been a thought (and practice) leader in this, there are at least a few other companies working in similar ways. I haven't seen an attempt at codifying these practices in a way that would make them useful to others that are struggling with how to evolve their software development capabilities to better fit current needs, and think that this may be a good time to do so.

One of the core success factors that we've developed is what I've been calling "mercenary development." In its pure form, mercenary development focuses on building an outside team of best-fit, best-of-breed individuals to achieve a specific objective, often a complex, continuously evolving web-facing software product.

Specifically, we see mercenary development as embodying an approach that is tailor-made for product development efforts that are characterized by a need to deliver software quickly, reliably, and cost-effectively despite a lack of deeply developed requirements, by a need to evolve and improve the product throughout the lifecycle, and by a need to handle a dynamic team structure. Mercenary development blends and extends a selection of existing best practices from three important areas:

1) The open source software development movement

  • pulling together an effective team from a globally distributed talent base.  Each team member can be in a different place.
  • flat reporting structures
  • providing continuity over a shifting set of participants throughout the lifecycle

2) flexible talent outsourcing

  • techniques for finding and hiring people you'll never meet
  • techniques for effectively integrating these people into a true team at a fine level of granularity of interaction, composed of best-of-breed individuals and small specialized teams for specific tasks such as design.
  • focus on continuity over full lifecycle (rapid ramp-up of new staff, full visibility)

3) Agile software development methodologies

  • a subset of techniques from agile methodologies that work particularly well for distributed teams and loosely defined requirements

and contributes several new techniques as well.

In addition to a focus on building teams that seamlessly blend existing internal resources with best of breed talent from wherever it exists in the world to best address a challenging need, mercenary development practices must also provide a framework for supporting and managing those teams with a set of tools and practices that is optimized for success in the contexts described above.

We plan to dive a bit deeper into several aspects of this in future blog posts. In particular, we'll look at specific techniques you can implement to help you implement mercenary development, e.g., how do I find, evaluate, and retain the talent I need, and how do I get a diverse team of individuals to work together as effectively as they could if they were in adjacent cubicles?.

One thing I'm particularly interested in today is how closely the description above matches your own practices. Assembla has been working in this way for over 5 years, and we're happy to share what we've learned. If you have tried to incorporate techniques to bring some of these into your own approach, what has worked, what hasn't? Are there best practices that you'd like to share?

Jon Stillman, PhD, is an Assembla director and cofounder with 15 years  of experience leading software, research, and startup projects at GE and Divine.  He currently works with High Peaks Ventures.

Tags: , , , , ,

COMMENTS

@Sachin - You need both mercenaries and loyal soldiers to build empires. Mercenaries are usually very skilled and love what they do. They are great to have when you don't have the loyal soldiers with the same talent. Look to the American empire (Blackwater), the French empire (Foreign Legion), British empire (Gurkhas), Egyptian empire (Medjays), and so on.... 
 
@Jonathan - I find that Skype conference calls are great for building teams that are geographically distributed. I find that agile development with quick iterations are fantastic for coalescing teams, and are often more effective than just having team members sitting in the same cube farm using the waterfall process. I have also found that setting aggressive individual goals are not good for building teams because developers focus more on their tough individual goals than they do on the success of the team delivery.

posted @ Wednesday, November 25, 2009 9:44 AM by Jay Godse


Sachin, thanks for the feedback. As for the question of mercenaries vs. long-term staff, I advocate use of both. I cut a short section from my blog post in the interest of clarity and brevity, but I may have inadvertently obscured the point that we use globally distributed "mercenaries" to augment in-house teams. Here's the part I cut, which was originally at the end of the 2nd paragraph: 
 
These people need to work well as a team, usually need to work very closely with a core in-house development team, and the constitution of the team is likely to change over the lifecycle of the product, with most or all of the outside part of the team moving on to other things when the initial objective is achieved. This model ends up having some great advantages over “traditional” outsourcing, but it also presents some challenges.  
 
Microsoft and many others who have built empires rely heavily on outsourced labor to augment their in-house teams, though their approaches are quite different from those I'm trying to capture as mercenary development.

posted @ Wednesday, November 25, 2009 11:21 AM by Jonathan Stillman


Good point about the conference calls. I was coming at it from the point of using them as an alternative to travel or face-to-face meetings. The team I worked with used them once a week for about an hour, and we never had any face-to-face meetings. They were a great way to catch with each other and the business. We used email or phone calls to resolve most issues. That post by Andy that you mentioned resonated with me.

posted @ Wednesday, November 25, 2009 1:15 PM by Jay Godse


Sachin, 
I wouldn't go that far myself. I do advocate having a core internal technical team as optimal in most situations, but I've both seen or been directly involved in teams where the only in-house resource was a single person, yet the assembled mercenary team produced a complex, very high quality product that was (and is) vital to the company's success, which a subset of them continue to evolve and support. 
 
Part of what I'm trying to communicate, and will expand on in future posts, is that the mercenary development approach is a powerful and proven approach that should be the first strategy for many, not a last resort.  
 
Keep in mind also that mercenaries are not necessarily transitory resources; some of them may remain associated with a product throughout it's lifecycle and beyond.

posted @ Thursday, November 26, 2009 12:32 PM by Jonathan Stillman


I'm bootstrapping my first company. Until I get at least halfway to 7 figure revenue, I can't afford to hire, so mercenaries are critical to my success. Please continue the posts on this topic.

posted @ Monday, December 28, 2009 12:12 PM by Steve Eckhardt


What about sw for organizing/armonizing development of in-house teams and mercenaries ? CollabNet, Atlassian, or... ? 
Thank you 
Roberto (close to start w/ a new idea/project)

posted @ Friday, January 08, 2010 1:55 AM by Roberto


Hi, Roberto. We've developed the Assembla platform to do exactly that, so I encourage you to give it a close look. I may not be an impartial voice, but we have built a large and growing set of users who have similar needs to yours and have found Assembla to provide an effective and inexpensive solution. There's a lot of information on the site and in other blog posts. Good luck with your new project, I hope you choose to use Assembla to manage it!

posted @ Friday, January 08, 2010 6:38 AM by Jonathan Stillman


Comments have been closed for this article.

Follow Assembla

twitter facebook youtube linkedin googleplus

Subscribe by Email

Your email: