Role descriptions

With any development effort, a strong understanding of the various cross-functional roles that may be required is important. An individual team member may serve one or many of these roles and an individual role may also require multiple individuals. These roles are either design or development related. We offer general descriptions of these roles below.

DESIGN

Information Architecture (IA)

The first stage of the design process entails defining how information is structured and presented, called the information architecture. Every component and feature of the application must be presented intuitively and designed to support usability.

This role is responsible for constructing wireframes and site models that propose the structure for every aspect of the application and its functionality. These designs are iterated upon and revised as necessary. A completed information architecture scheme then serves as a specification during the next stages of design.

Graphic Design

This role is responsible for creating any required graphic elements. The information architecture will indicate any required graphic elements and the graphic designer role will work closely with the user interface design role to incorporate these.

User Interface Design

This role is responsible for building the static user interface for the web application. Standards-based designs are employed to develop cross-browser compatible functional interfaces and valid web markup. These pages are delivered to the developers who build out the actual functionality.

DEVELOPMENT

Client-side Programming

This role is responsible for the development of any dynamic user interface (client side) elements and effects. Modern interface techniques are employed where appropriate to create interfaces that are fast and responsive. Required skills include AJAX, JavaScript, DHTML, and familiarity with JavaScript libraries such as jQuery and Prototype.

Server-side Programming

This role is responsible for the development of all database-driven core functionality. The various core features of the product will reside in separate modules that can be worked on individually but are fully integrated with each other. Required skills include PHP, SQL, and the Drupal API.

Database Administration

This role is responsible for all aspects of database administration. The database model will be updated and extended with new tables in response to new functionality, and the schema will be designed with speed and scalability in mind. Required skills include full knowledge of MySQL and related administration tools.

Systems Administration

This role is responsible for administering all aspects of the physical systems and hosting environment, including web and database server(s), and for ensuring site uptime and the ability to scale to meet demand. Required skills include experience with Linux systems, Apache web server, MySQL database, and related diagnostic and system performance tools.

Quality Assurance & Testing

This role is responsible for employing quality assurance procedures and ensuring that all new features and functionality are rigorously tested before moving to production. This requires manual testing as well as employing automated test scripts and utilities.