27
Universiteit Leiden The Netherlands Leiden University. The university to discover. Software Architecture in Distributed Software Development Werner Heijstek, Leiden Institute of Adv. Computer Science.

Software Architecture in Distributed Software Development

Embed Size (px)

DESCRIPTION

Seminar presented at a meeting of the Platform Outsourcing the Netherlands (PON) in Baarn (The Netherlands) at 9 May 2012

Citation preview

Page 1: Software Architecture in Distributed Software Development

Universiteit LeidenThe Netherlands

Leiden University. The university to discover.

Software Architecture in DistributedSoftware Development

Werner Heijstek, Leiden Institute of Adv. Computer Science.

Page 2: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentIntroduction

1 | 24Werner Heijstek

• Sinds 2007 promovendus aan het LIACS obv.Dr. Michel Chaudron (Software Engineering Group)

• Onderzoeksinteresses• gedistribueerde softwareontwikkeling• software architectuur en design (als product en als proces)• modelgedreven softwareontwikkeling• software productiviteit

• Samenwerkingen met verschillende (internationale)industriele partners en universiteiten

Page 3: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentIntroduction

2 | 24Outline

Theory

Practice

Cases Studies

Expert Interviews

Recommendations

Page 4: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentTheory

3 | 24What is Software Architecture?

Definition

“The fundamental organization of a system embodied in its

components, their relationships to each other, and to the

environment, and the principles guiding its design and

evolution.”

Architecture addresses and guarantees non-functionalrequirements like security maintainability, extendability andportability.

Page 5: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentTheory

4 | 24Software Architecture Representation

The system described in this diagram provides support for creating new mortgages and alteration of existing mortgages.

