The Role Of An Architect

98
The Role of an Architect The Role of an Architect Mike Vincent Mike Vincent http://mvasoftware.com http://mvasoftware.com MSDN MSDN Developer Track Developer Track

description

Mike Vincent's talk at TechDays Orange Country November 2008

Transcript of The Role Of An Architect

Page 1: The Role Of An Architect

The Role of an ArchitectThe Role of an ArchitectMike VincentMike Vincenthttp://mvasoftware.comhttp://mvasoftware.com

MSDN MSDN Developer TrackDeveloper Track

Page 2: The Role Of An Architect

Text and Wireless info

• Survey Bluetooth opt in Text “survey” to 95495 Privacy policy

• Resources on Demand Text “ThursATwo” to 95495 Respond with preferred email

address Resources/links from this

session will be pushed to you via email

• Wireless internet available in the lobby area

• SSID: “TechDays”, no passcode

• Provided by iBahn, hospitality broadband leader

• Internet kiosks also available in the registration area after check-in

Text Messaging Wireless Internet

Page 3: The Role Of An Architect

Today’s Outline

• Why architects exist• What architects do• Why organizations need them• What one needs to know to be one• Where we are going as a profession

Page 4: The Role Of An Architect

The Role of an Architect

The role of the IT architect is to solve a problem by defining a system that can be implemented using technology.

Good architects define systems by applying abstract knowledge and proven methods to a set of technologies with the goal of creating an extendible and maintainable solution.

Page 5: The Role Of An Architect

The Role of an Architect

“Architects are seasoned, well-balanced professionals with good analytical and communication skills that raise the long-term success of IT projects.

“There are four core tenets I seek in architects in order to call them rock-solid role models in IT architecture profession:

– They should be actively practicing architects– They should  communicate up (to business owners), down (to

technologists), and across (to other architects)– They should bring predictability and repeatable success to IT projects– They should have a vendor-neutral approach when creating architectures”

-- Miha Kralj, Architect on Microsoft’s Architecture Strategy Team

Page 6: The Role Of An Architect

The Role of an Architect

“An Architect provides the bridge and translation point between a business owner’s vision/intent and a technologists implementation of a system.

They are responsible for defining and selling the shared system vision, designing the structure and cross cutting concerns of the system, and steering and measuring the ultimate implementation of the system to deliver business value.”

-- Graham Elliott, Architect with Microsoft Consulting Services in Australia

Page 7: The Role Of An Architect

Architect Roles

• Enterprise

• Solution

• Software

• Technical

• Information

• Database

• IT

• Business

• Security

• etc.

Page 8: The Role Of An Architect

Architect Roles

• Enterprise

• Solution

• Software

• Technical

• Information

• Database

• IT

• Business

• Security

• etc.

Page 9: The Role Of An Architect

Compare to Building Architecture

• Gather requirements, Understand client needs

• Conceptualize• Create design• Refine with client• Prepare detailed plans

and specifications• Act as advocate of client

in execution of design

• Gather requirements, Understand client needs

• Conceptualize• Create design• Refine with client• Prepare prototype and

detailed design• Act as advocate of client

in execution of design

Building Architect IT Architect

Page 10: The Role Of An Architect

A Lot of Similarities, What’s Different

Work Down Value Up

Page 11: The Role Of An Architect

What We Do

Definition Delivery

Page 12: The Role Of An Architect

What We Do - Definition

Management Management of non-of non-

functional functional requirementsrequirements

Architecture Architecture definitiondefinition

Architecture Architecture collaborationcollaboration

Technology Technology selectionselection

Architecture Architecture evaluationevaluation

Definition

Page 13: The Role Of An Architect

What We Do - Definition

Management Management of non-of non-

functional functional requirementsrequirements

Architecture definition

Architecture collaboration

Technology selection

Architecture evaluation

Definition

Page 14: The Role Of An Architect

What We Do - Definition

Management of non-

functional requirements

Architecture Architecture definitiondefinition

