Best practices in managing dedicated software development teams virtually
By Siddharth Wadhera, Head of Research
One of the biggest reasons why companies look to outsource software development is to reduce costs while also focusing on activities that improve customer experience or grow their core business. However, outsourcing product engineering comes with its own share of challenges - including maintaining control over their development activities. One of the important aspects which companies need to consider while planning to outsource software product engineering is the ability to manage dedicated software development teams virtually, especially if your company has opted for the staff augmentation outsourcing model.
The need to effectively manage dedicated software teams virtually has been catalyzed by the on-going pandemic. Companies in every industry took steps early in the pandemic to protect & support employees, customers, and their businesses, while trying to plan for an uncertain future with perhaps a skeletal workforce. In the software development space, the pandemic has created new and unexpected growth opportunities as people around the world scrambled to replicate their lives in virtual format with the help of technology. Most technology companies have got used to managing remote teams virtually and ensuring that the quality of the developed product does not suffer.
This article attempts to provide best practices and insights on how you might be able to seamlessly manage dedicated software development teams virtually to ensure your business objectives are being continually met in this dynamic and uncertain business environment.
Establishing a shared goal
Defining and sharing the project’s overarching goal and explicitly outlining how that goal would be achieved so that everyone in the team is privy to the strategic objectives and the macro-level goals of the project. It is important that your team has a shared goal and a common understanding of how progress will be measured.
These goals will likely be dictated by broader business goals and would provide a great opportunity to get inputs from the team as well on some of the aspects of the larger plan. Once everyone is aligned to the larger objective, it becomes easy to set expectations individually with a particular team-member.
Establish structured check-ins
Many successful remote project managers establish a daily call with their remote developers and testers. This could take the form of a series of one-on-one calls, if your employees work more independently from each other, or a team call, if their work is highly collaborative. The important feature is that the calls are regular and predictable, and that they are a forum in which employees know that they can consult with you, and that their concerns and questions will be heard. Over communicate and re-engage
Under (or ineffective) communication can cause huge issues whereas over communication can only be beneficial. Anytime you are working with a remote team it is easy for them to be left in the dark about a lot of things. Don’t just talk to them once a week or once a day during scrum stand-up meetings. Be sure to engage with them on a continual basis to really make sure they are getting enough help to get work done, especially during the early days of your engagement. A good way to do it would be through a tech communication channel where team members can share their updates or issues for others to get help from.
Provide several different communication technology options
Remote workers benefit from having a ‘richer’ technology options, such as video conferencing, that gives participants many of the visual cues that they would have if they were face-to-face. Video is also particularly useful for complex or sensitive conversations, as it feels more personal than written or audio-only communication. There are other circumstances when quick collaboration is more important than visual detail. For these situations, provide mobile-enabled individual messaging functionality (like Slack, Zoom, Microsoft Teams, etc.) which can be used for simpler, less formal conversations, as well as time-sensitive communication.
Establishing the ‘rules of engagement’
Remote work becomes more efficient and satisfying when managers set expectations for the frequency, means, and ideal timing of communication for their teams. Finally, keep an eye on communication among team members (to the extent appropriate), to ensure that they are sharing information as needed. While some choices about specific expectations may be better than others, the most important factor is that all employees share the same set of expectations for communication.
Creating defined work procedures
Create clear project guidelines for productivity, teamwork, and accountability so your employees know what to expect. Present the idea of your project and describe what you want to be done in detail. Overall, when you are working with your team — remote or otherwise — make sure that they understand your goals. Additionally, the management is responsible for setting clear tasks and giving detailed answers. Review the project requirements document attentively to make sure you have included all the requisite functionality.
Respond promptly to emails from your project manager since they are the ones to pass down what you say to the team. The development of your product will depend on the information your team gets.
Minimize impediments, including a secondary task
There may be times your remote worker gets stuck and/or needs help from someone else. Ideally a clear roadmap and epics well broken down into stories, and stories broken down into tasks would avoid such times, but in case you’re not on top of your game with project lifecycle management you might need to undertake additional steps.
There are countless reasons that software developers get stuck in middle of their work. From compilation/bridging/interpretation issues caused by another branch in git, to business logic questions, lack of clear requirements, etc. so it’s always good having multiple work items in their queue so if they get stuck, they have another task they can work on and not wait for the issue at hand to get resolved.
Ensuring accountability for productivity
Without invading privacy, the best way to ensure everyone’s doing their job is to set clear expectations for each role and have regular check-ins to gauge progress. It’s unrealistic to expect everyone to work at the same pace, but you should have a general idea of how long tasks take and how much each person is accomplishing week by week, if not day by day. Even for those who don’t perform work for clients, tracking hours provides an unparalleled level of transparency. By seeing how long it takes to complete certain jobs, you can set baseline expectations that are useful for both current and future roles.
Provide opportunities for remote social interaction
One of the most essential steps a manager can take is to structure ways for software developers is to interact socially (that is, have informal conversations about non-work topics) while working remotely. This is true for all remote workers, but particularly so for workers who have been abruptly transitioned out of the office.
Offer encouragement and emotional support
It would be great to kick off each meeting with praise for the job done so far. Make sure you explain what you like about the course of the project. If you can give constructive praise, your team will understand that they are moving in the right direction. During or at the end of development, you can show your appreciation by sending your team gifts like T-shirts or badges with your company logo or your product.
Managing across time-zones
The importance of effectively managing across time-zones is probably one of the most important aspects of managing teams while outsourcing software product engineering development. A few things which you can do to mitigate the differences in time-zones include:
Maintaining clear communication- proactively suggesting any changes to the previously agreed upon development timeline.
Making effective use of tools.
Deprioritizing synchronous meetings
Ensuring that you can successfully manage time-zone differences would go a long way to ensure that the project is on course for successful completion.
BlastAsia – The benefits of your own software team without any of the headaches
A very important aspect of getting the desired results in an outsourced project is the ability to manage technical teams well. Numerous challenges from managing time-zones, ensuring trust, communication and productivity and mitigating cultural issues could well derail the progress of your project. While following the best practices listed in the article above would ensure that your take the necessary precaution while managing remote teams, however a lot would depend on the context of a particular situation and how proactively your team manages (or averts) any new challenge that potentially arises.
BlastAsia with its 20+ years of experience with remote dedicated software teams virtually is proud to work with clients all over the world helping them with DevOps consulting and implementation. With an adept understanding of cultural and workplace alignment training which is critical for success, BlastAsia has become the preferred partner for companies looking for outsourcing services. BlastAsia’s proprietary team vOps team platform is one single intuitive interface for all your requirements. While allowing for visibility on team, work or equipment it allows for easy access to optional services like training and team building. The platform has built-in features with allow you with evaluation, goal-setting, reward and incentive allowing you to manage your virtual teams better.