The following tools may not definitively be “the best” options collectively, but each plays a critical role across multiple teams and projects within our organization.
Check out these 33 software development tools and see which combination will help you execute to your fullest potential.
- Visual Studio (and Visual Studio Code): Microsoft’s Visual Studio is an integrated development environment (IDE) that helps you create websites, web apps and services with Microsoft platforms like Windows API and Microsoft Silverlight. Visual Studio Code is a free open source text editor that is very close to being an IDE and it runs across all platforms. Some of the powerful tools it comes with are IntelliSense code completion and debugging.
- Atom: A fully-customizable text editor made by GitHub. Similar to Sublime Text 2, Atom gives developers a dedicated editor that is more approachable than other options. It is open source and widely adapted by the community that built wide range of packages, Atom might be the right choice for you.
- Amazon Web Services: Choosing a hosting provider goes beyond simple access to virtual machines. AWS is our favorite hosting provider because of the depth of services available to developers. For example, when RDS released an adaptation of PostgreSQL a couple of years ago, it made a huge difference for our projects. Unless our clients specifically need a different provider or a specific GCP/Azure service is necessary, AWS is our choice.
- Google Cloud Platform: With all of the basic features you’d expect from a hosting provider today, we choose Google Cloud Platform when Kubernetes support is critical. Because the container cluster manager was originally designed by Google, GCP comes with built-in support that can sometimes streamline the DevOps process in a project.
- Microsoft Azure: As is often the case with Microsoft products/services, Azure comes with heavy support for the wide range of additional Microsoft tools. When a client relies on Microsoft, Azure might be our best choice.
Software Project Management and Agile Boards
- JIRA Software: Without a doubt, JIRA is always the number one option for our team. It’s favorite tool for scrum, Kanban boards, and planning projects in general. And with a deep library of useful plug-ins for scoping, timelines, versioning, releases and more, it’s hard to go wrong with JIRA. As long as you’re not afraid of tackling its complexity of course.
- Waffle: When we’re looking for a lightweight alternative to JIRA for a certain project, Waffle is a great (free) project management option. It sits on top of GitHub repos and issues and lets you modify as if they’re boards rather than dealing with GitHub tags manually.
- GitHub Projects: We love GitHub (more on that later), so when they recently released built-in project management boards for code repos, they had our attention. This feature is still in the early stages, but it might be an alternative that works for you.
- Trello: We wouldn’t necessarily use Trello to track the stories of specific projects. But as a means to track personal tasks or task management within a team related to a project, Trello has served us well. We’re watching it closely after the recent announcement of Atlassian acquiring Trello for $425M.
- CircleCI: This tools gives you the features necessary to integrate your entire stack with support for a wide range of build tools and multiple compilers built right into the platform. We started using CircleCI specifically for its support for iOS builds. You commit your CI configurations to your project repos in YAML files and extend it with scripts referenced in the YAML.
- TeamCity: Another full-feature CI tool, we rely heavily on TeamCity when we need Windows support. Unlike CircleCI, TeamCity lets us configure builds within the tool itself. There are many other CI tools, but CircleCI and TeamCity are by far our most used.
Content Management Systems
- Contentful: This API-driven content management system is a pretty awesome step forward from traditional CMS tools. It lets us communicate with it as an API to build standalone front ends and add data from there. We use Contentful because it fits nicely with our RESTful API positioning.
- Statamic: Rather that competing as just another full-fledged CMS, Statamic started off as a bare bones, minimalist option. While it has continued to add more features, sometimes all we need is a flat file CMS and Statamic gives us just that.
- Quay: As you’d expect, this Docker Repository tools builds, analyzes and distributes your container images. It’s our preferred option because it gives us immediate security scanning and an ability to dig into details for image uploading.
- Docker Hub (Official): It’s often best to use the software vendor’s tools for support, but in this case we’re still sticking to Quay. Docker understandably focused more on the tech behind Docker Hub rather than the front end, which meant we missed features like basic crowd functionality. Docker Hub is gaining ground for our repository needs, but for now we’ll stick to Quay when possible.
- Selenium: Industry standard for automating web applications. It runs across many browsers and operating systems, and has the flexibility to be controlled by a variety of languages and frameworks.
- Nightwatch.js: Testing solution that allows you to write end-to-end tests in Node.js that quickly run against a Selenium/WebDriver server.
- Sketch: If you’ve read anything of ours, you know that design is a critical aspect of every software development project at Dialexa. To that end, we often rely on Sketch as a lightweight tool to visualize our user interface as we go through our agile approach.
- InVision: Another tool we use in conjunction with our designers, InVision is a bit more full-featured and acts as a powerful prototyping, collaboration, and workflow platform as we work through UI. Our design team uses InVision for interaction design and passing it to the rest of the team.
Honorary Mentions in Our Software Development Tool Belt
- GitHub: You can’t get by in software development without knowing GitHub—it’s just that important. Anything from repos to wiki pages, open source and everything in between, we rely on GitHub across almost all projects. It doesn’t really fit into one of our specific categories in this post, but we can’t talk about software development tools without mentioning GitHub specifically.
- Todoist: This task management app certainly wouldn’t replace JIRA, but it can be a powerful tool when managing organizational tasks. Todoist is great for one-to-one feedback and acknowledgement between people like project leads and engineers.
- Paw: This API testing tool makes our lives easier when we have complicated schemes within a project. Rather than repeating API calls, you can save them and store the sequence for quicker access. And it has a powerful sharing tool for teams.
- Bear: Bear isn’t your average notetaking tool. It quickly overtook other options and became my favorite because it’s markdown driven. I wrote code for 10 years so I’m just not used to relying on a mouse for work—if I can do something on my keyboard, I’ll do it faster that way. Bear is a new tool, but if you love markdown it might work for you as well as it does for me.
- Apiary/Dredd: At Dialexa, we’re all about a documentation-first approach to API design. We list these two tools together because as a team, they allow us to collaborate and visualize projects and give us a powerful testing framework to ensure parity between documentation and functionality.
- Docker: The leading software containerization platform might not need much of an introduction. It’s an obvious item in our list of software development tools and we rely on it across a wide range of client projects because it standardizes application packaging. Docker helped us revolutionize our Continuous Integration, Continuous Delivery, and Continuous Deployment workflows.
- Slack: Slack seems to be taking over the business world as a means of team communication. One of the biggest reasons is the wide range of useful integrations included in this platform. I don’t love Slack personally, but it’s admittedly a great way to unify key notifications in project-specific groups.
- SourceTree: This Git client gives you built-in visualization of branches and Gitflow workflow (releases, features, hotfixes, etc.)—all in a well-done, nicely visualized package. We especially appreciate the feature that doesn’t let you work with blank commits, a problem that has broken other Git user tools.
- Postico: PostgreSQL has been around for a long time and it’s incredibly powerful. Postico is a PostgreSQL client that connects to the database, saving schema for your team to make things more approachable.
- iTerm2: This Terminal emulator comes with a lot of fancy features for those that aren’t quite happy with the standard Terminal. This isn’t really a project-specific tool—more like a personal choice for some of those on our team.
- Bees with Machine Guns: A utility that helps you validate your loadbalancing and autoscaling rules in a platform. You basically unleash these “Bees” to fire requests against your servers to see how much they can handle before they go down.
- VMware: If you’re working with desktop or server virtualization and need to switch operating systems without changing hardware, VMware is your tool.
- Loggly: Logs are getting increasingly complex as cloud services become more essential to our projects. But with Loggly, we can get a bird’s-eye view of our logs and see the data/insights that really matter to produce great software.
- New Relic: The Digital Intelligence Platform helps us get the most out of our software development tools and processes when we use it on certain projects. With the ability to monitor the entire technology stack, we can validate performance as we move through agile development.
We hope some of these tools will help you as much as they help us with our client projects. But if you’re a products business, you might be overwhelmed by the sheer length of this list (especially if you aren’t already using some of these tools yourself).
Software development tools will help you get out ahead of digital disruption and create better products faster—but only if they are implemented correctly and are aligned with your whole technology organization.
If you want to learn more about what it takes to leverage technology properly in your business, download our free ebook, Enterprise Technology for Business Outcomes.