sa2009 from developer to architect

Upload: nikhil-gupta

Post on 05-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Sa2009 From Developer to Architect

    1/73

    http://www.codingthearchitecture.com/http://www.codingthearchitecture.com/
  • 7/31/2019 Sa2009 From Developer to Architect

    2/73

  • 7/31/2019 Sa2009 From Developer to Architect

    3/73

  • 7/31/2019 Sa2009 From Developer to Architect

    4/73

    In groups discuss the perceived meaningof architecture in our technical and

    business domains.

    Buzzwords

    Benefits / motivations

    Examples and counter-examples?

  • 7/31/2019 Sa2009 From Developer to Architect

    5/73

  • 7/31/2019 Sa2009 From Developer to Architect

    6/73

    As a noun, design is the namedstructure or behaviour of a system

    whose presence resolves ... a forceon that system.

    A design thus represents one pointin a potential decision space.

  • 7/31/2019 Sa2009 From Developer to Architect

    7/73

    All architecture is design, but notall design is architecture.

    Architecture represents thesignificant decisions, where

    significance is measured by cost ofchange.

  • 7/31/2019 Sa2009 From Developer to Architect

    8/73

    In groups consider the various types ofarchitecture youve heard of.

    Organisational level

    Responsibilities

    Day-to-day activities

  • 7/31/2019 Sa2009 From Developer to Architect

    9/73

    Application

    Business

    Data

    Enterprise

    Hardware

    Information

    Infrastructure

    NetworkPlatform

    Performance

    Security

    Software

    Solution

    System

    Technical

    Technology

    Web...

  • 7/31/2019 Sa2009 From Developer to Architect

    10/73

  • 7/31/2019 Sa2009 From Developer to Architect

    11/73

  • 7/31/2019 Sa2009 From Developer to Architect

    12/73

  • 7/31/2019 Sa2009 From Developer to Architect

    13/73

    Architecture is simply the

    deliberate and consideredresolution of significantproblems

  • 7/31/2019 Sa2009 From Developer to Architect

    14/73

  • 7/31/2019 Sa2009 From Developer to Architect

    15/73

    In groups draw up an organisation chartto describe the structure of a small team

    comprising:

    Project Manager

    Senior Developer

    Two Developers

    Technical Architect

  • 7/31/2019 Sa2009 From Developer to Architect

    16/73

  • 7/31/2019 Sa2009 From Developer to Architect

    17/73

  • 7/31/2019 Sa2009 From Developer to Architect

    18/73

  • 7/31/2019 Sa2009 From Developer to Architect

    19/73

    An architect brings together many aspectsof software development:Requirements gathering

    Estimation and planning

    Analysis and designCoaching and mentoring

    Quality assurance

    Testing and deployment

    Process and methodologyMore than a team leader and leaddeveloper role

  • 7/31/2019 Sa2009 From Developer to Architect

    20/73

    Has technical authority and responsibilityfor the solution

    Ensures non-functional requirements aremet along with functional requirements

    Decomposes the solution into subsystemsto ensure consistency at appropriate level

    Helps define and apply best practice

    Works with the PM to review estimates andcost and to track progress

    Drives technical quality assurance

  • 7/31/2019 Sa2009 From Developer to Architect

    21/73

    The architect role is morethan being an experienced

    developer or designer - itsalso about quality assurance,mentoring and working with

    stakeholders.

  • 7/31/2019 Sa2009 From Developer to Architect

    22/73

  • 7/31/2019 Sa2009 From Developer to Architect

    23/73

  • 7/31/2019 Sa2009 From Developer to Architect

    24/73

  • 7/31/2019 Sa2009 From Developer to Architect

    25/73

  • 7/31/2019 Sa2009 From Developer to Architect

    26/73

    The architect is involved inall phases of a project...

    ... not just analysis anddesign.

  • 7/31/2019 Sa2009 From Developer to Architect

    27/73

    Review!

    Allow time for review

    Delegate responsibility

    We probably dont do enough

  • 7/31/2019 Sa2009 From Developer to Architect

    28/73

  • 7/31/2019 Sa2009 From Developer to Architect

    29/73

  • 7/31/2019 Sa2009 From Developer to Architect

    30/73

  • 7/31/2019 Sa2009 From Developer to Architect

    31/73

  • 7/31/2019 Sa2009 From Developer to Architect

    32/73

  • 7/31/2019 Sa2009 From Developer to Architect

    33/73

    Technology(e.g. existing licenses, internal

    intellectual property,interoperability, maturity, open

    source policies/licenses, vendorrelationships, etc)

  • 7/31/2019 Sa2009 From Developer to Architect

    34/73

    Resource/skills(e.g. team size, lead time, futureavailability, training, specialists, etc)

  • 7/31/2019 Sa2009 From Developer to Architect

    35/73

    Other constraintslegal/compliance

    strategic imperatives

    existing systems

    company politics

    past failures

    ...

    Often expressed astechnology constraints

    non-functional requirements

  • 7/31/2019 Sa2009 From Developer to Architect

    36/73

    Constraints can drive thearchitecture more than the

    requirements.On time, on budget is a

    good target.

  • 7/31/2019 Sa2009 From Developer to Architect

    37/73

  • 7/31/2019 Sa2009 From Developer to Architect

    38/73

    Pay close attentionto the functional requirements!

  • 7/31/2019 Sa2009 From Developer to Architect

    39/73

    The functional requirements

    are not always well

    defined.

  • 7/31/2019 Sa2009 From Developer to Architect

    40/73

    The functional requirements arenot set in stone.

  • 7/31/2019 Sa2009 From Developer to Architect

    41/73

  • 7/31/2019 Sa2009 From Developer to Architect

    42/73

    How many elephants did you see atthe zoo?

    How many non-elephants?

  • 7/31/2019 Sa2009 From Developer to Architect

    43/73

    In groups think of the various -ilities

    youve encountered in softwaredevelopment.

  • 7/31/2019 Sa2009 From Developer to Architect

    44/73

    Accessibility

    Auditability

    Flexibility

    Extensibility

    ConfigurabilityTestability

    Repeatability

    InteroperabilityAvailability

    Scalability

    Installability

    Manageability

    Supportability

    Recoverability

    UsabilityTimeliness

    Performance

    ComplianceSecurity

    ...

  • 7/31/2019 Sa2009 From Developer to Architect

    45/73

    Specific

    Measurable

    AchievableRelevant

    Time-bound

  • 7/31/2019 Sa2009 From Developer to Architect

    46/73

  • 7/31/2019 Sa2009 From Developer to Architect

    47/73

    In groups consider the examplefunctional specification.

    List some of the NFRs you would expectand how you might measure them.

  • 7/31/2019 Sa2009 From Developer to Architect

    48/73

    Dont blindly focus on codedesign; always ask what the

    major forces are on thesystem and how your

    architecture resolves them.

  • 7/31/2019 Sa2009 From Developer to Architect

    49/73

    The architect helps ensure acomplete set of

    requirements is captured......but probably doesnt

    define them.

  • 7/31/2019 Sa2009 From Developer to Architect

    50/73

  • 7/31/2019 Sa2009 From Developer to Architect

    51/73

    Why do you need to definethe architecture?

  • 7/31/2019 Sa2009 From Developer to Architect

    52/73

  • 7/31/2019 Sa2009 From Developer to Architect

    53/73

    Every system has an

    architecture, but not everyarchitecture is defined.

  • 7/31/2019 Sa2009 From Developer to Architect

    54/73

    What is an architecturedefinition?

  • 7/31/2019 Sa2009 From Developer to Architect

    55/73

    How much architecturedo you need to define?

  • 7/31/2019 Sa2009 From Developer to Architect

    56/73

    You need to define

    just enougharchitecture.

  • 7/31/2019 Sa2009 From Developer to Architect

    57/73

    What do you do if you are faced with the

    following?Complex non-functional requirements

    Conflicting non-functional requirements

    New and unfamiliar technologies

    Integration with existing systemsA team youve never worked with

    A vast array of technology and design choices

    Tight deadlines

  • 7/31/2019 Sa2009 From Developer to Architect

    58/73

    You start defining thearchitecture

  • 7/31/2019 Sa2009 From Developer to Architect

    59/73

    Agile Architecture;

    base your architecture on

    requirements, travel lightand prove your architecturewith concrete experiments.

  • 7/31/2019 Sa2009 From Developer to Architect

    60/73

  • 7/31/2019 Sa2009 From Developer to Architect

    61/73

    Architecturallysignificant

  • 7/31/2019 Sa2009 From Developer to Architect

    62/73

    In groups consider the examplefunctional specification.

    What would you include in yourexecutable reference architecture?

  • 7/31/2019 Sa2009 From Developer to Architect

    63/73

  • 7/31/2019 Sa2009 From Developer to Architect

    64/73

  • 7/31/2019 Sa2009 From Developer to Architect

    65/73

    Architecture involves

    more than one viewof the application or system.

  • 7/31/2019 Sa2009 From Developer to Architect

    66/73

  • 7/31/2019 Sa2009 From Developer to Architect

    67/73

  • 7/31/2019 Sa2009 From Developer to Architect

    68/73

    In groups consider the examplerequirements specification.

    Draw up the logical view (includingtechnologies) for a solution.

  • 7/31/2019 Sa2009 From Developer to Architect

    69/73

  • 7/31/2019 Sa2009 From Developer to Architect

    70/73

    Software Development

    Software Architecture

  • 7/31/2019 Sa2009 From Developer to Architect

    71/73

    http://www.codingthearchitecture.com/http://www.codingthearchitecture.com/
  • 7/31/2019 Sa2009 From Developer to Architect

    72/73

  • 7/31/2019 Sa2009 From Developer to Architect

    73/73

    Websitehttp://www.codingthearchitecture.com

    Google Grouphttp://groups.google.com/codingthearchitecture