Architectural Thinking What is Architecture? ©  Ingo Arnold
WHAT Dimension WHAT Fundamental definitions WHY Motivation and requirements WHERE Views and perspectives WHEREBY Means and techniques WHO Roles and organisations HOW Methodologies and processes
What do we deal with by the way? We … Plan & Define Architect & establish Maintain & operate …  our Company’s Information System …
What do we deal with by the way? What is a Company Information System? Flight Booking System @ Lufthansa, Germany, mid 60ies
What do we deal with by the way? A Company Information System is comprised of ... Processes
What do we deal with by the way? A Company Information System is comprised of ... Function points and applications
What do we deal with by the way? A Company Information System is comprised of ... Data, Data Structures and Data Containers (Folders, Binders et al)
What do we deal with by the way? A Company Information System is comprised of ... Some sorts of technological infrastructure and underpinnings
What do we deal with by the way? What has changed is that ... „ Things“ have taken off the ground ... and become ... Virtual Clonable Shippable Configurable Investigable Deletable ..   far beyond what was  possible in the „things“  world of the mid 60ies
Architecture is not new The Solution Architect in the 60ies had to arrange processes, data, applications, tools, spaces and other means, fundamental to the given business models …
Architecture is not new …  similar to what the Solution Architects have to in 2008 ... just the means changed a bit in the meantime
Architectural disorientation Why bother?
Architectural disorientation What is architecture? What are you expected to do as an architect? How is architecture manifested? A tube A brush
Architectural disorientation How do you distinguish good from bad architecture? Where and when does architecture occur? Why is architecture to be developed – why is it useful? Whereby is architecture developed? Who is responsible for architecture? How do you approach architecture? What do you need to know as an architect?
Software is complex … and IT is everchanging!  If we continued to protect our assets as we did in 16th century, … Architectural disorientation
Software is complex … and IT is everchanging!  …  our landscape nowadays would look like this … Architectural disorientation
Software is complex … and IT is everchanging!  …  but it does not! Architectural disorientation
Architecture evolves in its context – Barcelona … Architectural disorientation
Architecture evolves in its context – Barcelona … Architectural disorientation
All too often reality We start with a „wish list“. What follows is „a concept“. A „first pilot“ is implemented. The pilot goes life. Changes are required. To implement the changes we need to deviate from the original „concept“.
All too often reality Software architectecture was created: „ Big Ball of Mud“-Pattern In computer programming, Big Ball of Mud is a term for a system or computer program that has no real distinguishable architecture. It usually includes more than one of the other anti-patterns.
All too often reality
All too often reality Maintaining a shantytown is labor-intensive and requires a broad range of skills.  One must be able to improvise repairs with the materials on-hand, and master tasks from roof repair to ad hoc sanitation.  However, there is little of the sort of skilled specialization that one sees in a mature economy.
All too often reality
All too often reality All too many of our systems are, architecturally, little more than shantytowns.  Investment in tools and infrastructure is too often inadequate.  Tools are usually primitive, and infrastructure such as libraries and frameworks, is undercapitalized.  Individual portions of the system grow unchecked, and the lack of infrastructure and architecture allows problems in one part of the system to erode and pollute adjacent portions.
Question 4 you What are symptoms of bad architecture?
Symptoms of immature architectures Results of analysis phase are not adequately considered. Holistic view of IT-System is missing. Complexity increases and becomes unmanageble. Planning and risk-management becomes difficult. Reuse of expertise as well as system building blocks is difficult. Flexibility, maintainability, interoperability become a problem. Architecture documentation is missing or not up-to-date. Steep learning curve for new staff entering the project.
Symptoms of immature architectures Redundancy of code and functionality. System‘s building blocks are heavily interdependent. Very long development and change cycles.
Symptoms of immature architectures System complexity Architecture relevance
What is architecture? Have you ever seen or touched Architecture? .. even here ..
What is architecture? We believe “No” .. Design-time  Perspective System Perspective (Physics)
What is architecture? Architecture is an inherent aspect of any system But you can’t see nor can you touch it on the system level Architecture is tangible only on the level of models and plans Architecture is mainly about quality .. not functionality Architecture has a mid- to long-term ROI .. you cannot avoid it Architecture Perspective (Models & Plans)
What is architecture? Architecture of a computer or IT-system is not immediately tangible. Nevertheless does every IT-system have an architecture There are many architecture definitions out there, which are typically comprised of the following aspects: Structure Behaviour and collaboration of architectural building blocks Discipline and methodology Architecture covers everything .. from a system‘s problem domain analysis phase up to this system‘s retirement Architecture makes complexity manageable by focussing onto only the substantial aspects of an IT-system System People
What is architecture? An Architecture defines behavior
What is architecture? An Architecture Balances Stakeholder Needs The needs of the  end user  are associated with intuitive and correct behavior, performance, reliability, usability, availability, and security. The needs of the  system administrator  are associated with intuitive behavior, administration, and tools to aid monitoring. The needs of the  marketer  are associated with competitive features, time to market, positioning with other products, and cost. The needs of the  customer  are associated with cost, stability, and schedule. The needs of the  developer  are associated with clear requirements and a simple, consistent design approach. The needs of the  project manager  are associated with predictability in the tracking of the project, schedule, productive use of resources, and budget. The needs of the  maintainer  are associated with a comprehensible, consistent, and documented design approach, as well as the ease with which modifications can be made
What is architecture? An Architecture May Conform to an Architectural Style Every well-structured software-intensive system is full of patterns. (Booch 2009) An architectural style defines a family of systems in terms of a pattern of structural organization. More specifically, an architectural style defines a vocabulary of components and connector types, and a set of constraints on how they can be combined. (Shaw 1996) An Architecture is influenced by its environment Architecture is not concerned with a system‘s fine grained structures and elements (i.e. classes, objects, algorithms) but instead with such system‘s coarse-grained components and building blocks
What is architecture? Architecture is concerned with all decisions which are difficult to be changed later on Architecture is more than just the result of an architect‘s design-activities – architecture is a science in its own right Architecture and Design are two sides of the same coin: All respective activities, decision making, ways of thinking are no different at all Architectural Decisions  just have a wide ranging impact (across the system) Design decisions  have a rather local and isolated scope (e.g. sub-system) Architecture aims at sustaining investments United Nations – Sustainability “ Sustainability means meeting the needs of the presence without compromising the needs of the future”
What is architecture? Architecture is concerned with Macro-Structures of a system. Well, here the question remains: „what are such macro-structures?“ For example, lock-strategies for persistence-stores … …  or addressing schema length (e.g. 32-bit versus 64-bit) seem pretty  low-level technical  at a first glance However, if they have a significant impact on the system’s ability to evolve and scale over time they  are  architectural
What is architecture? Architecture contributes to the non-functional capabilities of our systems, where investments are vital & crucial but also have a diminishing ROI
What is architecture? Well – and there are a few more ;-) First we make our Systems – then our Systems make us We make Software like we make cathedrals – first we make them and then we pray
What is architecture? Well – and there are a few more ;-) By looking at systems & system architectures the values and maximes by which an organisation lives can easily be derived This is similar to archaeology, where the experts derive cultural & behavioural specifics by artefacts found centuries later
What is architecture? Well – and there are a few more ;-) Do we all really well understand what we do – always?  “ A fool with a tool is still a fool” (   you know that) “ A fool with a tool is an armed fool” (   even worse) engine doesn’t run anymore Well – maybe some fuel?! Let’s have a deeper  look into there
What is architecture? Well – and there are a few more ;-) Do we all really well understand what we do always?  “ A tool with a fool is still a fool” (   you know that) “ A tool with a fool is an armed fool” (   even worse) Not a good idea!!!
What is architecture? The spirit of architecture What’s so cool about the SAPs of this world? Company A Company B Company C 20 %  customizing 80 % COTS
What is architecture? The spirit of architecture Frameworks are applied architecture Hollywood principle (    „don‘t call us – we call you“ ) Architecture constraints – it controls potential developer-freedom based on a system‘s fundamental structures (e.g. backbone process logic).
What is architecture? The spirit of architecture Frameworks are applied architecture Architecture guides.  Architecture reduces complexity by offering dedicated extension points.  Architecture frees up developers from  architectural decision  making (i.e. Backbone process logic).
What is architecture? The spirit of architecture Frameworks are applied architecture The SAP system is an  HR generic process  expert. <Company> is an expert in their specific HR process requirements. The overall architecture balances these forces and allows for both, controlled evolution and governance, as well as flexibility. Example
Architecture – Definition “ The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them ” [Bass et al]
Architecture – Definition Architecture is concerned with ... the structure and structure(s) of a system .. its individual building blocks or components .. their externally visible properties .. as well as their relationships amongst these.
Architecture – Definition Architecture is concerned with the main pillars of a computer-system – not with this system‘s details ..
Architecture – Definition .. but what the main pillars are, depends on viewpoint and perspective! Solution context A Solution context B
Architecture – Definition .. but what the main pillars are, depends on viewpoint and perspective!
Architecture – Definition Architecture contributes to the non-functional capabilities (   qualities) of a system as well as to its longevity Extensibility ( Quickly add PDF as a new UI channel ) Adaptability and changebility ( Add the role  Supervisor  to our system ) Reusability ( Reuse the  Shopping Cart  we developed for our portal ) Managability ( Grant the aquired company’s employees access to S ) Security ( Encrypt all data that goes into this database ) Availability ( Make sure the service is always up and running ) Scalability ( A marketing campaign is going to increase load on Site S ) Performance ( S is only used if search-result response time is below x )
Architecture – Definition Architecture shows the holistic whole only if all appropriate views are combined. Function / Process View Stakeholder View Component View Operational View Deployment View Host and operate Package and deploy Implement Function Serve Function 1 Function 2 Function 3
Architecture – Definition Architecture shows the holistic whole only if all appropriate views are combined .. but this should be done in order ..
Architecture – Definition Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Aarau Photo)
Architecture – Definition Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Aarau Model)
Architecture – Definition Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Public Transport)
Architecture – Definition Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Denisity of Populat.)
Architecture – Definition Architecture shows the holistic whole only if all appropriate views are combined .. as shown here (Buffer Zones)
Architecture – Definition Architecture shows the holistic whole only if all appropriate views are combined .. Zoom-Level is similarily important ..
Architecture – Definition Architecture shows the holistic whole only if all appropriate views are combined .. as filters ..
Architecture – Definition Architecture needs to be managed One System Many Systems
Architecture – Definition Architecture needs to be managed over time Yesterday .. Tomorrow
Architecture – Definition IT-Systems become increasingly more complex, which naturally leads to more specialised architectural domains and disciplines: Enterprise-Architecture. Software-Architecture. Data-Architecture. Integration-Architecture. Network-Architecture. Security-Architecture. System-Management-Architecture. Etc. One singular IT-System requires its overall architecture to take into consideration most – if not all – of the above listed areas and disciplines.
Architect The Architect  is a Technical Leader role may be fulfilled by a team understands the system development process has knowledge of his business or technology domain has technology knowledge has design skills has programming skills is a good communicator makes decisions by balancing tradoffs is aware of organisations’ politics is a negotiator
Architecting Architecting  is an art spans multiple disciplines is an ongoing activity is driven by many stakeholders often involves making tradeoffs acknowledges experience is both top-down  and  bottom-up
Architecting The benefits of Architecting The benefits of Architecting  it addresses system qualities it drives consensus it supports the planning process it drives architectural integrity it helps manage complexity it provides a basis for reuse it reduces maintenance costs it supports impact analysis

