Time Management Tips For Developer DarkKaiser, 2007년 7월 1일2023년 8월 30일 원문 http://www.codeproject.com/useritems/Time-Management-Tips.asp Introduction Software and Web Development can be really exciting, after years of development it can reward with a million dollars or became a groove. Many of us usually are about all can hope for just keeping heads above water. But I think this is not our goal what we dream in school and university. To earn more, many of us are searching for some additional work and can’t bother about anything except hands down programming. We can’t take a rest, can’t spend more time with the family and friends, we can’t do anything other than work. This leads to stress and unsatisfied life. But wait. There is a way to make life better. Really few time management principles can bring our life to success and improve software and web development to really profitable and fascinating work. Set up your goals: long term and short term To make life better, first of all you need to know what is “better” personally for you. Where do you want to be next week, next quarter, next 2 years, or even next 20 years (if you young enough :-). You must decide for yourself what are you wanting from your life, and why you are still where you are. Do not lazy planning Napoleon told what only properly planned things can produce the desired result. Don’t ignore this principle and invest time for planning. Remember, mussing is not planning. I like classical citation: “Sometimes I sit and think and sometimes I just sit”. Usually this phenomenon can eat much time. If you found yourself mussing, switch to another work, look at the window or simply relax your eyes. Update your plans according to reality regularly. If you can’t plan, just track Watch for yourself if you can’t plan anything this time, you will be able to comeback to planning later. Just track what you are doing on paper, excel sheet or using a task management software. Update at least hourly, not at the end of a day. This will help found common interrupters and recurring tasks, thus you can plan these things in the future. Look at your time journal and try to find things that don’t really need to be done, things what could be done by someone else, work what can be done more effectively or quickly, actions what wastes others’ time. You can download a simple time tracking template here. Collect all tasks in a to do list Sometime we doesn’t have anything to do, but later we remember (or manager remembers for us) a lot of important tasks, which automatically became urgent. To avoid such situations the only way is collecting tasks in the to-do list. Add tasks to a list whenever it comes from your boss, colleague or from your mind. If you can’t access computer, don’t remember the task, write it down on a scratch or any other media. Transfer it to the main list when possible. Estimate every task, set deadlines yourself. This will help you avoid doing things at the last minute. Adjust priorities Drucker Dictum told: “Doing things right is not as important as doing the right things”. In software and web development it is possible to spend a lot of time for tasks what produce insufficient value for a customer or even do not produce a value at all. For example, writing a regular expression to split a coma-delimited array or even worth: writing a CORBA application to access two methods on a remote server. There is no a silver bullet what can shoot all prioritization cases, but few tips can help: Ask customer or manager for tasks ordering and prioritization first. Be sure to do this beforehand: not every customer will answer immediately. If someone else dependent on specific task then do it first. For equal tasks set priorities using task difficulty: ugliest tasks first. Delegate when feasible If you know people around you, who is available to take a part of your work, do not hesitate to delegate it. Give objectives, not procedures, require responsibility, accountability. Describe task clearly. Provide a “how to test” example. The following rules can be used to determine delegate specific task or not: Will he/she do it better or quickly than you? If yes, no doubt, delegate it. Will you commit a task to somebody if you have more important tasks to do? If yes, delegate it. Is available person can complete a work without your assistance when you are out of office? If yes, delegate it. Of course, you can’t delegate your work to your boss. In multi project environment work of the whole team can not be distributed equally to every member. Someone will have to do more and someone less. Using Goldrat’s Theory of Constraints, project can not be completed until the slowest member completed his work. Thus delegation must be used inside a team, not only from manager to developer. This process can only be effective in teams with honest and open communication, like in XP teams. Perfect is not better than good When writing a code, for example, it is more important to finish in time than worry about naming a variable or perfect design. Get the job done and you can refactor later. On the other hand pure code will lead to many problems later and unnecessary time spending for fixing and debugging. Thus, try to find the happy medium. Unit tests are really helpful here. They allow worrying about perfect code less and will simplify refactoring. Split difficult tasks in bite-sized pieces People usually avoid difficult tasks. Break them down into small steps. Complete manageable chunks and soon you will notice what problem resolved. Very helpful approach is adding “how to test” to each task. This will setup a micro goal and will allow determining task completion. Of course, if these tests can be automated this will reduce time on repeating tests. Identify your time wasters Usually we deal with people around us. This can be our colleagues, friends or kin. They are bothering or gladdening you in various ways. They can contact you directly or via phone, instant messaging or email. This leads to interruptions as well as time spending. Interruption of 6 – 9 minutes will take additional 4 – 5 minutes of recovering. Five interruptions will shoot an hour. You must reduce frequency and length of interruptions. But you can’t firewalling yourself or ignore others. For example ignoring wife phone calls will be over really badly for you The only way to reduce such time spending is investigation of repeatable time wasters. After you know the whole picture you can decide where to save and where you can’t save. Be sure, your boss is not a time waster in any case. Plan times for relaxation and recreation Keith Frayn, professor of human metabolism at Oxford University, told TV Plus: “Any normal person could survive for up to 60 days without food on just water.” Without sleep people can break much quickly. In 1964 high school student Randy Gardner attempted to break the Guinness Book of World Records for the longest time awake – 260 hours. Stanley Coren describes the day-by-day impact on Randy in the book Sleep Thieves, as documented by John Ross of the US Navy Medical europsychiatric Research Unit in San Diego. Randy had trouble focusing his eyes on day 2, hallucinations on day 4, and slurred speech and a short attention span by the last day. Do not expect high productivity if you tired. Sleep recharges our brains and helps us think more clearly. Plan your day adequately, do not save on sleeping. Developers are usually sitting 8 hours a day and more in a work place near computer. This leads to emotional and physical diseases as well. One of our exposed organs is eyes. Looking to the monitor for a long time, even expensive one, will ruin our eyesight. To reduce pernicious influence for our eyes there are many techniques of eyes training. Type “training eyes” in google and find suitable training for you. Schedule it daily, just before a dinner, or to any other convenient time. Do not hesitate to ask friends or colleagues for helpful advice Almost every IT project have risks, they can be hidden or visible at the beginning. Developers have to resolve them. Working on any, even small risk, can take days even weeks. To avoid these time spending just ask advice or help from your colleagues or friends. I have many examples of how this rule reduced time on difficult tasks and prevented project failure. An example from my practice: customers of our recent project required extra safety of application from possible cracks. One part of protection was downloading a component from a server and loading this DLL to the application without writing on a disk. After two hours of research I didn’t find any useful information. I paused for a minute and tried to recall who can help me with it. I asked a friend who worked as developer in another company and he helped me. He sent me a link to a tutorial I’m looking for. Problem was resolved. Reward yourself We are all expecting a reward or praise for completed work. Lack of reward will kill our desire to work what leads to reduced productivity. This is why we prefer working for others than doing something for ourselves. Promise yourself a reward for completing each task or finishing the total job. For example let yourself watch an interesting movie when you finish developing page or new feature. Conclusion This list of time management tips is just a starting point to the new improved life. Leading by these principles from day to day will show a way to successful career, robust health and welfare. My university teacher always told me, what every detail is important. In most cases if we did not achieve something, this happens due a little, but important thing, what we forgot or skipped. Help yourself reaching your dreams. Avoid chaotic motion, plan and manage your life time. 프로그래밍 갤러리