SlideShare a Scribd company logo
1 of 37
Download to read offline
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
People, Roles, and
Teams
Software Architecture
Lecture 27
Software Architecture: Foundations, Theory, and Practice
The Need
● The greatest architectures are the product of
u A single mind or
u A very small, carefully structured team
● Rechtin, Systems Architecting: Creating & Building
Complex Systems, 1991, p21
● Every project should have exactly 1 identifiable architect
u For larger projects, principal architect should be
backed up by architect team of modest size
● Booch, Object Solutions, 1996
*
Software Architecture: Foundations, Theory, and Practice
Software Architects
● Architect is “jack of all trades”
● Maintainer of system’s conceptual integrity
● Part of team
u Set of people with complementary skills
u Committed to common
● Purpose
● Performance goals
● Approach
u Hold each other accountable
● Life of architect is long series of locally suboptimal decisions made
partly in the dark
u Sometimes painful
*
Software Architecture: Foundations, Theory, and Practice
Desired Skill Set
● Software development expertise
● Domain expertise
● Communicator
● Strategist
● Consultant
● Leader
● Technologist
● Cost estimator
● Cheerleader
● Politician
● Salesperson
*
Software Architecture: Foundations, Theory, and Practice
Blending the Skill Set
● May need different people & skills based on
u Characteristics of project & domain
u Lifecycle “phase”
u Type of architecture
● Enterprise vs. product-line vs. product
u Distinction between junior & senior architects
● Each architect should possess some subset of above skills
● What architects are usually not in a project
u Developers – though they may prototype their ideas
u Managers – except in small organizations
*
Software Architecture: Foundations, Theory, and Practice
Architects As Software Development
Experts
● Must understand nuances of software development
u Principles
u Methods & techniques
u Methodologies
u Tools
● Need not be world-class software programmers
● Should understand ramifications of architectural choices
u Do not live in ivory tower
u Some architectural choices constrain implementation
options
u Some implementation-level techniques & tools constrain
architectural choices
*
Software Architecture: Foundations, Theory, and Practice
Architects As Domain Experts
● Software engineering expertise is not enough
● Problem domain nuances
u Maturity
u Stability
u System user profile
● May greatly affect selected & developed architectural
solutions
u Distribution
u Scale
u Evolvability
● Requires artifacts that model problem space
u Not solution space *
Software Architecture: Foundations, Theory, and Practice
Team Needs Balance & Shared
Vocabulary
*
D
S
Too little domain
knowledge
Software Architecture: Foundations, Theory, and Practice
Team Needs Balance & Shared
Vocabulary
*
D
D
S
Too little domain
knowledge
S
Too little SWE
knowledge
Software Architecture: Foundations, Theory, and Practice
Team Needs Balance & Shared
Vocabulary
*
D
D
S
Too little domain
knowledge
S
Too little SWE
knowledge
D
S
No Shared
Vocabulary
Software Architecture: Foundations, Theory, and Practice
Team Needs Balance & Shared
Vocabulary
*
D
D
S
Too little domain
knowledge
S
Too little SWE
knowledge
D
S
No Shared
Vocabulary
D
S
Good!
Software Architecture: Foundations, Theory, and Practice
Architects As Communicators
● At least ½ of the job
● Must
u Listen to stakeholder concerns
u Explain the architecture
u Negotiate compromises
● Need good communication skills
u Writing
u Speaking
u Presenting
*
Software Architecture: Foundations, Theory, and Practice
Architects Communicate With
● Managers
u Must relay key messages
● Architecture is useful & important
● Ensure support throughout project
u Must listen to concerns
● Cost
● Schedule
● Developers
u Convince them that architecture is effective
u Justify local suboptimal choices
u Listen to problems
● Tools
● Methods
● Design choices
● Other software architects
u Ensure conceptual integrity
u Ensure desired system properties & evolution
*
Software Architecture: Foundations, Theory, and Practice
Architects Also Communicate With
● System engineers
u Coordinate requirements & solutions
u Explain how architecture addresses key concerns
● Customers
u Determine needs
u Explain how architecture addresses requirements
● Users
u Determine needs
u Explain how architecture addresses those needs
u Listen to problems
● Marketers
u Get/help set goals & directions
u Explain how architecture addresses marketing objectives
*
Software Architecture: Foundations, Theory, and Practice
Architects As Strategists
● Developing elegant architecture is not enough
u Technology is only part of picture
u Architecture must be right for organization
● Must fit organization’s
u Business strategy
u Rationale behind it
u Business practices
u Planning cycles
u Decision making processes
● Must also be aware of competitors’
u Products
u Strategies
u Processes
*
Software Architecture: Foundations, Theory, and Practice
Architects As Consultants
● Architects must recognize developers are their primary
“customer”
● Developers
u Goals do not match architects’
u Not focused on making architecture successful
u Focused on
● Satisfying functional, quality, and scheduling
requirements
● Subsystems for which they are responsible
*
Software Architecture: Foundations, Theory, and Practice
Architects As Consultants (cont.)
● Developers must be convinced to
u Learn, adhere to, & effectively leverage architecture
● Architects need to make these tasks reasonably
easy
u Document & report architecturally-relevant
modifications
● Architects need to make clear what’s
architecturally-relevant
◆ “Where are load bearing walls?”
*
Software Architecture: Foundations, Theory, and Practice
Architects As Leaders
● Must be technical leader
u Based on knowledge & achievement
u Command respect by ideas, expertise, words, & actions
u Cannot rely on position in org chart
● Must do so without managerial authority
● Ensures that design decisions, guidelines, and rules are
followed
● To improve productivity & quality, injects
u New ideas, solutions, & techniques
u Mentor newcomers & junior people
● Make decisions & help assure their implementation
u Enlist help of others in doing so
*
Software Architecture: Foundations, Theory, and Practice
Architects As Technologists
● Understand software development approaches
u E.g., object-oriented (OO) & component-based
● Understand fundamental technologies
u Operating system/networking
u Middleware
u Security
u Databases
u Graphical user interface (GUI) toolkits
● Keep on top of trends
u E.g., CORBA, COM/DCOM, JavaBeans, UML, XML
● Demonstrated expertise in
u System modeling
u Architectural trade-off analysis
u Tying architectural solutions to system requirements
*
Software Architecture: Foundations, Theory, and Practice
Architects As Cost Estimators
● Must understand financial ramifications of architectural
choices
u Green-field vs. Brown-field development
u Cost of COTS adoption
u Cost of development for reuse
u Company’s financial stability & position in marketplace
● Technologically superior solution is not always most
appropriate one
u Impact on cost & schedule
● Quick, approximate cost estimations are often sufficient
u Detailed cost estimation techniques can be applied
once set of candidate solutions is narrowed down *
Software Architecture: Foundations, Theory, and Practice
Architects As Cheerleaders
● Especially needed on long, large, complex projects
u Development teams work in trenches on small subsets of project
u Managers lose sight of overall project goals
u Customers get impatient from long wait
● Must
u Maintain high-level vision with necessary details sprinkled in
u Convince different stakeholders of architecture’s
● Beauty
● Utility
● Adaptability
● Technological impact
● Financial impact
u Keep the troops’ morale high
*
Software Architecture: Foundations, Theory, and Practice
Architects As Politicians
● Must get key organization players committed to
architecture
● Must do a lot of influencing themselves
u Find out who the key players are
u Find out what they want
u Find out the organization behind the organization
● Architects must continuously
u Listen
u Network
u Articulate
u Sell vision
u See problem from multiple viewpoints
*
Software Architecture: Foundations, Theory, and Practice
Architects as Salespeople
● For many of the above reasons, architects must sell
u Overall vision
u Technological solutions
u Key properties of architecture
u Key properties of eventual system that architecture
will directly enable
u Cost/schedule profile
u Importance of sticking to architecture
u Penalties of deviating from it
*
Software Architecture: Foundations, Theory, and Practice
Software Architecture Team
● Collection of software architects
● Typically stratified
● Team size fluctuates during life of project
u 1 architect per 10 developers during project inception
u 1 architect per 12-15 developers in later stages
● Architects may
u Become subsystem development leads
● Maintainers of grand vision on development team
● Bridges to “central” architecture team for duration
of project
u Be shifted to other projects
● After project’s architecture is sufficiently stable
*
Software Architecture: Foundations, Theory, and Practice
Role of Architecture Team
● Define software architecture
● Maintain architectural integrity of software
● Assess technical risks associated with design
● Propose order & contents of development
iterations
● Coordinate & coexist with other teams
● Assist in project management decisions
● Assist marketing in future product definition
*
Software Architecture: Foundations, Theory, and Practice
Defining Software Architecture
● The architecture team must define
u Major design major elements
u System organization/structure
u The way major elements interact
● Works with system engineers & development teams
*
Software Architecture: Foundations, Theory, and Practice
Maintaining Architectural Integrity
● The architecture team develops & maintains guidelines
for
u Design
u Programming
● Helps with reviews
● Approves
u Changes to interfaces of major components
u Departures from guidelines
● Final arbiter on aesthetics
● Assists change control board with resolving software
problems
*
Software Architecture: Foundations, Theory, and Practice
Assessing Technical Risks
● The architecture team maintains lists of perceived risks
● May propose exploratory studies or prototypes
*
Software Architecture: Foundations, Theory, and Practice
Ordering & Content Of Development
Iterations
● The architecture team determines order & contents of
iterations based on
u Selected scenarios
u Services to be studied & implemented
● Helps development teams transition from architectural
design to more detailed design
*
Software Architecture: Foundations, Theory, and Practice
Coordinate & Coexist with Other
Teams
● No structural difference between architecture
team & other teams
● Just focused on higher level issues
*
Architecture team Software Management
Development Team A Development Team B Development Team C
Integration & Test Team
feedback
Architecture design, scenarios, & guidelines
Modules, subsystems, &
tests
Software Architecture: Foundations, Theory, and Practice
Pitfalls of Software Architect
Teams
● Imbalance of skills
u Lack of software development experience
u Lack of domain expertise
● Lack of authority
u Team acts as committee
● Life in ivory tower
● Confusing tools/techniques/methodologies with
architectures
● Procrastination
*
Software Architecture: Foundations, Theory, and Practice
Pitfall: Lack Of Authority
● Problem
u What incentives are there for group leaders to
● Follow recommendations of architecture team?
● Report progress or problems to architecture team?
u Architect team
● Frequently has no explicit authority
◆ Architects are not managers
● Just another team in organization
u Problem compounded when external architect or
architecture team is hired
● Solution:
u Must influence based on skills & experience
u Must communicate *
Software Architecture: Foundations, Theory, and Practice
Pitfall: Life In Ivory Tower
● Problem
u Developers & managers must be aware of architecture team’s
existence & role
● Solution
u Team must continuously communicate with rest of personnel
u Team must be co-located with rest of project personnel
u Do not use team as retirement home for ageing developers
u Architecture team must recognize & adjust to organizational
realities
● Technological base
● Personnel issues
● Organizational politics
● Market pressures
*
Software Architecture: Foundations, Theory, and Practice
Pitfall: Imbalance Of Skills
● Problem
u Predominant expertise in one area creates imbalance
● Database
● GUI
● Networking
● Systems
u Imbalance may affect how architecture is
● Designed
● Communicated
● Evolved
● Solution
u Balanced architecture team appropriate to
● Project type & size
● Problem domain
● Personnel *
Software Architecture: Foundations, Theory, and Practice
Pitfall: Confusing Tools With
Architectures
● Problem
u Common pitfall
u Usual culprits
● Databases
● GUI
● Case tools
u More recently, the culprit is middleware
● “Our architecture is CORBA”
u Tools tend to influence architecture
● Solution
u Balanced architecture team
*
Software Architecture: Foundations, Theory, and Practice
Pitfall: Procrastination
● Problem
u Waiting until the team is convinced it is able to make the “right”
decision
u Incomplete & changing information yields indecision
u Architects’ indecision impacts other teams
● Domino effect, may paralyze entire project
● Solution
u Often better to make a decision than suspend the project
● Make educated guesses
● Document rationale for decision
● Document known consequences
● Change decision if/when better alternatives present themselves
● Be decisive
u Being an effective architect demands rapidly making tactical decisions &
living with resulting anxiety
● Suboptimal decisions based on incomplete information
*
Software Architecture: Foundations, Theory, and Practice
Summary
● Designate architect or assemble architecture team to be
creators & proponents of common system goal/vision
● Architects must be experienced at least in problem
domain & software development
● Software architect is a full-time job
● Charter of software architecture team should
u Clearly define its roles & responsibilities
u Clearly specify its authority
● Do not isolate software architecture team from the rest
of project personnel
● Avoid pitfalls
*

