People Roles and Teams Software Architecture Lecture 27 Copyright Richard N Taylor Nenad Medvidovic and Eric M Dashofy All rights reserv Software Architecture Foundations Theory and Practice The Need The greatest architectures are the product of A single mind or A very small carefully structured team Rechtin Systems Architecting Creating Building Complex Systems 1991 p21 Every project should have exactly 1 identifiable architect For larger projects principal architect should be backed up by architect team of modest size Booch Object Solutions 1996 2 Software Architecture Foundations Theory and Practice Software Architects Architect is jack of all trades Maintainer of system s conceptual integrity Part of team Set of people with complementary skills Committed to common Purpose Performance goals Approach Hold each other accountable Life of architect is long series of locally suboptimal decisions made partly in the dark Sometimes painful 3 Software Architecture Foundations Theory and Practice Desired Skill Set Software development expertise Domain expertise Communicator Strategist Consultant Leader Technologist Cost estimator Cheerleader Politician Salesperson 4 Software Architecture Foundations Theory and Practice Blending the Skill Set May need different people skills based on Characteristics of project domain Lifecycle phase Type of architecture Enterprise vs product line vs product Distinction between junior senior architects Each architect should possess some subset of above skills What architects are usually not in a project Developers though they may prototype their ideas Managers except in small organizations 5 Software Architecture Foundations Theory and Practice Architects As Software Development Experts Must understand nuances of software development Principles Methods techniques Methodologies Tools Need not be world class software programmers Should understand ramifications of architectural choices Do not live in ivory tower Some architectural choices constrain implementation options Some implementation level techniques tools constrain architectural choices 6 Software Architecture Foundations Theory and Practice Architects As Domain Experts Software engineering expertise is not enough Problem domain nuances Maturity Stability System user profile May greatly affect selected developed architectural solutions Distribution Scale Evolvability Requires artifacts that model problem space Not solution space 7 Software Architecture Foundations Theory and Practice Team Needs Balance Shared Vocabulary D S Too little domain knowledge 8 Software Architecture Foundations Theory and Practice Team Needs Balance Shared Vocabulary D S Too little domain knowledge D S Too little SWE knowledge 9 Software Architecture Foundations Theory and Practice Team Needs Balance Shared Vocabulary D D S S Too little domain knowledge Too little SWE knowledge D S No Shared Vocabulary 10 Software Architecture Foundations Theory and Practice Team Needs Balance Shared Vocabulary D D S S Too little domain knowledge Too little SWE knowledge D S No Shared Vocabulary D S Good 11 Software Architecture Foundations Theory and Practice Architects As Communicators At least of the job Must Listen to stakeholder concerns Explain the architecture Negotiate compromises Need good communication skills Writing Speaking Presenting 12 Software Architecture Foundations Theory and Practice Architects Communicate With Managers Must relay key messages Architecture is useful important Ensure support throughout project Must listen to concerns Cost Schedule Developers Convince them that architecture is effective Justify local suboptimal choices Listen to problems Tools Methods Design choices Other software architects Ensure conceptual integrity Ensure desired system properties evolution 13 Software Architecture Foundations Theory and Practice Architects Also Communicate With System engineers Coordinate requirements solutions Explain how architecture addresses key concerns Customers Determine needs Explain how architecture addresses requirements Users Determine needs Explain how architecture addresses those needs Listen to problems Marketers Get help set goals directions Explain how architecture addresses marketing objectives 14 Software Architecture Foundations Theory and Practice Architects As Strategists Developing elegant architecture is not enough Technology is only part of picture Architecture must be right for organization Must fit organization s Business strategy Rationale behind it Business practices Planning cycles Decision making processes Must also be aware of competitors Products Strategies Processes 15 Software Architecture Foundations Theory and Practice Architects As Consultants Architects must recognize developers are their primary customer Developers Goals do not match architects Not focused on making architecture successful Focused on Satisfying functional quality and scheduling requirements Subsystems for which they are responsible 16 Software Architecture Foundations Theory and Practice Architects As Consultants cont Developers must be convinced to Learn adhere to effectively leverage architecture Architects need to make these tasks reasonably easy Document report architecturally relevant modifications Architects need to make clear what s architecturally relevant Where are load bearing walls 17 Software Architecture Foundations Theory and Practice Architects As Leaders Must be technical leader Based on knowledge achievement Command respect by ideas expertise words actions 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 New ideas solutions techniques Mentor newcomers junior people Make decisions help assure their implementation Enlist help of others in doing so 18 Software Architecture Foundations Theory and Practice Architects As Technologists Understand software development approaches E g object oriented OO component based Understand fundamental technologies Operating system networking Middleware Security Databases Graphical user interface GUI toolkits Keep on top of trends E g CORBA COM DCOM JavaBeans UML XML Demonstrated expertise in System modeling Architectural trade off analysis Tying architectural solutions to system requirements 19 Software Architecture Foundations Theory and Practice Architects As Cost Estimators Must understand financial ramifications of architectural
View Full Document