Time Spent Thinking Explicitly About Architecture Becomes More

Embed Size (px)

Citation preview

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    1/26

    Does Architecture Really

    Help?And apologies...Eric Nelson

    Application Architect

    [email protected]://blogs.msdn.com/ericnel -

    Slides!

    mailto:[email protected]://blogs.msdn.com/ericnelhttp://blogs.msdn.com/ericnelmailto:[email protected]
  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    2/26

    Why are we here?

    An opportunity to consider whether timespent on Architecting solutions is time wellspent

    I am confused about the importance of

    formally thinking about softwarearchitecture

    Outputs: Summary of combined experiences around

    Architecture - the good and bad Consensus (perhaps!) around questions such

    as: "Is choice a good thing? "Is there a perfect architecture "Does architecture matter?

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    3/26

    Topics

    My background/experience

    Helps you understand why I am wrong

    ISVs explained

    Architecture my definition

    Helps us do this in 75mins

    My 9 Observations on Architecture Simple Exercises

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    4/26

    About me

    1986 Software Development on Unix,VAX, Assembly, 3GL, 4GL, RDBMS

    1995 Software Development on Unix

    and Windows 3GL, 4GL, RDBMS 1996 Joined Microsoft for 2 years

    Advising Independent Software Vendors

    on development with latest (beta)technologies from Microsoft

    2008 Still at Microsoft

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    5/26

    Independent SoftwareVendors

    Write once, sell many In reality a large spectrum

    One version on 10,000 desktops 100 versions in 100 companies

    1 user, 100 user, 1000 user, 10000 user ISVs care about

    Most things every other company cares about Cares more than most about

    Cross Platform Targeting Multiple Databases Versioning, Deployment, Patching Making the wrong decision may last 10, 15 years and

    be installed in many sites Customisation

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    6/26

    Some examples

    Run Everywhere:

    ISV building thin client solution thatmust work on every browser, handle

    1000s of concurrent users and bedeployed on SQL Server, Oracle, Sybaseand JBoss or Websphere

    SOA heavy: ISV building asolution that must work within anSOA/ESB architecture includinghaving no UI

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    7/26

    Architects?

    Microsoft Defines Infrastructure Architects

    Responsible for platform finds the pragmatic solutions to the requirements of the

    organization as presented by the Enterprise architect

    Enterprise Architects Responsible for a system of systems Enterprise Architects create the master blueprint that guides

    their organizations business and IT systems

    Solution Architects Responsible for a system Solutions Architects decide which technologies to use.

    They work very closely with developers to ensureproper implementation

    Solution Architects Generate Software Architecture focus of this session

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    8/26

    Architecture vs Design

    All Architecture is Design

    Not all Design is Architecture

    Defined as: The software architecture of a program or computing system is the structure orstructures of the system, which comprise software elements, the externallyvisible properties of those elements, and the relationships between them Bass,Clements, Kazzman (SEI)

    Or

    The design decisions that are reallyexpensive to change Eric

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    9/26

    Exercise: Up frontarchitecture?

    Question: Would you work on architecture for the

    following before you started to build it?

    Tasks: Make a passenger plane? Make a school? Make a 1 bedroom house? Make a garage? Make a treehouse? Make a stool? Make a new shelf in your bedroom?

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    10/26

    Exercise: Up frontarchitecture?

    Question: Would you work on architecture for the

    following before you started to code it?

    Tasks: Make a control system for a power station?

    Make an IDE? (think Eclipse or VisualStudio)

    Make a web browser? (think Firefox of IE) Make a simple RSS reader?

    Make a hangman game?

    Make a simple calculator?

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    11/26

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    12/26

    Observations on Architecture 1We dont have one

    Some ISVs think lots about Architecture

    Some cut code

    No apparent correlation to success

    Q: Does their need to be a formalarchitecture?

    Ob ti A hit t 2

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    13/26

    Observations on Architecture 2More than one way to skin a

    cat Many ISVs solving the same problem Each using a very different approach

    Q: Is there a perfectarchitecture?

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    14/26

    Exercise

    Question How do you architect a system that will

    work against Microsoft SQL Server OROracle OR DB2 just as well

    Possible Answers Lowest common denominator use of SQL

    One hand coded implementation per RDBMS

    Code generation per RDBMS at develop time

    Code generation per RDBMS at deploy time

    Code generation per RDBMS at run time

    Combinations of the above

    Own proprietary database

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    15/26

    Observations on Architecture 3The grass is always greener

    ISV with Architecture A is moving to Architecture B

    ISV with Architecture B is moving to Architecture A

    EXAMPLE:

    Thick and Thin Clients

    Q: Do teams blame architecture when they shouldbe looking elsewhere?

    Ob ti A hit t 4

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    16/26

    Observations on Architecture 4You can get it completely

    wrong You can have very badArchitectures

    Symptoms include:

    Changes are very expensive

    Nobody admits to it being theirarchitecture

    Q: What other symptoms do yousee?

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    17/26

    Exercise

    Question:

    What really bad architectures have youseen?

    Examples: Road Warrior application which always required

    connectivity to the server

    Financial application that loaded all the data into memory

    MANY times in one transaction Retail application using large amounts of XML rather than

    relational tables

    Ob ti A hit t 5

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    18/26

    Observations on Architecture 5Explicit vs Implicit

    Or planned and evolutionary design

    Martin Fowler

    Software Development Approaches impact

    on the importance of Architecture E.g. Waterfall vs XP Programming

    Q:Is architectural thinking alwayspresent?

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    19/26

    Observations on Architecture 6If all you have is a hammer... Technology availability significantly impacts architecture In 1990

    4GLs such as Uniface and Oracle Forms no architecture discussion

    In 1996 MTS/COM+ allowed VB6 teams to easily build server side code MSMQ allowed VB6 teams to build async architectures

    Active Server Pages allowed VB6 teams to build web applications(replacing CGI)

    In 2008 LINQ allows .NET developers to easily adopt ORM SQL Server 2005/2008 allows developers to easily work with XML Workflow Foundation easily moved from code to workflow Cloud Services

    Commodity HPC Q: Can architects keep up with the technology impact on

    architecture? Q: Can architecture be kept separate from technology

    choice?

    Ob ti A hit t 7

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    20/26

    Observations on Architecture 7Who cares I have a cheque

    book and a data centre Software with bad architecture candeliver a great service

    Massive advances in hardware

    Lower expectations?

    404 error

    Two examples Apply hardware

    Apply developers

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    21/26

    Example: Apply Hardware

    Two pieces of crap is better than one piece ofcrap http://www.adtmag.com/article.aspx?id=9737

    Amazon S3, EC2

    Q: How many Servers does ebay have? Nb: ebay has very smart architecture

    http://www.adtmag.com/article.aspx?id=9737http://www.adtmag.com/article.aspx?id=9737
  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    22/26

    Example: Apply cheapdevelopers

    Developer in the UK 500 to 1000per day

    Developer in India 100 to 300 perday

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    23/26

    Observations on Architecture 8Invest in a Rabbits Foot

    Hope for the best Architectures

    Do not architect for edge conditions

    Humans, spreadsheets, emails andscripts handle the edge

    Q: Is this the death of the

    transaction?

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    24/26

    Observations on Architecture 9If only...

    The time spent thinking explicitly aboutarchitecture becomes more important overtime

    Software Archaeology

  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    25/26

    Questions

    Are software architectures gettingworse?

    Is time spent on software architecture,time well spent?

    Is time spent up front, time wellspent?

    Is there only one perfect architecture?

    Does cheap hardware, cloud services,easier refactoring and cheapdevelopers change the need forsoftware architecture?

    http://msdn.microsoft.com/architecture
  • 8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More

    26/26

    Thankyou