SlideShare a Scribd company logo
1 of 102
Download to read offline
感谢您参加本次Ar h u
         c S mmi全球架构师峰会!
               t
大会官方网站与资料下载地址:
www. c um m i . om
   ar hs    tc
郁闷的架构师
The frustrated architect
Simon Brown
Jersey, Channel Islands
simon.brown@codingthearchitecture.com
     @simonbrown (Twitter)




写作
     培训与咨询
leanpub.com
感知
Perceptions
Big up front design                                       Waterfall
          analysis paralysis
                                          UML
    and




                               我是一个
                          软件架构师
                               I’m a software architect




                                     Ivory Tower
 PowerPoint Architect
                                          Architecture Astronaut
PPT架构
                                 Buzzword Bing
                                               o
Single Sign-On




                         Corporate Data
                                        Model
Enterprise Service Bus
“
  架构师是
“业务技术战略家”
  Architects are “business technology strategists”
“
微软的SharePoint
有很明             的ROI和TCO
   Microsoft SharePoint has a solid ROI & TCO
“
MongoDB的价值主张是什么给我看看你的商业分析!
    What’s the value proposition of MongoDB? Show me your business case!
热        词汇
    Buzzwords!




    热 词汇让人们离软件架构的学问
                    越来                         越远
    Buzzwords push people away
                               from learning about
         the software architecture dis
                                       cipline
我是团队的另一名成员
              我喜欢编写代码
 I’m another member of the team ... I like writing code
“Architecture”




                 Time




   Coding
UML
管理咨询
Management Consulting
企业职场发展阶梯
                  Corporate career ladder
Non-technical




                  我们的导师升职了
  Technical
                     救命!
                   Our mentor has been promoted ... help!
http://www.codingthearchitecture.com
软件架构师不是组织中的职级
   “Software Architect” is   not an organisational rank




                                 软件架构师是你慢慢演化成的角色
                                                                           evolve into
                                               itecture is a role that you
                                 Software arch
我们希望变得敏捷
    We aspire to be agile




 敏捷很酷,但是我们是不是忘了什么东西?
       Agile is cool, but are we forgetting something?
敏捷
Agile
Structure    Moving fast,      Test-driven
                 embracing       development
Self-organising
                  change
     team                             Security
                  Availability
 Non-functional                    Continuous
  requirements
                                    delivery
 Automated
                  Agile
                                 Technical guidance
 acceptance
                    Vision         Emergent
   testing
                                    design
  Performance     Kanban
                                 Technical quality
Retrospectives    Scalability          Lean
敏捷 +   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
“敏捷软件架构师”

  是什么?
  What is an   agile software architect?
Defer until the
Evolutionary Architecture
            Emergent Design                                      last responsible
                                         YAGNI
      and

                                                                     moment



                              我是一个

                 “敏捷软件架构师”
                              I’m an agile software architect!




                                   System Metaphor
    Refactoring                                     Spikes, stripes   and   tracers
这是敏捷的软件架构吗?
   Is this agile architecture?




                                 即时贴
                                 Sticky notes!
敏捷
         Skills            Sprint 1   Sprint 2   Sprint 3
   Business Modelling

     Requirements

    Analysis & Design

    Implementation

          Test

      Deployment

Configuration Management

  Project Management

      Environment
演化的架构
愚蠢地期待最好结果?
  Evolutionary architecture ... foolishly hoping for the best?
我们不需要软件架构,
我们实施测试驱动                                                     发
            We don’t need software architecture; we do TDD




Agile software team
测试驱动                            发玩的是代码

软件架构玩的是“全景”
 TDD is about code ... software architecture is about the “big picture”
最后负责时刻
  Last responsible moment
自组织团队不一定总在工作
   Self-organising teams don’t always work
为什么你们要                           击敏捷?
    Why are you bashing agile?
让我们重新发明轮子
   Let’s reinvent the wheel
回顾
Retrospective
我们是不是忘的比学的还多?
    Have we forgotten more than we’ve learnt?
UML
Cllsss
                 Caa s
                Cla s
                                                s
                                           atorrs
                                         or ato
                                     llabborators
                                 Coll l b
                                 CCo aa or
                                   o
  esponsbiililtiiess
 R sponsiib liit es
Re po ns ib itie
Res




        类-责任-协作
             Class-Responsibility-Collaboration
边界、控制器和实体
   Boundaries, controllers and entities
基于组件的                                           发
              Component-based development




Component A




                                            Component B




               Component C

                                                                      upling
                                              High cohe  sion, low co
                                                                    act,
                                                   des ign by contr
                                                                       inciple
                                              Liskov sub  stitution pr
Pattern-Oriented
Software Architecture
Rational 统一过程
                              Rational Unified Process (RUP)



         Skills           Inception       Elaboration         Construction   Transition
   Business Modelling

     Requirements

    Analysis & Design

    Implementation

          Test

      Deployment

Configuration Management

  Project Management

      Environment
要讲求实效
很多人不知道比较老的软件                                                            发实践
 Be pragmatic ... many people aren’t aware of older software development practices
谁在讲授前敏捷时代的经典?
                                                                   Who is teaching the classics of the pre-agile era?



                                                                            Test-Driven Development
                      Systems Thinking
Extreme Programming




                                             Continuous Delivery


                                                                   Kanban




                                                                                                                                                                 re
                                         敏                                                                                                               ite
                                                                                                                                                            c tu
                                                                                                                             程                        ch
                                                                                                                       过                        e   Ar
                                                                                                                   一                          ar                          L
                                         捷                                                                     al
                                                                                                                  统                    So
                                                                                                                                         f tw
                                                                                                                                                                      M
                                                                                                            on                     ted                         U
                                                                                                      R ati                 -O
                                                                                                                              rien
                                                                                                                        n
                                                                                                                     er
                                                                                                                 Patt
                                                                                                                                                                              基于组件的   发
所以你认为你是一个软件架构师么?
   So you   think you're a software architect?
