Thursday, January 21, 2010

Questions to start a project

I’ve started a list of questions to establish constraints for project work. These are targeted to web development (since that’s my area), but should be part of a larger series of questions that are asked when taking on a project. The idea is to discover the constraints the project runs under, and to force the issue on decisions that need to be made but have not. I’ll try to update these as they change.

Browsers

  1. Is there a specific set of browsers that must be supported? If not, then the [http://developer.yahoo.com/yui/articles/gbs/](YUI Graded Browser Support) will be used.
  2. If there are specifics, please specify for the following browsers. OSes tested on will be Windows XP and OS X 10.5+. Internet Explorer, Firefox, Safari, Chrome, and Opera.

Window size

  1. What is the smallest window size that must be supported? If not specified, then 800×600 will be used.
  2. What is the largest window size that will should tested against? If not specified, then 1440×900 will be used (size of the laptop I test on).
  3. Is there a preference for a fluid or fixed layout? If not specified, a fluid layout will be used. If a fluid layout is preferred, will mockups/images at multiple screen sizes be provided?

CSS

  1. Is the project already using a library for CSS, such as YUI Grids? If not, then http://developer.yahoo.com/yui/3/ Grids/Base/Reset/Fonts CSS files will be used. This will be accessed via a Content Distribution Network hosted by Yahoo or Google (in other words, the files will be served from an outside network to increase page speed and take advantage of caching).
  2. Is there any restriction against using conditional comments for various versions of Internet Explorer? If not, these will be used to target CSS and javascript fixes to versions of IE as needed.
  3. Is there any issue with progressively enhancing the website for advanced browsers? This means that certain effects such as rounded corners will NOT show on out of date browsers, such as IE6. If not, CSS3 techniques will be used to create effects such as rounded corners.

Javascript

  1. Is the project already using a library for javascript, such as jQuery, YUI, Blueprint, etc? If not, then either YUI or http://jquery.com/ will be used, usually the latest stable version available. Again, this will be accessed via a CDN where possible.

Working in a code base or on my own?

  1. Will I be working in the production code base or creating my own prototype?

Accessibility

  1. Are there any specific accessibility requirements? If not, then [http://www.w3.org/TR/WCAG20/](WCAG 2.0 “The latest a11y guidelines from the W3C”) and http://www.w3.org/WAI/intro/aria will be targeted/implemented in the code.

Agile, waterfall, other?

  1. Is there a specific methodology being used for the project that I will need to participate in, such as daily standups? What are the dates and times for those meetings, and what I am expected to contribute to those?

IDE/environment

  1. Is there a specific IDE or environment that must be used, such as .NET studio, Eclipse, etc? Is there a specific version control system that must be used? If not, I will use a text editor and our own vcs repository.

Server side Languages

  1. Is there a specific server side language that I must use? If not, PHP will be used.

Final deliverables

  1. I will deliver HTML, CSS and javascript, optimized for performance. This means the CSS and javascript will be minified. All of the above will be delivered as URLs on our server, generated from a Server Side Language such as PHP. Is this sufficient, or do I need to provide a zipped/tarred version of the files?
  2. Will I be helping to integrate the delivered items into the production code base?

Debugging

  1. Will I be expected/asked to help debug production code issues once a release has occurred?