Architecture collaboration

Technology selection

Architecture evaluation

Definition

Page 15: The Role Of An Architect

What We Do - Definition

Management of non-

functional requirements

Architecture definition

Architecture collaboration

Technology Technology selectionselection

Architecture evaluation

Definition

Page 16: The Role Of An Architect

What We Do - Definition

Management of non-

functional requirements

Architecture definition

Architecture collaboration

Technology selection

Architecture Architecture evaluationevaluation

Definition

Page 17: The Role Of An Architect

What We Do - Definition

Management of non-

functional requirements

Architecture definition

Architecture Architecture collaborationcollaboration

Technology selection

Architecture evaluation

Definition

Page 18: The Role Of An Architect

Definition

Page 19: The Role Of An Architect

What We Do - Delivery

Ownership of Ownership of the bigger the bigger

picturepictureLeadershipLeadership

Design, Design, development development and testingand testing

Coaching Coaching and and

mentoringmentoring

Quality Quality assuranceassurance

Delivery

Page 20: The Role Of An Architect

What We Do - Delivery

Ownership of Ownership of the bigger the bigger

picturepictureLeadership

Design, development and testing

Coaching and

mentoring

Quality assurance

Delivery

Page 21: The Role Of An Architect

What We Do - Delivery

Ownership of the bigger

pictureLeadershipLeadership

Design, development and testing

Coaching and

mentoring

Quality assurance

Delivery

Page 22: The Role Of An Architect

What We Do - Delivery

Ownership of the bigger

pictureLeadership

Design, development and testing

Coaching Coaching and and

mentoringmentoring

Quality assurance

Delivery

Page 23: The Role Of An Architect

What We Do - Delivery

Ownership of the bigger

pictureLeadership

Design, development and testing

Coaching and

mentoring

Quality assuranceassurance

Delivery

Page 24: The Role Of An Architect

What We Do - Delivery

Ownership of the bigger

pictureLeadership

Design, Design, development development and testingand testing

Coaching and

mentoring

Quality assurance

Delivery

Page 25: The Role Of An Architect

Delivery

Page 26: The Role Of An Architect

Choosing the Right Tools for the Job

• Managing your SDLC process

• Consider a development framework

• COTS components• Ajax• Silverlight• Dynamic Languages• Functional Languages

• LINQ• Do you need a rules

engine?• Connectivity• Messaging• Data transformations• Do you need workflow?• Scalability• Security

Page 27: The Role Of An Architect

Managing Your SDLC Process

• Software architecture is more than an overall guide to system design and construction for developers. As architects we have a responsibility to keep IT and the business stakeholders requirements in alignment.

• Software Development Life Cycle process management– Why– Benefits

Page 28: The Role Of An Architect

Managing Your SDLC Process

• Process methodology– CMMI– Agile– RUP– Scrum– Waterfall

Page 29: The Role Of An Architect

Agile MSF

Page 30: The Role Of An Architect

Consider a Development Framework

• A Framework facilitates software development with a degree of architectural consistency by allowing developers to focus on solving business problems rather than spending time and effort on low level ‘plumbing’ issues.

Page 31: The Role Of An Architect

Development Frameworks

• Foundation classes• Application blocks• Software factories• Commercial frameworks• Open source frameworks

Page 32: The Role Of An Architect

Development Frameworks

• Solve specific problems• May be broadly or narrowly focused• When adopting a framework you should understand and

agree to play by the rules• Can provide more than just plumbing

