Prioritize your projects: At the end of every day I take ten minutes to summarize what Ive accomplished that day and to think through, and note down, what I want to accomplish the next day. I also review any programming problem that I have not completed or resolved that day.
Then, first thing in the morning, I reinforce that plan by prioritizing my projects. If you do all of this, at the end of the day youll get a real feel about whether youve accomplished everything you planned and whether you can increase your workload and productivity. If you havent done as much as you expected to, youll realize why. Then, before you go home, you can set in place a plan that will make you more productive. The reason this is so important in programming is that these reviews prompt you to think of solutions to unsolved problems during the evening, and even during the drive to work, when your mind is at its freshest.
Critique your performance every day: How intensely you focus and how intelligently you code make an enormous difference to your employer. One thing you should certainly do to jump-start your productivity is to evaluate your performance every day (you can be sure your project manager is doing so). Every single day, as you finish a project or return from a clients office, you should ask yourself, How productive was I today? How could I have done the job better?
Whenever I see another programmer, senior or junior, using a technique new to me, I try to learn it. Ive been doing this for forty years because I realize that my way is not always the right way.
You, too, should look around to see what you can learn. Every day I try to reserve at least an hour of my billable time to learn something new, to use new techniques, new applications. I burn them into my brain so that Ill be able to recall them. I consciously absorb programming techniques (Im not talking about confidential information) so that I can utilize them either by looking for similar information in the current client work or by referencing some techniques Ive used before. Thats something you absolutely must do to grow as a programmer, and its how your employer gets even more productivity from you.
Check in with every member of your team or group every day: Because I work at various clients offices in my role as a programming consultant, I also make it a point to spend a minute every day with the programming manager, reviewing my planned activities for the day. I also provide a one-page weekly activity summary for each client. This serves as the basis of a brief weekly management review meeting.
Keep your project paperwork in order and up to date and your office spotless: I know that this is the era of casual dress and offices that reflect their workers personality. But I maintain that sloppy and disorganized project paperwork and reporting, and sloppy and disorganized offices, correlate directly with sloppy and disorganized programming. That may seem simplistic, but thats what Ive observed in nearly four decades in the field. Once youve gotten into the habit of being organized about your paperwork and office, I think youll agree with me.
I believe that all programmers, including trainees, should do all these things from their first week on their first programming job. My daily and weekly planning and my touch base with my manager regularly policy motivate me to complete more and more work. Youll probably find an intelligent routine just as helpful a work-accelerator as I do. (Your project summary reports have another virtue. One of the worst things you can do, when youre on a project that requires many months work, is to have your manager say to you in July, What was it you did the whole month of May? and to find you cant remember doing anything of value. A project summary report in your computer can bring it all back to youand your manager.)