{"id":803,"date":"2020-04-24T14:06:05","date_gmt":"2020-04-24T12:06:05","guid":{"rendered":"http:\/\/companies.mybroadband.co.za\/bbd\/?p=803"},"modified":"2023-09-29T08:17:06","modified_gmt":"2023-09-29T06:17:06","slug":"bbds-best-tools-for-distributed-development","status":"publish","type":"post","link":"https:\/\/companies.mybroadband.co.za\/bbd\/2020\/04\/24\/bbds-best-tools-for-distributed-development\/","title":{"rendered":"BBD\u2019s best tools for distributed development"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-807\" src=\"https:\/\/companies.mybroadband.co.za\/bbd\/files\/2020\/04\/BBDs-best-tools-for-distributed-development.jpg\" alt=\"\" width=\"640\" height=\"360\" srcset=\"https:\/\/companies.mybroadband.co.za\/bbd\/files\/2020\/04\/BBDs-best-tools-for-distributed-development.jpg 1000w, https:\/\/companies.mybroadband.co.za\/bbd\/files\/2020\/04\/BBDs-best-tools-for-distributed-development-300x169.jpg 300w, https:\/\/companies.mybroadband.co.za\/bbd\/files\/2020\/04\/BBDs-best-tools-for-distributed-development-768x432.jpg 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p><em>Part 2 of the distributed development series <\/em><\/p>\n<p>Wading through all the tools available to aid distributed software development can be like swimming in jeans \u2013 challenging. With as many years of experience as BBD has in perfecting a distributed way of working for clients across many sectors, knowing which tools and methodologies are best suited to your project environment has become its own art form.<\/p>\n<p>As a custom software development company with an international footprint and staff in Bulgaria, Cyprus, India, Netherlands, Poland, South Africa and the United Kingdom, BBD understands what is required to make this model work. As part two of a three-part series, this article looks into the right tools for ensuring teams are able to effectively deliver and adapt.<\/p>\n<h3><strong>Understanding your options <\/strong><\/h3>\n<p>\u201cDiving into a distributed development model, where work is distributed across a single geographically spread team, can seem daunting at first\u201d explains Dieter Rosch, a BBD executive and team lead for multiple distributed teams. This is especially true when getting to grips with the tools your teams need to use. It all comes down to the fact that custom distributed teams need a customised tool selection. For BBD, this is important because not every project team operates in the same way, nor do they want them to. \u201cAlthough we have preferred ways to work as a business, we support our project teams defining their workflows according to the client, the environment and the project itself\u201d explains Rosch. There is a plethora of tools, both licensed and open source to choose from, but before identifying which could be the right ones for your team, it\u2019s important to first acknowledge a few key concepts:<\/p>\n<ol>\n<li>Teams will need more than one tool to successfully communicate and deliver. \u201cAt BBD we\u2019ve found stripping down to only the necessary tools for video, chat, project management and source control is a winning recipe.\u201d<\/li>\n<li>When working across multiple time zones, the capacity for offline communication is key as not everyone will always be online at the same time. Rosch adds that although there are often overlaps in working hours across his teams, you never want to end up with a situation where the \u2018shift A\u2019 is confused as to what \u2018shift B\u2019 has accomplished.<\/li>\n<li>Easy feedback and centralised saving are crucial to your team\u2019s ability to work naturally and comfortably.<\/li>\n<li>Your team will also have preferences, so remember to take these into account.<\/li>\n<li>Lastly, he adds that it\u2019s not only about the software, but good hardware \u2013 quality headset \/ earphones, a decent camera and a clear microphone are paramount.<\/li>\n<\/ol>\n<p>With this in mind, you can start digging into the available options.<\/p>\n<h3><strong>\u00a0<\/strong><strong>Top tools for virtual chats<\/strong><strong>\u00a0<\/strong><\/h3>\n<p><strong>1. Slack <\/strong><\/p>\n<p>Slack is essentially a group chat room with the ability to assign multiple channels to organise communication into both functions and thought threads. You\u2019re also able to react, set reminders and use emoticons to increase the signal-to-noise ratio (basically less chat and more action in functional channels). You can also set up a bot that team members use to send text commands to, which the bot then actions on the system. Rosch explains that this feature allows teams to automate smaller tasks, freeing software engineers up for meatier ones where they are better utilised.<\/p>\n<p>Rachel Da Justa, a fellow BBD executive with many years\u2019 practical insight working in distributed teams explains that many of the teams she\u2019s worked in have daily check-ins which replace standups and act as a \u2018reporting for duty\u2019 action. \u201cThis message-centric approach allows our team members to check in when it\u2019s appropriate for their time zone \u2013 an important fact to consider when, like me, you\u2019re working on a project covering three continents\u201d Da Justa adds that this practice also forces each team member to plan their day, helping build self-managed teams who are accountable and responsible for themselves \u2013 a move BBD fully supports in their project teams. As an added benefit, Slack integrates into Trello, Jira and Outlook.<\/p>\n<p><strong>2. Microsoft Teams<\/strong><\/p>\n<p>With both video and chat functionality, Teams works well for social and formal chats, as well as video conferencing. This highly accessible platform is easy to adopt in cross-functional teams, allowing you to engage with all relevant parties in its persistent conversation threads. The platform integrates into multiple third-party apps including Zoom, GitHub, Jira and Polly for quick poll-based feedback. Teams also fully integrates into Office 365.<\/p>\n<p>Da Justa says that \u201cAn added benefit with Teams for us is that you can create conversation channels, much like you can in Slack. This helps us keep track, allowing every member of the team to stay in touch with what\u2019s happening\u201d.<\/p>\n<p><strong>3. Telegram <\/strong><\/p>\n<p>Rosch explains that it is important to be able to separate high priority messages from the humdrum of conversation. For this, Telegram has been a successful tool because when used only for work, every notification then means that something is happening, or needs to be actioned. \u201cThe trick to these tools is to get them to work for you \u2013 even when on the go. For some projects we have used the automated bot functionality to set alerts that send direct messages to production support teams through Telegram. These are then meaningful alerts that won\u2019t get lost in between other emails or team chatter.\u201d<\/p>\n<h3><strong>Top tools for video conferencing \u00a0<\/strong><strong>\u00a0<\/strong><\/h3>\n<p><strong>1. Zoom <\/strong><\/p>\n<p>With so many of us having found ourselves working at home due to COVID-19, Zoom has become a staple tool for video conferencing and virtual meetings. For BBD, it\u2019s a firm favourite among the distributed development teams with its large participant limits, network stability, functionality and ease of use across the mobile and desktop apps and through your browser.<\/p>\n<p>From a development point of view, Zoom\u2019s video recording functionality lets team record end-of-sprint demos and save them either to the cloud or onto your device. This then means that distributed teams can watch when they\u2019re available. Da Justa says that this functionality is especially important for distributed teams because not everyone will be online at the same time.<strong>\u00a0<\/strong><\/p>\n<p><strong>2. Microsoft Teams <\/strong><\/p>\n<p>Similarly, Teams offers high participant limits on calls, easy content sharing, video recording and access to previous meeting notes and recordings. Da Justa notes that being able to invite external people makes keeping all stakeholders in the loop easy.<\/p>\n<p>Rosch explains that choosing between Teams and Zoom is often a matter of personal preference. \u201cWe wouldn\u2019t be software engineers if we didn\u2019t have opinions on the tech we use\u201d he jokes.<\/p>\n<h3><strong>Top tools for project management <\/strong><\/h3>\n<p><strong>4. GitLab<\/strong><\/p>\n<p>GitLab is a powerful tool for co-ordinating activities at all stages of software delivery, from initial code design through to app development, infrastructure provisioning and canary deployments. Da Justa explains that many of BBD\u2019s teams enjoy using the project management component of GitLab because it becomes a single source of truth in which everything is code. \u201cThere\u2019s also no chance of someone accidentally changing a weird setting somewhere and you not being able to find and fix it quickly because if something doesn\u2019t work, the problem is in the repo. Somewhere, that change is in the commit.\u201d<\/p>\n<p>For Rosch, the GitLab suite includes functionality that aides distributed teams because you can organise projects, tag them and search through your code \u2013 \u201cthis is especially important when the team is growing as it helps newcomers find what they\u2019re looking for relatively easily\u201d.<\/p>\n<p><strong>5. Atlassian Jira <\/strong><\/p>\n<p>Amenable to teams of any size, Jira offers different packages based on the functionality you need, including methods for KanBan and Scrum. As a project management tool, Jira lets you keep track of every issue your team is currently working on, each task assigned to the members and where the code is in the deployment. With the Agile methodology taking root in many projects, BBD has found that the Agile board template is highly effective. \u201cOur goal is always to ensure that we\u2019re adding value for our clients, so project management tools such as Jira help relieve unnecessary disruptions for development teams because we can quickly see as bugs are fixed, code is deployed and tasks are completed\u201d reveals Da Justa.<\/p>\n<h3><strong>Top tools for source control <\/strong><\/h3>\n<p>As a popular version control system for agile software development, Git is a well-supported open source platform that supports a range of workflows to suit different project teams. A big difference between Git and many others code repositories is that it is distributed, not centralised. This gives software engineers the freedom to experiment locally and only publish their changes once they\u2019re ready to send them to the rest of the team. \u201cSoftware development is a lot about solving problems \u2013 a creative activity. Sometimes the best way to solve something is to play. Git gives us that flexibility\u201d explains Da Justa.<\/p>\n<p>A number of companies have taken basic Git and bundled it into their own value-added offerings. In BBD\u2019s experience, two stand out for enterprise adoption.<\/p>\n<p><strong>1. GitLab <\/strong><\/p>\n<p>Mentioned previously, GitLab is a versatile and collaborative tool, whose source control component has successfully been used in many of BBD\u2019s distributed development projects.<\/p>\n<p>Because of its distributed nature and the fact that it works much like an Agile component, changes can be pushed down the deployment pipeline faster than with a monolithic and centralised system. \u201cCouple this with the ability to create your own personal copy of the repository hosted alongside the main codebase and you have a light but secure tool that merges changes as you need them too\u201d explains Rosch.<\/p>\n<p><strong>2. Bitbucket <\/strong><\/p>\n<p>Bitbucket is a popular tool for BBD\u2019s teams because it stores all project code in one secure repository from which the team members can access and pull needed code. All changes are tracked and you can rollback if you need to. An added benefit is that Bitbucket also stores server configurations and scripts, essentially making it a one-stop shop. When integrated with Jira, Da Justa\u2019s teams have found that its handy to not have to leave the tool to receive bug issue status reports before actioning them.<\/p>\n<p>Its built-in continuous delivery functionality also allows team to increase efficiency in how they can build, test and deploy all while benefitting from quick feedback loops.<\/p>\n<p>At the end of day, it all comes down to understanding your team and assessing which tools best suit their needs in the project. \u201cOur experience in the tools above means that we\u2019re confident and comfortable in their effectiveness for our teams \u2013 in varying combinations\u201d explains Rosch. The important thing to remember though, adds Da Justa, is that adoption is paramount to success. She concludes by stating that if your teams don\u2019t commit to using the tools consistently, then communication and productivity cannot flourish.<\/p>\n<p>The last article in this series dives into the culture of distributed development, looking at how to foster a successful team, no matter how widely spread. For more insights from the BBD distributed development article series, click <strong><a href=\"https:\/\/bbdsoftware.com\/news\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a><\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Knowing which tools and methodologies are best suited to your project environment has become its own art form.<\/p>\n","protected":false},"author":1,"featured_media":807,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-803","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/posts\/803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/comments?post=803"}],"version-history":[{"count":2,"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/posts\/803\/revisions"}],"predecessor-version":[{"id":809,"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/posts\/803\/revisions\/809"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/media\/807"}],"wp:attachment":[{"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/media?parent=803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/categories?post=803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/companies.mybroadband.co.za\/bbd\/wp-json\/wp\/v2\/tags?post=803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}