More Related Content

What's hot

An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software ArchitectureRahimLotfi
 
Professional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsProfessional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsLemi Orhan Ergin
 
Harvard Student Information System Implementation Update
Harvard Student Information System Implementation UpdateHarvard Student Information System Implementation Update
Harvard Student Information System Implementation Updatekevin_donovan
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software EngineeringFáber D. Giraldo
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSaravanan Manoharan
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...Simplilearn
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metricsSHREEHARI WADAWADAGI
 
Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleDhivyaa C.R
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Quality assurance and management, software engineering
Quality assurance and management, software engineeringQuality assurance and management, software engineering
Quality assurance and management, software engineeringRupesh Vaishnav
 

What's hot (20)

An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
 
Professional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsProfessional Software Development, Practices and Ethics
Professional Software Development, Practices and Ethics
 
Harvard Student Information System Implementation Update
Harvard Student Information System Implementation UpdateHarvard Student Information System Implementation Update
Harvard Student Information System Implementation Update
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
Sdlc
SdlcSdlc
Sdlc
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Documenting Software Architectures
Documenting Software ArchitecturesDocumenting Software Architectures
Documenting Software Architectures
 
Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycle
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Class notes
Class notesClass notes
Class notes
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Process models
Process modelsProcess models
Process models
 
Quality assurance and management, software engineering
Quality assurance and management, software engineeringQuality assurance and management, software engineering
Quality assurance and management, software engineering
 

