As I have outlined in the ‘Every Company is a software Company’ series of blogs recently, to deal with the challenges of the ‘Digital Age’, enterprises are undergoing a fundamental business and IT transformation (Agility and Innovation Are Keys to IT Transformation
). There is a tremendous demand for talent with the latest technology skills, business side knowledge and the ability to help companies implement digital transformation strategies.As enterprises seek to acquire the skills and competencies for developing sophisticated software products and services, they are also confronting a severe shortage of tech talent, especially in the mature economies of Europe, and North America.
Shortage of tech talent has in fact become a major stumbling block for companies as they seek to enhance their IT capacity, embrace innovation, and transform their businesses. As companies are trying to recruit from the same limited pool of tech talent, a few facts stand out:
- While there is a general shortage of people with software and programming skills, there is also a mismatch between how people with those skills search and where employers are looking to hire
- People with in-demand technical skills tend to flock to technology hubs in pursuit of better prospects, and also as they prefer to work and live in these hubs where there is a hi-tech eco system, as opposed to other cities
- In a tight labor market, as job seekers are in the drivers’ seat, companies and employers are forced to go to these tech hubs not only to recruit but to also locate themselves.
Unfortunately, many businesses might not have the financial resources or the organizational bandwidth to have a physical presence in these tech hubs, which are very often located in or around major metropolitan cities, which are very expensive from a business perspective. And at the same time, remote working might not be a practical or feasible option in a collaborative team environment, where physical presence and face-to-face interaction are valued. Talented people also tend to be averse to relocating to small towns and cities, which are not established tech hubs. If companies and tech talent which have a mutual need are unwilling to relocate and come together physically, then there has to be a sensible way to bring talent closer to where the need is. Distributed development with the right process and tool framework is one such mechanism to bridge this gap.
Why should enterprises opt for distributed development?
Distributed development offers a sensible way forward for companies, as they seek to extend their capacity by attracting top-notch tech talent and remain competitive. Development with distributed teams located in places with plenty of talent available, offers some unique advantages:
- Access to a diverse, and global talent pool with high level skills and technology expertise
- Overcome shortage of tech talent by going to hubs where the talent is available
- Faster scalability, optimized costs, de-risking operations
- 24×7 development cycles with multi-location, and multi-time zone facilities
- Proximity to emerging, fast growing markets
Effective strategies for ensuring successful distributed development
While distributed development makes a compelling business proposition due to the factors cited above, companies are wary to take the plunge, as they ponder the various intangible elements of working across geographies, time zones, and cultures. As companies seek to extend their development footprint, they will be well served to include the following elements into their strategy for ensuring the success of distributed teams:
a. Build the right team
Identifying the right people, and putting together a collaborative team with complementary skills is perhaps the single most important factor that will influence the success and effectiveness of the distributed team. Definition of a ‘right team’ varies from company to company and is a factor of how it is organized. Building a ‘right team’ must be a collaborative effort between the company and its partner ecosystem. Companies will be well served to recruit people with a problem solving mindset, and not merely technology expertise, which has become a commodity. Effort should be made to establish a dedicated team that will work exclusively for the company and acquire the necessary domain knowledge and insights to add true business value, just like an extended native team. A collaborative work culture and teams with a sense of collective ownership will go a long way in ensuring the success of distributed development.
b. Leverage Agile methods such as Scrum
Adopt agile principles, and iterative development practices such as Scrum for ensuring better software quality, and reduced time-to-market. Agile processes can be very effective in distributed environments, especially when coupled with collaborative practices such as pair programming, shorter development sprints, and daily standups. Scrum teams with optimal size, functional roles, and evenly distributed work allocation between native and distributed setups will lead to enhanced productivity, better quality and predictability.
c. Utilize cloud-based productivity tools
Adopting cloud based collaborative tools for all core activities including development, testing, daily build, issue tracking, communication, workflow, project management etc. can be very critical to the successful functioning of distributed teams. The right work flow and communication tools will significantly enhance productivity, and bring transparency to the agile development process in a distributed environment.
d. Continuously measure key metrics, and refine processes
As in any mature development environment, it is essential to constantly measure key metrics to evaluate the effectiveness of the distributed teams, and also to refine and optimize key processes in an iterative manner. The metrics can be an effective gauze of the teams’ productivity, quality, and process flow.
Distributed development with agile processes, supported by collaborative workflow and communication tools is an effective way for software driven businesses to deal with the crippling shortage of tech talent, overcome capacity constraints, and realize business goals. Companies must forge strategic partnerships with mature service providers, who can help them build and integrate the right kind of teams as per their needs.