Thursday 11 December 2014

Architecture in Scrum

Estafet's end-to-end delivery approach and service products include a number of architecture roles, including Enterprise Architects, Platform Architects and Solution Architects. We clearly believe that these architect roles add value to IT delivery.

However, our chosen delivery methodology, Scrum, does not recognise the role of architect at all. Instead, it has three roles: product owner, scrum master and development team member.

So, how do we reconcile these two seemingly conflicting views?

The answer to this is in two parts, one internal to the development team, and one external.

The first element is the inclusion of Solution Architecture skills in the development team. Having a manager (or Delivery Director or Scrum Master) assigning a solution architect within the team would be a violation of Scrum's "self organising team" principle. However, one of the responsibilities of the organisation is to assemble a team with all the necessary skills to complete the job, and this should include solution architecture skills. Normally we would address this by putting someone into the team that we believe will step into the role with the support of the rest of the team; however, we are sometimes surprised by a different team member stepping up in this area.

In this model, the Solution Architect isn't the person who makes all the architecture decisions. The team as a whole should own all design decisions. We prefer to say that the solution architect is the person who will typically explain and articulate those decisions and the solution outline to others outside the team. This can be either verbally, or in written documentation. Because they are the person who will normally be justifying decisions to others, the team may well award them the final say in design decisions. In addition, the first sprint for a scrum team may involve just a solution architect, doing "enough design up front".

The second architecture element in a Scrum engagement is external to the team. Here, the Scrum process says a lot more about what is not allowed than what is. For example, Scrum doesn't allow an architect outside the Scrum team to direct or control the development team. However, Scrum does allow (and encourage) the team to take the views of others into consideration, and to utilise capabilities provided from outside the team.

For Estafet this means two things.

First, we would expect there to be an enterprise architecture function providing strategic direction for the organisation, and we would expect the delivery team and the product owner to take these views seriously.

Second, the development team will typically be building their product on top of a technology platform, owned by a platform architect. The platform team, and platform architect, can reasonably expect that their platform will be used in the way that it was designed to be used, and the development team should take this into consideration as well.

No comments:

Post a Comment