- You may or may not be the person who came up with the idea of the website
- Create a list of all features, break them up in smaller pieces until you can approximate how long each step will take. This is called a work-breakdown-structure. Talk to the client / partners about these features and how long you think they'll take.
- Figure out what is important about the website. Get the priorities right, some features may not make the initial launch. Suggest less expensive alternatives.
- What parts are you responsible for? The content, the design or the implementation? (MVC anyone?)
- Find out who the website's audience will be.
- What is the audience looking for on the site? How can you help with that?
- Does your audience have special needs, think about accessibility.
- What kind of traffic will you get? How will you accommodate for that?
- If you're responsible for implementing the design, decide which browsers you would like to support:
- A-Grade as defined by Yahoo maybe?
- What about mobile? Separate site or a fluid layout using media queries?
- Learn the SEO Basics
- Make sure the basics of your website work without JavaScript as well as it does without.
- Have nice URLs
- If it's a relaunch, make sure, the old URLs forward to a sensible place and not a 404 page.
- Features
- What content types have you identified? Can they be simplified?
- Avoid feature creep.
- If your editors want to embed videos, mp3s, PDFs, DOCs, PPT etc, how should they do that?
- How is search done?
- What users and access controls should exist?
- What social media integration?
- User sign up?
- Twitter, Facebook, Google, OAuth etc.
- Comments? By Disqus or IntenseDebate or with own user accounts only?
- Figure out if you'll need a content workflow, like a review process for new user generated content or regular content from editors.
- What development framework do you want to use?
- The main point is: Will you use a out-of-the box solution, like a CMS or do you want to use a web development framework? Lots of options, no way of finding out what is the right tool, getting a broad overview is important though.
- Will you always be the only one working on it? If not, consider how difficult it is to find smalltalk-devs for seaside... Maybe Drupal is the bettter alternative, lots of PHP devs around, filtering out the bad ones is the bigger task. With Rails its a little more work, but also more control, ruby developers tend to have a better grasp of the technologies they are using.
- Security
- Avoid all the common security vulnerabilities:
- SQL injections
- HTML injections
- XSS
- CSRF
- ...
- Protect yourself against session hijacking, have a SSL version available
- Set up a backup process and test it
- Make sure you're able to apply security updates to the whole stack: OS, WebServer, Database, Language, Framework, Plugins
- Apply them.
- Testing
- Use unit tests
- Create integration tests
- Do uptime monitoring and set up alerts
- How will you do the load-testing?
- What are the response times you're aiming for?
- Use YSlow to see how you can improve performance.
- Will you need more than one database-, web- or cache-server?
- Hosting
- Have a plan how you'll deploy, also how you'll continue development and testing once it's launched
- Avoid a shared hosting environment (it's also a security issue), use a VM at least (they're cheap too).
- Try the backup if there is one that comes out-of-the-box by your hosting provider
Edit: Just found this pre-launch list as well...
No comments:
Post a Comment