To understand the value of dedicated teams in software development, let’s start with some clarification of terms. Generally speaking there are two ways to think of application development: Discrete Project Mode and Continuous Support Mode. Each “mode” has advantages and disadvantages and generally fits specific initiatives:
Discrete Project Mode: Includes special initiatives that are focused on a set of goals to be accomplished in a defined period of time, with specific goals, a budget and resource allocation that match the priority of the project. The PMBOK definition applies: “A project is a unique, transient endeavour, undertaken to achieve planned objectives, which could be defined in terms of outputs, outcomes or benefits. A project is usually deemed to be a success if it achieves the objectives according to their acceptance criteria, within an agreed timescale and budget.“
- Continuous Support Mode: Lately, this mode has also been called “continuous beta” or continuous delivery in software development. This generally applies to applications or technical assets that are in constant improvement and development. This includes applications in very competitive markets, software providing services for closely supported departments or clients that have ongoing enhancement requests throughout the product lifecycle and strategic technical or application suites for enterprise. As a DevOps approach, continuous delivery requires specific systems and procedures but here, we are discussing the opportunity to organize a team and software delivery optimally for continuous support of an application, service or asset.
There is nothing to say that an initiative started as a discrete project can’t move to continuous support after the initial production release or that a continuous mode project can’t become a discrete project when an application needs a complete rewrite or other deep refactoring. The choice depends on the long term goals and situation for the business interests involved and resources available.
Usually, a dedicated team is based on agile methodology and is relatively small with anywhere from three to seven members. Even if waterfall project management is used in the organization generally, waterfall is better suited to discrete projects with defined periods and outcomes. In discrete mode, additional features that were not specified in project initiation are categorized as “scope creep” and avoided to keep the team out of negotiation and rebudgeting the entire project. In continuous development, they are normal additions that are prioritized and added to the task backlog as a matter of course. Unfortunately, many of the project metrics used by agile development teams are designed for discrete projects and not continuous mode development, but dedicated teams generally focus on metrics that measure production throughput and maintaining constant, reliable productivity instead of “burning down” a project task list to completion.
So what are the advantages of a dedicated team for a software development project?
- A stable, knowledgeable team is assigned to the asset under development. They know the application internals well, the technologies that form the application and the dependencies that are involved.
- The team has tested, set procedures and processes that fit within the organization as a whole and can be depended on.
The team is always available, has well-understood technical skills and working habits. There is no initial project overhead to deal with new feature requests and no ramp up to add new objectives to the workload. When they make a breakdown of tasks and backlog for a period, their estimates are generally reliable and can be used to set schedules for other teams with little risk.
- Team members are only assigned to one project. Because teams are small and coordinate tightly, they can take tasks from the backlog flexibly and are blocked by interdependencies less frequently. This advantage enhances throughput and production for the team as a whole.
- Over time, the team can grow or be reduced depending on the volume of work as a whole, not specific areas of work. This cuts dependence on specific individuals and associated resource issues.
- The team has greater cohesion and needs less oversight and administration. They have both the responsibility in the organization for the assets under their support and the visibility they need to deal with issues that might block their production.
But that said, there must be disadvantages too. What are some of the disadvantages of a dedicated team?
The technical skills of individual members can become stagnate and limited to the technologies they use on a regular basis. It can be hard for the team to see opportunities to adopt new approaches that might be better overall. They may also be limited by their technical experience within the team when it comes to approaching problems and dealing with change.
- Team members can become bored with the regularity of the work. Personal and career advancement may impact team morale and interaction.
- Team members may become too focused on their area and not understand larger organizational initiatives and how they could impact their work.
- Adding new members to a dedicated team requires special attention to team dynamics and individual “fit.” Although a person may be a good skills match for the team, their personality and approach may not meld well over the long term and could cause damage to team cohesion. To some degree, this is normal in any team, but it is of special concern for a long term assignment.
In the end, the point is to understand these disadvantages and develop mitigations that will lower, if not eliminate their impact. If the initiative itself is a good fit for a dedicated team, the advantages will greatly outweigh the disadvantages.
But, these thoughts apply to any dedicated team, whether in-house or outsourced. Why would someone consider outsourcing a dedicated team?
- In-house teams are focused on existing applications and technology stacks. Scaling them and training new resources to take over their tasks would be a long and difficult process that would require them to switch tasks too much and limit the value of them on a dedicated team. A new team can start with a discrete project and transition to continuous mode more easily and with less disruption to existing teams.
- If outsourcing is a consideration in the organization already, using an outsourced team in dedicated mode makes them more autonomous and self-managing. Although there will be a necessary knowledge transfer as the team comes online, the need to manage individual tasks and workload will taper off as team cohesion and productivity advances.
- Budgeting and workload is stabilized for the outsourced team with a blended rate, rather as individual contractors. This stabilizes costs over the long run for budgeting and planning purposes.
- The vendor takes care of initial recruitment, testing, personality and skills matching, longevity and team dynamics. They present a qualified team for interview and assessment rather than presenting a group of individuals that you need to assess both individually and as a group. This cuts costs and the time required to bring the team into productivity within the organization.
So, if you were to consider an outsourcing vendor to form a dedicated team for your initiative, what should you look for?
- An outsourcing firm that has experience with similar situations and has clear approaches to mitigate the problems of dedicated teams and keep them from impacting your work. They should clearly recognize the issues and take responsibility for them as a part of their partnership and contract for the engagement.
The best dedicated teams are reasonably autonomous and self-managing on a daily level. But that said, they won’t be able to reach that goal at the outset and to avoid blockage that would hurt production once they are at speed (one of the key reasons to have a dedicated team), if they don’t have real-time communication and collaboration with the client organization and product managers. With offshore teams, it takes additional mitigation to assure communication delays don’t result in team members “sitting on their hands” while they wait for answers and so that they don’t find themselves involved in rework because they went off in a direction without adequate understanding. With that in mind, the best answer is to find teams within a reasonable offset from prime work hours, usually not more than two or three hours either way. That generally gives enough time to complete the communication loop during the work day and continue without serious blockage. For that reason, nearshore teams that have the experience and communications ability necessary should be high on your list of options if you need an outsourced, dedicated team.
- Just as members of a dedicated team should be skill and personality matched, the vendor and client relationship should also be able to operate at a partnership level with recognized goals, risks and value for each side. There is no point in trying to bend organizational cultures to fit the relationship. This again points clearly towards working with companies and teams that have a cultural affinity and regional understanding of your business culture, rather than trying to reform your internal organization.
- Experienced vendors for outsourcing dedicated teams are able to approach the problem as a long term opportunity and focus less on the mechanics of operations and individuals and more on your goals for the initiative and how they can help you accomplish them. If small details become the focus of negotiations, the overhead of the relationship is likely to become too burdensome.
There is a lot more that could be said about outsourcing dedicated teams, especially as you begin to focus on your initiative and how it fits this mode of resourcing projects. We will cover this subject more in the future of course, but if your need is current, Scio Consulting is an experienced, nearshore provider of dedicated team services for our North American clients. We have dealt with many different situations and can offer solutions for discrete projects, dedicated teams and where needed – transitions between the two modes of software development. We would love the opportunity to discuss your needs in detail.