February 16, 2017 Management & HR
How to be a more productive programmer?
I bet you’ve been there—you write code and then, snap, you encounter a problem that makes you feel discouraged and annoyed. You keep on working on the code, frustrated and clueless, knowing very well you’re not going to find a solution. Why aren’t you going to find it? Well, because of the limitations you set on yourself. Because of that clingy ineffective mindset that takes away your ability to deliver. But fear no more, there is a solution for us, the remote programmers. Check out a handful of practical methods below that will help you work better, faster, and with pure pleasure.
As a programmer, you have to stay focused all the time. And I mean it like 24/7, no mercy, no slacking. Seriously, the code needs your attention to work seamlessly. Every distraction can result in a mistake, or an avalanche of crashes. Besides, it can take you up to 15 minutes to recover from a distraction and start coding with sense again. Reducing all possible distractions is the way to go, my dear programmer.
All right, admit it, never is Facebook, Slack, Reddit, or a gossip site more interesting than when you have a brimming to-do list of coding. Only the strongest, the gods of coding, can resist the temptation and keep their pointers away from those sleazy bookmarks. But what we, mere programmers, can do to fight the urge to slack? Well, you got me here. I don’t know if you can do anything to fight the urge, but there are ways to make it virtually impossible to access those hellish sites of unproductivity. There are, for example, low-level blockers that use /etc/hosts through various plugs. There is also StayFocused extension available for Firefox and Chrome, which can be set to block selected websites for a limited time.
Set time aside for work and fun
When you think about working from home, you don’t necessarily imagine the activity to be sprinkled with so many restrictions. But the hard fact of being a remote programmer is that you need to have a strict working policy in place to turn in any results.
That said, you can’t also expect to deliver quality code by sitting in front of a computer and whacking the keyboard away for ten hours straight just because the deadline is lurking around the corner. Last-minute coding often results in an ocean of mistakes. That’s why it’s important to create a fixed set of rules governing your discipline. And no, you don’t have to block all of the nice stuff, but simply set a proper limit.
Let’s say that for each hour of work you take a 10-minute break to read your favorite programming blog. This tactic makes your work much more pleasant because the short break is a perfect reward for a job well done.
Don’t get stuck
Sometimes you get stuck, and the deadlines have no mercy. They don’t care that your problems seem unsolvable. So what to do when you’re facing the programming wall of despair? Consult your problem with a friend. At Polcode, we call it the “Rubber duck debugging.”
You take whatever inanimate object closest to you (in my case it’s a rubber Polcoduck) and try to explain the essence of the problem to it. No, I’m not a lunatic. Explaining the problem even to a very patient listener often makes you come up with the solution all on your own.
If you feel like talking to a rubber duck is too much, simply get up and walk. Detaching yourself from a problem, even if only for a short while, makes you see more of it, and from a broader perspective. Devoting a lot of time to a nagging issue gives you a false conviction that you’ve analyzed the problem to and fro, while essentially, you’re stuck in the same spot, only more tired and less effective. But leave the problem for a day, and then—bam!—the solution comes to your mind almost immediately.
It’s a simple recipe to problem-solving—just forget about the stuff you’re working on, walk around the office, make a coffee, pull off some of that disco moves of yours.
And what if you can’t take a break because the project requires you to work nonstop? The best thing to do then is to switch to another task. The effect is the same—you’re happy working on something that shows results, and ultimately you don’t waste your time on anything unproductive. Of course, this can make you feel a little bit lost and disorganized, that’s why planning your work ahead is essential.
Plan your tasks, do them, and mark as done
Chaos always leads to panic, and panic leads to bad quality code. Even if you have an eidetic memory and always keep everything in mind, it’s still close to impossible to imagine the magnitude of work to be done, especially when you’re dealing with programming. That’s why to stay on track with my work, I use Redmine or Jira, very convenient project management tools. Both programs allow you to keep an eye on the tasks you’ve done so far and how much work you still need to do. They won’t let you forget about anything, which ultimately increases your effectiveness. Plus, believe me, nothing is more satisfying than marking a task as done.
Think twice before you write
Quick and dirty fixes or patches made just before Friday deployment are things you should avoid at all costs. It doesn’t matter that they “work” for the time being, because you very well know it’s just a matter of time before the bugs come to the surface and you will have to write everything from scratch. Last-moment fixes are only good for wasting your time and energy.
To complete each task, always try to make an in-depth analysis of it, thinking about best techniques of delivery and different angles of tackling with it. Don’t ever rush this process. This will make your code well-thought out and bugless. Your clients will be satisfied, and your abstract thinking will evolve.
Start your day with coding
If you don’t, you will fall the victim of that sleazy unproductivity. Checking your e-mail, Skype, and any other notifications after you turn on your computer makes you sluggish at the very beginning of your workday. If you’re not waiting for any urgent messages, turn on your IDE and start programming as soon as you see the desktop. This approach guarantees that you will stay focused and perky, with your mind set on creative thinking—the essence of programming.
On the Internet, you can find plenty of methods to help you increase your productivity and work satisfaction. Every technique works differently on every person, so it’s good to devote some time finding your perfect approach. The solutions given in this article are proven, tested, and they also work for me best. I also recommend you to read topic-specific books and take a look at the sources listed below.
Michał, PHP Developer at Polcode