Viewers also liked

Caja Navarra. Presentación Banca 2.0 - Jornada Innovación en Banca AFI 19/11/...
Caja Navarra. Presentación Banca 2.0 - Jornada Innovación en Banca AFI 19/11/...Caja Navarra. Presentación Banca 2.0 - Jornada Innovación en Banca AFI 19/11/...
Caja Navarra. Presentación Banca 2.0 - Jornada Innovación en Banca AFI 19/11/...Fernando Egido
 
We are changing the why people and developers build software
We are changing the why people and developers build softwareWe are changing the why people and developers build software
We are changing the why people and developers build softwareFrancesco Mondora
 
Pazarlamanın Geleceği: Gerçek Zamanlı Pazarlama
Pazarlamanın Geleceği: Gerçek Zamanlı PazarlamaPazarlamanın Geleceği: Gerçek Zamanlı Pazarlama
Pazarlamanın Geleceği: Gerçek Zamanlı PazarlamaEngin Çomakçı
 
Cloud Computing: IT evolution or revolution ? Answers from an European Commun...
Cloud Computing: IT evolution or revolution ? Answers from an European Commun...Cloud Computing: IT evolution or revolution ? Answers from an European Commun...
Cloud Computing: IT evolution or revolution ? Answers from an European Commun...Francesco Mondora
 