esume
                                                             Curriculum Vitae / R




  nterprise A rchitect
E                date)
                    6-
A Big C ompany (200
                                                       men tation of an
                                    des ign and imple
                sp ons ible for the                  ML  diagrams and
                                                                        I
I have been re                       d rew some U
                    me r solution. I
ente rprise custo
wrote som    e Java code.
                                                       )
                                       o de please. :-
                    ob w riting more c
 I w  ould like a j




                                企业 架构与软 件架构不同
    大 企业中的                                                              e in a large en
                                                                                        terprise!
                                                               hitectur
                                        e same as software arc
                    hite cture isn’t th
     Enterprise arc
软件       发不是接力赛
     Software development is not a   relay sport




          Software
                     e
         Architectur
          Document




                     AaaS ... architecture as a service
成功的软件交付不仅仅是实现细节
   Successful software delivery is   not an implementation detail!
愚蠢地期 待最好结果?
不负责任的软件架构师
                         The   irresponsible software architect




                          Cross-site scripting attacks
                           possible; weak passwords
                            allowed; HTTP sessions
                               didn’t timeout; ...

                                                           Basic functionality errors;
 No non-functional testing
                                                               little or no quality
(e.g. penetration testing or
                                                          assurance; rework required
      load testing); ...
                                                          late in the project because
                                                              of assumptions; ...



                           No documentation; ...
                                                              这是一 个战略软件平台!
                                                                                          e platform!
                                                              This is a strategic softwar
我们是作者还是软件架构师?
   Are we   authors or software architects?
你知道你在构建什么吗?
  Do you know what you’re   building?
混乱
                               团队是否理解他们要构建什么?

                                              应该如何构建?
Chaos ... does the team understand what they are building and how they are building it?
No defined structure,
                              inconsistent approaches,
                                   big ball of mud,
                                 spaghetti code, ...




混乱停!
                               团队是否理解他们要构建什么?

                                              应该如何构建?
Chaos ... does the team understand what they are building and how they are building it?

                      Slow, insecure, unstable, unmaintainable,
                           hard to deploy, hard to change,
                              over time, over budget, ...
对“太长,没看”的共同理解
    Shared vision of   TL; DR
                                 Software
                                           e
                                Architectur
                                 Document
对“什么? !”的共同理解
    Shared vision of   what!?
Common Services                         More Common Services                  Service A            Service B              Service C

                                                                                                     3rd Party Interface


                                                                                Presentation Layer   Presentation Layer     Presentation Layer    Presentation
                                        Presentation Layer (Master Pages)
                                                                                (Service A Pages)    (Service B Pages)      (Service C Pages)     Layer


            Service Proxy                          Service Proxy                  Service Proxy        Service Proxy          Service Proxy



                                                   WCF Communications (SOAP, REST, TCP, MQ)                                                       Transport


                                                                                    Services              Services              Services
   Services Implementation                    Services Implementation                                                                             WCF Service
                                                                                 Implementation        Implementation        Implementation

                                                                                                                                                  Service
              Contracts                              Contracts                      Contracts            Contracts              Contracts
                                                                                                                                                  Interface


              Services      Services                                                Service A            Service B              Service C         Business
Services                                Services     Services       Services
                                                                                    Services             Services               Services          Layer

                                                                                                      Data        Data
         Data Contracts                            Data Contracts                Data Contracts                              Data Contracts       Data Interface
                                                                                                     Contract    Contract

 Data          Data          Data        Data          Data          Data          Service A          Data        Data         Service C
 Layer         Layer         Layer       Layer         Layer         Layer                                                                        Data Layer
                                                                                   Data Layer         Layer       Layer        Data Layer

3rd Party
                                                                                                     3rd Party Interface    3rd Party Interface
Interface

                                                                       Common

                             Authentication                                                            Logging
                                                                                                                                                  Foundation

   Data Management                            Data Access                CRM Workflow                   Email
我们可以把我们软件                                  发的过程可视化
          We can visualise our software development process




我们已经忘记了如何可视化我们构建的软件
   We’ve forgotten how to visualise the software that we’re building
你如何设计软件?
  How do you design software?
解决方案?
  Solutions?
软 件架构师坐在象 塔之中
                                        软件架构师      Software architect sits
                                                      in an ivory tower
软件程序猿专注于底层细节
                             the low-
Software developers focus on
              level detail




    软件程序猿              软件程序猿            软件程序猿   软件程序猿        软件程序猿
协作、教练、指导
Collaborating, coaching and mentoring




           软件架构师

                                        缩小差距




                                                         软件程序猿


                                         提升软件架构的自我意识
                                           Increased awareness of software architecture
广度 ... 知道不同的方案和软件                                                   发实践
                                Breadth ... awareness of different options and software development practices




                                               通
                                               才
                                               化
                                               的                  优秀的 软件架构师是“建
                                                                               筑师                            ”
                                                                                                      r builders
                                                                                arch itects are maste
                                                                  Good software


深度 ... 深厚的技术知识
 Depth ... deep technical knowledge
                                               专
                                               才
你会雇一个不会编码的架构师么?
   Would you hire a software architect that wouldn’t code?
软件架构师这个角色
   需求和约束                         技术选型                       软件设计
Requirements and constraints    Technology selection         Software design




