Managing remote teams doesn’t mean less control over your project. Find out how to keep everything in order with these remote teams best practices.
Working with remote teams, including outsourcing software development to IT companies working as your remote tech partner, may seem a difficult thing to do.
We’ve tackled these issues before in the article on managing remote teams, where we included these, alongside multiple other challenges and pain-points.
The common dilemma founders face has been a fear of not getting understood by people with different language skills, backgrounds, cultural differences, and even business culture.
In this post, I will talk about remote teams best practices we follow here at SoftwareHut, ensuring the right communication, code quality, managing trust issues, and project delivery.
1. Focus on communication
Every single article on working with remote teams shares observations on communication. It is a well-known fact that efficient and effective communication is the foundation of a successful project.
But how would one communicate with a software development team? Here’s how we do this at SoftwareHut:
- Keep it simple – when you worry that something gets lost in communication, it’s easier to over-complicate messages. Long, confusing emails don’t help – trust me on this one. If you want to get your message across, talk about one thing at a time, keep it short and informative, and eventually confirm that all is understood. It’s only then that you can move on to the next issue.
- Encourage casual conversations – working at the office; people have a chance to talk over coffee, snack, or just as a break from work. They’re otherwise known as watercooler moments. Remote teams usually don’t have these, but you can fix this. Ask something personal occasionally, like for plans for a weekend. Get to know each other, get closer – the communication (and work!) will go smoother when you discover a shared, and more casual language. After all, we’re only human.
- Decide on the tools you’ll use – e-mails are a great jumping-off point for sharing important information, but they may be less convenient for having a chat, be it about feature delivery, or just questions about how things go. The tools we use include Skype, Rocket.Chat, and Microsoft Teams.
Extend your team
2. Share a tool-stack
I’ve already talked about the importance of using communication tools for having regular conversations about your project’s progress.
It is not, however, the end of a list of potential tools you can use, to make work more efficient and remain control over your project. Consider using project management tools (Excel may not be enough), share them with the team, or ask your vendor to invite you to the tools they use.
In our case, we try to match the tools with a project we currently run, as different tools have their pros and cons:
- For team management, we use tools like Azure DevOps, JIRA, Confluence, and Trello.
- For waterfall projects, we use MS Project, as it allows us to create Gantt charts.
- To create Burndown charts, which we make for Agile projects, we once-again use Azure DevOps.
You don’t have to use all these tools, though, although bear in mind the possibilities. In some tools, it’s enough to generate the report that can be shared in different formats, like .xls or PDF.
3. Trust is key
Finding a reliable tech partner requires thorough market research. How to tell, if a company you’re evaluating will deliver a product as requested? Do they have the skills and experience that they brag about on their website?
Searching for reviews online or looking up their portfolio are some of the ideas you can use to find out if the company is reliable.
There is, however, a challenge much harder for you to overcome – and it’s putting this trust into action. You don’t have to trust blindly though, trusting the process instead.
What I want to say, is that trusting your tech vendor doesn’t mean losing control over the process. What we do to ensure that the client remains in the loop is to let them know about the progress regularly.
- Client reporting is key to building a relationship between the client and the vendor, and it builds trust, too.
- Ask the IT company how and how often will they inform you about the progress.
- If you have your way of reporting, and you require it every day, week, or monthly, clarify that to the team and set a time and date for delivery of progress report.
4. Define acceptance criteria
Entering a software development project, it’s important to set acceptance criteria clear from the very beginning. Based on this, you and your development team can decide whether the solution works as planned, or not.
Acceptance criteria define what has to be done to accomplish the project. They are established in the form of a narrative, addressing user requirements and the desired actions.
Let’s assume acceptance criteria based on Uber’s app:
- The user can see a map of the city with available Uber rides.
- Thy can pick a ride.
- The app notifies user about the ride they picked – if accepted.
This is just a short example, and acceptance criteria can be as complex, however, is needed to fully define user requirements.
Remote Teams Best Practices: Summing up
As you can see from applying remote team best practices, you can maintain control over your project, building trust and managing the outcome of development.
It’s how we communicate that matters, and how well we define the scope and acceptance criteria. Trust the process, pick the right team, and I’m sure you will succeed.