The design aims to separate the complexities of the business logic from the Financial Application Frontend by bundling all mortgage-related services on a central Mid Office System. This system provides services for the setup of all `mortgage actions'.

The Front Office Component hosts a Financial Application Frontend which contains a Mortgage-specific Application Component. Due to concerns regarding decreased Back Office availability, mortgage action requests may have a maximum size of 300 kilobytes.

The Mortgage Webservice provides an additional method to update mortgage attributes. This service only connects to an interface provided by the Mortgage Attribute Update specialization.

Page 6: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentTheory

5 | 24Global Software Development

• Also: outsourcing, offshoring or distributed SD

• Many motivations (cost, skill shortage, development speed)

• India is a (very) common offshore destination

• Introduces three “distances”

• Fails more often than co-located software development

Page 7: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentTheory

6 | 24Architecture Dissemination

• Two strategies exist to transfer knowledge:

• Personalisation

• Codification

• A mix or Hybrid strategy is commonly used.

• Common GSD approach is “Transfer by Development Stage”

• In GSD, codification is thought to be more dominant

Page 8: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentPractice

7 | 24Architecture Documentation

• RUP’s UML-centric Software Architecture Document(SAD) is commonly used in practice

• In a set of 59 industrial SADs we found that• less then 45% of diagrams is UML• non-UML diagrams mostly lack legends• great variation exists in the ratio text-to-diagram• this is not different for GSD SADs

• Diagram-dense SADs are not better understood

• Linguistic distance from English greatly impacts SADunderstanding

Page 9: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentPractice

8 | 24Research Objective

Architecture matters but appears to be hindered by GSD.

• How is software architecture design and disseminationorganized?

• What is the role of the architect(s) during the softwaredevelopment life cycle ?

• How is software architecture documentation used?

• How is architecture compliance organized?

By means of three case studies and additional expert interviews

Page 10: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

9 | 24Case A & B Characteristics

Case A Case B

funct. size 34 use cases 70 use casespl. duration 10 months 3 monthsmethodology RUP RUPbudget e 800,000 e 210,000technology .Net .Net

project

objective

Expansion of an existing sys-tem for indexing and makingsearchable information.

Centralization of a hu-man resources portal.

interviewed

onshore

Senior Mgr, Architect,Project Mgr., Arch. Re-viewer, Test Lead

Senior Mgr, Architect,Arch. Reviewer

interviewed

offshore

Project Mgr. #1, #2, Archi-tect, Developer #1, #2, #3,#4

Project Mgr., Sr. Devel-oper, Developer

Page 11: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

10 | 24General Observations

Case A

• The strict deadlinewas overly ambitious

• No proof of concept(POC) was built

• Requirements werechanged late duringthe project.

Case B

• frequent requirementchanges

• high degree of employeeturnover

• The offshore developmentteam was unable topackage for deployment

Note that these factors at not at all uncommon.

Page 12: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

11 | 24Architecture Communication

• Offshore was to deliver the architecture but failed or refused.

• Architecture responsibilities moved onshore

• Architect did not travel offshore

• Developers often required extensive code examples

• A hierarchy of developers exists offshore:

1. technical team lead (architect)2. senior developer3. junior developer

Page 13: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

12 | 24“Limited Front Office Availability”

:Onshore Architect :Offshore Architect :Developer

Question

Question

Preliminary Answer

Definitive Answer

Page 14: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

13 | 24“No Problem Here”

:Onshore Architect :Offshore Architect :Developer

Question

Question

Question

Question

Page 15: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

14 | 24“Chinese Whispers”

:Onsh. Arch. :Offsh. Arch. :Des. :Sr. Dev. :Dev.

Q.

Q.

Q.

Q.

Page 16: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

15 | 24Architecture Documentation

SAD was an important document, used as the primaryarchitecture communication vehicle, but

• Some (important) parts were written in Dutch

• Most diagrams were not UML and box-and-line diagramslacked legends.

• Developers• found the SAD irrelevant• read only “their parts”• had too little time to read the SAD• were denied the SAD

Page 17: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

16 | 24Case A & B Architecture Compliance

developers find architecture “very important”. However:

• Developers were not very knowledgeable about thesoftware architecture

• Onshore architecture reviewed half of all code (strainingthe project budget)

• Much code was reworked by the both onshore and offshore

Page 18: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

17 | 24Case C Characteristics

Case C

funct. size 800 funct. pts.pl. duration 4 monthsmethodology Agile / Scrumbudget e 400,000technology .Net

objective Rebuild of an existing application

int. onshore Senior Mgr, Project Mgr.

int. offshore Sr. Developer, Developer

Page 19: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

18 | 24Non-Model-Driven Development

OntwerperKlantBusiness Analyst

RequirementsEngineer

SoftwareArchitect

Programmeur( (import java.io.*;import java.util.*

public class Finder {

Ontwerper

graag zouden wij onze klanten directer met ons laten interactieren doormiddel van een portal.

Figure: A ‘normal’ software development process

Page 20: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

19 | 24Model-Driven Development

KlantRequirements

Engineer

SoftwareArchitect

Business Analyst

Programmeur

OntwerperOntwerper

Figure: A model-driven software development process

Page 21: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

20 | 24Case C Development Process

• A proven, home grown MDD platform was employed.

• This project was less complex than Cases A and B

• Most of the architecture was generated.

1. Weekly, a low-level design was made by the onshore

2. This design was conferred by means of a video-link.

3. The offshore team was required to summarize what theyunderstood.

4. This was then reviewed and implemented

Page 22: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentCases Studies

21 | 24Findings of Case Studies

1. Dissemination of software architecture is not formalized(while this might benefit the development process)

2. The role of the architect in GSD is not clearly defined

3. The SAD is intended to be used extensively but• is of disputable quality• developers use the SAD sparingly if at all

4. Developers find architecture very important but they aremostly knowledgeable about “their own” component

Page 23: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentExpert Interviews

22 | 24Two Major Influences

1. Knowledge GapExists between the onshore and offshore location regarding

• software architecture design• and its role during the software development life cycle.

2. Implementation FocusPrematurely forces projects into the construction phase.

Cost reduction

• drives offshore development

• forces more responsibilities towards offshore

• reduces opportunity for training

• leads to favoring implementation-related disciplines

Page 24: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentExpert Interviews

23 | 24Implications and Consequences

• an unclear andincomplete SAD

• software architectsavailable less time

• less direct interaction

• incorrect / incompleteknowledge of thesoftware architecture

• more architecturalfreedom exists

• developers makeassumptions

• compliancy violationsare more likely

• less code is reviewed

• leads to rework, delaysand overrun

Page 25: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentRecommendations

24 | 24Recommendations

1. Include offshore team in SAD development

2. Implement only after architecture is stable

3. The SAD should be mature too

4. Architects should be available more and travel

5. Verify continuously

6. Keep the SAD current to battle turnover

Invest in architecture design,dissemination and coordination!

Page 26: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentQuestions?

24 | 24Questions?

?

Page 27: Software Architecture in Distributed Software Development

Leiden University. The university to discover.

Software Architecture in Distributed Software DevelopmentContact Informatie

24 | 24Contact Informatie

Werner Heijstek

[email protected]

http://www.liacs.nl/˜heijstek

Snellius building room 150+31 (0) 71 – 527 7050

Skype: wernerheijstek