软件设计的评估                              编码                软件设计的演化
Evaluation of software design         Coding           Evolution of software design




                                 质量保证                     教练和指导
                                 Quality assurance       Coaching and mentoring
)        Standard (
                ntext                    containers                                Mac
      ang le (co                                    )                                 ro (
 Wide                                                                   ponents)           clas
                                                          Telephoto (com                        ses
                                                                                                    )




  Abstract                                                                               Specific




作为软件程序猿,代码是我们的主要面向对象
                 As developers, the code is our major focus
)   Standard (
               ntext               containers                                      Mac
     ang le (co                               )                                       ro (
Wide                                                               ponents)                clas
                                                     Telephoto (com                             ses
                                                                                                    )




Abstract                                                                                 Specific




                                                  有时你需要离代码远一点儿
                                                  Sometimes you need to   step back from the code
Big Bank plc
Internet Banking System

1. Current Situation
We have an existing Internet Banking offering that allows customers to securely view
information about their bank accounts held with us via the web. Although we were one of the
first to market with such a product, the system itself is a number of years old now and a series
of problems has been identified during a consulting exercise that we recently initiated. In
summary:

   •   The system only provides customers with read-only access to information about their
       bank accounts. This includes account balances, recent transactions and recent
       statements.
   •   The information presented to customers is slightly out-of-date, because information from
       the core banking system is exported to the website on a nightly basis.
   •   Transactional requests are not possible through the site, with customers instead sending
       a secure message to the call centre with their request instead. This process is open to
       abuse and fraud.
   •   The number of features supported by the offering is limited.




                                                                                                                                                                                 ext)
   •   The technology is no longer seen as “leading edge”, is hard to enhance and costly to
       maintain. In addition, the technology has reached “end of life” and is no longer
       proactively supported by the vendor.




                                                                                                                                                                    (cont
   •   The system doesn’t meet current website accessibility standards.

In a recent survey, our Internet Banking system was perceived as poor in terms of the user




                                                                                                                                                              angle
experience and the level of information available through the website. With our competitors
now offering fully transactional systems, there is a risk that we will lose business.




                                                                                                                                                         Wide
2. Vision
The board have given us the go-ahead to initiate a project to replace the current Internet
Banking system, which will need to coincide with the corporate rebranding that will be taking
place in 12 weeks. The replacement system should:

   •   Provide customers with real-time access to information about their bank accounts.
   •   Provide customers with the ability to perform common transactions through the website.
       This includes making payments, setting up standing orders, transferring money and so on.
   •   Provide customers with a rich user experience.
   •   Meet current website accessibility standards.
   •   Be developed using the new corporate website design guidelines.




                                                                                                   任何问题都有多                        解决方案
                                                                                                   There are a number of solutions to any problem   Standard (
                                                                                                                                                               container    s)




                                                                                                                                                                    ponents)
                                                                                                                                                      Telephoto (com
                                                                                                            约束




                                                                                                                                     原则
                                                                       需求




                                                                                                                                                      Mac
                                                                                                                                                          ro (
                                                                                                                                                               clas
                                                                                                                                                                    ses
                                                                                                                                                                        )
Big Bank plc
Internet Banking System

1. Current Situation
We have an existing Internet Banking offering that allows customers to securely view
information about their bank accounts held with us via the web. Although we were one of the
first to market with such a product, the system itself is a number of years old now and a series
of problems has been identified during a consulting exercise that we recently initiated. In
summary:

   •   The system only provides customers with read-only access to information about their
       bank accounts. This includes account balances, recent transactions and recent
       statements.
   •   The information presented to customers is slightly out-of-date, because information from
       the core banking system is exported to the website on a nightly basis.
   •   Transactional requests are not possible through the site, with customers instead sending
       a secure message to the call centre with their request instead. This process is open to
       abuse and fraud.
   •   The number of features supported by the offering is limited.




                                                                                                                                                                                 ext)
   •   The technology is no longer seen as “leading edge”, is hard to enhance and costly to
       maintain. In addition, the technology has reached “end of life” and is no longer
       proactively supported by the vendor.




                                                                                                                                                                    (cont
   •   The system doesn’t meet current website accessibility standards.

In a recent survey, our Internet Banking system was perceived as poor in terms of the user




                                                                                                                                                              angle
experience and the level of information available through the website. With our competitors
now offering fully transactional systems, there is a risk that we will lose business.




                                                                                                                                                         Wide
2. Vision
The board have given us the go-ahead to initiate a project to replace the current Internet
Banking system, which will need to coincide with the corporate rebranding that will be taking
place in 12 weeks. The replacement system should:

   •   Provide customers with real-time access to information about their bank accounts.
   •   Provide customers with the ability to perform common transactions through the website.
       This includes making payments, setting up standing orders, transferring money and so on.
   •   Provide customers with a rich user experience.
   •   Meet current website accessibility standards.
   •   Be developed using the new corporate website design guidelines.




                                                                                                   任何问题都有多                        解决方案
                                                                                                   There are a number of solutions to any problem   Standard (
                                                                                                                                                               container    s)




                                                                                                                                                                    ponents)
                                                                                                                                                      Telephoto (com
                                                                                                            约束




                                                                                                                                     原则
                                                                       需求




                                                                                                                                                      Mac
                                                                                                                                                          ro (
                                                                                                                                                               clas
                                                                                                                                                                    ses
                                                                                                                                                                        )
白板和挂图   UML工具
& pens
Flip chart
                        Post-it n
                                 otes




                    Blu-Tack




  Index cards
                      Whiteb
                            oard &
                                   pens
                                          协作式软件设计
                                                         ifte areedesign
                                                    raso v w d s gn
                                                       t             i
                                          CCollaabo ve
                                           oll borati
ts
             2. Containers        3. Componen
1. Context




C4
             有效的草图                 4. Classes
             Effective sketches



Context
Containers
Components
Classes                   按常理出    (thinking   inside   the box)
你会那样编码么?
  Would you   code it that way?




                                                                    师”
                                                           师必须 是“建筑
                                               架        构
                                       是为 什么软件                           ust be
                                  这就                           i tects m
                                                      re arch
                                           why softwa
                                   This is                uilders
                                                m aster b
Soft ware                 地图
Ar chitecture                  Maps




 D ocu ment                                  景点
                                                 Sights




 旅  行  手册                历史和文化
                                         lture
                          History and cu


               idebook
       avel Gu
     Tr
                                      实用信息
                                        Practical inform
                                                         ation
文档应该说清楚代码没有说的东西
               Documentation should describe what the code doesn’t




   浪费, 增加价值                                         文档应该说明意图,
  少                                               并作为源代码的导引说明
                      dd value
             waste, a
      Reduce                                       Use it to explain intent and act as a
                                                    guide to navigate the source code
大型前期设计?
  Big design up front?
你做多少前期设计?
            How much up front design should you do?

                                                      演化的架构?

 大型前期设计?                                               没有?




Waterfall




                     还是二者之间?
刚刚
 Just enough
               用
Base your architecture on
     requirements, travel light
    and prove your architecture
    with concrete experiments.


Scott Ambler
http://www.agilemodeling.com/essays/agileArchitecture.htm
Features and Services


                             Infrastructure
                                Services              实验
                                                             Experiments




                                                 原型或证明
    Foundations
                                              概念
                                                                            t
                                                                  of concep
                                              Prototyp e or proof

         A software system
架构上的重要性
  Architecturally   significant
你需要识      并消除优先级最高的风险
   You need to identify and mitigate your highest priority risks
概率   (Probability)


                           中 (2)               高 (3)
                  低 (1)



           低
                    1          2                3
           (1)


影
响          中
                    2           4               6
           (2)
(Impact)




            高
                     3          6                9
            (3)
风险风暴
“Risk-storming”




                  识      风险的协作与可视化技巧
                  A collaborative and visual technique for identifying risk
风险识      出来后,你还是需要应对它们
      You still need to deal with the risks once they’ve been   identified
新技 术的问题
                        hnology
           wit h new tec
  Problems




    An example timeline from
“Beyond Retrospectives”
     by Linda Rising


       #gotocon Aarhus 2011
总结
The summary
软件架构师角色
  和软件设计流程
        是不同的东西
The software architecture role and the   process of designing software are different
软件架构师这个角色
                               The software architecture role




                               混乱团队 ... 自组织团队




团队中的专职软件架构师                                                      每个人都是软件架构师
Dedicated software architect
                                                                Everybody is a software architect
         on a team
软件设计流程
                                       The software design   process




 Software
                                                                        /// <summary>
                                                                        /// Represents the behaviour behind the ...

            e
Architectur
                                                                        /// </summary>
                                                                        public class SomeWizard : AbstractWizard
                                                                        {

 Document
                                                                            private DomainObject _object;
                                                                            private WizardPage _page;

                                                ...                         private WizardController _controller;

                                                                            public SomeWizard()
                                                                            {
                                                                            }

                                                                            ...

                                                                        }




      大型前期设计                                                                       演化的架构
      Big up front design                                                   Evolutionary architecture
                                                                       The architecture evolves secondary to the
 Requirements capture, analysis and
                                                                       value created by early regular releases of
design complete before coding starts
                                                                                   working software
刚刚                                       用
                               理解软件的重要结构元素
软件架构师这个角色
                          Understand the significant stru
 The software                                             ctural elements
                                        of the software
 architecture
     role
                                                                              识 并消 除 键风险
                                                                                        ks               key ris
                                                                                       and mit igate the
                                                                              Identify

                                    为团队提供
                                                     坚实基础和
                                                                       共同愿景
                                             Provide fir
                                                         m foundat
                                             a shared v            ions and
                                                       ision for t
                                                                   he team




                                                                                                  /// <summary>
                                                                                                  /// Represents the behaviour behind the ...
                                                                                                  /// </summary>

                 Software
                                                                                                  public class SomeWizard : AbstractWizard
                                                                                                  {

                Architecture                               软件设计流程                                     private DomainObject _object;
                                                                                                      private WizardPage _page;

                 Document
                                                                                                      private WizardController _controller;


                                                  The software design process                         public SomeWizard()
                                                                                                      {
                                                                                                      }

                                                                                                      ...

                                                                                                  }
敏捷软件         发项目需要软件架构师么?
   Do agile software development projects need software architecture?




                   需要
                                  Yes
敏捷软件          发对架构师来说是好东西吗?
   Is agile software development a good thing for software architecture?




                    是的,
它可以制止大型前期设计和分析带来的瘫痪
           Yes, it stops big design up front and analysis paralysis
定义你的团队中的软件架构师角色
    Define the software architecture role on your teams
向软件架构中应用一些工艺
   Apply some craftsmanship to software architecture




                                   有效的草图和轻量级文档
                                          Effective sketches and
                                       lightweight documentation




                                          可工作的 软件系统!
                                                                   work!
                                                   e syst ems that
                                           Softwar
积   、主动,以身作则
    Be   proactive, take ownership and lead by example
我们需要为明天培                                    软件架构师
   We need to   grow the software architects of tomorrow
适合你的就去做!
Do whatever works for   you!
om
codingthearchitecture.c




                                             培训与咨询




                               simon.brown@codingthearchitecture.com
           leanpub.com
                                       @simonbrown on Twitter
杭州站·2012年 10月 25日 ~27日
大会官网:www.c n a g h uc m
        q o h n z o .o

More Related Content

Viewers also liked

Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超drewz lin
 
Youku arch qcon2009_beijing
Youku arch qcon2009_beijingYouku arch qcon2009_beijing
Youku arch qcon2009_beijingdrewz lin
 
微信201204
微信201204微信201204
微信201204drewz lin
 
!Sim high gravitydistributed
!Sim high gravitydistributed!Sim high gravitydistributed
!Sim high gravitydistributeddrewz lin
 
Integrating agiledevsixsigmabp mandcm-presented
Integrating agiledevsixsigmabp mandcm-presentedIntegrating agiledevsixsigmabp mandcm-presented
Integrating agiledevsixsigmabp mandcm-presenteddrewz lin
 
Big visible journey to agility agile 2012-0
Big visible   journey to agility agile 2012-0Big visible   journey to agility agile 2012-0
Big visible journey to agility agile 2012-0drewz lin
 

Viewers also liked (6)

Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超
 
Youku arch qcon2009_beijing
Youku arch qcon2009_beijingYouku arch qcon2009_beijing
Youku arch qcon2009_beijing
 
微信201204
微信201204微信201204
微信201204
 
!Sim high gravitydistributed
!Sim high gravitydistributed!Sim high gravitydistributed
!Sim high gravitydistributed
 
Integrating agiledevsixsigmabp mandcm-presented
Integrating agiledevsixsigmabp mandcm-presentedIntegrating agiledevsixsigmabp mandcm-presented
Integrating agiledevsixsigmabp mandcm-presented
 
Big visible journey to agility agile 2012-0
Big visible   journey to agility agile 2012-0Big visible   journey to agility agile 2012-0
Big visible journey to agility agile 2012-0
 

Similar to Simon brown archsummit2012 the-frustrated-architect

Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMDebora Di Piano
 
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)William Yeh
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_FinalYoungSu Son
 
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)Steve Lange
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Ajay Danait
 
