nobeastsofierce - Fotolia
No software project gets very far without the means to plan, communicate and track work. Developer collaboration tools must provide ways to track and assign tasks, work together on software, report progress and share code among team members. Otherwise, you have a bunch of developers, not a development team.
Key categories of developer collaboration tools include project management, communication and code collaboration tooling. Let's explore each tool category to understand how developers collaborate.
Project management software tools
Notable examples of project management software tools include:
- Jira from Atlassian
- Trello from Atlassian
Developers on a project team must track and manage work. Work can include tasks as well as issues to resolve. Project management tools should give developers a system to organize work itself: what work is completed, what tasks are behind and where task dependencies exist. This type of developer collaboration tool can also visualize information about the work a development team needs to do, via diagrams like Gantt, PERT and burn down charts.
The following project management tools address these needs and offer basic functionalities, such as privacy settings and team member tagging.
Jira. This Atlassian tool is designed for Agile adopters. The tool facilitates sprint planning, user story management and more. With Jira, a development team can view a project on a roadmap, Kanban board and to-do list.
Jira includes a healthy list of product integrations via the Atlassian Marketplace, which can provide options not available natively, such as a tool for a calendar view. Jira includes prebuilt workflows for Trello and also connects with other Atlassian tools like Confluence and Bitbucket.
Trello. Trello, another Atlassian product, breaks down projects into Kanban boards; each board into lists; and each list into a set of cards. In a typical example, a board has lists that represent a different step in a development team's workflow, and each list's cards are descriptions of specific tasks. Developers can move a card from one list to another to indicate it's ready for the next stage. They can add details, files, due dates and comments to each card.
Asana. Asana can display work in various formats including checklists, a timeline and Kanban boards. Asana offers an out-of-the-box calendar view. Asana's checklist/to-do list functionality lets users create subtasks, attach files to tasks and add category tags.
Airtable. Airtable enables developers to look at a project's work in progress in a spreadsheet interface, calendar format, visual-centric gallery and Kanban board format. Additionally, the vendor has a low-code/no-code tool, Airtable Apps, available at the pro pricing tier to augment a team's dashboard. Prebuilt app templates are available.
Smartsheet. The Smartsheet platform emphasizes its grid -- i.e., spreadsheet -- to provide a 30,000-foot view into projects and ongoing work. The product also provides Kanban card, calendar and Gantt chart view options. Smartsheet dashboards offer a look at crucial metrics.
Monday.com. This product uses the term pulses, in place of tasks, to describe work. Monday.com is otherwise similar to other project management tools -- users can assign a status, deadline and dependencies to a team member for each pulse. Monday.com has far fewer integrations than other project management tools. Managers could find this tool to be a good choice to see what team members' respective workloads look like.
Developer communication tools
The list of communication tools a development team could use includes:
- Microsoft Teams
- Google Meet
Constant emailing back-and-forth is a disorganized and inefficient way for team members to communicate. With the proliferation of remote and globally distributed work, it's not often feasible to walk over to a co-worker's desk or schedule an in-person meeting. Developers need capable and user-friendly communication tools.
Slack. Slack is a messaging platform that supports conversations across multiple channels and via direct message. Users can log onto their organization's Slack workspace via a browser, desktop application or mobile app.
Organizations often create channels for different teams, initiatives or projects -- only for the team members involved in that particular group. Channels can be public or private. Slack also offers audio and video calling, as well as screen sharing functionality.
Developers can program Slack bots to perform a number of functions. For example, Slack bots can share links or files when team members type a specific command.
Slack directly integrates with a variety of applications -- Google Drive, OneDrive, Google Calendar, Outlook, Gmail, GitHub, Trello, Asana, Jira and Zoom are just a few.
Teams. Microsoft Teams is a channel-based messaging platform that allows group chats and direct message conversations. Teams works in a desktop browser, in a downloaded app or on a mobile device.
Each Teams chat tracks the files uploaded in a channel, and users can simultaneously edit Word docs, Excel spreadsheets and other files directly in Teams. Additionally, Teams has video chat functionality with features like screen sharing and hand raising.
The list of Microsoft Teams integrations includes Box, Asana, Smartsheet, Jenkins, Trello, Jira, GitHub and Zoom.
Google Meet. Google Meet is a business video conferencing tool. Google Meet is free until March 31, 2021. After that grace period, non-enterprise accounts will have a 60-minute time limit. However, Google Meet lacks features like breakout rooms and hand raising. Also, the service requires each user to have a Google account.
Zoom. Zoom has standard features for a video conferencing app, including webinar capabilities, live chat, recording capabilities, screen-sharing and breakout rooms. Plus, attendees don't need an account to join a Zoom meeting. Zoom has paid and free options. Any meeting on the free version of Zoom with three or more people has a 40-minute time limit.
Version control and code sharing tools
Developers can choose from code collaboration or version control tools, such as:
- GitHub from Microsoft
- Bitbucket from Atlassian
To do programming on a group project, developers need a place to store code and juggle contributions to a single codebase coming from multiple people. A version control system enables developers to perform various actions, including check out code, fork a repository, create a branch, merge code changes and pull others' changes. Additionally, a version control tool keeps a history of the changes made to a codebase.
GitHub. This code-hosting service allows multiple developers to work on the same application at once. Respondents to Stack Overflow's 2020 Developer Survey said they used GitHub more than any other collaboration tool, including Slack, Jira and Google Suite.
GitHub integrates with several app-dev platforms and numerous programming languages. Add-ons are available for most project management or communication tools. GitHub offers free unlimited public and private repositories for an unlimited number of collaborators, as well as paid versions for additional storage, security and automation support. GitHub also has features for dev and project management.
GitLab. GitLab is another prominent service that hosts repositories. The open source tool provides Git-based code hosting, CI/CD functionalities, wiki features and issue tracking. GitLab provides access to an unlimited number of collaborators, and both public and private repositories. However, the tool's free tier lacks some dashboard features, business support, multi-region accessibility and compliance automation, which are provided in paid tiers.
Bitbucket. One of the draws of the Bitbucket repository hosting service is the built-in integration with other Atlassian tools like Jira. Bitbucket allows developers to organize repos into projects, which can help dev team members stay on task. Bitbucket's free plan offers an unlimited number of private repositories, but Atlassian caps it at five developers. Bitbucket's standard pricing tier of $3 per user each month is Atlassian's cheapest paid option and allows for an unlimited number of developers.