Software Development can be hard on its own, but when your own development environment doesn’t work for you it makes it even harder.
In the last year or so, I’ve really come to appreciate the environment I develop in, and I’ve been able to tailor my environment to make me more productive. In this article, I’ll share with you techniques you can use to get more out of your development environment.
First, I want to talk about what composes your development environment. If you ask a software developer, they’ll say its your computer, OS, text editors, CLIs (command-line interfaces), build tools, and other programs you use when developing. However, if you were to ask someone outside of the technology field, they might say it’s the composition of your physical surroundings and atmosphere. I say that it’s both: your development environment consists of everything physically around you and virtually contained in your computer or the internet that affects the rate at which you can develop software.
So what can we do to tame this wild beast?
Find a workspace where you can concentrate on your work. A proper workspace should be somewhere where you can’t easily be distracted. However, there are other factors that make up a proper workspace too, and they change with each and every one of us.
Take the following into consideration when choosing your workspace:
If you have taken these into consideration and ruled that none of them are hindering you, then odds are you’ve got a pretty good workspace already.
Your computer is one of the most important aspects of your development environment. Consider hardware requirements like RAM, CPU speed, screen size, touch screens, trackpads, USB ports, etc. when deciding on a computer.
You’ll also want to choose the proper operating system for your computer. I’m hoping to avoid an OS “holy war,” so I’m going to keep this short and sweet: choose the operating system that best suits your typical development needs. If you’re a windows app developer, you’re going to want to be working on windows. If you’re an iOS and Android app developer, you’ll probably want to be working on a Mac. If your projects are running on Linux servers, it might just be easier to just develop on a Linux computer.
These are just examples, I’m not claiming that if you do X you should always work on Y OS. All I ask is that you ask yourself if development would be easier if you were using another operating system.
Another sore topic for many: Text Editor vs. IDE. In my opinion, this has to be decided on a project-to-project basis. Just cause you’re a Sublime Text wizard doesn’t mean it’s going to make building a Windows Forms UI any easier. Go with what works best for your projects, and don’t be afraid to change it up and try other text editors. I’ve gone from Sublime Text, to Visual Studio, to VS Code, to Atom, and back to Sublime Text Editor. I go with what I can best utilize to fulfill my needs at a specific point in time.
However, when comparing different text editors and IDEs, there are two features that I absolutely need in order to consider switching to a new text editor or IDE:
There are tons of other features packed into editors and IDEs like Sublime Text, Atom, and Visual Studio. The point is, try out a few, pick the one that makes your life easier, and don’t be afraid to keep trying others out every so often.
One of the most annoying things when developing is when you have a million different programs running, each with their own window on your desktop, and you have to search through them to find the one you want. This doesn’t have to be the case anymore. Many modern operating systems now let you create separate “desktops,” allowing you to group together and organize program windows. In MacOS, this concept is called “spaces.” In Windows, this is called “desktops.”
This is how I organize my programs into different desktops/spaces:
By organizing programs into separate desktops, you can eliminate wasteful time spent shuffling through windows. This modern OS feature allows you to simply use a keyboard shortcut to switch to the desktop to the left or right of the current one.
When I start a new project, the first thing I do is setup a pipeline so that all I have to do is execute one command and the rest is taken care of. It’s imperative to lint and test your code in order to write higher quality code. In order to save time, I suggest setting up a tool to do all the linting, building, testing, and executing at once (. Ideally, this tool would also watch your source files and re-run when changes are observed. This can save minutes every hour, which adds up to a hell of a lot of time over the course of a year.
These are a few issues that I consider when making decisions on my development environment. Everything from the room you’re in, the people around you, the computer you’re working on, and the tools you use can either increase or decrease your rate of development. Software development is difficult enough, so make sure your development environment is working for you and not against you.
Have your own ideas to improve your dev environment? Comment them below.