Anytime one approaches a new design project, it is easy to get distracted by trying to have the project finished NOW, instead of doing necessary preparation work to ensure maximum work efficiency.  I am as guilty of this as anyone.  In the past, designing a website and bringing it through development was a hodge-podge of cutting Photoshop files and piecing together random bits of code, all the while constantly being frustrated that things were not finished YET.

As I've matured, I've learned to identify several time black-holes that serve to quickly derail a project's timeline.

Unorginization

Without question, this is the one for me.  It is especially a problem because from design concept (Illustrator) to web-ready images (Photoshop) to HTML (Dreamweaver) to database (MySQL) to application code (ColdFusion), my files are touching a lot of applications.  If I'm not careful, it's easy to, say, save Photoshop files to random places and then have to search for them when I need them in Dreamweaver.  While this is only a matter of seconds (normally!), it adds up over the course of a project and is frankly annoying.

So the biggest time and headache-saver I've learned is to standardize every aspect of the project.  This means I name my Illustrator layers.  This means I create shortcuts to my web project directory when saving from Photoshop.  This means I create granular levels of organization within my project so that files are meaningfully grouped and easily retrievable as file numbers increase.

Sure, it is somewhat of a pain to do the initial work to create an organizational structure within which to build the project.  However, as the number of hours on the project increase, the time saved by these tweaks adds up significantly.

Start With Architecture, Not a Final Product

Another huge time black-hole for me is CSS design.  Because I like instant gratification so much, I like to see each stage of my project perfected before moving on to the next.  While this is not terrible in theory, in practice it means losing an hour chasing down a few stray pixels, or trying to get something "just right" before moving on.

Now don't get me wrong: these "little" issues are huge in the scope of the overall product.  However, for the most part they need not be perfect from inception.  I am continuing to learn that as I think more about good coding architecture and less about QA-ing every stage to death, the QA that I normally have to do is lessened, and can take place in more manageable and time-efficient steps.  That is, if a good plan is followed for putting together the entire code architecture, instead of just diving in and trying to put disparate pieces together, a lot of the "quirks" that normally pop up are removed just because they were planned for from the inception.

The same is true for application programming, of course.  It is tempting to get the app running NOW, but that is often not best.  More likely, putting together a solid strategy for addressing the logic of the application BEFORE diving into the actual coding can save a lot of wasted hours of back-stepping to account for poor planning.

Don't Forget the Include!

One of the more annoying parts of web design is trying to keep consistency going across a lot of pages.  Dreamweaver provides some solutions–like "templates"–but they are generally not very helpful to developing a really robust and easily-editable website.  One of the biggest time savers that I have come across is the "server-side include."  In a nutshell, the SSI is a way to load a bunch of code–say a navigation structure–into a single file that can be included on a dozen pages.  The beauty of this, of course, is that since the code only lives in one place, editing it is a breezed compared to the highly error-prone "find-and-replace."  

Even if the site is going to be strictly HTML, the SSI is critical during development.  Free application software like ColdFusion (what I use), PHP, .NET, etc. have SSI's and they are incredibly easy to use.  Then, when the site is ready to go to production, making the conversion back to flat HTML is no different than the find-and-replace that would have had to occur anyway.

Reuse, Reuse, Reuse!

Last, but certainly not least, is time wasted doing the same thing twice.  How many times have I done an "INSERT" statement into a database?  How many times have I built an unordered list navigation?  Enough!

While no INSERT statement or navigational structure is exactly the same, there is enough similarity across these multiple uses that a generic version could be created whose architecture can be customized as needed.  One of the big helps with Dreamweaver is the ability to create "snippets", little blocks of user-defined code that can be dragged-and-dropped at will.  These are a great time saver because not only can these generic, frequently used bits of code be used over and over, but they can additionally be edited over time as better practices are developed.

Conclusion

Obviously, there are lot of other areas that I could cover, but these are the biggest areas of time wasters that I have found in my experience.  As I mature in my skills, I am finding that a more productive work enviornment and work habits not only reduces the time spent on projects, but more importantly increases my creativity and coding prowess as my energy is not being drained on recovering from poor organization, bad planning and poorly implemented code.