Open Space Notes: Architecture in Scrum

Topic

Architecture in Scrum

Discussion 

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
      1. Project success
      2. 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.
Architecture role
  • 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:
  1. Architecture can be drawn and directly implemented with little thinking required vs evolutionary design.
  2. 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

Tags:

Visibility: Everyone