Tools to make 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 developers.
Can you tell me at a high level about key 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 tools. For example, if you take Task Management alone you can already name 10 different tools but only for one specific task.
It’s not only about the tools you use for managing remote teams, but also about how you use them.Click to tweet
Let’s run through some of the other developer collaboration tools.
Communication Management – Slack is the first name that comes to mind for communication between teams in different locations, 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 different tools. For example, Jira can be easily integrated with Slack allowing you to see each and every interaction, which is very convenient.
Teams also use Skype and as well as a variety of other chats and messengers. Our advice is to go with something that is appropriate to 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.
Task Management is another important aspect of cooperative work. There are a number of task management tools:
For example, if you use Kanban methodology 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.
Code Management is something that Non-Technical clients often forget about, but it is critical to the success of any product. The main tools for this purpose are:
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 code branches? Functionality (or groups of functionalities) are often created as different code branches. Code branches allow you 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 master code base (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.
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 collaboration platform.
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 plugins 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. Great detailed Toggl review you can find here.
- If the production code is resilient; and
- Monitor the server side of the project.
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.
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;
- PHPUnit; and
- 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.
Not sure what software developer you need to hire?
Get a free consultation with a Senior Team Advisor.
Tristan: Great list. Do you use ScreenHero?
Mariia: ScreenHero is a pair programming tool for discussions which 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 synchronised.
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 code base.
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 you 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
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.
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 tools are used correctly, they enable relatively seamless collaboration between geographies.
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 teams and structure their work in the most efficient way on a remote basis.
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.