本文发表在 rolia.net/zh 相约加拿大网上社区枫下论坛
A while ago, someone here complained about working 10 hour days and taking no lunch breaks yet almost being labeled as incompetent. I write this in the hope that people like her could pick up a trick or two from my experience.
Before I start, I'd like to make it clear that I'm by no means advocating cheating on your boss. I'm thankful to everyone who has ever hired me and I've always treated each job as my own. The tricks are only meant for when you're under a very tight deadline.
The most important thing to managing work load is the ability to produce to different quality standards. Can you finish a job in 3 days which normally requires 5? If you can't, you could be stressed out easily or even burnt-out.
A job usually involves many phases: investigation, brainstorming, design, implementation, testing and documentation. A quality job requires effort and time in every phase. However, when push comes to shove, many of the phases can be skipped. The problems will show up much later. By that time, nobody would care who's to blame. And companies are more than willing to budget for these problems, in the form of increased support, more bug fixes, or even a brand-new system. You just have to be WILLING and ABLE to produce imperfect software.
Even the implementation phase could be compressed. When I was in school, I always planned a lot of time for exam preparation. In the end, however, I often ended up doing everything in one night, finishing in the early morning hours. I'd get a B instead of an A+. And that's the point. The more time you have, the better job you'll do. But when you're short of time, you do only what's absolutely necessary.
The second important thing to managing work load is that you have to be the master of your domain, not your boss. This means you don't tell your boss everything. And you make a lot of decisions yourself. Otherwise, you lose control.
It starts from estimates. You know better than anyone else how long each piece will take. A hard piece to others might be easy for you. But a simple task might end up taking a lot of your time. Don't tell your boss that you've worked on something before and can borrow a lot of code from previous projects. Estimate according to acceptable standards and try to give yourself lots of leg room.
The same applies in the middle of your project. A seemingly complicated piece could turn out to be smooth sailing. Yet a small issue could bog you down for many hours. Again, don't tell your boss you finished something in an hour which was budgeted for half a day. But do tell him that a bug from another team costed you many hours unexpectedly.
What do you do when you see something wrong in the requirement? Or something wrong with other people's work which you depend on? If you're pressed for time, act as if you didn't see them. Act like a fool. You may be punished for missing your own deadline, but you're unlikely to be punished for not spotting other people's mistakes.
What do you do when deadline approaches and you discovered a big hole in your work? Again, act like a fool. Act as if you didn't see them. You hand in your work. And a week later, people would find issues. But that's normal. Nobody's perfect. You and your boss get punished for missing deadline; but neither of you would be held responsible for bugs. Rather you will be given new budget to fix things, probably after a relaxing break in the sun.
What do you do when you have spent a lot of time on a really "simple" and unimportant piece yet it still doesn't work 100%? Leave it alone. If you have time to pick it up later, good. If not, act like a fool again. When deadline approaches, even your boss could ignore these small things. Better yet, nobody sees it and you get to work on it after the deadline.
The third important thing is to be on top of your work, instead of being buried by your work. Think about the tasks. What are important and what are not. Spend more time and effort on important ones and spend as little time as possible on the rest. Think about the requirements. Anticipate changes. If you're prepared for changes, you'd save a lot of time when they come.
Finally, when you get stuck, don't be stubborn. Take a break. Switch to something else. Sleep over it. Most of these times, it's simply useless to keep working. Your brain is too tired. You're on the wrong path. Any time you spend is wasted. Once you stop, a solution could hit you easily, on the train, in the shower, fresh in the morning. Without any effort.
Every decision you make affects your schedule. Be flexible. Be creative. Be able to accept imperfections. Be a lier if need be. The important thing is to look good, not to be good. Image is everything. And you can cut a lot of corners without affecting your image.
更多精彩文章及讨论，请光临枫下论坛. 网址: rolia.net/zh