![]() |
|
Products
Database Search Solution (New Version) Search Control SEO Pager Highlighter Shortcut Controls Crypt Package Free ASP.NET Controls
Geotargeting Component ASP.NET Media Player Control Flash Video Player Control Services
ASP.NET Telecommute Jobs Free IP Location Lookup Test .Net Regular Expressions CSS/Table/DIV Page Layouts Custom Programming Article Sites Master List |
How To Be More Effective DeveloperAccording 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? Or they stay at work 10 times longer? You probably have your own assumptions about why some developers or other workers produce 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 workFirst reason for low productivity is spending a time in activities like reading useless 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 by the way, working overtime. That is something like this: Talked with people from Personal department So, developer who works 12 hours per day would spend first seven or eight hours in office without writing a 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. If you want to produce more, first advice is to work on tasks related to project. Do not try to escape from this, because all hard work will still stay there and patiently wait for you. Keep in mind that every minute counts. It is acceptable and even useful to spend 5 minutes each day on Dilbert.com (I do that too), just know when to stop :). 30 minutes doesn't look much. But, remember that 30 minutes of wasted time per day multiplied with 250 working days, is about 125 lost hours per year. If you can increase daily productivity time for 1 hour per day, that will give you 250 hours in a year! 250 of working hours can be new product or service and make a difference in your career. Do most important task firstYou probably heard many times before that you need to set priorities. It is logical. Still, most people when finally start working, choose most pleasant task first. 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. Everything that appears like working, but it will not contribute to final result. There is well known Pareto principle, also known as 80-20 rule, which states that 80% of effects come from 20% of causes. Every your action has consequences. It is crucial to recognize 20% of possible activities that will bring you most desirable effects. After you discover 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 task this advice alone could improve your efficiency by 100%. Work without breaks and interruptionsEvery time, when you start some task, you need some time to become fully productive. You need to see understand what should be done, check what you already done before, concentrate on problem etc. Each of these small activities takes some time. For example, let say you come to work and immediately start work on your most important task. You need about 15 minutes to get in the "zone". Then, your coworker asks you if you have 5 minute to help him about something. You go and talk clarify things, and then get back on your desk. But, then you need 15 minutes again to become fully productive! 5 minutes cost is actually 20 minutes. After that, you can get a call from your chief, customer, check emails etc. All that short distractions slow you down. The same thing happens if you take 10 minutes break. That is practically 20-25 minutes break because you need time to concentrate again. Of course, you must answer e-mails, and you want to help your coworker, and you want to take a break. Just try to plan these activities in advance. For example, you can tell your coworker to write issues as they come, and then solve them together all at once in planned time. On the same way, you can answer all emails at once in planned time. To be more efficient, you need somehow to secure long periods of uninterrupted work. During this period, work on single task. Multi tasking looks very efficient, but in practice it distracts concentration each time you switch between tasks. Be aware that working period can't last forever. When you notice that your concentration goes down, then is time to take a break. Don't worry, your mind still working on problem even if you don't think about it. I experienced it many times, after I worked several of uninterrupted hours on some problem and then take a break. When I come back relaxed and start to work, I have new ideas and often solution how to solve problem. Breaks could be very useful. :) Use tools and third party controlsReinventing the wheel is 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 NativeExcel, ExpertMenu or ExpertTree instead of creating them from scratch. Depending of your requirements, you need to predict which third party controls will save your time enough to justify purchase. In general, consider anything that costs less than your working hours needed to create it. Except money, tools like these can speed up your development and enable to finish project faster. Also, there are many Visual Studio add-ons that increase productivity, like Resharper. If you work with SQL Server, in some scenarios could be enough to use Tuning Advisor, or maybe obtain some great tools from ApexSQL. All these tools usually have trial version which you can install and see in advance if benefits justify potential purchase. Know your technologyYou 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, JavaScript, XML etc. I am even considering to increase learning to two hours per day. If you know your technologies well, you will find solution faster when compared to someone who only has good Google search skills :). Also, you'll be in touch with newest technologies. Obviously, programmer who knows more will produce better results. Take a restAccording to this point, in the past I had some hard debates with my managers. I rarely work overtime. It is ok if there is some urgent unexpected situation, but I 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. I agree that people stay on work for 12 hours, type something on computer, and even appear like working. But, that people usually don't work efficiently more than 4 hours. They don't get results. Developers need a sleep and a rest. If I am rested, I can focus on problem and analyze possible solutions. I can think. If I am tired, I can only look at the computer screen. So, work 8 hours and then go rest or go somewhere have fun. It is better to get 8 hours of productive work, than to work overtime without results. Protect your work!Ok, if you still reading, you know that work inefficiently is bad, 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! Many companies uses some source control system and have some backup solution for all resources. But, if your case is different, you must take care for this problem. I suggest you to register on online backup service. On this way, whatever happened on your computer or even on work place, you have your work secured on remote server miles away. In addition to this, 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. ConclusionSo, who is the the top developer? :) As you see, top developer is not some kind of wizard. There is nothing supernatural in what he or she do (although result looks superior). It is more like magician who knows 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 by certain percent. 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 causes of lower efficiency than I mentioned here. It looks like 10x difference is too small. In theory it is probably 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 |
Related articles: |