The Role Of An Architect

Post on 06-May-2015

8.171 views 6 download

description

Mike Vincent's talk at TechDays Orange Country November 2008

Transcript of 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

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

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

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.

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

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

Architect Roles

• Enterprise

• Solution

• Software

• Technical

• Information

• Database

• IT

• Business

• Security

• etc.

Architect Roles

• Enterprise

• Solution

• Software

• Technical

• Information

• Database

• IT

• Business

• Security

• etc.

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

A Lot of Similarities, What’s Different

Work Down Value Up

What We Do

Definition Delivery

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

What We Do - Definition

Management Management of non-of non-

functional functional requirementsrequirements

Architecture definition

Architecture collaboration

Technology selection

Architecture evaluation

Definition

What We Do - Definition

Management of non-

functional requirements

Architecture Architecture definitiondefinition

Architecture collaboration

Technology selection

Architecture evaluation

Definition

What We Do - Definition

Management of non-

functional requirements

Architecture definition

Architecture collaboration

Technology Technology selectionselection

Architecture evaluation

Definition

What We Do - Definition

Management of non-

functional requirements

Architecture definition

Architecture collaboration

Technology selection

Architecture Architecture evaluationevaluation

Definition

What We Do - Definition

Management of non-

functional requirements

Architecture definition

Architecture Architecture collaborationcollaboration

Technology selection

Architecture evaluation

Definition

Definition

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

What We Do - Delivery

Ownership of Ownership of the bigger the bigger

picturepictureLeadership

Design, development and testing

Coaching and

mentoring

Quality assurance

Delivery

What We Do - Delivery

Ownership of the bigger

pictureLeadershipLeadership

Design, development and testing

Coaching and

mentoring

Quality assurance

Delivery

What We Do - Delivery

Ownership of the bigger

pictureLeadership

Design, development and testing

Coaching Coaching and and

mentoringmentoring

Quality assurance

Delivery

What We Do - Delivery

Ownership of the bigger

pictureLeadership

Design, development and testing

Coaching and

mentoring

Quality assuranceassurance

Delivery

What We Do - Delivery

Ownership of the bigger

pictureLeadership

Design, Design, development development and testingand testing

Coaching and

mentoring

Quality assurance

Delivery

Delivery

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

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

Managing Your SDLC Process

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

Agile MSF

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.

Development Frameworks

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

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

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

The Right Technology Mix

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

Do You Need a Rules Engine

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.

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

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

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

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

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

Messaging

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

Messaging - Desirable Characteristics

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

Messaging – Basic Concepts

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

Messaging with an Enterprise Service Bus

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

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

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 );

Data Transformations

• Complex Mapping

Data Transformations

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

• EDI HL7 HIPPA SWIFT

– Internal/Canonical

• Exposed to Business

Orchestration and Workflow

• Manage process execution– Sequential– Parallel– Long running

• Manage human workflow– Process interaction

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

Scalability

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

– Windows Azure

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

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

Why Organizations Need Us

Why Organizations Need Us

• A successful architecture forms the platform for strategic advantage

Why Organizations Need Us

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

inescapably to its past

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

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

Why Organizations Need Us

• Symptoms of architectural decay

Why Organizations Need Us

• Symptoms of architectural decayo Brittle monolithic systems

Why Organizations Need Us

• Symptoms of architectural decayo Brittle monolithic systems o Silo applications

Why Organizations Need Us

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

Why Organizations Need Us

• We need architecture to

Why Organizations Need Us

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

Why Organizations Need Us

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

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

Why Organizations Need Us

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

Why Organizations Need Us

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

o Agility

Why Organizations Need Us

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

o AgilityoResponsiveness

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 

Why Organizations Need Us

• Architecture

Why Organizations Need Us

• Architectureo Addresses complexity

Why Organizations Need Us

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

innovation

Why Organizations Need Us

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

innovation o Is the enabler for reliable systems

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"

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

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

IT Architect Skills

IT Architect Skills

• Domain Knowledge– Horizontal– Vertical

IT Architect Skills

• Domain Knowledge– Horizontal– Vertical

• Conceptual Thinking– Communication

IT Architect Skills

• Domain Knowledge– Horizontal– Vertical

• Conceptual Thinking– Communication

• Patterns– More communication

IT Architect Skills

• Domain Knowledge– Horizontal– Vertical

• Conceptual Thinking– Communication

• Patterns– More communication

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

Soft Skills

Soft Skills

Architect Competency Domains

Technology

Business Strategy

Organizational Politics

Consulting

Leadership

Building Our Profession

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

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

Body of Knowledge - ArcBOK

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

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

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 miha.kralj@microsoft.com

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