プレゼンビフォアアフタ
プレゼンビフォアアフタプレゼンビフォアアフタ
プレゼンビフォアアフタTsuyoshi Ushio
 
We Can't Do That Here
We Can't Do That HereWe Can't Do That Here
We Can't Do That HereKmanthei
 
Collaborative Lifecycle Managmenent - an Introduction
Collaborative Lifecycle Managmenent - an IntroductionCollaborative Lifecycle Managmenent - an Introduction
Collaborative Lifecycle Managmenent - an IntroductionStrongback Consulting
 
Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environmentRaffaele Garofalo
 
Private Clouds for Developers: Make Your Infrastructure Agile
Private Clouds for Developers: Make Your Infrastructure AgilePrivate Clouds for Developers: Make Your Infrastructure Agile
Private Clouds for Developers: Make Your Infrastructure AgileAbiquo, Inc.
 
Are Agile And Secure Development Mutually Exclusive?
Are Agile And Secure Development Mutually Exclusive?Are Agile And Secure Development Mutually Exclusive?
Are Agile And Secure Development Mutually Exclusive?Source Conference
 
Agile Developers Create Their Own Identity[1]
Agile Developers Create Their Own Identity[1]Agile Developers Create Their Own Identity[1]
Agile Developers Create Their Own Identity[1]Surajit Bhuyan
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTSMicrosoft Iceland
 
