The strategic importance and project budget for your web efforts will largely determine the size and skill depth of your web site development team. Even for a smaller project, however, you will need to cover the core team disciplines. In most small to medium projects one person may handle multiple tasks or someone with specialized expertise (graphic design, for instance) is hired for specific assignments. Many managers who are assigned the responsibility of creating a web site do not have the luxury of picking specialist team members. You need to inventory the skills and aptitudes in the team you assemble, and consider careful outsourcing to supply any expertise your team lacks.
The core skill sets needed in a web site development team are:
- Strategy and planning
- Project management
- Information architecture and user interface design
- Graphic design for the web
- Web technology
- Site production
In larger web projects each role may be filled by a separate person, although in more specialized skill areas those contributors are not likely to be full-time team members for the duration of the project.
Most modern applications of any size are complex to deploy, involving many moving parts.
Many organizations release software manually. By this we mean that the steps required to deploy such an application are treated as separate
and atomic, each performed by an individual or team. Judgments must be made within these steps, leaving them prone to human error. Even if this is not the case, differences in the ordering and timing of these steps can lead to different
outcomes. These differences are rarely good. The signs of this antipattern are:
- The production of extensive, detailed documentation that describes the steps to be taken and the ways in which the steps may go wrong
- Reliance on manual testing to confirm that the application is running correctly
- Frequent calls to the development team to explain why a deployment is going wrong on a release day
- Frequent corrections to the release process during the course of a release
- Environments in a cluster that differ in their configuration, for example application servers with different connection pool settings, filesystems with different layouts, etc.
- Releases that take more than a few minutes to perform
- Releases that are unpredictable in their outcome, that often have to be rolled back or run into unforeseen problems
- Sitting bleary-eyed in front of a monitor at 2 A.M. the day after the release day, trying to figure out how to make it work
In the next module you will learn how to evaluate a Web site.