There are many options when it comes to which software or platform you decide to use for your daily tasks at work. So I decided to write a nice & robust list of common software development tools that we use in our development department because I thought it would be helpful for everyone else out there.
Trying out a new software takes a bit of time to adapt and get used to it, know how it works, shortcuts, etc. It has happened to any of us to be in a situation were you’re not really satisfied and have to start all over again with another tool. Let’s just admit it, it’s not a great feeling!
If you ended up on this page, it’s most probably because you know how important software development tools are and how they increase the efficiency and productivity of a team. In this list you will find great programming tools we use here at Apiumhub.
You won’t only find programming tools, but it’s still what we use on a daily basis as programmers!
17 Software development tools you need
We all use our terminal. It really depends what you are working on, some of us use it every day while others could be using it once a week. But at the end, we all use it! The terminal is a command line where you can execute processes. It’s quite useful and makes your job much faster, you can be moving between files, downloading apps (and many other things) with just one command instead of going through the whole menu.
When it comes to working with various opened terminals in different processes, tmux is one of the most useful multiple means that is used. What is Tmux? It’s a “terminal multiplexer“ that enables you to have several independent terminals in one terminal. So it’s about dividing the window into panes or tabs within the terminal and makes it easier for us to move through it.
If you’re interested, here’s a short tmux cheat sheet that might come in handful.
What docker does is that it provides a software containerization platform that will enable you to package your application/software in a filesystem. This container could be moved and executed anywhere. So basically you will find everything that you need to run: code, system libraries, etc. This means that the software will be running the same and will not depend of its environment.
Why should you use docker? Well, as containers have a different architectural approach, they are more efficient, they can run on any computer, on any infrastructure and in any cloud. Docker enables you to spend more time on creating new features, fixing issues, and shipping software. It also makes it easier to collaborate between developers and system admins because it creates a common framework. Finally, docker will permit you to ship & scale the software faster.
Intellij is an Integrated Development Environment. An IDE integrates all the tools that you need to develop a platform, so it has a code editor, a compiler, a debugger, etc. What we like about Intellij is that it has an auto completion, it’s really user friendly and therefore easy to use. It also helps to quickly navigate through your code, provide error analysis and offer handy quick fixes. To be honest, it increases a lot our productivity.
Slack is an amazing app that we all use for team communication. It’s great because we can use it basically everywhere (it have a native app for iOS and android), and to be honest since we’ve been using it it has reduced emails sent internally. We have a team for each department but also have one for the whole company! It’s quite practical: you’ve got “channels” which you create for whatever you want (different project, team, topic, etc.) and you can easily navigate between channels. You also have the option to have direct private messages with certain members of your team. The drag and drop is really nice to use, you can share all sorts of files and add comments to them, or tag people. And another great thing is that you can search your full history.
Everyone uses a web browser obviously, and Google Chrome is one of the most popular out there. I love chrome because it has a clean and simple UI, I found it to be very fast and I love that it syncs my bookmarks on all my devices, there’s a huge library of extensions and add-ons, it fills out the forms automatically and I can search straight away from the address bar. Finally, the developer’s console is very quick and easy to use, and makes life easier for front-end developers.
Feedly is quite nice to use. It’s a sort of news feed where you can easily read the news that interests you. It’s very easy to use and has a minimalist design and personalised interface where you can organise all your favorite publications, youtube channels, blogs, etc. and you then receive updates if there are new stories and videos that are published! Very practical to stay up to date with what interests you.
Jira was developed for Agile teams to plan, track and release software. Obviously as we breathe Agile, we also use Jira. It helps a lot when it comes to project management. We found it great because it’s very customisable and has powerful features and tools for every phase of the development. In one place, you can manage the team backlog, visualise the work in progress and generate reports.
Git is an open source version control system for software projects. When a developer is working on something, he has to regularly do changes to the code until he reaches the last version.
What a version control system does is that it saves every change made, allowing others to collaborate, make changes and contribute. You will also find a copy of the code of every developer’s work. Git enables you to synchronise team work and to work with the code, actualising it at any moment. It’s one of the most popular because it manages very well conflicts (focuses on the file content) and permits you to create ranges of code. I personally believe that if you don’t find GIT on a list of software development tools list, you should absolutely skip the page.
Github is a Git repository hosting web. It’s a type of dropbox for software projects where you can find code. When uploading your project, you have the choice of putting it public or private. It’s a great place to network and meet like minded people, share projects, discover others, etc. The community is huge and the project base even bigger.
Stack Overflow is the bible of any programer. It’s not because it’s not on top of this list of software development tools that it’s not one of the most important! It’s a question/answer site with the largest community of programmers. In this library you will find all the answers to your questions, going from how to change the color of a text to how to change the kernel of a Linux. It’s a great place to learn and share knowledge.
Sublime Text is a text editor for source code and we don’t only love it for it’s nice user interface!
There’s a lot of shortcuts that enable you to open files and jump between lines easily. You can change many lines at once due to the multiple selection option. You don’t need to go through the menus, you can just search for what you need. You can also switch between projects easily. The plugin API is strong!
Jenkins is an open source automation server, more specifically a continuous integration server. You can this software development tools as if it were the middleman between your code and your build server because it regularly looks for changes on your server and once it’s found, it sends them to the build server.
Confluence is a software that we use for team collaboration. We can put together ideas, requirements for the product we are working on and documentation to build it better. It’s great because it’s very easy to create projects and everyone can contribute. You can also find company information, so basically everyone stay up to date on the same page.
Spotify, our favourite music service. It gives you access to millions of songs, you can play your favorites, discover new tracks, build playlists, really easily. Amazing user interface, you can play music on all your devices, the mobile app is as good as the web app. An one amazing option of the premium account is that you have access to your music offline. Oh and yes ofcourse, we listen to music while working!
We use YouTube for almost everything (personal and professional reasons). But it’s quite nice to check out tutorials & tips of other pro’s in the industry, meetups we’ve missed, etc. Also, there’s always a funny video out there!
We actually use Skype quite a lot. We’ve got a team in Barcelona, one in Vietnam and another one in Andorra, we sometimes work with clients that are in different countries, we also often work remote, etc. We’re very flexible, but we still need to work in teams. So this means that we often have to get on a call with a client or with our team. Skype is great, connection is good, they regularly make some updates and it’s totally free. You also have the group call option which is quite nice!
I really hope you enjoyed going through this list of software development tools. This doesn’t mean that it’s the only programming tools we use or that those are the only good ones, it’s just what we use here and what we believe to be helping us a lot in our daily work as software developers.
If you’ve got other suggestions of software development tools, leave it in our comment section we’re always happy to discover new things!