1 jazz overview-karthik_k
1 jazz overview-karthik_k1 jazz overview-karthik_k
1 jazz overview-karthik_kIBM
 
Jazz Overview- Karthik K
Jazz Overview-  Karthik KJazz Overview-  Karthik K
Jazz Overview- Karthik KRoopa Nadkarni
 
The Essentials of Great Search Design (ECIR 2010)
The Essentials of Great Search Design (ECIR 2010)The Essentials of Great Search Design (ECIR 2010)
The Essentials of Great Search Design (ECIR 2010)Vegard Sandvold
 
Agile Developers Create Their Own Identity
Agile Developers Create Their Own IdentityAgile Developers Create Their Own Identity
Agile Developers Create Their Own IdentityAjay Danait
 
Agile developers create their own identity by Ajay Danait
Agile developers create their own identity by Ajay DanaitAgile developers create their own identity by Ajay Danait
Agile developers create their own identity by Ajay DanaitXebia IT Architects
 
The process of software architecting
The process of software architectingThe process of software architecting
The process of software architectingRoger Snook
 
Architecture: where do you start?
 Architecture: where do you start? Architecture: where do you start?
Architecture: where do you start?Skills Matter
 

Similar to Simon brown archsummit2012 the-frustrated-architect (20)

Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
 
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_Final
 
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
プレゼンビフォアアフタ
プレゼンビフォアアフタプレゼンビフォアアフタ
プレゼンビフォアアフタ
 
We Can't Do That Here
We Can't Do That HereWe Can't Do That Here
We Can't Do That Here
 
Collaborative Lifecycle Managmenent - an Introduction
Collaborative Lifecycle Managmenent - an IntroductionCollaborative Lifecycle Managmenent - an Introduction
Collaborative Lifecycle Managmenent - an Introduction
 
Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environment
 
Private Clouds for Developers: Make Your Infrastructure Agile
Private Clouds for Developers: Make Your Infrastructure AgilePrivate Clouds for Developers: Make Your Infrastructure Agile
Private Clouds for Developers: Make Your Infrastructure Agile
 
Are Agile And Secure Development Mutually Exclusive?
Are Agile And Secure Development Mutually Exclusive?Are Agile And Secure Development Mutually Exclusive?
Are Agile And Secure Development Mutually Exclusive?
 
Agile Developers Create Their Own Identity[1]
Agile Developers Create Their Own Identity[1]Agile Developers Create Their Own Identity[1]
Agile Developers Create Their Own Identity[1]
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTS
 
1 jazz overview-karthik_k
1 jazz overview-karthik_k1 jazz overview-karthik_k
1 jazz overview-karthik_k
 
Jazz Overview- Karthik K
Jazz Overview-  Karthik KJazz Overview-  Karthik K
Jazz Overview- Karthik K
 
The Essentials of Great Search Design (ECIR 2010)
The Essentials of Great Search Design (ECIR 2010)The Essentials of Great Search Design (ECIR 2010)
The Essentials of Great Search Design (ECIR 2010)
 
Agile Developers Create Their Own Identity
Agile Developers Create Their Own IdentityAgile Developers Create Their Own Identity
Agile Developers Create Their Own Identity
 
Agile developers create their own identity by Ajay Danait
Agile developers create their own identity by Ajay DanaitAgile developers create their own identity by Ajay Danait
Agile developers create their own identity by Ajay Danait
 
The process of software architecting
The process of software architectingThe process of software architecting
The process of software architecting
 
Architecture: where do you start?
 Architecture: where do you start? Architecture: where do you start?
Architecture: where do you start?
 

More from drewz lin

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearydrewz lin
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013drewz lin
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13drewz lin
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrichdrewz lin
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2drewz lin
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2drewz lin
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfdrewz lin
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equaldrewz lin
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansendrewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaoladrewz lin
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsdrewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentationdrewz lin
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsdrewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martindrewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowaspdrewz lin
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usadrewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架drewz lin
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈drewz lin
 

