Tools to make remote collaboration with your team a breeze
Tristan: Today I’m interviewing Mariia Tintul, who is Business Development Director for Lenal EU, which is a medium-sized software development firm with offices in Tallinn & Kyiv.
The purpose of this interview is to learn what technology is available on the market for managing remote team members and developers in particular.
Can you tell me at a high level about key team collaboration tools that you suggest clients use to manage their remote developers’ teams?
Mariia: When it comes to the management of remote teams, it’s not only the tools but also how you use these project management tools. For example, if you take Task Management alone you can already name 10 different remote working tools but only for one specific task.
Let’s run through some of the other developer collaboration tools.
1. Communication Management – Slack is the first communication tool that comes to mind for instant messaging between distributed teams, especially in software development. It is not only a fast chat room but also has many options for creating different channels for projects.
Slack can also be integrated with a variety of other project management tools and essential applications like Dropbox and Google Drive. Dropbox and Google Drive are some of the most popular workspaces for storage and file sharing.
Remote teams also frequently use Skype and Zoom, as well as a variety of other chats, messengers and video conferencing apps. Our advice is to go with something that is appropriate for your specific use case and is sufficiently professional. Skype is suitable for chatting but often has issues with saving the history of your chat which is crucial for collaboration. Zoom is great for video calls, but not very convenient as a messenger.
Additionally, Google Docs tends to be one of the most popular tools as it allows you to write and edit documents online in real-time.
When different developers use different tools, you can use Mio to connect with them on their preferred platform without leaving your preferred platform (editorial comment).
2. Task Management is another important aspect of cooperative work. There are a number of task management tools out there:
If you use Kanban methodology in your remote work, Trello will work perfectly. The main thing is to focus on the needs of the team.
First consider which methodology you want to use: Kanban, Scrum, or any other and then adjust accordingly. Whatever tool you use, make sure that your Scrum Master or Product Owner defines the workflow. You then need to adjust your chosen tools to match the proposed workflow.
3. Code Management is something that Non-Technical clients often forget about, but it is critical to the success of any product. The main developer collaboration tools for this purpose are GitLab and Bitbucket. You can add all of your developers, see all their comments, create all the code branches, and then merge them together into sprint releases.
What are the code branches? Functionality (or groups of functionalities) are often created as different code branches. Code branches allow you to merge changes together and if anything doesn’t work, it’ll show exactly which branch contains problems. So you know where to look for the problem. Once branches are tested they can be integrated into the master codebase (a.k.a. main working code).
All of these Code Management Apps work very well, however, GitHub is slightly more popular than others. It is also important to note that selecting a Code Management tool needs to align with the needs of the client, because they may have their own preferences.
4. Project Wikis. It is important to keep all your use cases, test cases, etc. in the same place to ensure everything is connected, considered, and up to date. The main tool for this purpose is Atlassian’s Confluence, which by the way, also works perfectly with Jira or Bitbucket, which we use in our company. This combination of tools effectively acts as a code hosting and collaborative remote development platform.
5. Time tracking tools are necessary if the client wants you to track the specific time your developers spend on their projects. There are a number of time tracking tools. You can use either plugin for your task manager, for example, in Jira, there are a number of plugins to track time spent on projects or you can use third-party tools like Toggl, Hours, etc.
Toggl offers online time tracking software specifically designed for freelancers, graphic designers, and consultants. It has a powerful timesheet calculator and syncs with iOS and Android app. A detailed Toggl review you can find here.
6. Application Performance Monitoring. You can use tools such as New Relic, Rubix, Munin, and Nagios; these monitor the performance of applications to help track:
- If the production code is resilient and
- To monitor the server-side of the project.
7. Jenkins or other continuous integration software is very important for teams to install and use in collaborative environments. If there are several developers, it is necessary that they have a tool that merges everything they are developing.
The main advantage of these programs is that they merge the code continuously (or periodically, depending on your settings) and instantaneously detect if there are any problems. You integrate your code on the go without waiting until the demo to know whether the software will crash.
8. Testing environments. This is a very broad topic which often varies depending on which language we are developing in. For PHP it would either be:
- PHP Code Sniffer
- PHP Mess Detector
If you use Laravel framework, there is a specific environment for that too.
These are mostly tools for production and if your CTO or Product Owner has a technical background they will know what to do with these tools and which metrics are being displayed.
Tristan: Great list. Do you use ScreenHero?
Mariia: ScreenHero is a pair programming tool for discussions that cannot be conducted using Skype. Pair programming can be used for teaching a Junior Developer or Remote Developer, but it primarily exists to improve speed and code quality.
Tristan: Is it the case that when work is outsourced to a junior developer in offshore/nearshore countries, this developer will need to be brought up to speed with how the code base operates. Hence, you need something like ScreenHero to get everyone synchronized.
Mariia: In cases where a senior/middle developer codes, junior developers can watch and learn through observation, ScreenHero may be used to get all developers onto the same page on the codebase.
But it can also be used for collaborative work either on difficult/new tasks or in order to make the code more flexible and clean.
For example, you know 50% of the solution for task A, and I know 50% of the solution. Together we have 80% of the solution and start working together on it. Today I am watching your code and suggesting my edits, tomorrow you. This way we’re mentoring each other and create the code together.
Remote pair programming tools include:
- Screen Show (e.g. Google Hangouts is a free remote programming tool)
- Screen Control (e.g. Mac Screen Share/VNC)
- Screen Share (e.g. Screenhero)
- Application Share (e.g. Atom Teletype)
Here is a fuller explanation of the above peer programming tools.
Browse 500+ Dev Teams Available for Hire
The shared application in Screenhero feels almost native, as sharing can be limited to a single window. Each user gets his own mouse, which is a great benefit of the application. You can point to a location on the screen without stealing control from your partner.
At the same time, Screenhero has some disadvantages, namely, it doesn’t support Linux and it still requires a lot of bandwidth.
At this point it is important to note that Screenhero was acquired by Slack in January 2015 – this is the only way to receive a Screenhero invite nowadays.
There are also some alternative products to Screenhero: join.me button, Surfly, Upscope Screen Sharing for Intercom, USE Together, etc.
Tristan: All of these useful code collaboration tools are cloud-hosted so they can be easily used across multiple teams if you have developers in the US and Ukraine for example. This is one of the reasons that outsourcing has become more of an attractive option in recent years. If these remote software development tools are used correctly, they enable relatively seamless collaboration between geographies.
Managing remote workers can be tricky, but being armed with some useful developer collaboration tools will definitely help to make this process way more smooth and effective for your startup. As it was already mentioned, it’s extremely important to use these tools in the right way, be it remote pair programming tools or code collaboration tools.
Mariia: Absolutely agree. There are so many collaborative coding tools that are booming because outsourcing is becoming even more popular. So nowadays, it is often almost a non-issue to manage team communication and structure their work in the most efficient way on a remote basis.
Collaboration tools for remote developers: FAQ
What are the top video conferencing tools for remote teams?
How to keep remote employees engaged?
What leadership skills are needed to manage a remote development team?
Mariia is leading the international direction in LENAL. She took a significant part in creating the main sales, partnerships and PR/marketing strategies in a number of companies. Moreover, Mariia is training sales interns and broadening the network of Clients and Partners all around the globe.