matthias galster1, samuil angelov2, silverio martínez...

17
Observation of Five Global Companies Use reference architectures and Scrum. Have typical roles, artifacts and events according to the Scrum Guide. Use internally defined reference architectures. Data Collection Semi-structured interviews with representative lead architects/developers. Interviewees spent at least five years at organizations in leadership roles. Additional architecture and process documentation made available. Background Question Is there a potential conflict between flexibility (agility) and imposed design decisions/ constraints (reference architectures) or do reference architectures and agile practices complement each other? Acknowledgments We thank the interviewees who participated in this study. Also, we thank the reviewers for their insightful comments. This work was partially supported by the ERCIM Fellowship Programme. Results of the Study: Lessons Learned Conclusions Using reference architectures with Scrum supports architecting in projects that develop larger systems in stable contexts: Reference architectures support several agile software development principles implemented in Scrum, such as continuous delivery and constant development pace. Forcing the use of reference architectures on teams in Scrum poses a threat to self-organizing teams and motivated individuals in agile software development projects. Scrum Reference Architectures Concrete system architectures that emergeduring agile development Form of up-frontdesign: constrain design and development process Agile principles welcome change Dictate parts of design early Lesson Impact C1 C2 C3 C4 C5 L1. Reference architectures support early delivery of software. + a a a a a L2. Reference architectures support a steady development pace. + a a a a a L3. Reference architectures reduce documentation efforts. + a a a a a L4. Reference architectures encourage architectural thinking. + a a a L5. Reference architectures support information sharing. + a a a a a L6. Reference architectures may undermine team authority. - a a a a L7. Reference architectures may frustrate developers in teams. - a a a a Company Employees Domain Software C1 ≈500 Automation Embedded C2 ≈2,500 Insurance Web-based C3 ≈41,000 Healthcare Embedded C4 ≈13,000 Textile Any C5 ≈20,000 Printing Embedded Matthias Galster 1 , Samuil Angelov 2 , Silverio Martínez-Fernández 3 , Dan Tofan 4 1 University of Canterbury, [email protected] 3 Fraunhofer IESE, [email protected] 2 Fontys University of Applied Sciences, [email protected] 4 Independent Researcher, [email protected] In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (pp. 896-901). DOI: 10.1145/3106237.3117773. ESEC/FSE’17, September 4–8, 2017, Paderborn, Germany #esecfse

Upload: others

Post on 24-Sep-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

Observation of Five Global Companies

• Use reference architectures and Scrum.

• Have typical roles, artifacts and events according to the Scrum Guide.

• Use internally defined reference architectures.

Data Collection

• Semi-structured interviews with representative lead architects/developers.

• Interviewees spent at least five years at organizations in leadership roles.

• Additional architecture and process documentation made available.

Background Question

Is there a potential conflict between

flexibility (agility) and imposed design

decisions/ constraints (reference

architectures) – or do reference

architectures and agile practices

complement each other?

AcknowledgmentsWe thank the interviewees who participated in this study. Also, we

thank the reviewers for their insightful comments. This work was

partially supported by the ERCIM Fellowship Programme.

Results of the Study: Lessons Learned

Conclusions

Using reference architectures with Scrum supports architecting in projects that develop larger systems in stable contexts:

↑ Reference architectures support several agile software development principles implemented in Scrum, such as

continuous delivery and constant development pace.

↓ Forcing the use of reference architectures on teams in Scrum poses a threat to self-organizing teams and motivated

individuals in agile software development projects.

Scrum Reference Architectures

Concrete system architectures that

“emerge” during agile development

Form of “up-front” design: constrain

design and development process

Agile principles welcome change Dictate parts of design early

Lesson Impact C1 C2 C3 C4 C5

L1. Reference architectures support early delivery of software. + a a a a a

L2. Reference architectures support a steady development pace. + a a a a a

L3. Reference architectures reduce documentation efforts. + a a a a a

L4. Reference architectures encourage architectural thinking. + a a a

L5. Reference architectures support information sharing. + a a a a a

L6. Reference architectures may undermine team authority. - a a a a

