Sunday, November 11, 2018

Enterprise Architecture

  EA role is to lay Architecture As-Is to To-Be

 
  • What is Enterprise Architecture

    • Enterprise Architecture is a collection of Strategic information that describes a business and the information and technologies necessary to operate the business.
    • Its often broken into four domains
      • Governance
      • Business (Process and Service)
      • information ( Applications and Data)
      • Technology
  • What is the value of EA?
    • Its s strategic information asset to be used to shape the Enterprise.
    • Its key to understand the current investments in IT and efficiency planning and directing future IT investments.

Zachman Framework

  • It is the fundamental structure for Enterprise Architecture
  • Its NOT the Methodology
  • It is typically depicted in 6X6 matrix with the communication interrogatives as columns and Reification Transformation as rows
  • Interrogatives includes - What, How, When, Who, Where and Why
  • Transformations - Scope, Concepts, Logic, Physics, Technology, Product
  • It provides view for Planners, Owners, Designers, Builders, Sub contractors

TOGAF ( The Open Group Architecture Framework)


  • It is a framework for Enterprise Architecture
  • It provides a comprehensive approach to the design, planning, implementation and governance of an Enterprise Architecture
  • TOAGF models Enterprise at 4 models
    • Business
    • Application
    • Data
    • Technology
  • TOGAF includes a methodology for defining IT in terms of set of building blocks. 
  • It also contains a set of tools, vocabulary, recommended standards etc.. 
What is EA Road Map
  • EA Road map describes current and target architecture and transition plan achieve the target.

SOA



  • SOA is set of design principles for building a suite of 
    • Interoperable
    • flexible
    • Reusable services
  • Principles also includes
    • Discoverable Service contracts
    • Loose coupling
    • Service Abstraction
    • Service Re-usability
    • Service autonomy
    • Service Stateless
    • Service Composability
SOA Patterns
  • ESB
    • Provides reliable platform for messages, queues, data transformations and service broker
  • Event Driven Messaging
  • File Gateway
  • Service Callback
  • Service Grid





Enterprise Architect should be well versed with 

  • Application Architecture Principles
  • Engineering Principles
  • Technology Architecture Principles
  • Data Architecture Principles
  • Information Technology Principles
  • General Principles

Application Architecture Principles

  • Start with services, Micro Services
  • Visualize Application Services
  • Control Service Access by Policy
  • Adapt to Blurred Application Boundaries
  • Protect Data Integrity
  • Think Cloud when Designing Back-End services
  • Think Mobile when designing UI or Front End
  • Design Data Model with CAP theorem
  • Use Separation of concerns
  • Use Event Processing in the Event world
  • Automate Context Discovery
  • Use in-memory data grid  & RDBMS
  • Component reusability and simplicity
  • De-coupling interfaces
  • Adherence to functional domains

Engineering Principles

  • Testability
  • Maintainability
  • Integrity
  • External Integration well defined
  • Ethics 
  • Management

Principles that also helps to build stable enterprises includes...

  • Build What Matters
    • Engineering effort is a scarce commodity. It should only be applied to the problems that "move the needle" for the company
  • Don't Repeat yourself
    • Every piece of system, sub-system, module, process must have a single, unambiguous, authoritative representation in the entire Enterprise
  • Don't live with broken windows
    • Fix Bad Designs, Legacy, Wrong decisions and poor code when you see them
  • Clear Code beats the Clever Code
    • Don't write the code that you can't debug at 3 Am (while drunk). Never name a variable like "data" or "info" if the implementation is hard to explain.
  • Be A Scientist
    • Science is systematic enterprise that builds and organizes knowledge in the form of testable explanations and predictions about the universe.
  • Collaboration On Time
    • Encourage peer support when 20% is done instead of 80% is done that allows more meaningful collaboration
  • Don't gather requirements, dig for them
    • Requirements are rarely lie on the surface. They're buried deep beneath layers of assumptions, misconceptions and politics. To think like to User work with a User.
  • Be Open
    • Constantly share the work with teammates and stakeholders. When in doubt, follow the steps: tell people the impact you're about to make, make the impact, then tell the people you made it.
  • Empathize and Respect
    • See possibilities not just problems. Respect humans not just the code.
  • Have a conviction
    • Great products and team come from the string beliefs
  • Seek Engineering maturity
    • Embrace accountability
    • Tackle Technical debt where and when it makes us faster
    • Leave it better
    • Keep Learning