There’s much more to running a software development project than writing great code!

Your tech stack is a pile of programming languages, frameworks, test suites, servers, tools, and APIs, all wrapped up in a DevOps pipeline. Your development process adds issue management, a testing strategy, and code reviews to guarantee quality. Collaboration tools keep everybody in touch and on the same page.

No two engineering teams do all this the same way, but every team has to answer the same three questions every day:

  1. Where do we stand today?
  2. What progress will we make by tomorrow? 
  3. Are we going to finish this thing before we run out of money and time?

The answers are deeply hidden under a mountain of shifting data. Check out our interview with Kathryn Koehler, Director of Engineering Productivity at Netflix, and how they’re approaching engineering productivity metrics.

Now let’s dive into some engineering productivity tools that fill critical roles in your toolchain. Your developers are likely to have strong opinions about each, but none of them is a wrong choice! 

Table of Contents

Source Control Tools: GitHub vs. BitBucket

Your code has to live someplace! Whatever your development toolchain looks like, it is highly likely that your source control repository is running some flavor of Git. Here are two of our favorites.

GitHub 

In many developers’ minds, GitHub is practically synonymous with Git and is the default source control platform for open-source projects worldwide. Personal GitHub repositories are the de facto resumes of the cloud-centric world.

github pull request

GitHub Pros

  • A broad, deep, and familiar feature set.
  • Free for most individual users, and inexpensive even for significant projects.

GitHub Cons

  • We’re drawing a blank over here.

BitBucket

BitBucket deserves mention for one particular reason: it is an Atlassian product. So it offers deep integrations with sister Atlassian products Jira, Trello, and Confluence. If your team uses Atlassian, BitBucket is worth considering as a source-control alternative to GitHub.

BitBucket Pros

  • Deep integration with Jira, Confluence, and other Atlassian tools.
  • Fully supported by key engineering productivity tools.

BitBucket Cons

  • Far lower developer adoption than GitHub.
  • Oddly, no syntax highlighting in repositories.

Issue Tracking Tools: Jira vs. GitHub Issues vs. Trello

Software engineering is largely breaking up a complex monster into bites small enough for an individual developer to handle. This results in a lot of daily tasks, and managing this endless detail would be impossible without a strong issue tracker.

Jira

Jira is the de facto standard in the task management business. Most projects at the institutional scale use it, it offers every imaginable feature, and it integrates seamlessly with other Atlassian products.

jira dashboard

Jira Pros

  • Extensive customization at every level, so your workflow can adapt to the needs of your project instead of the reverse.
  • Zero learning curve from most users’ perspective, since almost everybody has already used it at least once!

Jira Cons

  • A steep administrative learning curve.
  • Adapting Jira to project needs requires third-party plugins, and the price tag can get very high quickly.

GitHub Issues

GitHub has offered issue tracking for years, but for most of that time, an extensive backlog rapidly exposed the platform’s limits. Recently, things have changed. The latest version of GitHub Issues offers a complete feature set that any seasoned Jira user would recognize. 

GitHub Issues Pros

  • A good feature set for most small to medium projects.
  • Deeply integrated with the rest of the GitHub toolbox.

GitHub Issues Cons

  • Less issue type & workflow flexibility than Jira requires more disciplined issue management on the part of the development team.
  • Not as many ways to slice & dice the backlog view.

Trello

Trello (newly acquired by Atlassian) may seem like an odd choice in a list of high-powered engineering tools. Still, it has one strongly redeeming feature that justifies its inclusion: it is extremely non-scary.

Most engineering decisions are business decisions in the early days of a project, especially at a new startup. So business stakeholders need to be directly involved in the early development process. 

Such people are likely to be intimidated by the high-tech interfaces and options of Jira or GitHub. Meanwhile, Trello’s cards-and-kanban metaphor is accessible enough to just get out of the way, allowing business users to focus on tasks rather than tools.

Trello Pros

  • Highly accessible to business users.
  • Trello projects can be imported directly into Jira when it is time to scale!

Trello Cons

  • Underpowered for serious software development.
  • Few robust reporting options.

DevOps Tools: GitLab vs. Jenkins

Somehow, your code needs to progress from the developer’s desktop through test environments, staging environments, and ultimately into production. This is the province of DevOps, and project velocity is not possible without it.

GitLab