L7. Reference architectures may frustrate developers in teams. - a a a a

Company Employees Domain Software

C1 ≈500 Automation Embedded

C2 ≈2,500 Insurance Web-based

C3 ≈41,000 Healthcare Embedded

C4 ≈13,000 Textile Any

C5 ≈20,000 Printing Embedded

Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3, Dan Tofan4

1 University of Canterbury, [email protected] Fraunhofer IESE, [email protected]

2 Fontys University of Applied Sciences, [email protected] 4 Independent Researcher, [email protected]

In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (pp. 896-901). DOI: 10.1145/3106237.3117773.ESEC/FSE’17, September 4–8, 2017, Paderborn, Germany #esecfse

Page 2: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

REFERENCE ARCHITECTURES AND SCRUM:FRIENDS OR FOES?

Matthias Galster, Samuil Angelov, Silverio Martínez-Fernández, Dan Tofan

ESEC/FSE’17. Paderborn, September 7th 2017 #esecfse

Page 3: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

2

Background

Agile practices popular in industry:

Agile development: Four basic values, twelve basic principles, many practices.

Scrum most frequently used agile process framework.

Software Reference Architectures (SRA) help design concrete architectures:

Generic artefacts, design guidelines, best practices, standards, architectural styles, domain vocabulary, documentation, etc. for designing systems in a particular domain.

Reusable architecture knowledge.

Starting point to specialize for project context.

Also popular in industry.

Page 4: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

3

Motivation: Friends or Foes?

Scrum Reference Architectures

Concrete system architectures that“emerge” during agile development

A form of “up-front” design: constraint the design and development process

Agile principles welcome changingrequirements

Dictate parts of the software designearly

Is there a potential conflict between flexibility (agile) and imposed design decisions and constraints (SRA) perceived in practice?

Or are SRA and agile practices seen as rather complementary?

Page 5: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

4

An Empirical Study in Five Organizations (1/2)

Exploratory study of multiple cases (motivated by practical problem):

Unit of analysis: organizations / projects

Case selection:

Use reference architectures and Scrum.

Have typical roles, artifacts and events according to the Scrum Guide.

Used an internally defined reference architecture.

Company Employees Domain Software

C1 ≈500 Automation Embedded

C2 ≈2,500 Insurance Web-based

C3 ≈41,000 Healthcare Embedded

C4 ≈13,000 Textile Any

C5 ≈20,000 Printing Embedded

Page 6: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

5

An Empirical Study in Five Organizations (2/2)

Data collection:

Semi-structured interviews with representative lead architects and developers.

Interviewees had at least five years at organizations in leadership roles.

Architecture and process documentation made available by interviewees.

Data analysis:

Open coding; iterative content analysis.

We describe the companies involved in our analysis.

This allows others to interpret findings by analogy (i.e., our findings may apply to companies which are similar to the companies in this study).

Page 7: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

6

Results: Summary of Lessons Learned

Lesson Impact C1 C2 C3 C4 C5

L1. Reference architectures support early delivery of software. + a a a a a

L2. Reference architectures support a steady development pace. + a a a a a

L3. Reference architectures reduce documentation efforts. + a a a a a

L4. Reference architectures encourage architectural thinking. + a a a

L5. Reference architectures support information sharing. + a a a a a

L6. Reference architectures may undermine team authority. - a a a a

L7. Reference architectures may frustrate developers in teams. - a a a a

Page 8: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

7

Lesson 1: Reference architectures support early delivery of software.

Observations in all companies:

Reference architectures are used from the very beginning of projects.

Reference architectures provide inspiration for the design of software system.

Reduced investment in upfront design because of the use of reference architectures.

This allows companies to produce a potentially releasable version of their product earlier than if designs for new software systems were created from scratch.

Page 9: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

8

Lesson 2: Reference architectures support a steady development pace.

Observations in all companies:

Experiences with using the reference architecture accumulated over time provide reliable data to better plan sprints.

(Only at C3, C4, and C5) Simpler effort estimation for user stories.

