When we talk about the Developer, we talk about a role. A RUP project may have many people taking on a role, or one person taking on many roles or many partial roles. So you may, for example, take on a subset of the role of a developer, as well as a subset of the responsibilities of an analyst. Also note that in this chapter we briefly cover integration and database design. In many projects, especially larger projects, integration may be done by somebody with the title Configuration Manager, who may not do the tasks of analysis, design, implementation, or developer testing. Similarly, database design may be done by somebody with the title of Database Administrator (DBA), rather than a person with the title Developer. As a developer, your overall objective is to translate requirements into executable code of sufficient quality. This needs to be done in close collaboration with the architect (see Chapter 16) to ensure that the design complies with the overall architecture. The developer's work can be broken down into the following high-level tasks:
To carry out these tasks effectively, you need the following skills:
As a developer, your contributions are critical (see Figure 17.1), especially during Construction, when the majority of code is designed, implemented, and tested. You also participate in Elaboration, when you design, implement, and test architecturally significant scenarios to help verify that the architecture is good enough. During Elaboration, you also implement architectural mechanisms, that is, reusable solutions to common problems such as how to deal with persistency or inter-process communication. You continue to refine the application through defect-fixing in Transition, and you may also spend some time in Inception building conceptual prototypes . Figure 17.1. A Developer's Role in the RUP . A developer is primarily involved in the RUP disciplines of Analysis & Design and Implementation ”this means that they do most of their work in the Elaboration and Construction phases. Developers also play an important role during Transition and a minor role in Inception.
|