Open Space Notes: Architecture in Scrum
Architecture in Scrum
How do you create time for architecture?
- Iteration zero – pre planning
- Architectural statement – a whiteboard sketch is fine
- How will it be accomplished? What architectural elements will be introduced or changed?
- An architectural element: in SOA, a new service or change to existing service. Some companies look at them as any non-functional requirement.
- Each company will have to define this.
Do you have full-time architects?
- Some say no – teams are staffed with senior engineers.
- Pre-planning (iteration zero)
- Some do – Company A (Company name withheld)
- Pre-planning (iteration zero)
- Architect is part of technical ladder – each team has 1 or 2 reporting in their organization with one chief architect. This company has 700 engineers.
- 1 or 2 architects per about 10 teams.
- They do not work as a Scrum team. The architects split time between the functional teams.
- Their architects work up front (iteration zero) before the rest of the team joins the project (this is for a new project).
- Architecture is defined as core platform (messaging, data access, webbased services, API, etc).
- Feature teams are empowered to change architecture.
- Only 20% of architects actually code.
- They draw diagrams and theory.
- Domain architect (knows business) vs technical architect.
- Company B
- In iteration zero, they create an architectural diagram/vision – a systems architecture report – a formal word document that describes data structures, interaction between components, etc.
- Company C
- Formed an architecture review board (not part of Scrum).
- A solution architect must present to this review board 2-3 Sprints ahead.
- Company D
- Full-time architecture team – working together as a Scrum team.
- Architects have to
- Project success
- Evangelize for technology – make sure their architecture is
being used and extended, etc.
- They have a roadmap – not a full-blow architectural plan. They evolved their architecture slowly.
- Also have concept of iteration zero to plan.
- Chief architects or enterprise architects don’t necessarily code but should have the capability.
- Software architects (sometimes report to Chief Architect) must know how to code – in fact they should in some cases implement the architecture.
- Challenge with agile and architecture is how to you evolve it over time. In other words, how do we stop building complex architecture that isn’t ever used?
- Debate about best way to implement architecture - some believe that the architects should code this either as a full-time team or as a visiting member of one of the feature teams. Others believe that the architects should simply paint the vision and the senior engineers should implement it.
Assumptions that are at odds:
- Architecture can be drawn and directly implemented with little thinking required vs evolutionary design.
- A senior engineer is capable of making architectural type changes vs a fulltime more senior architect.
What are good ways to get visibility so teams can make mistakes and get course corrections?
- Have your chief architect in the middle of the action – i.e. a cubicle in the middle of the programming floor. Very accessible to engineers. --Company B