Software Design Disciplines and Roles

22 April 2013

One of my stated goals for ZYPE was to work in a decent multi-disciplined software design team and I have been working towards that ever since. To that end I have tried to describe that team: the high level roles, responsibilities and the areas those roles work together across the Design process (I have focused it a little on our context so it has some local relevance). I have focused on areas of responsibility simply because different projects often require different tasks to be performed within these responsibilities and with different emphasis depending on te size of the project, technologies used, number of people involved etc. This is an exploration of a team dynamic for business purposes so is likely to be a work in progress.

Basic Disciplines

The disciplines described are the minimum set that I feel make up a software design team and depending on the size of the team and resources available some roles may be covered by a single person or multiple people. This description is focused on the team responsible for the technical production so, although they are vital to the success of a project as a whole the project management and account management roles have been left out for now.

  1. Interaction Designer: holds an overview of the application, business and customer requirements and the way people will use the application.
  2. Interface Designer: responsible for the techniques and approaches people will employ to use the application.
  3. Programmer: responsible for the underlying structures and data storage of the application.
  4. Tester: responsible for testing against the requirements as well as performing a range of functional tests. Testing schedules may be created in conjunction with all other roles.

Visually Represented