When you work for a web development firm, advertising agency or related business, as a web developer, you are typically one piece of the project life-cycle, the last piece! Once a delivery date is agreed upon, project managers dole work out to copywriters and designers, who typically have breathing room, as their task is early in the life-cycle.
More often than not, that breathing room is abused, leaving the web team at a big disadvantage when they are left cramming to build a high quality site in, at some extremes, just a couple days. Understandably, this leads to low quality websites which aren't scalable , don't validate, aren't performance optimized, and are weak on the SEO standards.
If you are a freelancer, the disadvantage multiplies, as many times, you aren't even kept in the loop on how the project is progressing, making it difficult to schedule other work.
There are actions you can take, on a large scale, as well as on a smaller scale to help mitigate your stress level as well as keep your clients happy.
- Change your business model. Prefer maintenance work over new project work. In my experience, no deadline is more unachievable for a developer than an initial website launch. This is usually when the project life-cycle is the most involved, and when the developer is afforded the least amount of time to play catch up for everyone else.
- Offer a relative completion date. "Can you have this ready by December 1st?", says your client. Your reply, "That depends on when I receive the final layout, I can have it ready within 3 weeks from that point".
- Semantics. Continuing with the tactic above, it's usually wise to avoid the term completion date, and substitute it with review date. This signals your boss or client that the target date is when the website is expected for final review, not launch.
- Avoid Friday launches. A Friday launch means you, the programmer gets to spend the weekend fixing all of the flaws that are discovered after launch, but were missed during final review. Suggest a Monday launch, allowing yourself the week ahead for patchwork.
This applies to vacations as well. I can't count how many times I used to offer a completion date of October 1st, simply because I leave for vacation on October 2nd. Good-bye vacation. Better hope your getaway has wi-fi in the hotel room, or you'll be spending your tropical nights in the hotel lobby fixing bugs.
- Use placeholders. Explain to your boss or client that due to the time crunch, you feel it best to implement a number of graphic placeholders in order to meet the deadline. For instance, instead of coding a 1000 cell HTML table of product specifications, drop in a low-res graphic placeholder until after site launch. Or, if the table was provided to you in a useable format, convert it to PDF, and offer it for download temporarily.
- Use a CMS. One of the best ways to get your website out the door faster is to use a CMS to enter content. In doing so, you avoid the need to manually create pages on the file system. WordPress will most likely get you up and running quickly, but may create scalability issues later on. This approach also applies to the divide and conquer method below.
- Divide and conquer. Request an intern, or other staff member's assistance with some of the grunt work. Any process which is repeated multiple times, such as page content creation or database record creation is ideal for non-programmer, and typically is a waste of the programmer's time.
- Red Bull. If it does anything for you, use it. Personally, I'm unaffected by whatever process it takes to dilate my blood vessels, but it may work for you!
Defensive strategies really only should be used when your job or reputation for timely and quality work is at stake, at no fault of your own.
- Take your time. You need to use this option as often as you can! If project time is consistently abused by those earlier in the project life-cycle, they occasionally need to be made accountable. Often times, the best way to do this is to simply miss deadlines. If a project was afforded 2 months to complete, and you are given the final designs with 3 days to spare, little blame can be sent your way for being 2 days past deadline. As your client or boss reviews the project schedule, it's easy to see where the time was misused.
- Tag, your it! Put the ball in someone else's court, preferably the one who put you in this time-crunch position. One good way to do this is to send off a mid-day email to that person (with your boss or project manager included), asking a question about a design element, or pointing out details that could be more refined. This tactic emphasizes to the team that not only are you in a time-crunch, but you don't even have all the information necessary to complete your task.
- Staged launch. If time is getting tight, it might be time to go back to your boss or client and suggest a staged launch. Putting the less-important features of the site or application to the side for now, so focus can be placed on the more important aspects. After launch, develop a Phase II plan for delivering the remaining items.
If you, the developer are truly to blame, there are a few things you can do to smooth things over.
- Offer to put up a useable placeholder site at no charge.
- Offer to send out a newsletter to customers or potential users about the upcoming launch.
- Offer a few months free web hosting.