Architect!
Metaphor for an architect
Like a gardener or a tour guide
Erik Dörnenburg - Architecture without Architectshttps://www.youtube.com/watch?v=qVyt3qQ_7TA
What is software architecture?
http://geekandpoke.typepad.com/geekandpoke/2009/11/enterprise-architecture-made-easy-part-1.html
What is software architecture?
The highest-level breakdown of a system into its parts; the decisions that are hard to change; there are multiple architectures in a system; what is architecturally significant can change over a system's lifetime
Martin Fowler – Patterns of Enterprise Application Architecturehttp://amzn.to/1pQe39r
Highest level breakdown of a system
http://wso2.com/whitepapers/a-reference-architecture-for-the-internet-of-things/
Decisions that are hard to change
● Programming language● DB schema● Infrastructure● Monitoring solution
Multiple architectures
● Solution architecture - Overall structure of solution
● Integration architecture - How integration is done
● Security architecture - How each component is secured
● Application architecture - How the application is structured
● Component architecture - UML diagrams
Architectural significance can change overtime
● DB choice○ NoSQL → MySQL
● Infrastructure○ AWS → Hosting provider (VMs)
Why do software architecture?
http://martinfowler.com/bliki/DesignStaminaHypothesis.html
Enterprise systems are complex
http://www3.cis.fiu.edu/conferences/icac2011/files/Keynote_Kephart.pdf
Why enterprise systems are complex?
● Overtime○ Developers/team structure change○ Acquire functionality
● Mindset – don’t change what works○ Change is very expensive
● Find ways to incorporate new requirements○ Often time make architecture more complex
Managing complexity – Idealistic!
● Autonomic computing○ Self configuring○ Self healing○ Self optimizing○ Self protecting
● Long way to go!
http://www3.cis.fiu.edu/conferences/icac2011/files/Keynote_Kephart.pdf
Managing complexity – an algorithm!
● Follow this simple algorithma. Write down the problemb. Think real hardc. Write down the solution
● True IFF you’re Richard Feynman
Managing complexity – Practically
● Ongoing challenge● No Silver Bullet - Fred Brooks, 1986● Every enterprise / people are different● Complexity in multiple stages
○ Software development○ Deployment / operations○ On going maintenance
Software evolution
Over 90% of software cost happen during maintenance phase
Fred Brooks – Mythical Man Monthhttp://amzn.to/1Mb3QiR
Agile manifesto
● Individuals and interactions over processes and tools
● Working software over comprehensive documentation
● Customer collaboration over contract negotiation
● Responding to change over following a plan
Traditional – Waterfall method
http://scrumreferencecard.com/scrum-reference-card/
Scrum
http://scrumreferencecard.com/scrum-reference-card/
SAFe - Scaled Agile Framework
http://www.scaledagileframework.com
SAFe - Good or bad?
● Criticism from Ken Schwaber - https://kenschwaber.
wordpress.com/2013/08/06/unsafe-at-any-speed/
● Relevant good parts○ Architecture epics○ Change architecture based on new
requirements / functionality
Iteratively improve - WEST solution
Iteratively improve - WEST solution
Iteratively improve - WEST solution
Iteratively improve - WEST solution
Iteratively improve - Legacy auth
Iteratively improve - Legacy auth
Iteratively improve - Legacy auth
● Interim security architecture change● Support legacy authentication mechanism● Prove pluggable nature● Show business value● Continue onboarding on subsequent
scrums
Iteratively improve
Iteratively improve
Thank You