On the Responsibilities of Software Architects and Software Engineers in an Agile Environment: Who Should Do What? Antony Tang Ton Gerrits, Peter Nacken Hans van Vliet VU University Océ Technologies VU University Amsterdam the Netherlands Amsterdam the Netherlands [ton.gerrits,peter.nacken]@oce.com the Netherlands
[email protected] [email protected] ABSTRACT not easily defined. Architecture frameworks and standards such as As there is considerable freedom for software workers to decide TOGAF [2] and ISO/IEC 42010 [3] only provide general what to do in an agile environment, there is a need to be explicit guidelines. It is up to individual organizations and their architects about social aspects such as task ownership between roles and the to interpret those guidelines to define work practices and agility in owning those tasks. We have conducted interviews and a responsibilities, so architects’ responsibilities are subject to survey at a large organization to explore these issues. The results interpretation and individual preferences. indicate that there are areas where architects and software When an architect adjusts his/her responsibilities to suit the engineers have different views on task ownership. Some of the project situation, their responsibilities may not be made explicit to less exciting tasks such as documentation and issue clarification the software development team. Furthermore, in an agile then easily become a hot potato nobody wants. environment software architects and developers often have overlapping responsibilities, the division of responsibilities Categories and Subject Descriptors cannot be sharply defined. For instance, both roles may do D.2.1[ Requirements / Specifications ], D.2.2 [ Design Tools and analysis, design, documenting, coding and even testing.