This article about 7 ways to be more productive showed up on Digg a couple of days ago. I find it interesting that much of these can be applied to software development. I’d like to go through each of the points myself:
- Don’t wait until conditions are perfect.
The number of times that during development we say ‘Not now’ or ‘we will go back and review it later’ or ‘yeah, that looks good, but we cannot do it’ amazes me. So, instead of moving forward, people are willing to continue doing the same old same old. Have you ever watched a pro sporting event? Plans and ideas are not static. The ideas have to be tried. Teams and athletes that just stick to their plans are the ones that usually fail. Developers have to have the same attitude. If one is losing the game, adjustments need to be made, or the game WILL be lost. - Be a doer.
This goes back to item #1. Instead of thinking about doing something, as Nike would say, ‘Just DO it!’
- Remember that ideas alone don’t bring success.
See item #2. Prove your ideas. Write test projects. Create experiments. Validate your ideas. Don’t wait for someone to tell you that this needs to work. Be ready with understanding because you never know WHEN someone’s going to say ‘we need x’. - Use action to cure fear If you don’t understand something, try working with it. Usually, things will be made clearer as you dig into the problem. I once knew this developer who could really talk about what was going on with the code and the framework. I mean, from the conversations I’d have with him, he *knew* his stuff. But when it came time to code, he could not do ANYTHING. He’d freeze because he was afraid of making a mistake and that it would cost him his job. Ultimately, it DID cost him his job, because he did very little.
- Start your creative engine mechanically
Creativity is a process and a job. One has to work at being creative just like anything else. I remember reading an article about Billy Joel and his song writing process. It always floored me that he said he wrote a song a day! Later, I understood that creativity comes from understanding one’s craft and practicing it ALL THE TIME. You don’t wait for inspiration, you go knocking on its door every day. Eventually, it answers.
- Think in terms of now
Again, this goes back to #1. Improving your current situation ultimately improves your long term situation. If one improves things a little each day, at the end things are very good instead of a huge mess that needs to be cleaned up.
- Get down to business immediately This is the one I violate the most. I like to be a person, not a robot. Sometimes that means doing the chit-chat, correspondence, and various ‘personal’ aspects of work. I think that these are very important to being a well rounded individual rather than a compulsive workaholic. If you ever see a truly successful person, they are very much at ease dealing with people. And that means understanding them. But I digress. One will definitely get more work done without the chat programs running, the email notifications beeping, and the cell phone ringing. Interruptions are the bane of any coherent process. Turning this stuff off, even for a little while, really helps improve concentration.