Some professional services firms have in-house software development teams. Usually born as a small groups dedicated to narrow functions such as report writing, these teams sometimes grow and take on functions that span from intranet maintenance to building custom software for the firm.
Whether in-house software development is viable inevitably comes up as a question in these organizations, where some managers and stakeholders think they should phase out the internal team and use development services from external providers. They argue that keeping an internal team is very costly for an organization whose business isn’t software development.
It’s a valid argument, but it shouldn’t always lead to the conclusion that they need to outsource development to an external party. Especially for firms that have created skilled development teams. For these organizations, there are clear advantages to using the in-house team. These advantages often go overlooked by the proponents of outsourced development.
Familiarity with the Organization’s Culture
Successful firms develop unique business procedures over the years. In-house developers’ knowledge of these procedures is hard to match by external providers. They are in a better position to apply their knowledge and fine-tune their solutions to the characteristics of the organization.
Something similar happens with the firm’s evolving culture. Insiders understand inter-departmental communications, team dynamics, management styles and organizational norms better than outsiders do.
In organizations with internal development teams, project sponsors and customers can talk to the developers and their managers with little ceremony. This facilitates requirements gathering, progress reporting and other project communications.
Outside developers are more difficult to reach. Talking to them requires time-consuming coordination with account managers and other layers of the external development organization. Communications become more difficult when the developers don’t speak the customer’s language or are physically in a different time zone.
These gaps make it difficult for stakeholders in a project using external developers to learn when the development activities aren’t going well. It’s hard to know where things are broken under these circumstances because there’s little visibility into the operations of the external team. This is a common source of project delays and failures.
Focus and Commitment
In-house developers have more skin in the game than outside providers. They, their clients and stakeholders share the goal of making their organization successful. Decision makers in these firms will often resolve conflicting project priorities in a manner that’s congruent with the organization’s goals and the shared commitment to success by all the parties.
Outside developers have multiple organizations as clients. Their goals as a business entity don’t necessarily align to the goals of their clients. Their commitment level to any one project is therefore different from that of an internal development team.
These providers sometimes determine which project or request takes priority based on how much influence clients have over them. Influence exerted through economic incentives and other means. When a development organization succumbs to this influence, clients end in a position where they have to compete for attention. No client wants to be in that position.
Questions for You
Are you a member of an in-house dev team? A software development firm? What’s your opinion on this topic? Please leave your comments below.