Cloud, DevOps and Opensource
Cloud,   DevOps and OpensourceCloud,   DevOps and Opensource
Cloud, DevOps and OpensourceFrancesco Mondora
 
System Analysis and Design (SAD)
System Analysis and Design (SAD)System Analysis and Design (SAD)
System Analysis and Design (SAD)Sachith Perera
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and DesignAamir Abbas
 

Viewers also liked (9)

Caja Navarra. Presentación Banca 2.0 - Jornada Innovación en Banca AFI 19/11/...
Caja Navarra. Presentación Banca 2.0 - Jornada Innovación en Banca AFI 19/11/...Caja Navarra. Presentación Banca 2.0 - Jornada Innovación en Banca AFI 19/11/...
Caja Navarra. Presentación Banca 2.0 - Jornada Innovación en Banca AFI 19/11/...
 
We are changing the why people and developers build software
We are changing the why people and developers build softwareWe are changing the why people and developers build software
We are changing the why people and developers build software
 
Pazarlamanın Geleceği: Gerçek Zamanlı Pazarlama
Pazarlamanın Geleceği: Gerçek Zamanlı PazarlamaPazarlamanın Geleceği: Gerçek Zamanlı Pazarlama
Pazarlamanın Geleceği: Gerçek Zamanlı Pazarlama
 
Cloud Computing: IT evolution or revolution ? Answers from an European Commun...
Cloud Computing: IT evolution or revolution ? Answers from an European Commun...Cloud Computing: IT evolution or revolution ? Answers from an European Commun...
Cloud Computing: IT evolution or revolution ? Answers from an European Commun...
 
Being Architect
Being ArchitectBeing Architect
Being Architect
 
Cloud, DevOps and Opensource
Cloud,   DevOps and OpensourceCloud,   DevOps and Opensource
Cloud, DevOps and Opensource
 
Capm pmo caffe 2015 photo documentation
Capm pmo caffe 2015 photo documentationCapm pmo caffe 2015 photo documentation
Capm pmo caffe 2015 photo documentation
 
