5 minutes read
Tech Tools for Software Developers - Part 2: Code and Project Management

Tech Tools for Software Developers - Part 2: Code and Project Management

As a software developer, there are many tools that will help you to make your job easier. 

Previously, we looked at some of the infrastructure tools that developers use to build programs. In this article, we’ll dig into some of the tools that can help you to plan, manage, and maintain your programs more effectively. These include version control tools, project management tools, and collaboration tools that you can use whether you’re a solo developer or working as part of a team. Knowing these industry-standard tools will help you to get a jumpstart on your software development career.

Vim: The Coder’s Text Editor

While many developers now work out of graphical IDEs, many still prefer the feel and customization of working in the command line. So many coders still turn to command-line text editors, especially those who develop on Linux. One of the oldest and most popular command-line text editors is Vim.

Vim was created in 1991 by Dutch programmer Bram Moolenaar to add functionality to the original Unix text editor vi. Vim uses a series of keyboard commands to move around in the program. While this can make it somewhat difficult for beginners, power users who learn the shortcuts find they can get around the program much faster than a GUI-based editor. Vim also offers scripting, macros, and other customizations that can make using it even faster.


Source and Version Control with Git

When multiple developers are working on the same project, it is nearly impossible to track who made what changes to which files, and when those changes were made. Even for a single developer, if your project is more than one or two files, it’s good to have a system that keeps track of changes for bug-tracking purposes. That’s where a version control system like Git comes in.

Git was built in 2005 by Linux creator Linus Torvalds to help with Linux kernel development. Since then, it has grown to be one of the most popular source control systems used by software developers worldwide. It was designed for speed, and even large projects can be checked out and merged very quickly.

It allows developers to work on their own local copy of a repository, and then merge the changes back into the main repository or a branch of the repository. Version history is tracked, and code can be reviewed and tested before it’s allowed to be merged in. This makes collaboration, testing and bug tracking much easier across a coding project.

Online Git Repository Hosting

Several companies offer hosting of Git repositories on the internet. This gives you a place to store your project, which is especially useful if you are developing an open-source project (or forking one), or will be collaborating with others.

Additionally, Git repositories can be integrated with continuous integration/continuous delivery (CI/CD) pipelines. In CI/CD, changing code in a repository automatically triggers a set of actions. These actions validate the code, and can be used to automatically test the code by means of unit tests. If those tests pass, the contents of the repository can be compiled into a program, where they can be tested by the developers or QA testers. Then, when ready, the pipeline will put the final version of the code into place and build the production version of the software.

GitHub: The Largest Git Repository Host

GitHub, now owned by Microsoft, hosts 190 million Git repositories shared by 40 million users, making it the largest repository host in the world. GitHub is well-known for offering free accounts to developers who create open-source repositories. And as of 2020, free users can now create private repositories with up to three collaborators.

In addition to Git repositories, GitHub also offers documentation hosting, wikis, CI/CD pipelines called GitHub Actions, and issue tracking. 

GitLab: A Popular Option for Enterprises

GitLab is a newer Git repository hosting service that offers many of the same features as GitHub, but with additional offerings geared toward corporate and enterprise users. It has extensive CI/CD features that make it popular with those who work with DevOps. GitLab can also be downloaded and installed on a local server, which is a popular option for companies that prefer to keep their repositories in-house rather than in the cloud.

GitLab also offers free accounts with many features included. The paid tiers include additional project management and collaboration features, but the free tier is more than enough to start learning it.

Bitbucket: Git Hosting with Jira and Trello Integration

Bitbucket is a Git hosting service owned by Atlassian, the same Australian company that owns Trello and Jira. So if you are already familiar with those tools, Bitbucket could be the Git repo service for you. While Bitbucket is more geared towards enterprises than individual developers, you can still sign up for a free account, which includes all features for up to 5 team users.

Bitbucket doesn’t have the public documentation, wiki, or webpage features of the other platforms, so it’s not as popular with the open-source community or hobby developers. But it remains a popular option for enterprises that require integration with Jira’s project management tools.

Project Management and Organization Tools

For any software development to be successful, it needs to be well-organized. This applies even for a single project made by a solo coder -- but is even more important when collaborating with others or working together as part of a team. So it’s important for software developers to learn about project management tools that will help them to effectively collaborate on projects, get feedback, and solve problems reported by users.

Trello: Organize Your Work 

Trello is used for organizing work around the Kanban method. This is a project management technique that is popular with Agile software development teams. On Trello boards, task cards can be created and organized into multiple columns that correspond to steps in the software development process. The cards can be moved via drag-and-drop, making it easy to visualize tasks flowing through the process.

Multiple users can be invited to boards and have cards assigned to them. Cards can also have sub-information like attachments, checklists, and links to add additional information. In addition, Trello offers automation with its Butler feature. This allows cards to be automatically moved, created and updated based on certain conditions.

Jira: Issue Tracking and Project Management

If you need a project management solution with more features and flexibility than Trello, Jira is another popular platform used by agile developers. Jira combines both issue tracking and project management into a single platform. It can be used to track the status of features, major software releases, and bugs across the entire software development lifecycle.

In addition, Jira can integrate with a CI/CD pipeline to monitor build status and automated unit tests. And it can automatically update itself when code changes are committed to a Bitbucket repository. While Jira was originally intended for software development, it was also adopted by project managers in other industries, as well as IT service desks, and so specialized versions are available for these uses.

Conclusion: Software Development Organization Tools

As a software developer, you need to know more than how to write code. Take the time to get familiar with the tools used in the industry, including Git, CI/CD pipelines, and project management tools and techniques. Knowing these tools and processes will help you as you look to begin or continue your software development career.

Our final installment in this series will focus on testing and automation tools that help developers to deliver better software more quickly.