– Rapid development (although most frameworks are not necessarily RAD environments

– Development consistency in your shop

• One size does not fit all

Page 33: The Role Of An Architect

COTS Components and Applications

• Commercial off the shelf components provide a broad and rich variety of pre built and tested tools, components and utilities.

• Speed up development• Provide users with rich functionality• Solutions to common requirements• Solutions to very specific requirements

• An ERP system

Page 34: The Role Of An Architect

The Right Technology Mix

• LINQ• Ajax• Silverlight• Dynamic Languages• Functional Languages

Page 35: The Role Of An Architect

Do You Need a Rules Engine

Page 36: The Role Of An Architect

What is a Rules Engine

• A software system that contains rules on behalf of another system

• Business rules guide the decision-making behavior of all business processes

• Business rules are the conditional criteria against which factual variables are evaluated to determine an appropriate business action.

• Provides a means to classify and manage rules in a centralized location.

Page 37: The Role Of An Architect

Why Use A Rules Engine

• Change• Maintainability• Separate rules from implementation methods• Extensibility of requirements• Ownership of rules• Preserve rule comprehensibility• Enable dynamic binding• Don’t have to recompile to implement changes

Page 38: The Role Of An Architect

Connectivity

• Business needs

– Support Process Improvement

– Build business

– Add partners

– Grow geographically

– Be agile

– Get ahead of the competition

– Respond to change

– Reduce total cost of ownership

– Reduce and control operations costs

Page 39: The Role Of An Architect

Connectivity – SOA, Why?

• Improved adaptability• Improved agility

Respond to business needs in near real-time

• Functional reusability Eliminate the need for large scale rip and replace

• Independent change management Focus on configuration rather than programming

• Interoperability instead of point-to-point integration Loosely coupled framework, services in network

• Orchestrate rather than integrate Configuration rather than development to deliver business needs

Page 40: The Role Of An Architect

Shift to a Service-Oriented Architecture

• Function oriented

• Build to last

• Prolonged development cycles

• Process oriented

• Build to change

• Incrementally built and deployed

FromFrom ToTo

Application silos Tightly coupled Object oriented Known implementation

Orchestrated solutions Loosely coupled Message oriented Abstraction

Page 41: The Role Of An Architect

SOA Start-up Checklist

• Decide What Functionality to Expose• Understand Your Business• Invest in SOA Management or an ESB• Keep a Close Eye on Underlying Application Platforms• Plan for a Registry and Repository• Consider Hardware Acceleration• Decide if you Need a Firewall

Page 42: The Role Of An Architect

Messaging

• How do I integrate multiple applications?– File transfer– Shared Database– Remoting– XML

Page 43: The Role Of An Architect

Messaging - Desirable Characteristics

• Frequent• Immediate• De-coupled• Asynchronous • Reliable• Efficient

Page 44: The Role Of An Architect

Messaging – Basic Concepts

• Channels• Messages• Pipes and Filters• Routing• Transformation• Endpoints

Page 45: The Role Of An Architect

Messaging with an Enterprise Service Bus

• Use messaging to transfer packets frequently, immediately, reliably and asynchronously using customizable formats

Page 46: The Role Of An Architect

Data Transformations

• Data transformation is the mapping and conversion of data from one format to another– XML-to-XML– XML-to-nonXML– nonXML-to-XML

• Typically implemented with standards based tools– XSLT– XQuery

Page 47: The Role Of An Architect

Data Transformations

• Powerful GUI based transformations tools– Mappers – Drag and Drop

– Code – Type and Type quote.name = priceQuoteDoc.customerName;

quote.address = StringFormat(“{0} {1} {2} {3} {4}”, priceQuoteDoc.shipAddress.street, priceQuoteDoc.shipAddress.city, priceQuoteDoc.shipAddress.state, priceQuoteDoc.shipAddress.zip );

Page 48: The Role Of An Architect

Data Transformations

• Complex Mapping

Page 49: The Role Of An Architect

Data Transformations

• Transformations– Batch– De-batch– Legacy– Standards

• EDI HL7 HIPPA SWIFT

– Internal/Canonical

• Exposed to Business

Page 50: The Role Of An Architect

Orchestration and Workflow

• Manage process execution– Sequential– Parallel– Long running

• Manage human workflow– Process interaction

Page 51: The Role Of An Architect

Workflow

Rules-driven Activities

Step2

Step1Rule1Rule1

Rule2Rule2

DataRules + data statedrive processing order

•Data-driven•Simple Conditions, complex Policies •Constrained Activity Group

State Machine Workflow

State2

State1EventEvent

EventEvent

External events drive processingorder•Reactive, event-driven

•Skip/re-work, exception handling•Graph metaphor

Sequential WorkflowStep1

Step2

Sequentialstructure prescribesprocessing order

•Prescriptive, formal•Automation scenarios•Flowchart metaphor

Page 52: The Role Of An Architect

Scalability

• Scale out• Scale up• Use web services to scale

– Windows Azure

Page 53: The Role Of An Architect

Security

• Good security is not a bolt on• Platforms and components you use contribute to the

overall security of your solution• You are responsible for the security of your integration• Review with best practices

Page 54: The Role Of An Architect

Security – Frame of Reference

• Configuration Management• Data Protection in Storage and Transit• Authentication• Authorization• User & Session Management• Data Validation• Error Handling & Exception Management• Auditing and Logging

Page 55: The Role Of An Architect

Why Organizations Need Us

Page 56: The Role Of An Architect

Why Organizations Need Us

• A successful architecture forms the platform for strategic advantage

Page 57: The Role Of An Architect

Why Organizations Need Us

• A successful architecture forms the platform for strategic advantage o Lack of architecture bonds the organization

inescapably to its past

Page 58: The Role Of An Architect

Why Organizations Need Us

• A successful architecture forms the platform for strategic advantage o Lack of architecture bonds the organization

inescapably to its pasto Legacy systems are expensive and hard to

change

Page 59: The Role Of An Architect

Why Organizations Need Us

• A successful architecture forms the platform for strategic advantage o Lack of architecture bonds the organization

inescapably to its pasto Legacy systems are expensive and hard to

change o But replacing them threatens the very "life" of

the organization

Page 60: The Role Of An Architect

Why Organizations Need Us

• Symptoms of architectural decay

Page 61: The Role Of An Architect

Why Organizations Need Us

• Symptoms of architectural decayo Brittle monolithic systems

Page 62: The Role Of An Architect

Why Organizations Need Us

• Symptoms of architectural decayo Brittle monolithic systems o Silo applications

Page 63: The Role Of An Architect

Why Organizations Need Us

• Symptoms of architectural decayo Brittle monolithic systems o Silo applicationso Long and unpredictable development times

Page 64: The Role Of An Architect

Why Organizations Need Us

• We need architecture to

Page 65: The Role Of An Architect

Why Organizations Need Us

• We need architecture to o Break the chains of our corporate legacy

Page 66: The Role Of An Architect

Why Organizations Need Us

• We need architecture to o Break the chains of our corporate legacy o Build systems that fit the environment

Page 67: The Role Of An Architect

Why Organizations Need Us

• We need architecture to o Break the chains of our corporate legacy o Build systems that fit the environment o Adapt with the environment as it changes

Page 68: The Role Of An Architect

Why Organizations Need Us

Whether we seek to lead through innovation, customer intimacy or operational excellence, Architecture is the essential foundation for

Page 69: The Role Of An Architect

Why Organizations Need Us

Whether we seek to lead through innovation, customer intimacy or operational excellence, Architecture is the essential foundation for

o Agility

Page 70: The Role Of An Architect

Why Organizations Need Us

Whether we seek to lead through innovation, customer intimacy or operational excellence, Architecture is the essential foundation for

o AgilityoResponsiveness

Page 71: The Role Of An Architect

Why Organizations Need Us

Whether we seek to lead through innovation, customer intimacy or operational excellence, Architecture is the essential foundation for

o AgilityoResponsivenesso Effectiveness 

Page 72: The Role Of An Architect

Why Organizations Need Us

• Architecture

Page 73: The Role Of An Architect

Why Organizations Need Us

• Architectureo Addresses complexity

Page 74: The Role Of An Architect

Why Organizations Need Us

• Architectureo Addresses complexityo Leaves the team mind-space open to

innovation

Page 75: The Role Of An Architect

Why Organizations Need Us

• Architectureo Addresses complexityo Leaves the team mind-space open to

innovation o Is the enabler for reliable systems

Page 76: The Role Of An Architect

Why Organizations Need Us

• Architectureo Addresses complexityo Leaves the team mind-space open to

innovation o Is the enabler for reliable systems o Is solutions developed in "Internet time"

Page 77: The Role Of An Architect

Why Organizations Need Us

• Architectureo Addresses complexityo Leaves the team mind-space open to

innovation o Is the enabler for reliable systems o Is solutions developed in "Internet time" o Is systems that scale

Page 78: The Role Of An Architect

Why Organizations Need Us

• Architectureo Addresses complexityo Leaves the team mind-space open to innovation o Is the enabler for reliable systems o Is solutions developed in "Internet time" o Is systems that scaleo Is systems that "Wow" customers with an

individualized experience

Page 79: The Role Of An Architect

IT Architect Skills

Page 80: The Role Of An Architect

IT Architect Skills

• Domain Knowledge– Horizontal– Vertical

Page 81: The Role Of An Architect

IT Architect Skills

• Domain Knowledge– Horizontal– Vertical

• Conceptual Thinking– Communication

Page 82: The Role Of An Architect

IT Architect Skills

• Domain Knowledge– Horizontal– Vertical

• Conceptual Thinking– Communication

• Patterns– More communication

Page 83: The Role Of An Architect

IT Architect Skills

• Domain Knowledge– Horizontal– Vertical

• Conceptual Thinking– Communication

• Patterns– More communication

• Technical– Code– YAGNI– Understand where technologies are applicable

Page 84: The Role Of An Architect

Soft Skills

Page 85: The Role Of An Architect

Soft Skills

Page 86: The Role Of An Architect

Architect Competency Domains

Page 87: The Role Of An Architect

Technology

Page 88: The Role Of An Architect

Business Strategy

Page 89: The Role Of An Architect

Organizational Politics

Page 90: The Role Of An Architect

Consulting

Page 91: The Role Of An Architect

Leadership

Page 92: The Role Of An Architect

Building Our Profession

• – The IT Environment – Business Technology Strategy – Design – Human Dynamics – Quality Attributes – Software Architecture – Infrastructure

http://www.iasahome.org/web/home/skillset

Page 93: The Role Of An Architect

Body of Knowledge - ArcBOK

Page 94: The Role Of An Architect

Education

• Formal IT Architecture education is evolvingo We are a few years away from degree programso Extended education certificate programso IASA

• Fundamentals of IT Architecture Courses

• Software Architecture Courses

• Infrastructure Architecture Courses

• Business Architecture Courses

http://www.iasahome.org/c/portal/layout?p_l_id=PUB.9871.49

Page 95: The Role Of An Architect

Certification

• Microsoft Certified Architect• The Open Group Architecture Framework

• Control our professional destiny– Will we be regulated?– Influence and guide regulators to optimal decisions– Avoid knee-jerk, politically guided decisions in haste

Page 96: The Role Of An Architect

Call to Action

• Get involved with a local user group http://SoCalDotNetArchitecture.org

• Get involved with a professional organization http://www.IASAhome.org

• Contribute to building ArcBOK, email [email protected]

Page 97: The Role Of An Architect

Wrap-up

• MSDN Architecture Center http://msdn.microsoft.com/en-us/architecture/default.aspx

• The Role of an Architect http://msdn.microsoft.com/en-us/library/cc505966.aspx

• The Role of the Architect http://www.bredemeyer.com/pdf_files/role.pdf

• IASA http://www.iasahome.org • SoCal .NET Architecture http://www.socaldotnetarchitecture.org • Architect Soft Skills http://dobbscodetalk.com/index.php?

option=com_myblog&show=Architect-Soft-Skills.html&Itemid=29 • The Role of a Hands-on Software Architect

http://www.codingthearchitecture.com/pages/book/role.html

Page 98: The Role Of An Architect