Home
    Shop
    Advertise
    Write For Us
    Affiliate
    Newsletter
    Contact

How To Be More Effective Developer

According to some investigations, like Productivity Variations Among Software Developers and Teams, productivity between best and worst software developers is about 10:1. We all must agree that big differences are present in almost every type of job, not just software development. But, the article doesn't explain why some developers do more than others. Are they 10 times smarter? If you read Brian Tracy (I read everything of him), then you know that in many of his books he starts with question why? Why some sales person sold more than others? Why some parents raise happier and more successful children? Why some person is more successful than others? Brian also demands that average person uses only 10% of his or her potential which is equal (coincidentally?) to results of this study about variations between software developers.

You probably also have your own assumptions about why some developers do more than others. In this article, I will share my thoughts about reasons that hold back average developer to achieve more.

Work all time you are at work

First reason for low productivity is spending a time in activities like reading blogs, newsgroups, rss feeds, forums etc. In this category belong also coffee breaks, smoke breaks or long lunch breaks, socializing and chit chat with your coworkers. In short, doing everything that is not your main task. Steve Maguire in book "Debugging the development process" describes how it looks typical day of average programmer in Microsoft who is working overtime. That was something like this:

Talked with people from Personal department
Chit chat with developer from CodeView team 30 minutes
Read daily messages on comp.lang.c and comp.lang.c++ news groups
Read PC Week
Go to lunch break
Read working version of user manual
Was on other team meeting to report about our development of some feature they expect
Played table tennis 30 minutes
Read 27 mail messages and answered on 15

So, developer who works 12 hours per day would spend first seven or eight hours in office without writing of single line of code! It is not unusual that developer lose about 50% or more of time in doing tasks that are unrelated to project.

Do most important task first

You probably heard many times before that you need to set priorities. Still, many people when start working first choose most pleasant task. It is nothing worst than doing well task that shouldn't be done at all. In this group also belong long unnecessary meetings, writing useless reports etc. There is well known Pareto principle, also known as 80-20 rule, states that 80% of effects come from 20% of causes. It is crucial to recognize 20% of activities that will bring you most effects. When you know your most important task, force yourself to do it first and don't do anything else until is finished. If you have enough self-discipline to stay on your important tasks this could improve your efficiency by 100%.

Work without interruptions

Personally, I don't believe much in multitasking. Every time when you start some task, first you need to concentrate on problem, remember what you done before etc., which takes time. If you stop work and do something else you'll lose focus. When you come again to continue work, it is again takes time to achieve full efficiency (to go in the "zone"). So, conclusion is that every interruption or pause or doing anything else will cost you additional time. You need focus and concentration to work most effectively. Because of that, you need to secure peaceful working environment, and if possible close your email client. Accoriding to some reports, interruptions and breaks could lower your efficiency by 30%.

Use tools and third party controls

Reinventing the wheel is usually bad habit in software development. Why would anybody build captcha system when you can get excellent and already well tested BotDetect for a price of few working hours. Or, why not use well known NativeExcel, ExpertMenu or ExpertTree. Depending of your requirements, you need to predict which third party controls will save your time enough to justify purchase.

Also, there are many Visual Studio add-ons that increase productivity. I love Resharper. For SQL Server, in some scenarios could be enough to use Tuning Advisor, or maybe get some great tools from ApexSQL. In any case, you need to calculate how much working hours will some product save you. Then multiply that number with your hourly rate and compare it to product price.

Know your technology

You should be expert in your area. To achieve that you need to learn continuously. Personally I read every day about an hour about something related to ASP.NET developer job. That means ASP.NET, SQL Server, AJAX, XML, JavaScript etc. On this way, you will find solutions faster when needed and develop better applications. Also, you'll be in touch with newest technologies and better solutions to old problems. Obviously, programmer who knows more will produce better results.

Take a rest

According to this point, in the past I had some hard debates with my managers. Honestly, I rarely work overtime. It is ok if there is some urgent unexpected situation, but never planned to work overtime. I believe that if developer works more than 8 hours per day, then there is something wrong with the project. There is no way to stay focused 12 hours per day every day for a long period. Maybe people stay on work for 12 hours, but they usually don't work efficiently more than 4 hours. People need a sleep and a rest. If I am rested I can focus on problem and analyze possible solutions. If I am tired, I can only look at the computer screen.

VERY IMPORTANT: Protect your work!

Ok, if you maybe work inefficient is bad enough, but what if you lose what you already done? There is always a possibility of hard disk or OS crash, some new computer virus or you can accidentally delete or rewrite something important. On this way you can lose hours, days or even months of hard work!

I strongly suggest you to register on online backup service. On this way, whatever happened on your computer or work place, you have your work secured on remote server. In addition to that, you can use this service for synchronization between work and home computer so your files are always both secure and accessible for you.

Mozy offers online backup service for free up to 2G of storage. You can take more if you need or update any time. Click here to try Mozy for FREE! or if 2GB is not enough for you go to Purchase Mozy page.

After registering, you'll download small Mozy client and install it. This client works in background and you can practically forget about it! So, don't procrastinate your backup any more, there is now free backup solution that works automatically. Don't do it tomorrow or next month, protect your work now and then go back to this tutorial.

Conclusion

Already done? Great, so, like what is top developer? I think that top developer is not a wizard. There is nothing supernatural in what he or she do (although result looks superior). It is more like magician who uses few tricks. If we simply summarize previous paragraphs we can place it all in one statement: top developer works without interruptions on most important task, have backup, knows technology, uses tools and if possible third party controls to increase productivity. Every drawback mentioned above will decrease your efficiency. But all together, they multiply! If developer lose 50% of efficiency on first item and 50% on second item, then will be only 25% effective, on next it is 12,5% etc. Every step counts. We can see that on next image, where worst programmer and top programmer are compared.

Note that there are probably more reasons for lower efficiency than I mentioned. It looks like 10x difference is too small, in theory it is maybe even 50-200x difference between best and worst developer, and this probably worth for any other area of human activity.


Tutorial toolbar:  Tell A Friend  |  Add to favorites  |  Feedback