Development Roles
Development Roles
There are many roles involved in creating modern websites and applications. Each role requires a unique set of skills, and no roles can successfully complete their work without relying on at least one of the others. The process of building websites is incredibly collaborative and it's important for team members to understand each other's jobs in order to better cooperate. Part of being a great team member is being able to anticipate needs and help other members perform at their top ability.
For the purposes of discussion, the entire set of people who work on a web-based project will be referred to as the "production team". This includes all of the different contributors. Within each production team, we can generally divide people up into five smaller groups: interface, code, content, quality and cross team support. These groups tend to have an appointed lead and are organized according to where they make their primary contributions.
Interface
The interface group includes everyone whose role is primarily concerned with conceiving of and delivering the interface to the user. This is a crucial area of work, since the user's experience with any website or application is entirely mediated via the interface. A bad design is often just as detrimental to the success of the project as non-working code.
Interface means much more than graphic design, too. Interface design includes figuring out how everything should work together on the screen. How should buttons respond to a user? How should content draw in on the screen? What details of motion, color or light make the experience more comfortable? All of these are questions an interface designer must answer.
In addition to the presentation of content on the screen, there is also the concern of the organization of content. To an extent, all groups have influence on this (the content team creates the actual content so they have opinions about organization, and the code team builds data models to facilitate features so they have ideas about organization, too). The tricky process of organizing content is generally called "information architecture", and this is another aspect of interface design.
Common job titles for the interface group:
- Information Architect
- UI/UX Designer
- Web Designer
- Graphic Designer
The interface group is often led by one of the following job titles:
- Lead Designer
- Creative (or Art) Director
- Lead UI/UX Designer
- Director of User Experience
Code
The code group encompasses frontend developers, backend developers, and systems engineers. In modern websites and applications, the distinctions between these three roles have largely collapsed, and individual developers tend to specialize in a subset of activities across the major areas.
Frontend developers are responsible for creating the code and markup interpreted by the web browser. This is often known as "client-side code", indicating that it is content interpreted and rendered by the client application. Major technologies used by frontend developers include Javascript, HTML and CSS.
Backend developers create the code that runs on the web server itself. Often this code generates HTML, CSS and even Javascript, which is then sent to the client system. But server-side code traditionally handles things like database integrations and serving media files in an optimized fashion. Popular languages for server-side software include Python, Ruby, Java, PHP and C#.
Systems engineers traditionally focused on the running and maintenance of the web server and related systems. This might include database servers, content distribution servers, routers, and more. As cloud hosting has become more popular, and server management tools have become more robust, these roles have largely collapsed into a role called "devops", which indicates a hybrid between "developer" and "operations". These individuals write code for the web-based application and they are also able to write scripts and tools to manage deployments and running of the project.
Common job titles for the code group:
- Web Developer
- Frontend Developer
- Software Engineer
- Devops Engineer
- Systems/Network Engineer
The code group is often led by one of the following titles:
- Lead Developer
- Team Lead
- Lead Software Engineer
- System Administrator
- Technology/Development Manager
- Director of Technology
Content
The content team will vary on every project, but very few web-based projects do not have a content team. Even if content is being generated by users, there is a need to monitor and editorialize the product's offerings. Content teams may be more focused on generating written content, or they may focus on video content. They may be primarily uploading original content produced by the company, or they may be moderating content uploaded by ordinary users.
In general, all the kinds of roles one might find in a magazine or newsroom apply to the content group. Writers are commonly found. Photographers and videographers are also common. It is very common to see content producers managing multi-media work, jumping from writing to photography to video and audio in the course of a single piece. Many websites wish to publish media-appropriate versions of content in multiple venues, so they push contributors to create as many kinds of media as possible.
Common job titles for the content group:
- Content producer
- Web producer
- Contributor
- Writer/Photographer/Videographer
- Editor
- Moderator
The content group is often led by one of the following titles:
- Director of Content
- Editor in Chief
- Managing Editor
Quality
The quality group is dedicated to maintaining the quality of the product and insuring that releases are bug-free. Depending on the kind of product, quality groups may skew toward highly technical, toward customer support focused, or toward a blend of the two. Most web-based products have quality teams that encompass both technical testing and user support.
The technical side of the quality group focuses on documenting and executing "test cases", which are granular tests of every action a user can perform on a site or application. Some of the test cases are executed with automated testing, which is done by writing test scripts. Other test cases are executed with manual testing, which is done by a team member manually verifying functionality in the browser.
The customer support side of the quality group is focused on maintaining quality of the product by receiving user feedback and support requests. They might maintain a support forum or knowledge base, which often contains Frequently Asked Questions (FAQs). This group also creates documentation, screencasts, and other support materials that go up to assist existing users and entice new users.
Common job titles for the quality group:
- QA Engineer
- QA Tester
- Support Engineer
- User Support Staff
- Community Manager
- Community Team Staff
- Evangelist
The quality group is often led by titles such as:
- Lead Quality Engineer
- Director of Quality Assurance
- Director of User Support
Cross Team Support
There are several roles that exist explicitly to help coordinate and facilitate progress between groups in the production team. These roles tend to provide the formal linkage between the product team and the rest of the company, being focused on organizing and representing the work of the product team in relation to the business goals of the company at large.
The Product Owner role may be called by several different titles, and typically involves representing the product to the rest of the world. Product Owners set the direction and, with the rest of the team, establish a roadmap that they relate to the rest of the world. It's the Product Owner's job to be general mediator, planner, facilitator, and enforcer to make sure the product comes together as planned.
Project manager roles may also be involved with cross team support. This role is dedicated to planning and coordinating work: Generating a schedule, organizing work by priority and dependency, and documenting both the planned and actual outcomes so they can be used in future planning. Another major aspect of the project manager role is to facilitate communication and sharing between groups and among all stakeholders.
Some projects may even have internal development teams dedicated to serving the project and staff, not to creating the final product. In this case, developers and designers and content and qa groups serve the needs of the other groups in order to facilitate better production and maintenance capabilities. These sub-groups may be dedicated to building unique content creation tools, robust content moderation tools, or other backroom tools that are useful to the business.
Common job titles for the cross team support group:
- Product Owner / Manager
- Project Manager
- Production Coordinator
- Internal Tools Developer
- Staff Technologist
The lead of the cross team support group is also typically the lead of the project as a whole. Titles include:
- Product Owner
- Director of Product
Collaboration and Cooperation
Part of being a good production team member is to understand the roles and responsibilities of all the different team members. Being able to anticipate a colleague's needs and preempt a request is a very valuable talent, well worth developing. But apart from the convenience factor, it is only when teams mesh together and discover an operational pattern that great products get built. In the end, the user experiences a website or application as a whole, not as individual pieces from individual contributors. Part of the challenge for web businesses is to assemble a team that becomes cohesive and cooperative.