Minimizing unexpected or poorly estimated sprint tasks contributes to the ability of teams to follow a constant development pace.

Page 10: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

9

Lesson 3: Reference architectures reduce documentation efforts.

Observations in all companies:

Reference architectures come with supporting artifacts and documentation, so large parts of concrete system architectures do not need to be documented and maintained separately.

Companies that we observed document only deviations from the reference architecture.

The reduction or avoidance of documenting activities allows companies to use working software as a primary measure of progress.

Page 11: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

10

Lesson 4: Reference architectures encourage architectural thinking.

Observations in companies C1, C2, C4:

Reference architectures inject architectural thinking into Scrum, e.g., reference architectures help “architecturalize” an application.

This is particularly useful for Scrum team members without a strong architecting skill set.

Observations in companies C3 and C5:

Architectural thinking and activities are deeply embedded in their software development practices and are not changed by the use of reference architectures.

Nevertheless, overall, reference architectures force attention to architecting.

Page 12: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

11

Lesson 5: Reference architectures support information sharing.

Observations in all companies:

A shared architectural mindset of core architectural issues helps communicate the shared architectural vision as a “reference point” within Scrum teams during and across sprints.

(Only C1 and C3) This shared understanding of common architectural ideas across different Scrum teams allows engineers to move across different projects and/or teams, and to work on more than one project at the same time.

(Only C5) The flexibility of software engineers to switch between projects as a significant benefit since engineers can immediately recognize the structure and terminology in a new project.

The existence of a common architectural knowledge facilitates face-to-face communications during projects and therefore impacts positively efficient and effective methods of conveying information to and within development teams.

Page 13: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

12

Lesson 6: Reference architectures may undermine team authority.

Observations in C1:

Choosing a reference architecture is a team decision, rather than the decision of the architect only.

Observations in C2, C3, C4, C5:

The decision about using a reference architecture is not made by the Scrum team, but externally.

This shows that despite of empowered and self-organizing teams in Scrum, some decisions are made by leading roles in an organization or project, conflicting with the idea that the best architectures, requirements, and designs emerge from self-organizing teams.

Page 14: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

13

Lesson 7: Reference architectures may frustrate developers in teams.

Observations in C1, C3, C4, and C5:

Some developers feel restricted in their creativity and freedom in making decisions.

(Only in C5) Engineers felt that they need to step out of their comfort zone because of the reference architecture. Some developers complain about the reference architecture as a constraining harness (in a negative way) – “it helps you but it does not feel that nice” (as stated by one interviewee).

As recently found, imposed limitations on development related to the technical infrastructure is one of the top-10 causes of unhappiness of developers.

Page 15: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

14

Implications

Reference architectures can stimulate architectural thinking in Scrum and help developers focus on architectural aspects.

“Definitions of done” used by development teams to check whether a user story from the sprint backlog is completed can be lightweight in terms of requirements for documenting related design decisions since reference architectures reduce documentation need.

Reference architectures allow Product Owners to “ignore” detailed architecting issues but to rely on high-level structures offered by a reference architecture.

Scrum Master should support the development team is to help them prepare for the use of the reference architecture at the beginning of a new project (e.g., by arranging trainings for members of the team).

Page 16: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

15

Take-away messages

Using reference architectures can be a smart approach to architecting activities in projects that develop larger systems in stable contexts:

Reference architectures support several agile software development principles implemented in Scrum, such as continuous delivery and constant development pace.

Forcing the use of reference architectures on agile teams poses a threat to self-organizing teams and motivated individuals in agile software development projects.

Reference architectures can be seen as good “agile practice”:

Reference architectures can facilitate development by helping developers implement systems meeting particular quality goals based on the context and domain.

“At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”

Page 17: Matthias Galster1, Samuil Angelov2, Silverio Martínez …smartinez/wp-content/papercite-data/ppt/galster… · Matthias Galster1, Samuil Angelov2, Silverio Martínez-Fernández3,

© Fraunhofer IESE

16

Thank you! Questions?

Dr. Silverio Martínez-Fernández

E-mail: [email protected]

Twitter: @silveriomf