Role: Developer |
The Developer is responsible for developing a part of the system, including designing it to fit into the architecture, possibly prototyping the user interface, and then implementing, unit-testing, and integrating the components that are part of the solution. This role develops software components and performs developer testing for integration into larger subsystems, in accordance with the project's adopted standards.
Role Sets: Basic Roles
Relationships
Additionally Performs | Detail System-Wide Requirements Detail Use-Case Scenarios Identify and Outline Requirements Manage Iteration Plan Iteration Plan Project
Modifies | Build Code Analysis Guidelines Design Developer Test Implementation Test Log
Main Description
The implementer role is responsible for developing and testing components, in accordance with the project's adopted standards, for integration into larger subsystems. When test components, such as drivers or stubs, must be created to support testing, the implementer is also responsible for developing and testing the test components and corresponding subsystems. #### Further Reading See Code Complete - A Practical Handbook of Software Construction [MCO93].
Staffing
Skills | The person in this role needs the following knowledge, skills, and abilities: Enough expertise and experience to define and create technical solutions in the project's technology Ability to understand and conform to the architecture Ability to identify and build developer tests that cover required behavior of the technical components Ability to communicate the design in a way that other team members understand The appropriate skills and knowledge for the implementer include: knowledge of the system or application under test familiarity with testing and test automation tools programming skills In addition, to create a visual model of the system, the person in this role needs the ability to render the design in the Unified Modeling Language (UML).
Assignment Approaches | A person performing this role can have specialized skills in a particular technical area but should also have a broad understanding of all of the technologies involved to be able to work with other technical team members. Even in the smallest team, multiple individuals should be working together to create the technical solution. In small, agile teams, this role is often shared among several team members who also perform other roles. See Guideline: Staffing a Project for more information about how several team members can fill this role. See Guideline: Self-Organize Work Assignments for more information about how several team members can fill this role. An implementer may be assigned responsibility for implementing a structural part of the system (such as a class or implementation subsystem), or a functional part of the system, such as a use-case realization or feature. It is common for a person to act as both implementer and designer, taking on the responsibilities of both roles. It is possible for two persons to act as the implementer for a single part of the system, either by dividing responsibilities between themselves or by performing tasks together, as in a pair-programming approach.
More Information
Checklists | Code Review
Concepts | Associating Classes Developer Testing Development and Integration Workspaces Runtime Observation and Analysis Stubs
Guidelines | Creating and Applying Implementation Mechanisms Maintaining Automated Test Suites Self-Organize Work Assignments Staffing a Project Writing Unit Tests Writing White-box Tests
This program and the accompanying materials are made available under the Eclipse Public License V1.0, which accompanies this distribution. OpenUP Copyright © Copyright IBM Corp. 1987, 2009. All Rights Reserved.