What is the major difference between average developers and those who really stand out? Productivity. Those who excel in development positions have learned to get the most out of their time when coding. They have learned techniques that enable them to continuously focus on delivering working software.
Increase your productivity by recognizing and reducing interruptions. Some interruptions are obvious and therefore are easy to eliminate. For instance, email and instant messaging applications interrupt the development thought process each time a new message is received. Although these communication mediums may seem innocent, they require much more than a quick alt-tab out and then back into your favorite IDE. More critically, interruptions of this sort require a change in thinking. They force you to stop thinking about the algorithm currently under development and start thinking about responding to the communication. After changing focus for only a couple seconds, you must reintroduce yourself to the problem at hand.
These types of distractions can be eliminated easily by making a decision to get rid of them. Setting aside dedicated development times with no email, phone, or instant messaging interruptions will improve your productivity exponentially. Try setting aside one-hour blocks of time with your phone, email, and instant messenger turned off. After an hour, spend five (5) or ten (10) minutes catching up on any critical communication and then return to productive development.
Other interruptions may not be so obvious. In fact, many developers view these types of distractions as critical parts of the development process. Perhaps the best example involves testing an application or algorithm. Learn to develop without having to start the entire application to receive feedback regarding your most recent coding changes. Waiting for an application or server to restart interrupts the development rhythm and wastes significant time.
There are many techniques that can assist in reducing the time required to reduce feedback. First and foremost, test-driven development and continuous unit testing practices both provide excellent ways for testing coding changes in a matter of milliseconds. Developers also should learn to code with confidence. Work through a solution with unit test feedback until you have completed a significant amount of work. Only then should you fire up the application and see whether it all fits together. When your testing does require an application server to be started, take the time to set up hot deployment and other development features that will reduce the amount of time you spend waiting to receive test feedback.
Leveraging these basic, but often ignored, practices will increase your productivity. Although they take time to create and self-discipline to implement, they will undoubtedly help you to stand out from the crowd.
About the Author
David DeWolf is the chief technical architect and founder of Three Pillar Software, Inc. He works with mid-sized and Fortune 1000 companies to establish corporate standards that promote best practices and agile development. David has over eight years of commercial software development experience and is a member of the Apache Software Foundation's Struts, Tiles, and Portals projects. David actively participates in the Java Community Process as a member of the Java Portlet Specification Expert Group and is the author of various online publications.