Architectural Thinking - What Is Architecture?

  • 1.
    Architectural Thinking Whatis Architecture? © Ingo Arnold
  • 2.
    WHAT Dimension WHATFundamental definitions WHY Motivation and requirements WHERE Views and perspectives WHEREBY Means and techniques WHO Roles and organisations HOW Methodologies and processes
  • 3.
    What do wedeal with by the way? We … Plan & Define Architect & establish Maintain & operate … our Company’s Information System …
  • 4.
    What do wedeal with by the way? What is a Company Information System? Flight Booking System @ Lufthansa, Germany, mid 60ies
  • 5.
    What do wedeal with by the way? A Company Information System is comprised of ... Processes
  • 6.
    What do wedeal with by the way? A Company Information System is comprised of ... Function points and applications
  • 7.
    What do wedeal with by the way? A Company Information System is comprised of ... Data, Data Structures and Data Containers (Folders, Binders et al)
  • 8.
    What do wedeal with by the way? A Company Information System is comprised of ... Some sorts of technological infrastructure and underpinnings
  • 9.
    What do wedeal with by the way? What has changed is that ... „ Things“ have taken off the ground ... and become ... Virtual Clonable Shippable Configurable Investigable Deletable .. far beyond what was possible in the „things“ world of the mid 60ies
  • 10.
    Architecture is notnew The Solution Architect in the 60ies had to arrange processes, data, applications, tools, spaces and other means, fundamental to the given business models …
  • 11.
    Architecture is notnew … similar to what the Solution Architects have to in 2008 ... just the means changed a bit in the meantime
  • 12.
  • 13.
    Architectural disorientation Whatis architecture? What are you expected to do as an architect? How is architecture manifested? A tube A brush
  • 14.
    Architectural disorientation Howdo you distinguish good from bad architecture? Where and when does architecture occur? Why is architecture to be developed – why is it useful? Whereby is architecture developed? Who is responsible for architecture? How do you approach architecture? What do you need to know as an architect?
  • 15.
    Software is complex… and IT is everchanging! If we continued to protect our assets as we did in 16th century, … Architectural disorientation
  • 16.
    Software is complex… and IT is everchanging! … our landscape nowadays would look like this … Architectural disorientation
  • 17.
    Software is complex… and IT is everchanging! … but it does not! Architectural disorientation
  • 18.
    Architecture evolves inits context – Barcelona … Architectural disorientation
  • 19.
    Architecture evolves inits context – Barcelona … Architectural disorientation
  • 20.
    All too oftenreality We start with a „wish list“. What follows is „a concept“. A „first pilot“ is implemented. The pilot goes life. Changes are required. To implement the changes we need to deviate from the original „concept“.
  • 21.
    All too oftenreality Software architectecture was created: „ Big Ball of Mud“-Pattern In computer programming, Big Ball of Mud is a term for a system or computer program that has no real distinguishable architecture. It usually includes more than one of the other anti-patterns.
  • 22.
  • 23.
    All too oftenreality Maintaining a shantytown is labor-intensive and requires a broad range of skills. One must be able to improvise repairs with the materials on-hand, and master tasks from roof repair to ad hoc sanitation. However, there is little of the sort of skilled specialization that one sees in a mature economy.
  • 24.
  • 25.
    All too oftenreality All too many of our systems are, architecturally, little more than shantytowns. Investment in tools and infrastructure is too often inadequate. Tools are usually primitive, and infrastructure such as libraries and frameworks, is undercapitalized. Individual portions of the system grow unchecked, and the lack of infrastructure and architecture allows problems in one part of the system to erode and pollute adjacent portions.
  • 26.
    Question 4 youWhat are symptoms of bad architecture?
  • 27.
    Symptoms of immaturearchitectures Results of analysis phase are not adequately considered. Holistic view of IT-System is missing. Complexity increases and becomes unmanageble. Planning and risk-management becomes difficult. Reuse of expertise as well as system building blocks is difficult. Flexibility, maintainability, interoperability become a problem. Architecture documentation is missing or not up-to-date. Steep learning curve for new staff entering the project.
  • 28.
    Symptoms of immaturearchitectures Redundancy of code and functionality. System‘s building blocks are heavily interdependent. Very long development and change cycles.
  • 29.
    Symptoms of immaturearchitectures System complexity Architecture relevance
  • 30.
    What is architecture?Have you ever seen or touched Architecture? .. even here ..
  • 31.
    What is architecture?We believe “No” .. Design-time Perspective System Perspective (Physics)
  • 32.
    What is architecture?Architecture is an inherent aspect of any system But you can’t see nor can you touch it on the system level Architecture is tangible only on the level of models and plans Architecture is mainly about quality .. not functionality Architecture has a mid- to long-term ROI .. you cannot avoid it Architecture Perspective (Models & Plans)
  • 33.
    What is architecture?Architecture of a computer or IT-system is not immediately tangible. Nevertheless does every IT-system have an architecture There are many architecture definitions out there, which are typically comprised of the following aspects: Structure Behaviour and collaboration of architectural building blocks Discipline and methodology Architecture covers everything .. from a system‘s problem domain analysis phase up to this system‘s retirement Architecture makes complexity manageable by focussing onto only the substantial aspects of an IT-system System People
  • 34.
    What is architecture?An Architecture defines behavior
  • 35.
    What is architecture?An Architecture Balances Stakeholder Needs The needs of the end user are associated with intuitive and correct behavior, performance, reliability, usability, availability, and security. The needs of the system administrator are associated with intuitive behavior, administration, and tools to aid monitoring. The needs of the marketer are associated with competitive features, time to market, positioning with other products, and cost. The needs of the customer are associated with cost, stability, and schedule. The needs of the developer are associated with clear requirements and a simple, consistent design approach. The needs of the project manager are associated with predictability in the tracking of the project, schedule, productive use of resources, and budget. The needs of the maintainer are associated with a comprehensible, consistent, and documented design approach, as well as the ease with which modifications can be made
  • 36.
    What is architecture?An Architecture May Conform to an Architectural Style Every well-structured software-intensive system is full of patterns. (Booch 2009) An architectural style defines a family of systems in terms of a pattern of structural organization. More specifically, an architectural style defines a vocabulary of components and connector types, and a set of constraints on how they can be combined. (Shaw 1996) An Architecture is influenced by its environment Architecture is not concerned with a system‘s fine grained structures and elements (i.e. classes, objects, algorithms) but instead with such system‘s coarse-grained components and building blocks
  • 37.
    What is architecture?Architecture is concerned with all decisions which are difficult to be changed later on Architecture is more than just the result of an architect‘s design-activities – architecture is a science in its own right Architecture and Design are two sides of the same coin: All respective activities, decision making, ways of thinking are no different at all Architectural Decisions just have a wide ranging impact (across the system) Design decisions have a rather local and isolated scope (e.g. sub-system) Architecture aims at sustaining investments United Nations – Sustainability “ Sustainability means meeting the needs of the presence without compromising the needs of the future”
  • 38.
    What is architecture?Architecture is concerned with Macro-Structures of a system. Well, here the question remains: „what are such macro-structures?“ For example, lock-strategies for persistence-stores … … or addressing schema length (e.g. 32-bit versus 64-bit) seem pretty low-level technical at a first glance However, if they have a significant impact on the system’s ability to evolve and scale over time they are architectural
  • 39.
    What is architecture?Architecture contributes to the non-functional capabilities of our systems, where investments are vital & crucial but also have a diminishing ROI
  • 40.
    What is architecture?Well – and there are a few more ;-) First we make our Systems – then our Systems make us We make Software like we make cathedrals – first we make them and then we pray
  • 41.
    What is architecture?Well – and there are a few more ;-) By looking at systems & system architectures the values and maximes by which an organisation lives can easily be derived This is similar to archaeology, where the experts derive cultural & behavioural specifics by artefacts found centuries later
  • 42.
    What is architecture?Well – and there are a few more ;-) Do we all really well understand what we do – always? “ A fool with a tool is still a fool” (  you know that) “ A fool with a tool is an armed fool” (  even worse) engine doesn’t run anymore Well – maybe some fuel?! Let’s have a deeper look into there
  • 43.
    What is architecture?Well – and there are a few more ;-) Do we all really well understand what we do always? “ A tool with a fool is still a fool” (  you know that) “ A tool with a fool is an armed fool” (  even worse) Not a good idea!!!
  • 44.
    What is architecture?The spirit of architecture What’s so cool about the SAPs of this world? Company A Company B Company C 20 % customizing 80 % COTS
  • 45.
    What is architecture?The spirit of architecture Frameworks are applied architecture Hollywood principle (  „don‘t call us – we call you“ ) Architecture constraints – it controls potential developer-freedom based on a system‘s fundamental structures (e.g. backbone process logic).
  • 46.
    What is architecture?The spirit of architecture Frameworks are applied architecture Architecture guides. Architecture reduces complexity by offering dedicated extension points. Architecture frees up developers from architectural decision making (i.e. Backbone process logic).
  • 47.
    What is architecture?The spirit of architecture Frameworks are applied architecture The SAP system is an HR generic process expert. <Company> is an expert in their specific HR process requirements. The overall architecture balances these forces and allows for both, controlled evolution and governance, as well as flexibility. Example
  • 48.
    Architecture – Definition“ The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them ” [Bass et al]
  • 49.
    Architecture – DefinitionArchitecture is concerned with ... the structure and structure(s) of a system .. its individual building blocks or components .. their externally visible properties .. as well as their relationships amongst these.
  • 50.
    Architecture – DefinitionArchitecture is concerned with the main pillars of a computer-system – not with this system‘s details ..
  • 51.
    Architecture – Definition.. but what the main pillars are, depends on viewpoint and perspective! Solution context A Solution context B
  • 52.
    Architecture – Definition.. but what the main pillars are, depends on viewpoint and perspective!
  • 53.
    Architecture – DefinitionArchitecture contributes to the non-functional capabilities (  qualities) of a system as well as to its longevity Extensibility ( Quickly add PDF as a new UI channel ) Adaptability and changebility ( Add the role Supervisor to our system ) Reusability ( Reuse the Shopping Cart we developed for our portal ) Managability ( Grant the aquired company’s employees access to S ) Security ( Encrypt all data that goes into this database ) Availability ( Make sure the service is always up and running ) Scalability ( A marketing campaign is going to increase load on Site S ) Performance ( S is only used if search-result response time is below x )
  • 54.
    Architecture – DefinitionArchitecture shows the holistic whole only if all appropriate views are combined. Function / Process View Stakeholder View Component View Operational View Deployment View Host and operate Package and deploy Implement Function Serve Function 1 Function 2 Function 3
  • 55.
    Architecture – DefinitionArchitecture shows the holistic whole only if all appropriate views are combined .. but this should be done in order ..
  • 56.
    Architecture – DefinitionArchitecture shows the holistic whole only if all appropriate views are combined .. as shown here (Aarau Photo)
  • 57.
    Architecture – DefinitionArchitecture shows the holistic whole only if all appropriate views are combined .. as shown here (Aarau Model)
  • 58.
    Architecture – DefinitionArchitecture shows the holistic whole only if all appropriate views are combined .. as shown here (Public Transport)
  • 59.
    Architecture – DefinitionArchitecture shows the holistic whole only if all appropriate views are combined .. as shown here (Denisity of Populat.)
  • 60.
    Architecture – DefinitionArchitecture shows the holistic whole only if all appropriate views are combined .. as shown here (Buffer Zones)
  • 61.
    Architecture – DefinitionArchitecture shows the holistic whole only if all appropriate views are combined .. Zoom-Level is similarily important ..
  • 62.
    Architecture – DefinitionArchitecture shows the holistic whole only if all appropriate views are combined .. as filters ..
  • 63.
    Architecture – DefinitionArchitecture needs to be managed One System Many Systems
  • 64.
    Architecture – DefinitionArchitecture needs to be managed over time Yesterday .. Tomorrow
  • 65.
    Architecture – DefinitionIT-Systems become increasingly more complex, which naturally leads to more specialised architectural domains and disciplines: Enterprise-Architecture. Software-Architecture. Data-Architecture. Integration-Architecture. Network-Architecture. Security-Architecture. System-Management-Architecture. Etc. One singular IT-System requires its overall architecture to take into consideration most – if not all – of the above listed areas and disciplines.
  • 66.
    Architect The Architect is a Technical Leader role may be fulfilled by a team understands the system development process has knowledge of his business or technology domain has technology knowledge has design skills has programming skills is a good communicator makes decisions by balancing tradoffs is aware of organisations’ politics is a negotiator
  • 67.
    Architecting Architecting is an art spans multiple disciplines is an ongoing activity is driven by many stakeholders often involves making tradeoffs acknowledges experience is both top-down and bottom-up
  • 68.
    Architecting The benefitsof Architecting The benefits of Architecting it addresses system qualities it drives consensus it supports the planning process it drives architectural integrity it helps manage complexity it provides a basis for reuse it reduces maintenance costs it supports impact analysis

Editor's Notes

  • #19 Donkey cart Goods Small lanes and narrow streets Short distances had to be bridged
  • #53 Whether this thing is considered a barrel for cucumber, carrots or wine or whether it’s considered a home, very much depends on viewpoint and perspective. If you don’t believe me go and talk to Diogenes
  • #63 Urban places Flora and fauna