Archinotes: A Global Agile Architecture Design Tool

33
Archinotes: A Global Agile Architecture Design Tool Darío Correal ([email protected]) Juan Sebastián Urrego ( [email protected]) SATURN 2014 Portland, Oregon | May 5-9, 2014

Transcript of Archinotes: A Global Agile Architecture Design Tool

Page 1: Archinotes: A Global Agile Architecture Design Tool

Archinotes: A Global Agile Architecture Design Tool

Darío Correal ([email protected])Juan Sebastián Urrego ([email protected])

SATURN 2014Portland, Oregon | May 5-9, 2014

Page 2: Archinotes: A Global Agile Architecture Design Tool

About Us….

Darío Correal, Ph.D Assistant Professor

Research interests Software Architecture

Solution Architecture

Agile software development

Juan  Urrego, M.S.

Instructor

Research interests Software Architecture Solution Architecture Agile software development

User eXperience

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  2

Page 3: Archinotes: A Global Agile Architecture Design Tool

What is this presentation about?

Global Software Development (GSD)

Collaboration

Agility

Software Architecture Design !!!

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  3

Page 4: Archinotes: A Global Agile Architecture Design Tool

How is this presentation structured?

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  4

Sprint 0 Sprint 1 Sprint 2 Sprint 3 Sprint 4

Each sprint: 4‐5 minutes

• GAAD• Archinotes• Case Study

• Architecture vision and scope

• Requirements• Demo

• Sprints• Viewpoints• Models• Demo

• Collaboration• Annotations• Demo

• Discussion

Page 5: Archinotes: A Global Agile Architecture Design Tool

What is this sprint about?

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  5

Global Agile Architecture Design (GAAD)

Archinotes: A GAAD Supporting Tool

Experience report using Archinotes

Sprint 0

Page 6: Archinotes: A Global Agile Architecture Design Tool

Global Agile Architecture Design (GAAD)

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9  2014  6

Software architecture projects requires multiple participants

Information Architect

Security Architect

Infrastructure Architect

Applications Architect

Software Architect

Sprint 0

• Geographically distributed• Working at different time zones• Use of heterogeneous tools to support 

collaborative work

Page 7: Archinotes: A Global Agile Architecture Design Tool

Global Agile Architecture Design (GAAD)

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  7

Software architecture projects requires multiple participants

We develop a small study to understand offer and demand patterns:• Source: monster site• 20 different countries• 8 languages• 3,386 cities• Different architecture roles (infrastructure, software, SOA, information, 

solution) 

Sprint 0

Page 8: Archinotes: A Global Agile Architecture Design Tool

Global Agile Architecture Design (GAAD)

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9  8

SOA Architect

Offer DemandInfrastructure Architect

Sprint 0

The offer and demand are inverse

Page 9: Archinotes: A Global Agile Architecture Design Tool

Archinotes

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  9

Archinotes : A Global Agile Architecture Design tool

• Supports geographically distributed teams

• Provides a collaboration tool for architects

• Facilitates the generation of the Software Architecture Document

• Archinotes is based on  some agile principles

• Architecture design following sprints and backlogs

• Explicitly use of the Architecture owner role

• Promotes time framed review meetings : Daily architecture reviews

Sprint 0

Page 10: Archinotes: A Global Agile Architecture Design Tool

Archinotes – Architecture General View

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9  2014  10

Sprint 0

Component Interface Subsystem

Page 11: Archinotes: A Global Agile Architecture Design Tool

Archinotes ‐ Architecture

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  11

Sprint 0

Mobile client (Android) Web client

Page 12: Archinotes: A Global Agile Architecture Design Tool

Experience using Archinotes

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  12

Academic Experience

Sprint 0

• Design tool for the software architecture course • undergraduate program on Systems and computing engineering• Los Andes University – Bogotá ‐Colombia

• Fall 2013 and Spring 2014

• Collaboration tool for 30 students / semester

• Medium size project

• 5 Sprints during the semester

Page 13: Archinotes: A Global Agile Architecture Design Tool

Experience using Archinotes

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  13

Industrial Experience

Sprint 0

• Public university in Cartagena – Colombia• Development team and infrastructure

architect located at Cartagena• Software architecture team located at

Bogotá• 4 months project• Interaction with an agile development team

following Discipline Agile Delivery (DAD)• Software architecture designed in 5 Sprints

Page 14: Archinotes: A Global Agile Architecture Design Tool

What is this sprint about?

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  14

Managing architecture requirementsSprint 1

Defining architecture vision and scope

Page 15: Archinotes: A Global Agile Architecture Design Tool

Architecture vision and scope

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  15

Archinotes supports the definition of the following information about a software architecture project

Project background, purpose, scope and general overview of the systems capabilities

Stakeholders management (classification, main concerns)

Definition of business goals and architectural drivers

Sprint 1

Page 16: Archinotes: A Global Agile Architecture Design Tool

Architecture vision and scope

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9  2014  16

Archinotes supports the definition of the following information about a software architecture project

