What Does It Really Mean to Be an Architect?
Upcoming SlideShare
Loading in...5
×
 

What Does It Really Mean to Be an Architect?

on

  • 3,958 views

This presentation was the keynote at ECSA2011. It talks talks about the definition of architecture, architect and the responsibilities the architect should have in a project.

This presentation was the keynote at ECSA2011. It talks talks about the definition of architecture, architect and the responsibilities the architect should have in a project.

Statistics

Views

Total Views
3,958
Views on SlideShare
3,521
Embed Views
437

Actions

Likes
2
Downloads
60
Comments
0

5 Embeds 437

http://ronillo-ang.blogspot.com 419
http://rondroid.tumblr.com 13
http://translate.googleusercontent.com 3
https://twitter.com 1
http://a0.twimg.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

What Does It Really Mean to Be an Architect? What Does It Really Mean to Be an Architect? Presentation Transcript

  • What Does It Really Mean to Be an Architect? Eberhard Wolff Architecture and Technology Manager adesso AG13.09.11
  • About Me►  Eberhard Wolff►  Architecture & Technology Manager at adesso►  adesso is a leading IT consultancy in the German speaking region►  Speaker►  Author►  Blog: http://ewolff.com►  Twitter: @ewolff►  http://www.slideshare.net/ewolff►  eberhard.wolff@adesso.de Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Software Architect Software architect is a general term with many accepted definitions which refers to a broad range of roles. Not really well defined… Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Software ArchitectureThe software architecture of a system is the set of structuresneeded to reason about it, which comprise software elements, relations among them, and properties of both. (Won’t be talking about Enterprise Architecture) Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Software Architecture: Why We Care Defines Performance Availability non-functional Software Architecture Productivityrequirements & Maintainability Structures Software elements Security Relations quality Properties13.09.11 5 Eberhard Wolff: What Does It Really Mean to Be an Architect? Operations
  • Software Architect: Responsibilities►  Manager►  Responsibility: non-functional requirements / quality►  Tool: Define and enforce architecture►  Functional requirements covered by requirements process►  Functional requirements influence the architecture13.09.11 6 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Traditional View on Architect’s Role►  Define the architecture►  Enforce the architecture►  i.e. create frameworks►  Not necessarily any coding►  Code reviews (maybe)►  Assumptions >  Separation of labor >  Developers must be “controlled”►  Does that still work in today’s world?13.09.11 7 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Issues in the Real World►  Ivory tower architecture►  Architecture does not fit the domain►  Architecture is not in the code►  The documented architecture is different from the real architecture►  Developers don’t feel their feedback is listened to►  Either architecture is ignored►  …or project results in a failure13.09.11 8 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Agile Development i.e. ScrumWhere is Scrum Master Removes obstacles Enforces rules theArchitect Stories ? Product Team Owner Self-organizing Creates stories Implements stories13.09.11 9 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Team►  Is self organizing►  An architect might / will emerge►  …but is not planned for►  Benefit: >  Responsibility is shared >  i.e. not just the architect cares►  If the architecture / architect is not helpful, it / he will be ignored►  Less damage in the end►  Architect will see his ideas directly in action►  Better feedback►  Needs trust and collaboration13.09.11 10 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • New Challenges for Architects Role Creating an Architecture ►  Needs to collaborate with other team ►  Stories defined during the project members ►  Not all requirements known at the start ►  …and make himself useful ►  No Big Design Upfront possible ►  Supports and trusts other team members ►  Architecture needs to emerge ►  Architecture must be constantly redefined ►  Leads by experience ►  …not by title ►  More focus on code ►  Code is the reliable source for the current architecture and state of the project13.09.11 11 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • New Skills For Architects►  Even more communication►  Convince, not enforce►  Must listen to other team members►  …and use their experience and knowledge►  Must have excellent technical skills►  Must not think about architecture as stable►  i.e. must be able to change plans and adapt13.09.11 12 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Traditional Architect as a MetaphorAn architect is a persontrained in the planning,design and oversight of theconstruction of buildings.13.09.11 13 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Is “Architect” a Good Metaphor?►  Buildings are physical entities >  Hard to change►  Construction industry is established►  …and has a long history►  Buildings can be fully specified►  Specification►  Software can’t (see Agility)►  Clear separation: Architect vs. construction worker►  Common for a Software Architect to be a former developer►  …or even doing some coding13.09.11 14 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • A New Way to Think About Creating Software 1999 200113.09.11 15 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Software Craftsmanship Manifesto (2009)►  As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:►  Not only working software, >  but also well-crafted software►  Not only responding to change, >  but also steadily adding value►  Not only individuals and interactions, >  but also a community of professionals►  Not only customer collaboration, >  but also productive partnerships13.09.11 16 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Software Craftsmanship►  Quality, even perfection►  Work with code►  Apprenticeship / collaboration►  Smaller barriers between team members13.09.11 17 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Architect as a Master Craftsman►  More experienced►  Knows the tools very well►  Guides and helps others►  Incorporates feedback►  Improves the craft►  Quality►  Will work on code►  But knows the bigger picture of the project►  Education and work on the project at hand13.09.11 18 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Architect’s Experience►  Bigger “Vocabulary” >  Architecture patterns >  Basic approaches >  Frameworks, languages etc.►  Thinks in trade offs >  Knows the alternatives >  There is no black and white►  Knows what is going on in the project >  Code quality >  Current issues►  Knows how to get software into production13.09.11 19 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Code vs. Architecture►  Ultimately, code is the deliverable►  Architecture must be expressed in the code►  If the architecture is not in the code, the architect failed►  It makes sense to focus on code►  …and see whether the architecture is really implemented►  Of course architecture and its documentation are important to reach the project goal!13.09.11 20 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • What Is Wrong About Craftsmanship?►  The software is at the center►  It fails to mention what the software is created for►  Most software has a clear business goal►  At the end customers have to be happy►  Quality and how it is created must serve this goal►  Software is not a goal in itself►  http://dannorth.net/ 2011/01/11/programming-is-not-a-craft/13.09.11 21 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Responsibilities Again►  Non-functional requirements / quality >  Performance >  Availability >  Productivity >  Maintainability >  Security >  Operation readiness►  The architecture will create a compromise between these goals►  E.g. seemingly half finished software might be enough►  Even though it is not well-crafted►  See agility13.09.11 22 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Quality►  Not all parts of a system will have the same quality►  Not all team members are equally skilled►  The compromise on the quality can happen “by chance”►  …or you can steer it►  Identify core domains >  The ones that add the most value >  i.e. have a good business reason►  Might want to isolate those►  …and focus on them13.09.11 23 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Broken Windows Theory►  Once windows are not repaired…►  …vandals will break more►  …break into the building►  …►  Accepting compromises on quality is risky►  …but if you strive for ultimate quality everywhere, you will fail►  In particular with legacy software13.09.11 24 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Domain Driven Design►  “Tackling Complexity in the Heart of Software”►  E.g. Ubiquitous Language for Code, Developers and Customers13.09.11 25 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • Strategic Domain Driven Design►  Bounded Context: Model used only in a specific part of the system►  Context Map: Translate models from different parts of the system►  Anti-Corruption Layer: Make sure the core domain is not corrupted13.09.11 26 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • More Responsibilities for Architects►  Define the Core Domain►  Ensure that the Core Domain will be implemented properly►  …and won’t be compromised►  I.e. manage the overall quality►  Needs detailed domain knowledge►  Need to understand business case13.09.11 27 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • So: What Does It Really Mean to Be an Architect?13.09.11 28
  • Architect►  Cares about non-functional requirements►  Used to be clearly separated from developers►  Cannot lead “by title” >  In particular in self-organizing teams >  Will be ignored >  …or create a failure►  Communication, giving and accepting feedback►  Craftsmanship might be a better metaphor >  Apprenticeship and learning >  More focus on code►  Vocabulary (pattern, typical architectural approaches) important►  Strategic design – quality where it matters Eberhard Wolff: What Does It Really Mean to Be an Architect?