Upload
llangit
View
8.171
Download
6
Embed Size (px)
DESCRIPTION
Mike Vincent's talk at TechDays Orange Country November 2008
Citation preview
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 [email protected]
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