System Analysis and Design (SAD)
System Analysis and Design (SAD)System Analysis and Design (SAD)
System Analysis and Design (SAD)
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and Design
 

Similar to Software architect - roles & responsabilities

27 people roles_and_teams
27 people roles_and_teams27 people roles_and_teams
27 people roles_and_teamsMajong DevJfu
 
The Profession Of IT Architecture
The Profession Of IT ArchitectureThe Profession Of IT Architecture
The Profession Of IT ArchitectureChristopher Grant
 
Architectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project LifecycleArchitectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project LifecycleDaljit Banger
 
Keeping up with Tech
Keeping up with Tech Keeping up with Tech
Keeping up with Tech Elana Krasner
 
The Role of IT Architect in Startup Company
The Role of IT Architect in Startup CompanyThe Role of IT Architect in Startup Company
The Role of IT Architect in Startup CompanySARCCOM
 
The role of an IT architect in startups
The role of an IT architect in startupsThe role of an IT architect in startups
The role of an IT architect in startupsManoj Awasthi
 
Bridging the gap: Successful collaboration between engineering & design
Bridging the gap: Successful collaboration between engineering & designBridging the gap: Successful collaboration between engineering & design
Bridging the gap: Successful collaboration between engineering & designUXDXConf
 
A Day in the Life of an Enterprise Architect (Role Play Exercise) 2016
A Day in the Life of an Enterprise Architect (Role Play Exercise) 2016A Day in the Life of an Enterprise Architect (Role Play Exercise) 2016
A Day in the Life of an Enterprise Architect (Role Play Exercise) 2016Daljit Banger
 
Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Michael Stal
 
SE_conf2 Tomer and Ram final
SE_conf2 Tomer and Ram finalSE_conf2 Tomer and Ram final
SE_conf2 Tomer and Ram finalTomer Peretz
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSADEED AMEEN
 
Se introduction lec 1
Se  introduction lec 1Se  introduction lec 1
Se introduction lec 1Amir Shahzad
 
Pradeep_Madhavan_Resume19_01_2016
Pradeep_Madhavan_Resume19_01_2016Pradeep_Madhavan_Resume19_01_2016
Pradeep_Madhavan_Resume19_01_2016Pradeep Madhavan
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptswweinmeyer79
 
Software Architecture Introduction
Software Architecture IntroductionSoftware Architecture Introduction
Software Architecture IntroductionSARCCOM
 
Software architecture introduction
Software architecture introductionSoftware architecture introduction
Software architecture introductionFreddy Munandar
 

Similar to Software architect - roles & responsabilities (20)

27 people roles_and_teams
27 people roles_and_teams27 people roles_and_teams
27 people roles_and_teams
 
26 jun06 incose_osvards
26 jun06 incose_osvards26 jun06 incose_osvards
26 jun06 incose_osvards
 
The Profession Of IT Architecture
The Profession Of IT ArchitectureThe Profession Of IT Architecture
The Profession Of IT Architecture
 
Architectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project LifecycleArchitectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project Lifecycle
 
Keeping up with Tech
Keeping up with Tech Keeping up with Tech
Keeping up with Tech
 
The Role of IT Architect in Startup Company
The Role of IT Architect in Startup CompanyThe Role of IT Architect in Startup Company
The Role of IT Architect in Startup Company
 
The role of an IT architect in startups
The role of an IT architect in startupsThe role of an IT architect in startups
The role of an IT architect in startups
 
Bridging the gap: Successful collaboration between engineering & design
Bridging the gap: Successful collaboration between engineering & designBridging the gap: Successful collaboration between engineering & design
Bridging the gap: Successful collaboration between engineering & design
 
A Day in the Life of an Enterprise Architect (Role Play Exercise) 2016
A Day in the Life of an Enterprise Architect (Role Play Exercise) 2016A Day in the Life of an Enterprise Architect (Role Play Exercise) 2016
A Day in the Life of an Enterprise Architect (Role Play Exercise) 2016
 
Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Oop 2014 sw architekt v3
Oop 2014 sw architekt v3
 
SE_conf2 Tomer and Ram final
SE_conf2 Tomer and Ram finalSE_conf2 Tomer and Ram final
SE_conf2 Tomer and Ram final
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
I want to be an IT Architect
I want to be an IT ArchitectI want to be an IT Architect
I want to be an IT Architect
 
Se introduction lec 1
Se  introduction lec 1Se  introduction lec 1
Se introduction lec 1
 
