1) Determine practical constraints
I put this first as there are often practical factors that dictate what can and cannot be done. There's no point in wasting time with utopian planning when one has a shoestring budget.
So before beginning consider your:
- timeline and deadlines
- available human resources (skill set of staff and their availability)
- available technical resources (access to servers, database, hosting, etc.)
- level of support needed post-launch
- IT rules (there may be internal rules that require usage of certain software or against open-source or third-party code, etc.)
- other business rules (e.g. corporate style guides, suitability of data being offshore, privacy, etc.)
2) Formalize your applicable business goals
I'm constantly surprised by the number of websites that not only fail to meet the needs of the website (such as a functioning shopping cart) let alone meet the overall needs of the business. Before embarking on a project consider and prioritize the relevant business goals. All future choices and implementations (and budgets) flow from this. If something is not meeting the business goals then why do it? It really is okay to not do something - and this can be a better option than doing something poorly. Also no technology can meet all needs, so prioritizing your goals helps determine what is most needed and what can be sacrificed or postponed.
3) Know your users and would-be users
The profiles of your customers/clients/users can dictate your path as much as practical considerations. For example, if the bulk of your customers you wish to reach don't have highspeed access (it still happens) then streaming media probably doesn't make sense.
You should know the following about your intended audience:
- platform (Windows or Mac operating system, version)
- Browser used most
- Plug-ins installed (most users will not install a special plug-in just for you, few organizations are important enough to motivate such action)
- Internet access (highspeed or dial-up)
- where they access the Internet from (work, home, laptop remotely, public library)
- mobile devices (if have one and platform)
- accessibility needs (e.g. visual or motor control issues)
- education level (this can help determine literacy level which will can guide writing style)
- technical literacy (how long have been using Internet, software, etc.)
- age (not always relevant, but can relate to other factors, such as amount of leisure time, technical literacy, accessibility needs, etc.)
I didn't include gender as I have not seen any convincing studies that indicate women and men use technology differently. So I'm not sure it is relevant - other than possibly to guide visual design or writing style.
4) Plan the individual project goals
Goals can address high-level considerations such as if the plan is to test the waters or achieve parity with a competitor, to serve one market niche or another, to dovetail with other projects or create its own buzz, and so on. With theses goals in place, it then becomes easier to determine plans for launching, roll-out, promotion, timing, support, etc. For example, it can help determine whether a phased approach is desirable or a full launch. It also makes it easier to address the daily challenges and roadblocks that arise during implementation when you can refer back to the project's goals.
Once these four main considerations have been completely mapped out, it makes determining one's path much easier. It will help narrow down viable options and make implementation plans easier. In the end, it also helps deliver technology that needs of the business and users and will guide expectations.