Definition of business and technology constraints  

Definition of functional requirements using operational scenarios. 

Sprint 1

Page 17: Archinotes: A Global Agile Architecture Design Tool

Experience Report

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9  2014  17

Sprint 1

• During Sprint 0 Archinotes was used to define:

• Architecture overview and project overview• 8 Business Goals• 10 Operational Scenarios• 8 Business and Technical constraints

Demo

Page 18: Archinotes: A Global Agile Architecture Design Tool

What is this sprint about?

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  18

Sprint 2Designing the architecture with sprints

Architecture backlog / Architecture Sprint backlog

Managing Viewpoints and architectural models

Page 19: Archinotes: A Global Agile Architecture Design Tool

Architecture backlog / Sprint backlog

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  19

Sprint 2

Similar to some agile development methodologies, Archinotes supports the definitionof a list of requirements to be considered during the design process. Requirementsdefined in utility trees are used as architecture backlog items.

Page 20: Archinotes: A Global Agile Architecture Design Tool

Putting into practice agility: Sprints

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  20

Sprint 2

Archinotes supports the definition of working sprints.   Sprints can be used to design a software architecture following  an incremental approximation.

Page 21: Archinotes: A Global Agile Architecture Design Tool

Architecture backlog / Sprint backlog

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  21

Sprint 2

A set of quality attributes are taken from the utility tree and expanded as quality scenarios.  

Page 22: Archinotes: A Global Agile Architecture Design Tool

Managing Viewpoints

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  22

Sprint 2

During each sprint, the team can create architectural models associated to viewpoints. Archinotes supports most of  the viewpoints proposed by Rozanski and Woods in the book “Software Systems Architecture”. 

Page 23: Archinotes: A Global Agile Architecture Design Tool

Managing Viewpoints

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9    2014  23

Sprint 2

Architectural models can be edited or versioned by the architecture team.  

Page 24: Archinotes: A Global Agile Architecture Design Tool

Experience Report

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9    2014  24

Sprint 2

• During Sprint 0, an utility tree with 8 quality requirementswas defined.

Sprint # Quality Scenarios # New Models # Versions

Sprint 1 3 5 4

Sprint 2 2 2 5

Sprint 3 3 0 3

Sprint 4 0 0 4

Demo

Page 25: Archinotes: A Global Agile Architecture Design Tool

What is this sprint about?

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  25

Asynchronous collaboration

Sprint 3

Synchronous collaboration

Page 26: Archinotes: A Global Agile Architecture Design Tool

Synchronous collaboration

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  26

Sprint 3

Archinotes supports daily architecture reviews (DAR).   DARs are time framed sessions closed invited participants.

Page 27: Archinotes: A Global Agile Architecture Design Tool

Asynchronous collaboration

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9    2014  27

Sprint 3

Archinotes supports asynchronous collaboration by means of annotations associated to architectural models.  Annotations can be of different types: Text, audio, images, quality scenarios or custom.

Page 28: Archinotes: A Global Agile Architecture Design Tool

Asynchronous collaboration

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9    2014  28

Sprint 3

Architects can filter annotationsstored in the models to read or listenabout design decisions and reasoninginformation.

Page 29: Archinotes: A Global Agile Architecture Design Tool

Experience Report 

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9  2014  29

Sprint 3

Demo• During Sprint 0, an utility tree with 8 quality requirements

was defined.

Sprint # Architecture Reviews # Total Annotations # Average annotations per viewpoint

Sprint 0 5 4 0,8

Sprint 1 4 8 1,6

Sprint 2 6 10 1,6

Sprint 3 3 18 3

Sprint 4 2 25 4,16

Page 30: Archinotes: A Global Agile Architecture Design Tool

What is this sprint about?

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  30

Working with Archinotes

Sprint 4

Conclusions

Future work

Page 31: Archinotes: A Global Agile Architecture Design Tool

Conclusions

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  31

Sprint 4

• Archinotes has proven to be effective as a collaboration tool for distributed teams,supporting daily meetings and annotations

• Promising results after combining agile principles and Software Architecture in small tomedium size projects

• At the academic level this tool has facilitated the collaboration among studentsinvolved for the first time in a software architecture design project

• At the industry level we need to test the tool in more complex environments (i.e.different countries, more than one architecture team)

Page 32: Archinotes: A Global Agile Architecture Design Tool

Future work

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  32

Sprint 4

• Real time synchronization between mobile clients and web clients

• Integration with other design tools to import and export architectural models (i.e. xmi) 

• Support  more viewpoint and integration with reasoning tools (ontologies) to store and search architectural knowledge

Page 33: Archinotes: A Global Agile Architecture Design Tool

Working with Archinotes

Archinotes: A Global Agile Architecture Design Tool   ‐ SATURN 2014 , Portland  May 5 ‐9   2014  33

Sprint 4

• Archinotes will be distributed under the MIT license model

• The tool will be available for downloading fall 2014 

• For more information:  http://archinotes.uniandes.edu.co