If you love GitHub, you will love GitLab! This DevOps platform fills a role similar to Jenkins farther down the list. Open-source teams, in particular, will appreciate GitLab’s tight integration with GitHub and related tools. And the price is hard to beat.

GitLab Pros

  • Deep integration with the GitHub toolbox.
  • Very affordable, perfect for open-source teams.

GitLab Cons

  • Less fully featured than more expensive tools.
  • Assumes a Git-centric tech stack.

Jenkins

Jenkins is an open-source DevOps tool with an extensive pedigree. Although Azure and other cloud environments also offer hosted versions, it generally occupies a server in your DevOps infrastructure.

Setting up a Jenkins server is not a trivial process, but the result is a DevOps pipeline that perfectly suits the needs of your project.

Jenkins Pros 

  • Stable enough to support the most mission-critical projects.
  • Endlessly configurable.

Jenkins Cons

  • Steep learning curve.
  • On larger projects, expect maintaining the Jenkins server to be somebody’s full-time job.

Code Quality Tools: LinearB & Sonarqube

The demand for software products is at an all-time high. Unfortunately, many think this means prioritizing lower development costs and faster time-to-market. But this will eventually backfire. You can’t neglect code quality.

Ignoring code quality quickly leads to wasted budget and resources paying off technical debt, which severely hurts your business outcomes. Poor code quality also makes it impossible to predict how long it takes to add new features without breaking others, causing highly inaccurate sprint planning.

High code quality is most visible to most team members through its effects. These include:

  • Fewer defects
  • Easier, faster revisions
  • Better maintainability
  • A more readily extensible codebase
  • Measurably better performance across every dimension

This is just the top of a long list. The following engineering productivity tools monitor all the effects of code quality and other measurable aspects of your development process. They align the quality of your team’s practices with your desired business outcomes.

LinearB

LinearB is more than just a code quality tool. But improving your code quality is at the core of everything LinearB provides. We believe that if you can reduce unplanned interruptions caused by code quality issues, then your team will be able to spend more time on features. 

LinearB can help you: 

  • visualize areas causing code quality issues, such as your pull request process
  • set benchmarks and team goals to improve these areas
  • use WorkerB bot to course-correct your team members automatically 
  • track your progress against your goals over time
LinearB is here to help you spot where there might be problems in your process. If you’d like to learn more and improve your own code quality, check out our five-step recipe for improvement.

LinearB Pros

  • Systematically reduces code churn and rework with a world-class holistic methodology. 
  • Integrates with every tool in your organization for perfect visibility at every level.

LinearB Cons

  • Not for everybody! LinearB works best when you adopt their project management methodology.
  • More expensive than other options on this list, unless you have a team smaller than 8, in which case it’s free!

SonarQube

SonarQube is narrowly focused on your codebase. It connects with your code repo and DevOps tools and will automatically analyze and visualize code quality and security in 29 languages.

SonarQube Pros

  • Easy configuration & administration.
  • Super usable!

SonarQube Cons

  • Narrowly focused on code quality.
  • Limited language support in some specialty domains.

Decision Time

Every development team is different. Whether you’re working on a new project, an established one, a well-capitalized enterprise, or a scrappy open-source hustle, no two projects have the exact management requirements. Nor will they require the same engineering productivity tool stack.

But unless you are working completely solo (and even then, it’s debatable), your team needs some kind of engineering management toolbox. Without it, your team is adrift with no idea what tasks should be done next, no idea what good looks like, and no way to improve and grow as the project matures.

As with so much in modern software engineering, you’ll find your best solution here through iteration.

Start with source control. This is the foundation of engineering productivity tools. I’m a GitHub fan, and you probably are as well. Whatever tool your choose, rationalize your releases with semantic versioning.

Now that you have source control pick an issue tracking tool and tie your commits to your issues. Adopt semantic commit messages to maximize clarity in your code repo and task list. I like Jira, but which tool you choose is far less important than just choosing one and using it!

Roll in a DevOps tool to standardize your testing and deployment procedures and eliminate manual operations. All the cool kids seem to be using GitLab these days.

Finally, layer on a code quality tool like LinearB to turbocharge your development practices and hold your team accountable to goals and engineering benchmarks at every level.

Improve your engineering organization at every level with LinearB
Want to improve your engineering processes at every level? Get started with a LinearB free-forever account today!

In the end, you are almost guaranteed a superior outcome, no matter which engineering productivity tools your team produces!