THE FRUSTRATED ARCHITECT Simon Brown @simonbrown
Perceptions
Big up front design Waterfall and analysis paralysis UML I’m a software architect Ivory Tower PowerPoint Architect Architecture Astronaut
PowerPoint Architecture Buzzword Bingo S i n g l e S i g n - O n Corporate Data Model E n t e r p r i s e S e r v i c e B u s yes, I know ... but I’m not using PowerPoint :-P
Relay Sport Architecture e r a w t f S o e u r t c e t h i c r A t e n m u c o D This is a big bunch of S a a A
I’m another member of the team (and I like writing code)
“Architecture” Time Coding
The UML phase
The Management Consulting phase
The “corporate ladder” Non-technical Our tech lead and mentor has been “promoted” ... Technical help!
Your management thinks coding is a commodity ? Tell them to offshore it all
http://www.codingthearchitecture.com
“Software Architect” is not an organisational rank It’s a role that you evolve into
We aspire to be agile and self-organising And that’s cool, but aren’t you forgetting something?
Agile
Test-driven Moving fast, Structure development embracing Self-organising change team Security Availability Continuous Non-functional requirements delivery Agile Automated Technical guidance acceptance Emergent Vision testing design Kanban Performance Technical quality Retrospectives Scalability Lean
Agile _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ I don’t position most of my content as agile, but...
What is an agile architect anyway?
Defer until the Evolutionary Architecture last responsible and Emergent Design YAGNI moment I’m an agile architect! System Metaphor Refactoring Spikes, stripes and tracers
Agile architecture?
Agile (e.g. Scrum) Skills Sprint 1 Sprint 2 Sprint 3 Business Modelling Requirements Analysis & Design Implementation Test Deployment Configuration Management Project Management Environment
Evolutionary architecture Foolishly hoping for the best?
We don’t need software architecture; we do TDD Agile software team
TDD is about code ... architecture isn’t (well, it is, but it’s also about more than just the code)
Last responsible moment y l h u g r o w o n k e l p o p e t s o M n g i l d u i b e ’ r y h e t t h a w s n o s i c i ! e d e m o s e k m a t s u j o s
Flat, self-organising teams are great but... ...they don’t always work
Let’s invent e r something shiny and new...
Retrospective
Have we forgotten more than we’ve learnt?
UML
Class s Class s a l C Collaborators s r o t a r o Collaborators b a l l o C Responsibilities s e Responsibilities i t i l i b i s n o p s e R Class-Responsibility-Collaboration
Component-based development Component A Component B Component C g n i p l u o c w o l , o n s i e h o c h g H i , t c a t r n o c y b g n i s e d e p l i c n r i p n o t i u t i s t b u s v o k s i L
Pattern-Oriented Software Architecture
Rational Unified Process (RUP) Skills Inception Elaboration Construction Transition Business Modelling Requirements Analysis & Design Implementation Test Deployment Configuration Management Project Management Environment
Be pragmatic with this stuff (if you know it exists, of course)
Who is teaching the classics of the pre- agile era? Test-Driven Development Systems Thinking Extreme Programming y r e v Kanban i l e Pattern-Oriented Software Architecture D s s e Agile c o s r P u d UML e o fi i n u U n l a i n t o i n t a o R C Component-Based Development
So you think you're an architect
m e u s R e / e t a i V m u u l c i r r u C Err, no; you’re a t c e t i h c r A e s software architect i r p r e t n E ) e t a d - 6 0 0 2 ( y n a who just happens p m o C i g B A n g i s e d e h t r o f e to work in a l b i s n o p s e r n e e b e v a h I e s r i p r e t n e n a f o n o t i a t n e m e l large organisation p m L i M d n U a e m o s w e r d I . n o i t u l o s r e m o t s . u e d c o c a v a J e m o s e t o r w I d n a s m a g r a i d a y e l d e o r c a b e r r e o ’ u m o y g n , i c t t r i f a w n i b ( o j a e k i l d l ) u r o e h w t e i I ” t c e t h i c r a e r a w f t o s “ - ) : e . s a e p l
Software development is not a relay sport e r a w t f S o e u r t c e t h i c r A t e n m u c o D
Successful software delivery is not an implementation detail !
The irresponsible architect Cross-site scripting attacks possible; weak passwords allowed; HTTP sessions didn’t timeout; ... Basic functionality errors; No non-functional testing little or no quality (e.g. penetration testing or assurance; rework required load testing); ... late in the project because of assumptions; ...
Foolishly hoping for the best?
The irresponsible architect Cross-site scripting attacks possible; weak passwords allowed; HTTP sessions didn’t timeout; ... Basic functionality errors; No non-functional testing little or no quality (e.g. penetration testing or assurance; rework required load testing); ... late in the project because of assumptions; ... No documentation; ... Oh, did I mention this was supposed to be a “strategic platform”?
Non-functional View Process View Context Functional View Are there any significant non- Does the system implement What is this all about? What does the system do? functional requirements influencing business processes? the architecture? Architectural Architectural Logical View Interface View Constraints Principles What does the big picture look like Are there internal or external Are there any constraints Are there any principles influencing and how is the system structured? system interfaces? influencing the architecture? the architecture? Deployment View Design View Infrastructure View Operational View How will the system components be Is it clear how system components What does the target deployment How will people operate and deployed onto the target should be implemented? environment look like? support the system? infrastructure? Architecture Security View Data View Technology Selection Justification How is security handled across all How is data managed, archived, What led to the selection of the Does the chosen architecture tiers? backed-up, etc? technologies in use? “work”?
Author or architect ?
#win g n i g a n a M t c e j o r P #fail
Technical Project Managers tend to focus more on project management than technology (This is Matt; he’s approximately my height)
Serenity
Wide angle (context) S t a n d a r d ( c Macro (classes) o n t a i n e r s ) s ) t e n o n m p o ( c o o t p h l e T e Abstract Specific As developers, the code is usually our main focus
Wide angle (context) S t a n d a r d ( c Macro (classes) o n t a i n e r s ) s ) t e n o n m p o ( c o o t p h l e T e Abstract Specific Sometimes you need to step back from your IDE
Recommend
More recommend