More from drewz lin (20)

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
 

Recently uploaded

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

Simon brown archsummit2012 the-frustrated-architect

  • 1. 感谢您参加本次Ar h u c S mmi全球架构师峰会! t 大会官方网站与资料下载地址: www. c um m i . om ar hs tc
  • 4. simon.brown@codingthearchitecture.com @simonbrown (Twitter) 写作 培训与咨询
  • 7. Big up front design Waterfall analysis paralysis UML and 我是一个 软件架构师 I’m a software architect Ivory Tower PowerPoint Architect Architecture Astronaut
  • 8. PPT架构 Buzzword Bing o Single Sign-On Corporate Data Model Enterprise Service Bus
  • 9. “ 架构师是 “业务技术战略家” Architects are “business technology strategists”
  • 10. “ 微软的SharePoint 有很明 的ROI和TCO Microsoft SharePoint has a solid ROI & TCO
  • 11. “ MongoDB的价值主张是什么给我看看你的商业分析! What’s the value proposition of MongoDB? Show me your business case!
  • 12. 词汇 Buzzwords! 热 词汇让人们离软件架构的学问 越来 越远 Buzzwords push people away from learning about the software architecture dis cipline
  • 13. 我是团队的另一名成员 我喜欢编写代码 I’m another member of the team ... I like writing code
  • 14. “Architecture” Time Coding
  • 15. UML
  • 17. 企业职场发展阶梯 Corporate career ladder Non-technical 我们的导师升职了 Technical 救命! Our mentor has been promoted ... help!
  • 19. 软件架构师不是组织中的职级 “Software Architect” is not an organisational rank 软件架构师是你慢慢演化成的角色 evolve into itecture is a role that you Software arch
  • 20.
  • 21. 我们希望变得敏捷 We aspire to be agile 敏捷很酷,但是我们是不是忘了什么东西? Agile is cool, but are we forgetting something?
  • 23. Structure Moving fast, Test-driven embracing development Self-organising change team Security Availability Non-functional Continuous requirements delivery Automated Agile Technical guidance acceptance Vision Emergent testing design Performance Kanban Technical quality Retrospectives Scalability Lean
  • 24. 敏捷 + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  • 25. “敏捷软件架构师” 是什么? What is an agile software architect?
  • 26. Defer until the Evolutionary Architecture Emergent Design last responsible YAGNI and moment 我是一个 “敏捷软件架构师” I’m an agile software architect! System Metaphor Refactoring Spikes, stripes and tracers
  • 27. 这是敏捷的软件架构吗? Is this agile architecture? 即时贴 Sticky notes!
  • 28. 敏捷 Skills Sprint 1 Sprint 2 Sprint 3 Business Modelling Requirements Analysis & Design Implementation Test Deployment Configuration Management Project Management Environment
  • 29. 演化的架构 愚蠢地期待最好结果? Evolutionary architecture ... foolishly hoping for the best?
  • 30. 我们不需要软件架构, 我们实施测试驱动 发 We don’t need software architecture; we do TDD Agile software team
  • 31. 测试驱动 发玩的是代码 软件架构玩的是“全景” TDD is about code ... software architecture is about the “big picture”
  • 32. 最后负责时刻 Last responsible moment
  • 33. 自组织团队不一定总在工作 Self-organising teams don’t always work
  • 34. 为什么你们要 击敏捷? Why are you bashing agile?
  • 35. 让我们重新发明轮子 Let’s reinvent the wheel
  • 37. 我们是不是忘的比学的还多? Have we forgotten more than we’ve learnt?
  • 38. UML
  • 39.
  • 40. Cllsss Caa s Cla s s atorrs or ato llabborators Coll l b CCo aa or o esponsbiililtiiess R sponsiib liit es Re po ns ib itie Res 类-责任-协作 Class-Responsibility-Collaboration
  • 41. 边界、控制器和实体 Boundaries, controllers and entities
  • 42. 基于组件的 发 Component-based development Component A Component B Component C upling High cohe sion, low co act, des ign by contr inciple Liskov sub stitution pr
  • 44. Rational 统一过程 Rational Unified Process (RUP) Skills Inception Elaboration Construction Transition Business Modelling Requirements Analysis & Design Implementation Test Deployment Configuration Management Project Management Environment
  • 45. 要讲求实效 很多人不知道比较老的软件 发实践 Be pragmatic ... many people aren’t aware of older software development practices
  • 46. 谁在讲授前敏捷时代的经典? Who is teaching the classics of the pre-agile era? Test-Driven Development Systems Thinking Extreme Programming Continuous Delivery Kanban re 敏 ite c tu 程 ch 过 e Ar 一 ar L 捷 al 统 So f tw M on ted U R ati -O rien n er Patt 基于组件的 发
  • 47. 所以你认为你是一个软件架构师么? So you think you're a software architect?
  • 48. esume Curriculum Vitae / R nterprise A rchitect E date) 6- A Big C ompany (200 men tation of an des ign and imple sp ons ible for the ML diagrams and I I have been re d rew some U me r solution. I ente rprise custo wrote som e Java code. ) o de please. :- ob w riting more c I w ould like a j 企业 架构与软 件架构不同 大 企业中的 e in a large en terprise! hitectur e same as software arc hite cture isn’t th Enterprise arc
  • 49. 软件 发不是接力赛 Software development is not a relay sport Software e Architectur Document AaaS ... architecture as a service
  • 50. 成功的软件交付不仅仅是实现细节 Successful software delivery is not an implementation detail!
  • 52. 不负责任的软件架构师 The irresponsible software architect Cross-site scripting attacks possible; weak passwords allowed; HTTP sessions didn’t timeout; ... Basic functionality errors; No non-functional testing little or no quality (e.g. penetration testing or assurance; rework required load testing); ... late in the project because of assumptions; ... No documentation; ... 这是一 个战略软件平台! e platform! This is a strategic softwar
  • 53. 我们是作者还是软件架构师? Are we authors or software architects?
  • 54. 你知道你在构建什么吗? Do you know what you’re building?
  • 55. 混乱 团队是否理解他们要构建什么? 应该如何构建? Chaos ... does the team understand what they are building and how they are building it?
  • 56. No defined structure, inconsistent approaches, big ball of mud, spaghetti code, ... 混乱停! 团队是否理解他们要构建什么? 应该如何构建? Chaos ... does the team understand what they are building and how they are building it? Slow, insecure, unstable, unmaintainable, hard to deploy, hard to change, over time, over budget, ...
  • 57. 对“太长,没看”的共同理解 Shared vision of TL; DR Software e Architectur Document
  • 58. 对“什么? !”的共同理解 Shared vision of what!?
  • 59. Common Services More Common Services Service A Service B Service C 3rd Party Interface Presentation Layer Presentation Layer Presentation Layer Presentation Presentation Layer (Master Pages) (Service A Pages) (Service B Pages) (Service C Pages) Layer Service Proxy Service Proxy Service Proxy Service Proxy Service Proxy WCF Communications (SOAP, REST, TCP, MQ) Transport Services Services Services Services Implementation Services Implementation WCF Service Implementation Implementation Implementation Service Contracts Contracts Contracts Contracts Contracts Interface Services Services Service A Service B Service C Business Services Services Services Services Services Services Services Layer Data Data Data Contracts Data Contracts Data Contracts Data Contracts Data Interface Contract Contract Data Data Data Data Data Data Service A Data Data Service C Layer Layer Layer Layer Layer Layer Data Layer Data Layer Layer Layer Data Layer 3rd Party 3rd Party Interface 3rd Party Interface Interface Common Authentication Logging Foundation Data Management Data Access CRM Workflow Email
  • 60. 我们可以把我们软件 发的过程可视化 We can visualise our software development process 我们已经忘记了如何可视化我们构建的软件 We’ve forgotten how to visualise the software that we’re building
  • 61. 你如何设计软件? How do you design software?
  • 63. 软 件架构师坐在象 塔之中 软件架构师 Software architect sits in an ivory tower 软件程序猿专注于底层细节 the low- Software developers focus on level detail 软件程序猿 软件程序猿 软件程序猿 软件程序猿 软件程序猿
  • 64. 协作、教练、指导 Collaborating, coaching and mentoring 软件架构师 缩小差距 软件程序猿 提升软件架构的自我意识 Increased awareness of software architecture
  • 65. 广度 ... 知道不同的方案和软件 发实践 Breadth ... awareness of different options and software development practices 通 才 化 的 优秀的 软件架构师是“建 筑师 ” r builders arch itects are maste Good software 深度 ... 深厚的技术知识 Depth ... deep technical knowledge 专 才
  • 66. 你会雇一个不会编码的架构师么? Would you hire a software architect that wouldn’t code?
  • 67. 软件架构师这个角色 需求和约束 技术选型 软件设计 Requirements and constraints Technology selection Software design 软件设计的评估 编码 软件设计的演化 Evaluation of software design Coding Evolution of software design 质量保证 教练和指导 Quality assurance Coaching and mentoring
  • 68. ) Standard ( ntext containers Mac ang le (co ) ro ( Wide ponents) clas Telephoto (com ses ) Abstract Specific 作为软件程序猿,代码是我们的主要面向对象 As developers, the code is our major focus
  • 69. ) Standard ( ntext containers Mac ang le (co ) ro ( Wide ponents) clas Telephoto (com ses ) Abstract Specific 有时你需要离代码远一点儿 Sometimes you need to step back from the code
  • 70. Big Bank plc Internet Banking System 1. Current Situation We have an existing Internet Banking offering that allows customers to securely view information about their bank accounts held with us via the web. Although we were one of the first to market with such a product, the system itself is a number of years old now and a series of problems has been identified during a consulting exercise that we recently initiated. In summary: • The system only provides customers with read-only access to information about their bank accounts. This includes account balances, recent transactions and recent statements. • The information presented to customers is slightly out-of-date, because information from the core banking system is exported to the website on a nightly basis. • Transactional requests are not possible through the site, with customers instead sending a secure message to the call centre with their request instead. This process is open to abuse and fraud. • The number of features supported by the offering is limited. ext) • The technology is no longer seen as “leading edge”, is hard to enhance and costly to maintain. In addition, the technology has reached “end of life” and is no longer proactively supported by the vendor. (cont • The system doesn’t meet current website accessibility standards. In a recent survey, our Internet Banking system was perceived as poor in terms of the user angle experience and the level of information available through the website. With our competitors now offering fully transactional systems, there is a risk that we will lose business. Wide 2. Vision The board have given us the go-ahead to initiate a project to replace the current Internet Banking system, which will need to coincide with the corporate rebranding that will be taking place in 12 weeks. The replacement system should: • Provide customers with real-time access to information about their bank accounts. • Provide customers with the ability to perform common transactions through the website. This includes making payments, setting up standing orders, transferring money and so on. • Provide customers with a rich user experience. • Meet current website accessibility standards. • Be developed using the new corporate website design guidelines. 任何问题都有多 解决方案 There are a number of solutions to any problem Standard ( container s) ponents) Telephoto (com 约束 原则 需求 Mac ro ( clas ses )
  • 71. Big Bank plc Internet Banking System 1. Current Situation We have an existing Internet Banking offering that allows customers to securely view information about their bank accounts held with us via the web. Although we were one of the first to market with such a product, the system itself is a number of years old now and a series of problems has been identified during a consulting exercise that we recently initiated. In summary: • The system only provides customers with read-only access to information about their bank accounts. This includes account balances, recent transactions and recent statements. • The information presented to customers is slightly out-of-date, because information from the core banking system is exported to the website on a nightly basis. • Transactional requests are not possible through the site, with customers instead sending a secure message to the call centre with their request instead. This process is open to abuse and fraud. • The number of features supported by the offering is limited. ext) • The technology is no longer seen as “leading edge”, is hard to enhance and costly to maintain. In addition, the technology has reached “end of life” and is no longer proactively supported by the vendor. (cont • The system doesn’t meet current website accessibility standards. In a recent survey, our Internet Banking system was perceived as poor in terms of the user angle experience and the level of information available through the website. With our competitors now offering fully transactional systems, there is a risk that we will lose business. Wide 2. Vision The board have given us the go-ahead to initiate a project to replace the current Internet Banking system, which will need to coincide with the corporate rebranding that will be taking place in 12 weeks. The replacement system should: • Provide customers with real-time access to information about their bank accounts. • Provide customers with the ability to perform common transactions through the website. This includes making payments, setting up standing orders, transferring money and so on. • Provide customers with a rich user experience. • Meet current website accessibility standards. • Be developed using the new corporate website design guidelines. 任何问题都有多 解决方案 There are a number of solutions to any problem Standard ( container s) ponents) Telephoto (com 约束 原则 需求 Mac ro ( clas ses )
  • 72. 白板和挂图 UML工具
  • 73. & pens Flip chart Post-it n otes Blu-Tack Index cards Whiteb oard & pens 协作式软件设计 ifte areedesign raso v w d s gn t i CCollaabo ve oll borati
  • 74. ts 2. Containers 3. Componen 1. Context C4 有效的草图 4. Classes Effective sketches Context Containers Components Classes 按常理出 (thinking inside the box)
  • 75. 你会那样编码么? Would you code it that way? 师” 师必须 是“建筑 架 构 是为 什么软件 ust be 这就 i tects m re arch why softwa This is uilders m aster b
  • 76. Soft ware 地图 Ar chitecture Maps D ocu ment 景点 Sights 旅 行 手册 历史和文化 lture History and cu idebook avel Gu Tr 实用信息 Practical inform ation
  • 77. 文档应该说清楚代码没有说的东西 Documentation should describe what the code doesn’t 浪费, 增加价值 文档应该说明意图, 少 并作为源代码的导引说明 dd value waste, a Reduce Use it to explain intent and act as a guide to navigate the source code
  • 78. 大型前期设计? Big design up front?
  • 79. 你做多少前期设计? How much up front design should you do? 演化的架构? 大型前期设计? 没有? Waterfall 还是二者之间?
  • 81. Base your architecture on requirements, travel light and prove your architecture with concrete experiments. Scott Ambler http://www.agilemodeling.com/essays/agileArchitecture.htm
  • 82. Features and Services Infrastructure Services 实验 Experiments 原型或证明 Foundations 概念 t of concep Prototyp e or proof A software system
  • 84. 你需要识 并消除优先级最高的风险 You need to identify and mitigate your highest priority risks
  • 85. 概率 (Probability) 中 (2) 高 (3) 低 (1) 低 1 2 3 (1) 影 响 中 2 4 6 (2) (Impact) 高 3 6 9 (3)
  • 86. 风险风暴 “Risk-storming” 识 风险的协作与可视化技巧 A collaborative and visual technique for identifying risk
  • 87. 风险识 出来后,你还是需要应对它们 You still need to deal with the risks once they’ve been identified
  • 88. 新技 术的问题 hnology wit h new tec Problems An example timeline from “Beyond Retrospectives” by Linda Rising #gotocon Aarhus 2011
  • 90. 软件架构师角色 和软件设计流程 是不同的东西 The software architecture role and the process of designing software are different
  • 91. 软件架构师这个角色 The software architecture role 混乱团队 ... 自组织团队 团队中的专职软件架构师 每个人都是软件架构师 Dedicated software architect Everybody is a software architect on a team
  • 92. 软件设计流程 The software design process Software /// <summary> /// Represents the behaviour behind the ... e Architectur /// </summary> public class SomeWizard : AbstractWizard { Document private DomainObject _object; private WizardPage _page; ... private WizardController _controller; public SomeWizard() { } ... } 大型前期设计 演化的架构 Big up front design Evolutionary architecture The architecture evolves secondary to the Requirements capture, analysis and value created by early regular releases of design complete before coding starts working software
  • 93. 刚刚 用 理解软件的重要结构元素 软件架构师这个角色 Understand the significant stru The software ctural elements of the software architecture role 识 并消 除 键风险 ks key ris and mit igate the Identify 为团队提供 坚实基础和 共同愿景 Provide fir m foundat a shared v ions and ision for t he team /// <summary> /// Represents the behaviour behind the ... /// </summary> Software public class SomeWizard : AbstractWizard { Architecture 软件设计流程 private DomainObject _object; private WizardPage _page; Document private WizardController _controller; The software design process public SomeWizard() { } ... }
  • 94. 敏捷软件 发项目需要软件架构师么? Do agile software development projects need software architecture? 需要 Yes
  • 95. 敏捷软件 发对架构师来说是好东西吗? Is agile software development a good thing for software architecture? 是的, 它可以制止大型前期设计和分析带来的瘫痪 Yes, it stops big design up front and analysis paralysis
  • 96. 定义你的团队中的软件架构师角色 Define the software architecture role on your teams
  • 97. 向软件架构中应用一些工艺 Apply some craftsmanship to software architecture 有效的草图和轻量级文档 Effective sketches and lightweight documentation 可工作的 软件系统! work! e syst ems that Softwar
  • 98. 、主动,以身作则 Be proactive, take ownership and lead by example
  • 99. 我们需要为明天培 软件架构师 We need to grow the software architects of tomorrow
  • 101. om codingthearchitecture.c 培训与咨询 simon.brown@codingthearchitecture.com leanpub.com @simonbrown on Twitter
  • 102. 杭州站·2012年 10月 25日 ~27日 大会官网:www.c n a g h uc m q o h n z o .o