SlideShare a Scribd company logo
1 of 76
1
Kits to Find
the Bits that Fits
tim.menzies@gmail.com
SAM’15, ICSE, Florence Italy, May 2015
Learning adaptive architectural
principles in the post-agile world
SOUNDS BITES
• Agile (is old)
• There are only three numbers
• Zero, one or many
• Not architecture, but architectureS,
• Architectures will change
• Rework cheaper than we thought
• Programmers (soon) will be much cheaper
• Architectural incubators
• The age of the app
• Variability modeling (feature maps)
2
Before we begin
FYI: I really like
architecture(s)
ARCHITECTURES = FENCES
Something that lets
you work alone …
• … half the time
Team members
• can be productive
in isolation
• But know when
they need to talk
to others
Good fences make
good neighbors
4
LARGE SCALE ARCHITECTURES:
BOEING 787
5
6
Agile (is old)
ARCHITECTURES IN
THE POST-AGILE WORLD
• The following may be old news to some of you
• But for the rest:
• Agile is old hat.
• Welcome to DevOps
• And after DevOps?
• Continuous Deployment
• standard practice by 2020
• tools like MEAN
8
9
Source: D. Reimer, A. Cho, Moving to DevOps and Beyond: https://goo.gl/25PxmH
10
Source: D. Reimer, A. Cho, Moving to DevOps and Beyond: https://goo.gl/25PxmH
11
Source: D. Reimer, A. Cho, Moving to DevOps and Beyond: https://goo.gl/25PxmH
12
Source: D. Reimer, A. Cho, Moving to DevOps and Beyond: https://goo.gl/25PxmH
QUESTION
How to make architectural reasoning flexible enough to
handle this pace of change?
13
Adaptive conclusions
and the PROMISE
Project
THE PROMISE REPO
OPENSCIENCE.US/REPO #storingYourResearchData
URL
• openscience.us/repo
• Data from 100s of projects
• E.g. EUSE:
• 250,000K+ spreadsheets
Oldest continuous
repository of SE data
• For other repos, see
Table 1 of goo.gl/UFZgnd
15
Serve all our data, on-line
The PROMISE Project: 2005… 2015
TRANSFERRING LESSONS LEARNED:
TURKISH TOASTERS TO
NASA SPACE SHIPS
16
B.Turhan,
T.Menzies, A.
Bener, J. Di
Stefano.
2009. On the
relative value
of cross-
company and
within-
company
data for
defect
prediction.
Empirical
Softw. Eng.
14(5) 2009,
17
Perspective on
Data Science
for Software
Engineering
Tim Menzies
Laurie Williams
Thomas
Zimmermann
2014 2015 2016
Lessons Learned
Our summary. And other related
books The MSR
community and others
Initial, naïve, view:
• Collect enough data …
• … and the truth will emerge
Reality:
• The more data we collected …
• … the more variance we observed
• Its like the microscope zoomed in
• to smash the slide
So now we routinely slice the data
• Find local lessons in local regions.
18
Lessons Learned:
Locality, Locality, Locality
19
CONUNDRUM
Q: How can I believe in architectural principles?
• That transcend individual projects
• Yet doubt the general value of any particular architecture?
• General, that is, to any other project that this current
project at this current time.
A1: Not general models
• But cost effective ways to find best local models
A2: Architectural incubators (see below)
20
Architectures:
Adaptive?
“THE” ARCHITECTURE = THE
DECISIONS YOU CANNOT CHANGE
• The constants
• The base assumptions,
• made at the start of the
project.
• The decisions that you
• bless, or curse,
• every day of the project.
22
23
THE THING YOU’D BETTER
GET RIGHT
Since…
24
THE THING YOU’D BETTER
GET RIGHT
Since…
25
Or, if Doug Schmidt, just a few
AND IF YOU GET THE
ARCHITECTURE WRONG
Early mistakes are
most expensive
error to fix (Boehm
1981)
26
27
Architect-
ural
Evolution
of DoD
Combat
Systems.
Doug
Schmidt,
SEI blog,
Nov 15,
2013
28
Architect-
ural
Evolution
of DoD
Combat
Systems.
Doug
Schmidt,
SEI blog,
Nov 15,
2013
29
• Doug Schmidt:
• “The Department of Defense (DoD) must
move away from stove-piped solutions “
• “… towards a limited number of
technical reference frameworks … “
• “based on reusable hardware and
software components and services”
Architect-
ural
Evolution
of DoD
Combat
Systems.
Doug
Schmidt,
SEI blog,
Nov 15,
2013
30
• Tim Menzies
• “a limited number???”
• Only three numbers in the universe
• Zero
• One
• Many
• And if > 1, then expect many many more
• Need software architects: to tame the herd of architectures
Architect-
ural
Evolution
of DoD
Combat
Systems.
Doug
Schmidt,
SEI blog,
Nov 15,
2013
Some good news
1) Rework not so costly
2) Reworkers: cheaper, more plentiful
32
Boehm, 1981
SEI TSP
DATA
33
171 projects
2005 to 2014.
Duration: (46 ,90) days (median, max)
Team size: (7,40) people (median,max)
William Curtis, Forest Shull,
Tim Menzies, Lucas Layton
FSE’15 (submitted)
SEI TSP
DATA
34
171 projects
2005 to 2014.
Duration: (46 ,90) days (median, max)
Team size: (7,40) people (median,max)
COMMENT
it is not crazy to explore extensive architectural evolution
• Continuously, during continuous deployment
Since:
• Cheaper to change code than we thought
• Programming costs are about to plummet (see next slide)
35
PROGRAMMER SALARIES:
ABOUT TO COLLAPSE
• Automatic programming
• Devanbu, ICSE NIER 2015:
• Most code repeats other code
• Large scale auto-coding?
• “The next billion”
• All of India + Africa on-line
• Many programmers,
competing for work
• Better distributed development
• Bird et al ICSE 2009,
Kocaganuli et al ICSE SEIP 2013:
• better ways to divide distributed teams
• “Micro-tasking” : LaToza and van der Hoek
ICSE NIER’15.
• Divide development into tiny (say) 5 minute
steps
• Next-gen distributed development
• Github DevOps, continuous integration
• Yang et al. ICSE NIER’13:
• Crowd sourced development 5 times cheaper
36
Architectural
Incubators
ARCHITECTURES =
PRODUCTIVITY
38
LARGE ASSEMBLES NEED
LARGE ARCHITECTURES
39
• Life expectancy:
• 50 years
• A backbone on which 1000s of sub-systems can be
• born,
• evolved
• replaced
LARGE ASSEMBLES NEED
LARGE ARCHITECTURES
40
• Life expectancy:
• 50 years
• A backbone on which 1000s of sub-systems can be
• born,
• evolved
• replaced
Architectural
incubator
ANOTHER LARGE SOFTWARE
ARCHITECTURE (DECADES OLD)
41
Any geeks in this audience?
Recognize this diagram?
Do you know the author?
ANOTHER LARGE SOFTWARE
ARCHITECTURE (DECADES OLD)
42
Any geeks in this audience?
Recognize this diagram?
Do you know the author?
Distributed packet-switching networks (On Distribute
Communications): Rand memorandum RM-3103-PR, August 1964
ANOTHER LARGE SOFTWARE
ARCHITECTURE (DECADES OLD)
43
Any geeks in this audience?
Recognize this diagram?
Do you know the author?
Distributed packet-switching networks (On Distribute
Communications): Rand memorandum RM-3103-PR, August 1964
Architectural
incubator
ANOTHER OLD ARCHITECTURE
(NOT QUITE AS WIDELY-USED)
The Blackboard Model of Problem Solving and the Evolution of
Blackboard Architectures, H. Penny Ni, AI Magazie, 7(2), 1986.
44
ANOTHER SOFTWARE ARCHITECTURE
(NOT QUITE AS WIDELY-USED)
The Blackboard Model of Problem Solving and the Evolution of
Blackboard Architectures, H. Penny Ni, AI Magazie, 7(2), 1986.
45
How AI handled software
engineering in the 1970s
SOME ARCHITECTURES ARE
MORE CHANGE TOLERANT
THAN OTHERS
46
More
brittle
Less
brittle
SOME ARCHITECTURES ARE
MORE CHANGE TOLERANT
THAN OTHERS
47
More
brittle
Less
brittle
Architectural
incubator
PHASING OUT INFLEXIBLE
ARCHITECTURES
48
AFTER LAMP, COMES “MEAN”
• M = MongoDB: a nonSQL DB(nested key-value pairs) ( death to SQL). No data traps
• E = Express.js : controller layer, directing application flow and marshaling data
• A = AngularJS : handles data presentation.
• N = Node.js: an extensive javascript library (look ma, no operating system)
• MEAN: one language up and down the stack (javascript).
• Faster integrated testing.
• Faster invention of new patterns
49
AFTER LAMP, COMES “MEAN”
• M = MongoDB: a nonSQL DB(nested key-value pairs) ( death to SQL). No data traps
• E = Express.js : controller layer, directing application flow and marshaling data
• A = AngularJS : handles data presentation.
• N = Node.js: an extensive javascript library (look ma, no operating system)
• MEAN: one language up and down the stack (javascript).
• Faster integrated testing.
• Faster invention of new patterns
50
Architectural
incubator
FUNCTIONAL PROGRAMMERS EAT
PATTERNS, FOR BREAKFAST
51
def visit(thing):
if isinstance(thing,list):
for x in thing:
for y in visit(x):
yield y
else:
yield thing
def all(thing):
return [x for x in visit(thing)]
map(lambda x: x**0.5, all(x)) # sqrt everything
reduce(lambda x,y: x*y, all(thing)) # mult everything
Architectural
incubator
BTW: MEAN? All Jscript,
all functional
OO PATTERNS : INCUBATOR
OR FREEZE BOX
52
Traditional view: Much like Schmidt’s limited number of technical reference frameworks.
First listed in 1992. Surprisingly few updates since.
Adaptive architecture
research
(at NCSU)
IF EVERYTHING MATTERS,
THEN CAREFULLY DESIGN
EVERYTHING
But what if only little bits matter…
Chris Theisen,
Ncstate
• 10,000,000 stack dumps
Ms Windows
• So little of the system
implicated in those errors
• Reaction of
MS engineers?
• Lets redesign the
dependencies
around those crash traces
54
THE KEY TO CHANGE: YAGNI
• You ain’t gonna need it (to be architected)
• Curiosuly: most software is never exercised enough to be buggy
• 80% bugs in 20% of the code
• Ostrand & Weyyeuker, AT&T, 2004
• Koru, IEEE Software 2009, Ericsson, IBM
• Tosun et al, IAAI’10: Turkish Software
• Hammill & Goseva IEEE TSE’09, NASA systems
55
WELCOME TO THE
AGE OF THE APP
Old school:
• MsOffice: a locked in world that users never leave
• All software from one vendor
• Large, slow to change, hard to compete
New school:
• The app
• All software from N vendors
• Small, very fast to change
56
FEATURE-ORIENTED, OR
VARIABILITY-ORIENTED, PROGRAMMING
Feature models = a
lightweight method for
defining a space of options
De facto standard for
modeling variability
57
Cross-Tree Constraints
Cross-Tree Constraints
Size ? 10 Features, 8 Rules
LARGE FEATURE MODELS =
ARCHITECTURES
58
Size: 6888 items
Features: 344,000 rules
NO SINGLE
“OPTIMUM” SOLUTION
59
Higher-level
Decision
Making
The Pareto Front
The Chosen Solution
LEARNING DESIGN CHANGE
(A “LESS” APPROACH)
Multi-objective optimization = navigating competing concerns
• Success criteria = choose features that achieve the user
preferences!
60
Suppose each feature had the following metrics:
1. Boolean USED_BEFORE?
2. Integer DEFECTS
3. Real COST
Show me the space of “best options” according to the objectives:
1. That satisfies most domain constraints (0 ≤ #violations ≤ 100%)
2. That offers most features
3. Using features with least known defects
4. Using features with least cost
5. That we have used most before
Architectural
incubator
STATE OF THE ART
61
Features
9
290
544
6888
SPLOTLinux(LVAT)
Pohl
‘11
Lopez-
Herrejo
n ‘11
Henard
‘12
Velazc
o ‘13
Sayyad &
Menzies’13b
Johanse
n ‘11
Benavide
s ‘05 Fixing model inconsistencis
27 min. for 94 features
Multi-obj configuration, IBEA
>100 hours for E-Shop, 80% HV
Single-obj, CSP
Up to 25 features
Exponential time
White ‘07, ‘08, 09a, 09b,
Shi ‘10, Guo ‘11
Test covering arrays, timed out on all
ops for Linux 6888 features (and
some ops on smaller FMs)
Multi-obj configuration, IBEA
30 configs in 30 minutes for Linux
6888 features
Objectives
Multi-objSingle-obj
Sayyad&
Menzies
’13a
Career advice
(for a plural world)
63
• Doug Schmidt: “… a limited number of technical reference frameworks …
• Tim Menzies:
• Architectures: zero or one or many
• But perhaps just a few architectural incubators?
• Supported by
• Cheaper programmers (more to them) writing more code, faster, cheaper
• Next gen inference, functional programming, feature-oriented code
Architect-
ural
Evolution
of DoD
Combat
Systems.
Doug
Schmidt,
SEI blog,
Nov 15,
2013
EXPLORE
“ARCHITECTURAL INCUBATORS”
64
Functional
programming
Feature
Models
??
65
66
CODERS
67
CODERS
You want
to be
the architect
that knows how
to co-ordinate
teams that
commission new
architectureS
while rapidly
retiring
old ones
Cause the
softworld
will be
architectureS in
constant flux as
teams patch
and port old
functionality
to new
architectureS
68
CODERS
You want
to be
the architect
that knows how
to co-ordinate
teams that
commission new
architectureS
while rapidly
retiring
old ones
Cause the
softworld
will be
architectureS in
constant flux as
teams patch
and port old
functionality
to new
architectureS
plural
plural
plural
SOUNDS BITES
• Agile (is old)
• There are only three numbers
• Zero, one or many
• Not architecture, but architectureS,
• Architectures will change
• Rework cheaper than we thought
• Programmers (soon) will be much cheaper
• Architectural incubators
• The age of the app
• Variability modeling (feature maps)
69
End of my tale
SOUNDS BITES
• Agile (is old)
• There are only three numbers
• Zero, one or many
• Not architecture, but architectureS,
• Architectures will change
• Rework cheaper than we thought
• Programmers (soon) will be much cheaper
• Architectural incubators
• The age of the app
• Variability modeling (feature maps)
70
End of my tale
Back up slides
ARCHITECTURAL ASSESSMENT
FOR SOFTWARE SECURITY
Gary McGraw, Cigital:
72
“50% OF SECURITY FLAWS ARE
ARCHITECTURAL BUGS” -- G. MCGRAW
IMPLEMENTATION BUGS
• Buffer overflow
• String format
• One-stage attacks
• Race conditions
• TOCTOU (time of check to time of
use)
• Unsafe environment variables
• Unsafe system calls
• System()
• Untrusted input problems
ARCHITECTURAL BUGS
• Method over-riding problems
(subclass issues)
• Misuse of cryptography
• Compartmentalization problems in
design
• Privileged block protection failure
(DoPrivilege())
• Catastrophic security failure (fragility)
• Type safety confusion error
• Insecure auditing
• Broken or illogical access control (RBAC
over tiers)
• Signing too much code
73
SO YOU’D BETTER GET THE
ARCHITECTURE RIGHT
Architectural assessment methods (e.g. Mylopoulos, Soft
goals
74
ARCHITECTURAL
ASSESSMENT
Assessing options of criteria
• predictability (1), security (2), adaptability (3),
coordinability (4), cooperativity(5), availability (6), integrity
(7), modularity (8), or aggregability (9)
• Which is best? Ask the user for their value propositions
75
INDUSTRIAL RELEVANCE OF
SOFTWARE ARCHITECTURES
Source: AADL, CMU
76

More Related Content

Viewers also liked

Art and Culture - Module 07 - Renaissance (Early)
Art and Culture - Module 07 - Renaissance (Early)Art and Culture - Module 07 - Renaissance (Early)
Art and Culture - Module 07 - Renaissance (Early)Randy Connolly
 
Northern Europe 14_15 Chapter 15
Northern Europe 14_15 Chapter 15Northern Europe 14_15 Chapter 15
Northern Europe 14_15 Chapter 15ninila
 
Chapter16 Ed
Chapter16 EdChapter16 Ed
Chapter16 Edninila
 
Uffizi Gallery 16-18th Century
Uffizi Gallery 16-18th CenturyUffizi Gallery 16-18th Century
Uffizi Gallery 16-18th CenturyDennis Labadarios
 
Italian Renaissance by Kavita
Italian Renaissance by KavitaItalian Renaissance by Kavita
Italian Renaissance by Kavitasmolinskiel
 
Holy Week and Easter: Famous Paintings
Holy Week and Easter: Famous PaintingsHoly Week and Easter: Famous Paintings
Holy Week and Easter: Famous Paintingsguimera
 
Galleria degli Uffizi, Florence: Picture Gallery, The Masterpieces (Part 1)
Galleria degli Uffizi, Florence: Picture Gallery, The Masterpieces (Part 1)Galleria degli Uffizi, Florence: Picture Gallery, The Masterpieces (Part 1)
Galleria degli Uffizi, Florence: Picture Gallery, The Masterpieces (Part 1)guimera
 
The De Medici Family
The De Medici FamilyThe De Medici Family
The De Medici Familydexterbebe
 
Adoration of the Magi in paintings (1)
Adoration of the Magi in paintings (1)Adoration of the Magi in paintings (1)
Adoration of the Magi in paintings (1)guimera
 
Chapter 22 high renaissance
Chapter 22 high renaissanceChapter 22 high renaissance
Chapter 22 high renaissanceMelinda Darrow
 
Italian Renaissance--Ch. 21
Italian Renaissance--Ch. 21Italian Renaissance--Ch. 21
Italian Renaissance--Ch. 21Melinda Darrow
 
Ch13 Italian renaissance
Ch13 Italian renaissanceCh13 Italian renaissance
Ch13 Italian renaissanceWalter Price
 
Introduction to Tuscany Wines (15 Minutes)
Introduction to Tuscany Wines (15 Minutes)Introduction to Tuscany Wines (15 Minutes)
Introduction to Tuscany Wines (15 Minutes)Ron Hose
 
Art history chap._20_a
Art history chap._20_aArt history chap._20_a
Art history chap._20_aMelinda Darrow
 
Art history chap._23_a
Art history chap._23_aArt history chap._23_a
Art history chap._23_aMelinda Darrow
 

Viewers also liked (20)

Art and Culture - Module 07 - Renaissance (Early)
Art and Culture - Module 07 - Renaissance (Early)Art and Culture - Module 07 - Renaissance (Early)
Art and Culture - Module 07 - Renaissance (Early)
 
Early Renaissance in Italy
Early Renaissance in ItalyEarly Renaissance in Italy
Early Renaissance in Italy
 
Northern Europe 14_15 Chapter 15
Northern Europe 14_15 Chapter 15Northern Europe 14_15 Chapter 15
Northern Europe 14_15 Chapter 15
 
Chapter16 Ed
Chapter16 EdChapter16 Ed
Chapter16 Ed
 
Uffizi Gallery 16-18th Century
Uffizi Gallery 16-18th CenturyUffizi Gallery 16-18th Century
Uffizi Gallery 16-18th Century
 
Italian Renaissance by Kavita
Italian Renaissance by KavitaItalian Renaissance by Kavita
Italian Renaissance by Kavita
 
Holy Week and Easter: Famous Paintings
Holy Week and Easter: Famous PaintingsHoly Week and Easter: Famous Paintings
Holy Week and Easter: Famous Paintings
 
Renaissance Art
Renaissance ArtRenaissance Art
Renaissance Art
 
Galleria degli Uffizi, Florence: Picture Gallery, The Masterpieces (Part 1)
Galleria degli Uffizi, Florence: Picture Gallery, The Masterpieces (Part 1)Galleria degli Uffizi, Florence: Picture Gallery, The Masterpieces (Part 1)
Galleria degli Uffizi, Florence: Picture Gallery, The Masterpieces (Part 1)
 
The De Medici Family
The De Medici FamilyThe De Medici Family
The De Medici Family
 
Adoration of the Magi in paintings (1)
Adoration of the Magi in paintings (1)Adoration of the Magi in paintings (1)
Adoration of the Magi in paintings (1)
 
Chapter 22 high renaissance
Chapter 22 high renaissanceChapter 22 high renaissance
Chapter 22 high renaissance
 
Italian Renaissance--Ch. 21
Italian Renaissance--Ch. 21Italian Renaissance--Ch. 21
Italian Renaissance--Ch. 21
 
Art history ch._28
Art history ch._28Art history ch._28
Art history ch._28
 
Ch13 Italian renaissance
Ch13 Italian renaissanceCh13 Italian renaissance
Ch13 Italian renaissance
 
Introduction to Tuscany Wines (15 Minutes)
Introduction to Tuscany Wines (15 Minutes)Introduction to Tuscany Wines (15 Minutes)
Introduction to Tuscany Wines (15 Minutes)
 
Art history chap._20_a
Art history chap._20_aArt history chap._20_a
Art history chap._20_a
 
Art history chap._23_a
Art history chap._23_aArt history chap._23_a
Art history chap._23_a
 
Florence cathedral
Florence cathedralFlorence cathedral
Florence cathedral
 
Late Gothic
Late GothicLate Gothic
Late Gothic
 

Similar to Kits to Find the Bits that Fits

Illogical engineers
Illogical engineersIllogical engineers
Illogical engineersPawel Szulc
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineersPawel Szulc
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsUwe Friedrichsen
 
Infrastructure is Architecture - Software Circus 2020
Infrastructure is Architecture - Software Circus 2020Infrastructure is Architecture - Software Circus 2020
Infrastructure is Architecture - Software Circus 2020Joe Duffy
 
Rebuilding Reddit, A Case Study - Chris Slowe, CTO, Reddit
Rebuilding Reddit, A Case Study - Chris Slowe, CTO, RedditRebuilding Reddit, A Case Study - Chris Slowe, CTO, Reddit
Rebuilding Reddit, A Case Study - Chris Slowe, CTO, RedditTraction Conf
 
Introducing TensorFlow: The game changer in building "intelligent" applications
Introducing TensorFlow: The game changer in building "intelligent" applicationsIntroducing TensorFlow: The game changer in building "intelligent" applications
Introducing TensorFlow: The game changer in building "intelligent" applicationsRokesh Jankie
 
[DesignOps Global Conference 2019] Samir Dash - 3-steps for building design e...
[DesignOps Global Conference 2019] Samir Dash - 3-steps for buildingdesign e...[DesignOps Global Conference 2019] Samir Dash - 3-steps for buildingdesign e...
[DesignOps Global Conference 2019] Samir Dash - 3-steps for building design e...Samir Dash
 
3 steps for building design eco-systems of future, today. - Samir Dash
3 steps for building  design eco-systems of future, today. - Samir Dash3 steps for building  design eco-systems of future, today. - Samir Dash
3 steps for building design eco-systems of future, today. - Samir DashDesignOps Global Conference
 
Lean Apart: A Case Study in Agile UX Design for a Distributed Team
Lean Apart: A Case Study in Agile UX Design for a Distributed TeamLean Apart: A Case Study in Agile UX Design for a Distributed Team
Lean Apart: A Case Study in Agile UX Design for a Distributed TeamC4Media
 
Using Innoslate for Model-Based Systems Engineering
Using Innoslate for Model-Based Systems EngineeringUsing Innoslate for Model-Based Systems Engineering
Using Innoslate for Model-Based Systems EngineeringElizabeth Steiner
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
Idiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSIdiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSAndrea Saltarello
 
What is the Future of Systems Engineering?
What is the Future of Systems Engineering?What is the Future of Systems Engineering?
What is the Future of Systems Engineering?Elizabeth Steiner
 
Space Codesign at TandemLaunch Lunch & Learn 20150414
Space Codesign at TandemLaunch Lunch & Learn 20150414Space Codesign at TandemLaunch Lunch & Learn 20150414
Space Codesign at TandemLaunch Lunch & Learn 20150414Gary Dare
 
Big Data & Artificial Intelligence
Big Data & Artificial IntelligenceBig Data & Artificial Intelligence
Big Data & Artificial IntelligenceZavain Dar
 
The Agile Shape-up method for collaborative developments in international con...
The Agile Shape-up method for collaborative developments in international con...The Agile Shape-up method for collaborative developments in international con...
The Agile Shape-up method for collaborative developments in international con...Daniele Bailo
 
System Dynamics and FOSS
System Dynamics and FOSSSystem Dynamics and FOSS
System Dynamics and FOSSMaikel Mardjan
 

Similar to Kits to Find the Bits that Fits (20)

NUS PhD e-open day 2020
NUS PhD e-open day 2020NUS PhD e-open day 2020
NUS PhD e-open day 2020
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineers
 
Illogical engineers
Illogical engineersIllogical engineers
Illogical engineers
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
 
Infrastructure is Architecture - Software Circus 2020
Infrastructure is Architecture - Software Circus 2020Infrastructure is Architecture - Software Circus 2020
Infrastructure is Architecture - Software Circus 2020
 
Rebuilding Reddit, A Case Study - Chris Slowe, CTO, Reddit
Rebuilding Reddit, A Case Study - Chris Slowe, CTO, RedditRebuilding Reddit, A Case Study - Chris Slowe, CTO, Reddit
Rebuilding Reddit, A Case Study - Chris Slowe, CTO, Reddit
 
SBSE-class1.pdf
SBSE-class1.pdfSBSE-class1.pdf
SBSE-class1.pdf
 
Introducing TensorFlow: The game changer in building "intelligent" applications
Introducing TensorFlow: The game changer in building "intelligent" applicationsIntroducing TensorFlow: The game changer in building "intelligent" applications
Introducing TensorFlow: The game changer in building "intelligent" applications
 
[DesignOps Global Conference 2019] Samir Dash - 3-steps for building design e...
[DesignOps Global Conference 2019] Samir Dash - 3-steps for buildingdesign e...[DesignOps Global Conference 2019] Samir Dash - 3-steps for buildingdesign e...
[DesignOps Global Conference 2019] Samir Dash - 3-steps for building design e...
 
3 steps for building design eco-systems of future, today. - Samir Dash
3 steps for building  design eco-systems of future, today. - Samir Dash3 steps for building  design eco-systems of future, today. - Samir Dash
3 steps for building design eco-systems of future, today. - Samir Dash
 
Lean Apart: A Case Study in Agile UX Design for a Distributed Team
Lean Apart: A Case Study in Agile UX Design for a Distributed TeamLean Apart: A Case Study in Agile UX Design for a Distributed Team
Lean Apart: A Case Study in Agile UX Design for a Distributed Team
 
Using Innoslate for Model-Based Systems Engineering
Using Innoslate for Model-Based Systems EngineeringUsing Innoslate for Model-Based Systems Engineering
Using Innoslate for Model-Based Systems Engineering
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
HCI-Lecture-1
HCI-Lecture-1HCI-Lecture-1
HCI-Lecture-1
 
Idiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSIdiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRS
 
What is the Future of Systems Engineering?
What is the Future of Systems Engineering?What is the Future of Systems Engineering?
What is the Future of Systems Engineering?
 
Space Codesign at TandemLaunch Lunch & Learn 20150414
Space Codesign at TandemLaunch Lunch & Learn 20150414Space Codesign at TandemLaunch Lunch & Learn 20150414
Space Codesign at TandemLaunch Lunch & Learn 20150414
 
Big Data & Artificial Intelligence
Big Data & Artificial IntelligenceBig Data & Artificial Intelligence
Big Data & Artificial Intelligence
 
The Agile Shape-up method for collaborative developments in international con...
The Agile Shape-up method for collaborative developments in international con...The Agile Shape-up method for collaborative developments in international con...
The Agile Shape-up method for collaborative developments in international con...
 
System Dynamics and FOSS
System Dynamics and FOSSSystem Dynamics and FOSS
System Dynamics and FOSS
 

More from CS, NcState

Talks2015 novdec
Talks2015 novdecTalks2015 novdec
Talks2015 novdecCS, NcState
 
GALE: Geometric active learning for Search-Based Software Engineering
GALE: Geometric active learning for Search-Based Software EngineeringGALE: Geometric active learning for Search-Based Software Engineering
GALE: Geometric active learning for Search-Based Software EngineeringCS, NcState
 
Big Data: the weakest link
Big Data: the weakest linkBig Data: the weakest link
Big Data: the weakest linkCS, NcState
 
Three Laws of Trusted Data Sharing: (Building a Better Business Case for Dat...
Three Laws of Trusted Data Sharing:(Building a Better Business Case for Dat...Three Laws of Trusted Data Sharing:(Building a Better Business Case for Dat...
Three Laws of Trusted Data Sharing: (Building a Better Business Case for Dat...CS, NcState
 
Lexisnexis june9
Lexisnexis june9Lexisnexis june9
Lexisnexis june9CS, NcState
 
Welcome to ICSE NIER’15 (new ideas and emerging results).
Welcome to ICSE NIER’15 (new ideas and emerging results).Welcome to ICSE NIER’15 (new ideas and emerging results).
Welcome to ICSE NIER’15 (new ideas and emerging results).CS, NcState
 
Icse15 Tech-briefing Data Science
Icse15 Tech-briefing Data ScienceIcse15 Tech-briefing Data Science
Icse15 Tech-briefing Data ScienceCS, NcState
 
Ai4se lab template
Ai4se lab templateAi4se lab template
Ai4se lab templateCS, NcState
 
Automated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSUAutomated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSUCS, NcState
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements EngineeringCS, NcState
 
172529main ken and_tim_software_assurance_research_at_west_virginia
172529main ken and_tim_software_assurance_research_at_west_virginia172529main ken and_tim_software_assurance_research_at_west_virginia
172529main ken and_tim_software_assurance_research_at_west_virginiaCS, NcState
 
Automated Software Engineering
Automated Software EngineeringAutomated Software Engineering
Automated Software EngineeringCS, NcState
 
Next Generation “Treatment Learning” (finding the diamonds in the dust)
Next Generation “Treatment Learning” (finding the diamonds in the dust)Next Generation “Treatment Learning” (finding the diamonds in the dust)
Next Generation “Treatment Learning” (finding the diamonds in the dust)CS, NcState
 
Tim Menzies, directions in Data Science
Tim Menzies, directions in Data ScienceTim Menzies, directions in Data Science
Tim Menzies, directions in Data ScienceCS, NcState
 
Dagstuhl14 intro-v1
Dagstuhl14 intro-v1Dagstuhl14 intro-v1
Dagstuhl14 intro-v1CS, NcState
 
The Art and Science of Analyzing Software Data
The Art and Science of Analyzing Software DataThe Art and Science of Analyzing Software Data
The Art and Science of Analyzing Software DataCS, NcState
 
What Metrics Matter?
What Metrics Matter? What Metrics Matter?
What Metrics Matter? CS, NcState
 

More from CS, NcState (20)

Talks2015 novdec
Talks2015 novdecTalks2015 novdec
Talks2015 novdec
 
Future se oct15
Future se oct15Future se oct15
Future se oct15
 
GALE: Geometric active learning for Search-Based Software Engineering
GALE: Geometric active learning for Search-Based Software EngineeringGALE: Geometric active learning for Search-Based Software Engineering
GALE: Geometric active learning for Search-Based Software Engineering
 
Big Data: the weakest link
Big Data: the weakest linkBig Data: the weakest link
Big Data: the weakest link
 
Three Laws of Trusted Data Sharing: (Building a Better Business Case for Dat...
Three Laws of Trusted Data Sharing:(Building a Better Business Case for Dat...Three Laws of Trusted Data Sharing:(Building a Better Business Case for Dat...
Three Laws of Trusted Data Sharing: (Building a Better Business Case for Dat...
 
Lexisnexis june9
Lexisnexis june9Lexisnexis june9
Lexisnexis june9
 
Welcome to ICSE NIER’15 (new ideas and emerging results).
Welcome to ICSE NIER’15 (new ideas and emerging results).Welcome to ICSE NIER’15 (new ideas and emerging results).
Welcome to ICSE NIER’15 (new ideas and emerging results).
 
Icse15 Tech-briefing Data Science
Icse15 Tech-briefing Data ScienceIcse15 Tech-briefing Data Science
Icse15 Tech-briefing Data Science
 
Ai4se lab template
Ai4se lab templateAi4se lab template
Ai4se lab template
 
Automated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSUAutomated Software Enging, Fall 2015, NCSU
Automated Software Enging, Fall 2015, NCSU
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
172529main ken and_tim_software_assurance_research_at_west_virginia
172529main ken and_tim_software_assurance_research_at_west_virginia172529main ken and_tim_software_assurance_research_at_west_virginia
172529main ken and_tim_software_assurance_research_at_west_virginia
 
Automated Software Engineering
Automated Software EngineeringAutomated Software Engineering
Automated Software Engineering
 
Next Generation “Treatment Learning” (finding the diamonds in the dust)
Next Generation “Treatment Learning” (finding the diamonds in the dust)Next Generation “Treatment Learning” (finding the diamonds in the dust)
Next Generation “Treatment Learning” (finding the diamonds in the dust)
 
Tim Menzies, directions in Data Science
Tim Menzies, directions in Data ScienceTim Menzies, directions in Data Science
Tim Menzies, directions in Data Science
 
Goldrush
GoldrushGoldrush
Goldrush
 
Dagstuhl14 intro-v1
Dagstuhl14 intro-v1Dagstuhl14 intro-v1
Dagstuhl14 intro-v1
 
Know thy tools
Know thy toolsKnow thy tools
Know thy tools
 
The Art and Science of Analyzing Software Data
The Art and Science of Analyzing Software DataThe Art and Science of Analyzing Software Data
The Art and Science of Analyzing Software Data
 
What Metrics Matter?
What Metrics Matter? What Metrics Matter?
What Metrics Matter?
 

Recently uploaded

How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 

Recently uploaded (20)

How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 

Kits to Find the Bits that Fits

  • 1. 1 Kits to Find the Bits that Fits tim.menzies@gmail.com SAM’15, ICSE, Florence Italy, May 2015 Learning adaptive architectural principles in the post-agile world
  • 2. SOUNDS BITES • Agile (is old) • There are only three numbers • Zero, one or many • Not architecture, but architectureS, • Architectures will change • Rework cheaper than we thought • Programmers (soon) will be much cheaper • Architectural incubators • The age of the app • Variability modeling (feature maps) 2
  • 3. Before we begin FYI: I really like architecture(s)
  • 4. ARCHITECTURES = FENCES Something that lets you work alone … • … half the time Team members • can be productive in isolation • But know when they need to talk to others Good fences make good neighbors 4
  • 6. 6
  • 8. ARCHITECTURES IN THE POST-AGILE WORLD • The following may be old news to some of you • But for the rest: • Agile is old hat. • Welcome to DevOps • And after DevOps? • Continuous Deployment • standard practice by 2020 • tools like MEAN 8
  • 9. 9 Source: D. Reimer, A. Cho, Moving to DevOps and Beyond: https://goo.gl/25PxmH
  • 10. 10 Source: D. Reimer, A. Cho, Moving to DevOps and Beyond: https://goo.gl/25PxmH
  • 11. 11 Source: D. Reimer, A. Cho, Moving to DevOps and Beyond: https://goo.gl/25PxmH
  • 12. 12 Source: D. Reimer, A. Cho, Moving to DevOps and Beyond: https://goo.gl/25PxmH
  • 13. QUESTION How to make architectural reasoning flexible enough to handle this pace of change? 13
  • 14. Adaptive conclusions and the PROMISE Project
  • 15. THE PROMISE REPO OPENSCIENCE.US/REPO #storingYourResearchData URL • openscience.us/repo • Data from 100s of projects • E.g. EUSE: • 250,000K+ spreadsheets Oldest continuous repository of SE data • For other repos, see Table 1 of goo.gl/UFZgnd 15 Serve all our data, on-line The PROMISE Project: 2005… 2015
  • 16. TRANSFERRING LESSONS LEARNED: TURKISH TOASTERS TO NASA SPACE SHIPS 16 B.Turhan, T.Menzies, A. Bener, J. Di Stefano. 2009. On the relative value of cross- company and within- company data for defect prediction. Empirical Softw. Eng. 14(5) 2009,
  • 17. 17 Perspective on Data Science for Software Engineering Tim Menzies Laurie Williams Thomas Zimmermann 2014 2015 2016 Lessons Learned Our summary. And other related books The MSR community and others
  • 18. Initial, naïve, view: • Collect enough data … • … and the truth will emerge Reality: • The more data we collected … • … the more variance we observed • Its like the microscope zoomed in • to smash the slide So now we routinely slice the data • Find local lessons in local regions. 18 Lessons Learned: Locality, Locality, Locality
  • 19. 19
  • 20. CONUNDRUM Q: How can I believe in architectural principles? • That transcend individual projects • Yet doubt the general value of any particular architecture? • General, that is, to any other project that this current project at this current time. A1: Not general models • But cost effective ways to find best local models A2: Architectural incubators (see below) 20
  • 22. “THE” ARCHITECTURE = THE DECISIONS YOU CANNOT CHANGE • The constants • The base assumptions, • made at the start of the project. • The decisions that you • bless, or curse, • every day of the project. 22
  • 23. 23
  • 24. THE THING YOU’D BETTER GET RIGHT Since… 24
  • 25. THE THING YOU’D BETTER GET RIGHT Since… 25 Or, if Doug Schmidt, just a few
  • 26. AND IF YOU GET THE ARCHITECTURE WRONG Early mistakes are most expensive error to fix (Boehm 1981) 26
  • 29. 29 • Doug Schmidt: • “The Department of Defense (DoD) must move away from stove-piped solutions “ • “… towards a limited number of technical reference frameworks … “ • “based on reusable hardware and software components and services” Architect- ural Evolution of DoD Combat Systems. Doug Schmidt, SEI blog, Nov 15, 2013
  • 30. 30 • Tim Menzies • “a limited number???” • Only three numbers in the universe • Zero • One • Many • And if > 1, then expect many many more • Need software architects: to tame the herd of architectures Architect- ural Evolution of DoD Combat Systems. Doug Schmidt, SEI blog, Nov 15, 2013
  • 31. Some good news 1) Rework not so costly 2) Reworkers: cheaper, more plentiful
  • 33. SEI TSP DATA 33 171 projects 2005 to 2014. Duration: (46 ,90) days (median, max) Team size: (7,40) people (median,max) William Curtis, Forest Shull, Tim Menzies, Lucas Layton FSE’15 (submitted)
  • 34. SEI TSP DATA 34 171 projects 2005 to 2014. Duration: (46 ,90) days (median, max) Team size: (7,40) people (median,max)
  • 35. COMMENT it is not crazy to explore extensive architectural evolution • Continuously, during continuous deployment Since: • Cheaper to change code than we thought • Programming costs are about to plummet (see next slide) 35
  • 36. PROGRAMMER SALARIES: ABOUT TO COLLAPSE • Automatic programming • Devanbu, ICSE NIER 2015: • Most code repeats other code • Large scale auto-coding? • “The next billion” • All of India + Africa on-line • Many programmers, competing for work • Better distributed development • Bird et al ICSE 2009, Kocaganuli et al ICSE SEIP 2013: • better ways to divide distributed teams • “Micro-tasking” : LaToza and van der Hoek ICSE NIER’15. • Divide development into tiny (say) 5 minute steps • Next-gen distributed development • Github DevOps, continuous integration • Yang et al. ICSE NIER’13: • Crowd sourced development 5 times cheaper 36
  • 39. LARGE ASSEMBLES NEED LARGE ARCHITECTURES 39 • Life expectancy: • 50 years • A backbone on which 1000s of sub-systems can be • born, • evolved • replaced
  • 40. LARGE ASSEMBLES NEED LARGE ARCHITECTURES 40 • Life expectancy: • 50 years • A backbone on which 1000s of sub-systems can be • born, • evolved • replaced Architectural incubator
  • 41. ANOTHER LARGE SOFTWARE ARCHITECTURE (DECADES OLD) 41 Any geeks in this audience? Recognize this diagram? Do you know the author?
  • 42. ANOTHER LARGE SOFTWARE ARCHITECTURE (DECADES OLD) 42 Any geeks in this audience? Recognize this diagram? Do you know the author? Distributed packet-switching networks (On Distribute Communications): Rand memorandum RM-3103-PR, August 1964
  • 43. ANOTHER LARGE SOFTWARE ARCHITECTURE (DECADES OLD) 43 Any geeks in this audience? Recognize this diagram? Do you know the author? Distributed packet-switching networks (On Distribute Communications): Rand memorandum RM-3103-PR, August 1964 Architectural incubator
  • 44. ANOTHER OLD ARCHITECTURE (NOT QUITE AS WIDELY-USED) The Blackboard Model of Problem Solving and the Evolution of Blackboard Architectures, H. Penny Ni, AI Magazie, 7(2), 1986. 44
  • 45. ANOTHER SOFTWARE ARCHITECTURE (NOT QUITE AS WIDELY-USED) The Blackboard Model of Problem Solving and the Evolution of Blackboard Architectures, H. Penny Ni, AI Magazie, 7(2), 1986. 45 How AI handled software engineering in the 1970s
  • 46. SOME ARCHITECTURES ARE MORE CHANGE TOLERANT THAN OTHERS 46 More brittle Less brittle
  • 47. SOME ARCHITECTURES ARE MORE CHANGE TOLERANT THAN OTHERS 47 More brittle Less brittle Architectural incubator
  • 49. AFTER LAMP, COMES “MEAN” • M = MongoDB: a nonSQL DB(nested key-value pairs) ( death to SQL). No data traps • E = Express.js : controller layer, directing application flow and marshaling data • A = AngularJS : handles data presentation. • N = Node.js: an extensive javascript library (look ma, no operating system) • MEAN: one language up and down the stack (javascript). • Faster integrated testing. • Faster invention of new patterns 49
  • 50. AFTER LAMP, COMES “MEAN” • M = MongoDB: a nonSQL DB(nested key-value pairs) ( death to SQL). No data traps • E = Express.js : controller layer, directing application flow and marshaling data • A = AngularJS : handles data presentation. • N = Node.js: an extensive javascript library (look ma, no operating system) • MEAN: one language up and down the stack (javascript). • Faster integrated testing. • Faster invention of new patterns 50 Architectural incubator
  • 51. FUNCTIONAL PROGRAMMERS EAT PATTERNS, FOR BREAKFAST 51 def visit(thing): if isinstance(thing,list): for x in thing: for y in visit(x): yield y else: yield thing def all(thing): return [x for x in visit(thing)] map(lambda x: x**0.5, all(x)) # sqrt everything reduce(lambda x,y: x*y, all(thing)) # mult everything Architectural incubator BTW: MEAN? All Jscript, all functional
  • 52. OO PATTERNS : INCUBATOR OR FREEZE BOX 52 Traditional view: Much like Schmidt’s limited number of technical reference frameworks. First listed in 1992. Surprisingly few updates since.
  • 54. IF EVERYTHING MATTERS, THEN CAREFULLY DESIGN EVERYTHING But what if only little bits matter… Chris Theisen, Ncstate • 10,000,000 stack dumps Ms Windows • So little of the system implicated in those errors • Reaction of MS engineers? • Lets redesign the dependencies around those crash traces 54
  • 55. THE KEY TO CHANGE: YAGNI • You ain’t gonna need it (to be architected) • Curiosuly: most software is never exercised enough to be buggy • 80% bugs in 20% of the code • Ostrand & Weyyeuker, AT&T, 2004 • Koru, IEEE Software 2009, Ericsson, IBM • Tosun et al, IAAI’10: Turkish Software • Hammill & Goseva IEEE TSE’09, NASA systems 55
  • 56. WELCOME TO THE AGE OF THE APP Old school: • MsOffice: a locked in world that users never leave • All software from one vendor • Large, slow to change, hard to compete New school: • The app • All software from N vendors • Small, very fast to change 56
  • 57. FEATURE-ORIENTED, OR VARIABILITY-ORIENTED, PROGRAMMING Feature models = a lightweight method for defining a space of options De facto standard for modeling variability 57 Cross-Tree Constraints Cross-Tree Constraints Size ? 10 Features, 8 Rules
  • 58. LARGE FEATURE MODELS = ARCHITECTURES 58 Size: 6888 items Features: 344,000 rules
  • 60. LEARNING DESIGN CHANGE (A “LESS” APPROACH) Multi-objective optimization = navigating competing concerns • Success criteria = choose features that achieve the user preferences! 60 Suppose each feature had the following metrics: 1. Boolean USED_BEFORE? 2. Integer DEFECTS 3. Real COST Show me the space of “best options” according to the objectives: 1. That satisfies most domain constraints (0 ≤ #violations ≤ 100%) 2. That offers most features 3. Using features with least known defects 4. Using features with least cost 5. That we have used most before Architectural incubator
  • 61. STATE OF THE ART 61 Features 9 290 544 6888 SPLOTLinux(LVAT) Pohl ‘11 Lopez- Herrejo n ‘11 Henard ‘12 Velazc o ‘13 Sayyad & Menzies’13b Johanse n ‘11 Benavide s ‘05 Fixing model inconsistencis 27 min. for 94 features Multi-obj configuration, IBEA >100 hours for E-Shop, 80% HV Single-obj, CSP Up to 25 features Exponential time White ‘07, ‘08, 09a, 09b, Shi ‘10, Guo ‘11 Test covering arrays, timed out on all ops for Linux 6888 features (and some ops on smaller FMs) Multi-obj configuration, IBEA 30 configs in 30 minutes for Linux 6888 features Objectives Multi-objSingle-obj Sayyad& Menzies ’13a
  • 62. Career advice (for a plural world)
  • 63. 63 • Doug Schmidt: “… a limited number of technical reference frameworks … • Tim Menzies: • Architectures: zero or one or many • But perhaps just a few architectural incubators? • Supported by • Cheaper programmers (more to them) writing more code, faster, cheaper • Next gen inference, functional programming, feature-oriented code Architect- ural Evolution of DoD Combat Systems. Doug Schmidt, SEI blog, Nov 15, 2013
  • 65. 65
  • 67. 67 CODERS You want to be the architect that knows how to co-ordinate teams that commission new architectureS while rapidly retiring old ones Cause the softworld will be architectureS in constant flux as teams patch and port old functionality to new architectureS
  • 68. 68 CODERS You want to be the architect that knows how to co-ordinate teams that commission new architectureS while rapidly retiring old ones Cause the softworld will be architectureS in constant flux as teams patch and port old functionality to new architectureS plural plural plural
  • 69. SOUNDS BITES • Agile (is old) • There are only three numbers • Zero, one or many • Not architecture, but architectureS, • Architectures will change • Rework cheaper than we thought • Programmers (soon) will be much cheaper • Architectural incubators • The age of the app • Variability modeling (feature maps) 69 End of my tale
  • 70. SOUNDS BITES • Agile (is old) • There are only three numbers • Zero, one or many • Not architecture, but architectureS, • Architectures will change • Rework cheaper than we thought • Programmers (soon) will be much cheaper • Architectural incubators • The age of the app • Variability modeling (feature maps) 70 End of my tale
  • 72. ARCHITECTURAL ASSESSMENT FOR SOFTWARE SECURITY Gary McGraw, Cigital: 72
  • 73. “50% OF SECURITY FLAWS ARE ARCHITECTURAL BUGS” -- G. MCGRAW IMPLEMENTATION BUGS • Buffer overflow • String format • One-stage attacks • Race conditions • TOCTOU (time of check to time of use) • Unsafe environment variables • Unsafe system calls • System() • Untrusted input problems ARCHITECTURAL BUGS • Method over-riding problems (subclass issues) • Misuse of cryptography • Compartmentalization problems in design • Privileged block protection failure (DoPrivilege()) • Catastrophic security failure (fragility) • Type safety confusion error • Insecure auditing • Broken or illogical access control (RBAC over tiers) • Signing too much code 73
  • 74. SO YOU’D BETTER GET THE ARCHITECTURE RIGHT Architectural assessment methods (e.g. Mylopoulos, Soft goals 74
  • 75. ARCHITECTURAL ASSESSMENT Assessing options of criteria • predictability (1), security (2), adaptability (3), coordinability (4), cooperativity(5), availability (6), integrity (7), modularity (8), or aggregability (9) • Which is best? Ask the user for their value propositions 75
  • 76. INDUSTRIAL RELEVANCE OF SOFTWARE ARCHITECTURES Source: AADL, CMU 76