emerging architecture - pvv.orgoma/emergingarchitecture_27oct2011.pdf · a 15 minute lightning talk...

51
Emerging Architecture Olve Maudal, Cisco Systems Norway A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan god programvarearkitektur skal se ut. Men det viser seg at mange, kanskje de fleste, vellykkede kodebaser er et resultat av tilsynelatende tilfeldige valg og ustrukturert implementasjon. I denne lyntalen skal jeg diskutere litt om forutsetningene for å utvikle en solid kodebase og hva god programvarearkitektur egentlig handler om.

Upload: others

Post on 18-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Emerging ArchitectureOlve Maudal, Cisco Systems Norway

A 15 minute lightning talkdagen@IFI, October 27, 2011

Det finnes mange teoretiske tilnærminger til hvordan god programvarearkitektur skal se ut. Men det viser seg at mange, kanskje de fleste, vellykkede kodebaser er et resultat av tilsynelatende tilfeldige valg og ustrukturert implementasjon. I denne lyntalen skal jeg diskutere litt om forutsetningene for å utvikle en solid kodebase og hva god programvarearkitektur egentlig handler om.

Page 2: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

TelePresence Technology GroupCisco Systems Norway

Page 3: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Telepresence systems and solutions

Page 4: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Electronics / Hardware

Page 5: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Mechanics

Page 6: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

1993 2011

Industrial Design

Page 7: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Software Development

Page 8: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• C and C++• a few million lines of code• processor agnostic (TI, Phillips, PPC, ARM, Intel, and more...)• currently developed and maintained by ~200 developers• typically 50-200 commits per day• very visible traces back to '80s and '90s

The Codebase

Page 9: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

1987 19921997

2000

2003

20042006

20052006

Page 10: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

2010

2011

2012

2008

2008

2009

2009

2012

Page 11: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 12: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization

Page 13: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization• documented interfaces

Page 14: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization• documented interfaces • well defined development processes

Page 15: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization• documented interfaces • well defined development processes• detailed requirement specifications

Page 16: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization• documented interfaces • well defined development processes• detailed requirement specifications• corporate coding standards

Page 17: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization• documented interfaces • well defined development processes• detailed requirement specifications• corporate coding standards• change management

Page 18: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization• documented interfaces • well defined development processes• detailed requirement specifications• corporate coding standards• change management• code is documented properly

Page 19: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization• documented interfaces • well defined development processes• detailed requirement specifications• corporate coding standards• change management• code is documented properly• strong and visible architecture

Page 20: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 21: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization• documented interfaces • well defined development processes• detailed requirement specifications• corporate coding standards• change management• code is documented properly• strong and visible architecture

Page 22: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 23: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

There are only two kinds of codebases: the ones people complain about and the ones nobody cares about anymore...

(inspired by a similar quote by Bjarne Stroustrup)

Page 24: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 25: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 26: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 27: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 28: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 29: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 30: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 31: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Analogies for software development

Page 32: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Analogies for software development

Page 33: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Analogies for software development

Page 34: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Analogies for software development

Page 35: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Analogies for software development

Page 36: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 37: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 38: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 39: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Typical characteristics of successful codebases:• disposable code, modules and infrastructure• low coupling and high cohesion• duplication when needed• transparent interfaces• collective ownership• rightsized modules and infrastructure• focused on business needs• working code is the documentation

Page 40: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

This can evolve by:• avoid the architect, rely on collective intelligence instead• codebase should be fun to work with and easy to test• continuous re-planning and re-working• collective ownership• build stuff only when needed• reflect on status quo instead of dreaming• share vision and communicate direction(not targets)• beware of subliminal dependencies• focus on what happens between modules• establish multi-level feedback mechanisms• prefer feature teams over component teams• adapt your organization to support your architecture

Page 41: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 42: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 43: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 44: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 45: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

The Dark Ages of Software Development (mid 80’s to mid 90’)

Page 46: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 47: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan
Page 48: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

• strict modularization• documented interfaces • well defined development processes• detailed requirement specifications• corporate coding standards• change management• code is documented properly• strong and visible architecture

Page 49: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

Problems in software development usuallymultiply and gets worse by exerting more control...

Page 50: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

The more you tighten your grip, Tarkin, the more star systems will slip through your fingers.

(Princess Leia)

Page 51: Emerging Architecture - pvv.orgoma/EmergingArchitecture_27oct2011.pdf · A 15 minute lightning talk dagen@IFI, October 27, 2011 Det finnes mange teoretiske tilnærminger til hvordan

!