When I was in college learning about web development back in 2005 (yeesh), I was always looking for the perfect method of programming. At first I thought "if I can only find the perfect way of doing this, I'll never have to learn it again". Of course with web development and life, perfection should only ever be a direction not an ending. Let me explain.
If you have ever seen the movie Fight Club, you know the in which the narrator lists all the recently destroyed things in his apartment to his friend, Tyler. Furniture, rugs, kitchenware, a Yin-Yang table. He says "I was close to being complete.". A little while later Tyler responds, "...I say never be complete, I say stop being perfect, I say let... lets evolve...". The point being that freeing yourself from perfection allows for some powerful growth and evolution of your process. The following tips will help you evolve your own process.
Have the courage to shred your process
Did you just learn about css pre-processors? Are you using object oriented programming? That's awesome... now find another technique and integrate it. Too many times in the past have I talked to developers who are afraid of changing their process. With every project try a new process or skill. Being unafraid to try a technique allows you to continuously grow as a professional. This will keep you up to date on the latest technological advances, and also avoids complacency with your current skills.
Another benefit to this approach is it keeps you constantly marketable. Would you rather hire a developer who has been using the same process since 1999 or one who just evolved (I feel a pokemon joke here)? Employers can view this as a serious limitation in terms of overall knowledge and web competency.
Method 1: Add a new skill on every project to encourage growth.
Work smarter not harder
By following this line of thinking you can safely eliminate a lot of learning that has already been done for you. Using plugins, frameworks, and stackoverflow.com can make short work of many common web tasks. These items were built because somebody somewhere thought, "if only there was an easier way". Instead of trying to reinvent the wheel with each task, find a solution that exists and is flexible. This allows you to focus on higher level problem solving instead of getting distracted with the small details.
Method 2: Focus on the higher level problem and utilize existing solutions from the community to reduce distractions.
Learn about your tools
Probably the most important tool you have is your text editor. But how much do you really know about your text editor? Can it do version control or unit testing without the command line? Can it write custom macros or scripts to automate common tasks?
Learning the inner workings of this tool can lead to some drastic changes in process. For example, I use Sublime Text as my text editor of choice. A while back I received a file that had converted 4 spaces to 2 tabs. Since this would have made version control throw a fit, I decided to write a simple macro to convert tabs into spaces and then down to 4 spaces. I can now reuse this bit of code with my editor anytime I happen upon this problem. To write the macro I had to first understand the documentation and syntax. By learning the tool I had drastically reduced the amount of effort I would need in the future.
Method 3: Learn everything you can about your tools to enhance your productivity
Only add value
I took this method from Lean Manufacturing which states that, "...the expenditure of resources for any goal other than the creation of value for the end customer [is] wasteful...". The work you are doing should always add value to the product. If what you are doing isn't adding any end value then it may be time to reevaluate why it is necessary. Try thinking about how many keystrokes it can take to build a webpage. Now multiply those by how many projects you do in a year. If you have 5 keystrokes that don't add value and you can eliminate them think how much time you would have saved over the entire year.
Method 4: Create things that only add value to the end product.
Automate everything! Let the machines rule
git pull on the live site? There are dozens of ways to save steps and time through automation. Need more examples and info? Check out my upcoming series Automation: Let the machines rule.
Method 5: Automate your workflow as much as possible to free up brain power.
Do you have another method that I missed? Disagree with letting machines take over the world? Share your thoughts below.comments powered by Disqus