emerging architecture - pvv.orgoma/emergingarchitecture_27oct2011.pdf · a 15 minute lightning talk...
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/8.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/11.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/12.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/13.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/14.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/15.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/16.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/17.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/18.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/19.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/20.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/21.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/22.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/24.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/25.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/26.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/27.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/28.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/29.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/30.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/36.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/37.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/38.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/41.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/42.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/43.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/44.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/46.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/47.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/48.jpg)
• 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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050201/5f54ead27446d124ef56daab/html5/thumbnails/51.jpg)
!