A recent Forrester study highlights a major shift in the business landscape: More and more, software development plays an increasingly important role in a company’s competitive edge. According to the study, “Companies that are able to innovate quickly with software will outcompete traditional market leaders.”
There’s just one problem: As the study points out, software development is still a problem for the majority of companies. Most are not able to deliver software solutions as fast as the business leaders want them.
The fact is, as business moves to the web, software development speed plays a crucial role in a company’s success. The old software development methodologies–in which development projects required months (or even years) to complete–will no longer work. Businesses must permanently shift their development cycle into the “days and weeks” range.
How can businesses improve their development speed so drastically? While the answer to that question varies by company, today I’d like to focus on one area that’s relevant to most businesses: improving developer productivity.
What separates the productive developer from the unproductive? What do the productive developers do differently? How can developers become more productive? We posed those questions to a few experts in the area, and have compiled their advice below. Here are 7 habits of highly productive developers:
1. They build with the future in mind
First, what does the term “productive developer” even mean? Does it mean they complete development projects quickly? Not necessarily. A “fast” developer isn’t always a “productive” developer. I’d say that a “productive” developer is one who builds web applications/sites the right way, in the most efficient manner possible.
Let me explain. Suppose you take two developers–Developer A and Developer B. Developer A completes an application development project two times faster than Developer B. But, his application isn’t scalable and is more difficult to maintain. Meanwhile, Developer B’s application adapts to changing technology, grows with the company, and is easily maintainable. Over the life of both applications, Developer A’s application requires more maintenance effort and must be replaced far sooner than Developer B’s application.
Who is the most productive developer? I think the answer is clear. My point is this: Speed doesn’t equal productivity. I believe productivity is measured by speed plus quality. Productive developers understand that development is the easy part. Creating an easily maintainable application that adapts to changes is far more important than rushing through a project.
2. They don’t (try to) multitask
Have you ever seen job descriptions requiring “the ability to multitask?” The problem with this requirement: It’s physically impossible. Studies show that our brains can only focus on one task at a time. The idea of “multitasking” isn’t actually multitasking at all. It’s jumping from one thing to another, which as explained below, is actually quite unproductive.
“One reason many information technology professionals (including web developers) get stalled when it comes to completing projects is multi-tasking,” Yaron Sinai, an Author and CEO of Elementool. “It’s actually the No. 1 reason people aren’t productive.”
“The brain is able to focus on only one thing at a time, so when folks are supposedly multi-tasking, what they’re actually doing is something more complex: ‘switch tasking.’ When switching to another task, it usually takes about 12 minutes to fully re-focus on the new task. That means wasting an hour of focus time for every five tasks supposedly being multi-tasked.”
The problem is, developers are often pulled from one task to the next. They might jump from development, to fixing bugs, to answering questions, and so on. How can developers avoid ‘task-switching’ in their development projects?
“To help IT teams (and web developers) avoid multi-tasking when working on a project, the work plan should be built in a way that focuses the team on one task at a time,” explains Sinai. “Each team member focuses on one task until it’s completed, before moving on to the next task.”
“When it comes to focusing on one task, 50-minute sessions are ideal. Choose a specific task to be completed and put it on the calendar as if it’s a meeting. But schedule the meeting for 60 minutes. When it comes time for the task to be done, set a counter for 50 minutes and put your mind only to that task for those 50 minutes.”
3. They actively eliminate distractions
Going one step further, productive developers understand the role distractions play in lengthening a development project–and actively seek to eliminate them. While the distractions vary by developer, one thing is certain: If you want to boost productivity, find a distraction-free zone.
“There are a few things I do though during heavy duty programming sessions,” explains Thomas Puchalski, Programming Manager at Ninja Programming, LLC. “When I set out to really go to town on a project, I make sure to cut off all contact. I turn my phone off or put it on silent. I also don’t bother checking any e-mails. I try to cut off all distractions from the outside world. Personally, I rely heavily upon my short term memory to pull me through these sessions. That’s what is used to jump back and forth through code that I have written so I know what I’m doing and what needs to come next. If I am pulled out of that zone, and my brain switches over to thinking about something else, I lose everything that I have just worked on trying to log up there. I now have to go back and get a quick mental summary of everything that I did and get my mind back into what needs to be done. That may not seem like a lot of time lost, but if that is constantly happening, then it starts to add up and can at least double the project’s timeline.”
4. They don’t try to reinvent the wheel
The truth is, building a new application or site from the ground up is rewarding. However, it’s usually inefficient. Productive developers understand the value of using frameworks and tools that eliminate much of the repetitive coding tasks. Sure, they could do everything from scratch…but chances are, someone has already created parts (or all) of the solution they need.
“One key habit of highly productive web developers is avoiding starting from scratch,” says Sid Savara, Technical Manager at the University of Hawaii. “Typically this means digging into your ‘swipe file’ of previous work you’ve done, purchasing a theme and modifying it – or using a framework like Bootstrap. We have standards for what is a “good” responsive landing page, and consumers have expectations of what standard types of sites should look like (e-commerce, portfolios, etc). By getting a headstart with a foundation in place, it can easily cut development time by days or even weeks.”
“Starting from scratch makes sense if you are making something truly unique or groundbreaking – but most people don’t have a clear vision of a brand new, cutting edge site in their mind. They just want their site to look modern, comparable to their competitors – and under budget.”
5. They understand the end goal
Productive developers don’t start a project without a clear understanding of the problem they’re trying to solve. Rather than dive right into a project, they take the time to truly understand the user’s needs. Unclear requirements or vague requests will only waste time and frustrate both sides.
“I think the ultimate difference between productive and unproductive developers is the ability to take the time to fully understand a task set before them,” says Hasan Nazeer, Senior Application Engineer, Lyons Consulting Group. “A productive developer will have plenty of work to do, but unlike the unproductive developer, will approach his work by having a complete understanding of all requirements. A productive developer is constantly driving towards completing his work, and thus does not have time to not fully engage in his tasks.”
“I know from my own experiences, whenever I made sure I knew exactly what I was doing, and understood all the requirements of my job, I was able to complete tasks without delays. I also have looked to co-workers or superiors to ask questions when I didn’t fully understand, so that I can better learn my job. While of course some tasks take longer than others, by preparing and being knowledgeable about your project, you can be more productive and accomplish the job more efficiently.”
6. They never stop learning
Productive developers constantly seek to improve themselves. They understand that in this field, you can’t sit idly by and coast along on current knowledge. They’re always learning, and constantly looking for ways to become better at their craft.
“I’ve worked with a number of web developers and have managed teams of 8 to 9 developers,” says Joshua Maag, CEO at Squarehook. “The key that separates the two has often been how eager the individual is to learn. Developers who spend their free time learning and growing are often way better. Simply put, they want to know how to solve a problem, how to become a better programmer, and how to excel their career.”
“Productive developers often work on side projects for themselves, they always have ideas, they are coachable and willing to accept criticism on their work. Customers are often in a state of flux. Being adaptable and responsive to ideas makes you a valuable member of any project.”
7. They communicate clearly
Whether you’re building web sites or applications for business users or for outside customers, one thing remains the same: Frequent communication will save you from hours of frustration and wasted time. It not only keeps everyone on the same page, it helps you identify problems early, and can keep you from wasting days or weeks on a feature that the customer doesn’t want.
“I’ve been developing websites for over 15 years and I would say the best habit to have as a web developer is to be an excellent communicator,” says Glenn Romanelli, President/Creative Director of Lighthaus Design, Inc. “Most clients tend to become unhappy when a job takes too long to complete, and since the average website consumer tends to underestimate how long a website project should take, it usually doesn’t take very long for a client to get impatient.”
“Sometimes as developers we get very busy – caught up in the coding. But it’s critical we take time each week to speak to our clients in clear terms so that they understand what they need to do to help keep the project on track, and to make sure they completely understand what we’re asking of them, and that they know specifically how to execute.”
So, what do you think? Did I leave anything off of that list? If you’d like to add another habit of highly productive developers, please share in the comments.