Pradeep_Madhavan_Resume19_01_2016
Pradeep_Madhavan_Resume19_01_2016Pradeep_Madhavan_Resume19_01_2016
Pradeep_Madhavan_Resume19_01_2016
 
The Role of the Architect
The Role of the ArchitectThe Role of the Architect
The Role of the Architect
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture concepts
 
chapter 1.pdf
chapter 1.pdfchapter 1.pdf
chapter 1.pdf
 
Software Architecture Introduction
Software Architecture IntroductionSoftware Architecture Introduction
Software Architecture Introduction
 
Software architecture introduction
Software architecture introductionSoftware architecture introduction
Software architecture introduction
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Software architect - roles & responsabilities

  • 1. Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. People, Roles, and Teams Software Architecture Lecture 27
  • 2. Software Architecture: Foundations, Theory, and Practice The Need ● The greatest architectures are the product of u A single mind or u A very small, carefully structured team ● Rechtin, Systems Architecting: Creating & Building Complex Systems, 1991, p21 ● Every project should have exactly 1 identifiable architect u For larger projects, principal architect should be backed up by architect team of modest size ● Booch, Object Solutions, 1996 *
  • 3. Software Architecture: Foundations, Theory, and Practice Software Architects ● Architect is “jack of all trades” ● Maintainer of system’s conceptual integrity ● Part of team u Set of people with complementary skills u Committed to common ● Purpose ● Performance goals ● Approach u Hold each other accountable ● Life of architect is long series of locally suboptimal decisions made partly in the dark u Sometimes painful *
  • 4. Software Architecture: Foundations, Theory, and Practice Desired Skill Set ● Software development expertise ● Domain expertise ● Communicator ● Strategist ● Consultant ● Leader ● Technologist ● Cost estimator ● Cheerleader ● Politician ● Salesperson *
  • 5. Software Architecture: Foundations, Theory, and Practice Blending the Skill Set ● May need different people & skills based on u Characteristics of project & domain u Lifecycle “phase” u Type of architecture ● Enterprise vs. product-line vs. product u Distinction between junior & senior architects ● Each architect should possess some subset of above skills ● What architects are usually not in a project u Developers – though they may prototype their ideas u Managers – except in small organizations *
  • 6. Software Architecture: Foundations, Theory, and Practice Architects As Software Development Experts ● Must understand nuances of software development u Principles u Methods & techniques u Methodologies u Tools ● Need not be world-class software programmers ● Should understand ramifications of architectural choices u Do not live in ivory tower u Some architectural choices constrain implementation options u Some implementation-level techniques & tools constrain architectural choices *
  • 7. Software Architecture: Foundations, Theory, and Practice Architects As Domain Experts ● Software engineering expertise is not enough ● Problem domain nuances u Maturity u Stability u System user profile ● May greatly affect selected & developed architectural solutions u Distribution u Scale u Evolvability ● Requires artifacts that model problem space u Not solution space *
  • 8. Software Architecture: Foundations, Theory, and Practice Team Needs Balance & Shared Vocabulary * D S Too little domain knowledge
  • 9. Software Architecture: Foundations, Theory, and Practice Team Needs Balance & Shared Vocabulary * D D S Too little domain knowledge S Too little SWE knowledge
  • 10. Software Architecture: Foundations, Theory, and Practice Team Needs Balance & Shared Vocabulary * D D S Too little domain knowledge S Too little SWE knowledge D S No Shared Vocabulary
  • 11. Software Architecture: Foundations, Theory, and Practice Team Needs Balance & Shared Vocabulary * D D S Too little domain knowledge S Too little SWE knowledge D S No Shared Vocabulary D S Good!
  • 12. Software Architecture: Foundations, Theory, and Practice Architects As Communicators ● At least ½ of the job ● Must u Listen to stakeholder concerns u Explain the architecture u Negotiate compromises ● Need good communication skills u Writing u Speaking u Presenting *
  • 13. Software Architecture: Foundations, Theory, and Practice Architects Communicate With ● Managers u Must relay key messages ● Architecture is useful & important ● Ensure support throughout project u Must listen to concerns ● Cost ● Schedule ● Developers u Convince them that architecture is effective u Justify local suboptimal choices u Listen to problems ● Tools ● Methods ● Design choices ● Other software architects u Ensure conceptual integrity u Ensure desired system properties & evolution *
  • 14. Software Architecture: Foundations, Theory, and Practice Architects Also Communicate With ● System engineers u Coordinate requirements & solutions u Explain how architecture addresses key concerns ● Customers u Determine needs u Explain how architecture addresses requirements ● Users u Determine needs u Explain how architecture addresses those needs u Listen to problems ● Marketers u Get/help set goals & directions u Explain how architecture addresses marketing objectives *
  • 15. Software Architecture: Foundations, Theory, and Practice Architects As Strategists ● Developing elegant architecture is not enough u Technology is only part of picture u Architecture must be right for organization ● Must fit organization’s u Business strategy u Rationale behind it u Business practices u Planning cycles u Decision making processes ● Must also be aware of competitors’ u Products u Strategies u Processes *
  • 16. Software Architecture: Foundations, Theory, and Practice Architects As Consultants ● Architects must recognize developers are their primary “customer” ● Developers u Goals do not match architects’ u Not focused on making architecture successful u Focused on ● Satisfying functional, quality, and scheduling requirements ● Subsystems for which they are responsible *
  • 17. Software Architecture: Foundations, Theory, and Practice Architects As Consultants (cont.) ● Developers must be convinced to u Learn, adhere to, & effectively leverage architecture ● Architects need to make these tasks reasonably easy u Document & report architecturally-relevant modifications ● Architects need to make clear what’s architecturally-relevant ◆ “Where are load bearing walls?” *
  • 18. Software Architecture: Foundations, Theory, and Practice Architects As Leaders ● Must be technical leader u Based on knowledge & achievement u Command respect by ideas, expertise, words, & actions u Cannot rely on position in org chart ● Must do so without managerial authority ● Ensures that design decisions, guidelines, and rules are followed ● To improve productivity & quality, injects u New ideas, solutions, & techniques u Mentor newcomers & junior people ● Make decisions & help assure their implementation u Enlist help of others in doing so *
  • 19. Software Architecture: Foundations, Theory, and Practice Architects As Technologists ● Understand software development approaches u E.g., object-oriented (OO) & component-based ● Understand fundamental technologies u Operating system/networking u Middleware u Security u Databases u Graphical user interface (GUI) toolkits ● Keep on top of trends u E.g., CORBA, COM/DCOM, JavaBeans, UML, XML ● Demonstrated expertise in u System modeling u Architectural trade-off analysis u Tying architectural solutions to system requirements *
  • 20. Software Architecture: Foundations, Theory, and Practice Architects As Cost Estimators ● Must understand financial ramifications of architectural choices u Green-field vs. Brown-field development u Cost of COTS adoption u Cost of development for reuse u Company’s financial stability & position in marketplace ● Technologically superior solution is not always most appropriate one u Impact on cost & schedule ● Quick, approximate cost estimations are often sufficient u Detailed cost estimation techniques can be applied once set of candidate solutions is narrowed down *
  • 21. Software Architecture: Foundations, Theory, and Practice Architects As Cheerleaders ● Especially needed on long, large, complex projects u Development teams work in trenches on small subsets of project u Managers lose sight of overall project goals u Customers get impatient from long wait ● Must u Maintain high-level vision with necessary details sprinkled in u Convince different stakeholders of architecture’s ● Beauty ● Utility ● Adaptability ● Technological impact ● Financial impact u Keep the troops’ morale high *
  • 22. Software Architecture: Foundations, Theory, and Practice Architects As Politicians ● Must get key organization players committed to architecture ● Must do a lot of influencing themselves u Find out who the key players are u Find out what they want u Find out the organization behind the organization ● Architects must continuously u Listen u Network u Articulate u Sell vision u See problem from multiple viewpoints *
  • 23. Software Architecture: Foundations, Theory, and Practice Architects as Salespeople ● For many of the above reasons, architects must sell u Overall vision u Technological solutions u Key properties of architecture u Key properties of eventual system that architecture will directly enable u Cost/schedule profile u Importance of sticking to architecture u Penalties of deviating from it *
  • 24. Software Architecture: Foundations, Theory, and Practice Software Architecture Team ● Collection of software architects ● Typically stratified ● Team size fluctuates during life of project u 1 architect per 10 developers during project inception u 1 architect per 12-15 developers in later stages ● Architects may u Become subsystem development leads ● Maintainers of grand vision on development team ● Bridges to “central” architecture team for duration of project u Be shifted to other projects ● After project’s architecture is sufficiently stable *
  • 25. Software Architecture: Foundations, Theory, and Practice Role of Architecture Team ● Define software architecture ● Maintain architectural integrity of software ● Assess technical risks associated with design ● Propose order & contents of development iterations ● Coordinate & coexist with other teams ● Assist in project management decisions ● Assist marketing in future product definition *
  • 26. Software Architecture: Foundations, Theory, and Practice Defining Software Architecture ● The architecture team must define u Major design major elements u System organization/structure u The way major elements interact ● Works with system engineers & development teams *
  • 27. Software Architecture: Foundations, Theory, and Practice Maintaining Architectural Integrity ● The architecture team develops & maintains guidelines for u Design u Programming ● Helps with reviews ● Approves u Changes to interfaces of major components u Departures from guidelines ● Final arbiter on aesthetics ● Assists change control board with resolving software problems *
  • 28. Software Architecture: Foundations, Theory, and Practice Assessing Technical Risks ● The architecture team maintains lists of perceived risks ● May propose exploratory studies or prototypes *
  • 29. Software Architecture: Foundations, Theory, and Practice Ordering & Content Of Development Iterations ● The architecture team determines order & contents of iterations based on u Selected scenarios u Services to be studied & implemented ● Helps development teams transition from architectural design to more detailed design *
  • 30. Software Architecture: Foundations, Theory, and Practice Coordinate & Coexist with Other Teams ● No structural difference between architecture team & other teams ● Just focused on higher level issues * Architecture team Software Management Development Team A Development Team B Development Team C Integration & Test Team feedback Architecture design, scenarios, & guidelines Modules, subsystems, & tests
  • 31. Software Architecture: Foundations, Theory, and Practice Pitfalls of Software Architect Teams ● Imbalance of skills u Lack of software development experience u Lack of domain expertise ● Lack of authority u Team acts as committee ● Life in ivory tower ● Confusing tools/techniques/methodologies with architectures ● Procrastination *
  • 32. Software Architecture: Foundations, Theory, and Practice Pitfall: Lack Of Authority ● Problem u What incentives are there for group leaders to ● Follow recommendations of architecture team? ● Report progress or problems to architecture team? u Architect team ● Frequently has no explicit authority ◆ Architects are not managers ● Just another team in organization u Problem compounded when external architect or architecture team is hired ● Solution: u Must influence based on skills & experience u Must communicate *
  • 33. Software Architecture: Foundations, Theory, and Practice Pitfall: Life In Ivory Tower ● Problem u Developers & managers must be aware of architecture team’s existence & role ● Solution u Team must continuously communicate with rest of personnel u Team must be co-located with rest of project personnel u Do not use team as retirement home for ageing developers u Architecture team must recognize & adjust to organizational realities ● Technological base ● Personnel issues ● Organizational politics ● Market pressures *
  • 34. Software Architecture: Foundations, Theory, and Practice Pitfall: Imbalance Of Skills ● Problem u Predominant expertise in one area creates imbalance ● Database ● GUI ● Networking ● Systems u Imbalance may affect how architecture is ● Designed ● Communicated ● Evolved ● Solution u Balanced architecture team appropriate to ● Project type & size ● Problem domain ● Personnel *
  • 35. Software Architecture: Foundations, Theory, and Practice Pitfall: Confusing Tools With Architectures ● Problem u Common pitfall u Usual culprits ● Databases ● GUI ● Case tools u More recently, the culprit is middleware ● “Our architecture is CORBA” u Tools tend to influence architecture ● Solution u Balanced architecture team *
  • 36. Software Architecture: Foundations, Theory, and Practice Pitfall: Procrastination ● Problem u Waiting until the team is convinced it is able to make the “right” decision u Incomplete & changing information yields indecision u Architects’ indecision impacts other teams ● Domino effect, may paralyze entire project ● Solution u Often better to make a decision than suspend the project ● Make educated guesses ● Document rationale for decision ● Document known consequences ● Change decision if/when better alternatives present themselves ● Be decisive u Being an effective architect demands rapidly making tactical decisions & living with resulting anxiety ● Suboptimal decisions based on incomplete information *
  • 37. Software Architecture: Foundations, Theory, and Practice Summary ● Designate architect or assemble architecture team to be creators & proponents of common system goal/vision ● Architects must be experienced at least in problem domain & software development ● Software architect is a full-time job ● Charter of software architecture team should u Clearly define its roles & responsibilities u Clearly specify its authority ● Do not isolate software architecture team from the rest of project personnel ● Avoid pitfalls *