Software Industry – A Competitive Market
With the boom in the software industry these days, the tasks of software development have seen an exponential rise. With the rise in software development tasks, the respective skillful crowd is also increasing around the world. In a competitive scenario like the present, it is important for every organization to make their processes cheaper. This allows them to provide competitive pricing to the clients even after keeping considerable margins of profit. In order to make this possible, clients have started to hire skilled people from countries where these services are offered at lower rates. These teams of people from different countries are called the “offshore teams”. Managing Offshore Software team can be challenging. This article discusses this setup in detail and talks about various ways to manage such team in present day scenario.
Some statistics of the present day scenario are shown below and they justify why it is important to understand this management plan
· These days almost 48% of USA’s IT services are outsourced to India, China and African countries
· About 50% of the companies in US and Canada conveyed that they prefer offshore development centers over the local centers
· 30% of software companies in US and Canada complain of lack of sufficient talent in local population
Offshore software development teams – What needs to be managed?
Offshore teams are more often responsible for development and support of software products which are sold in markets where the targeted price is achievable. These teams are in place to handle tasks assigned from the headquarters or an “onsite office”. The tasks can be assigned in the form of an entry in a project management tool.
The usual tasks required to manage involve but are not limited to:
· Planning project deadlines, tracking the progress of overall development and managing project deliveries
· Tracking hourly work
· Managing communication
· Documentation, Code management and knowledge transfer as and when needed
There are several sub tasks involved too. However, we’ll focus on these 4 major points throughout this article.
Managing offshore software development team – A complex task
With the rise in offshore software teams, there have been numerous tools and web applications that have come up to manage these tasks. These applications target at managing one niche area each for project management tasks. For instance, Toggl is a time tracking tool which is used to monitor the work of offshore team members.
1. Project planning and delivery
When it comes to project development, there are numerous software development methodologies that can be put into practice. Some of the software development methodologies that can be used here include:
· Agile or scrum based methodology
· Waterfall methodology
· Lean methodology
· Spiral methodology
There are others too. The main focus here is to understand how these are helpful.
Every software methodology is focused on the following factors:
· Splitting project development into modules
· Meeting schedules
· Progress tracking
· Deadline movements if required
Taking Agile methodology into focus here, it involves breaking the project into modules and creating iterations. Each iteration is a series of tasks involved in the development of the module. The usual list of tasks involved are meeting, planning, designing, developing, testing and evaluation. In this type of methodology, the number of meetings are usually as per the number of modules involved. The complete team meets once before the starting of module and once after the completion of module to evaluate the development. The module, once developed, is not taken into development again unless extremely necessary.
In another method of scrum based development, managing offshore software teams involve daily meetings at the offshore development center and weekly meetings with the onsite teams. The weekly meetings are attended by the Scrum masters who lead modules in the team.
For management of all such tasks, we have readily available tools like Atlassian Jira, Axosoft one-time scrum, LeanKit, Microsoft Project and others. These tools functionalities like creating a task and assigning to the team members, updating the estimated delivery time, creating a Gantt chart to get an overview of the complete plan and several others.
2. Tracking hourly tasks of software teams
For the teams which are meant to provide services to your clients on an hour billing setup, it is necessary to monitor the hourly tasks that every offshore team member does. An hourly monitoring involves noting down tasks that they perform every hour. The tasks are noted down in the form of short sentences. For instance, “Analysing the task” or “Installed a new server software” or “Configured the system for deployment”. These tasks help you to understand the expense per task and also estimate your earnings from it. Consequently, you will be able to provide better competitive rates to the clients given that you have sufficient profit margins
3. Managing Communication
Communications between onsite and offshore team is usually the most challenging task. In order to make this task easier, we have got tools like Zoom Conferencing solution, WebEx meeting clients, Pidgin chat tools, Slack collaboration tool and others. These tools provide complete solution starting from basic chat to call conferencing and video conferencing solutions.
4. Documentation, Code management and knowledge sharing
This is the most important aspect of any project. Although it is not a pure technical task, it is of great importance. Documentation is a way of managing the knowledge to use it when the respective person is unavailable. When the companies hire offshore resources, it is important for them to track every task that is being developed. They need to own the knowledge as well as code in order to avoid full dependency on offshore teams.
As it happens frequently, companies change their offshore teams to get better rates or better resources. This would make it necessary to have documentations to transfer the knowledge easily to new teams. As with the other tasks, there are tools to manage documents and resources as well.
For instance, we have SVN and GitHub like tools to manage codes between teams. We have confluence to create knowledge sharing documents and build communities of team members. Thus, these tools serve as a complete setup for managing documentation and code flawlessly.
Managing Offshore Software team is definitely a challenging task. However, with the state of art tools at hand, one can manage the teams in an extremely flawless manner. The major effort involved is in the primary setup of all these tools. Once the setup is completed, it is a streamlined task with very few roadblocks to be encountered.