构建之法阅读笔记04

第五章 团队和流程

团队和非团队:

  1.团队有一致的目标,团队要一起完成这个目标。

  2.团队成员有各自的分工,互相依赖合作,共同完成任务。

软件团队模式:

  1.主治医师模式:“一个学生干活,其余学生跟着打酱油”。

  2. 明星模式:明星的光芒改过了团队其他人的总和。

  3. 社区模式:好处是“众人拾柴火焰高”,坏处是如果大家都只来烤火,不去拾柴;或者捡到的柴火质量太差,最后火也就熄灭了。

  4. 业余剧团模式。

  5.秘密团队,在秘密状态下进行,别人不知道他们具体在干什么。好处是:团队内部有几大的自由,没有外界的干扰,团队成员有几大的投入。

  6. 特工团队。由一些专业人士组成,负责解决一些棘手二又紧迫性的问题。

  7. 交响乐模式。当某个软件领域处于稳定成长阶段的时候,总舵大型软件公司开发团队结汇采取这种模式,例如微软公司的office软件。

  8. 爵士乐模式:不靠谱,没有现场指挥。没有模式,人数较少。

  9. 功能团队模式,具备不同能力的同时平等协作,共同完成一个功能。功能完成之后,这些人又重新组织和别的角色一起完成下一个功能。

  10. 官僚模式。 

 

开发流程:我们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。

  1. 改了在写模式:适合于“只用一次”的程序,“看过了就扔”的原型,一些不使用的演示程序。

  2. 瀑布模型:分析-->设计-->实现(制造)-->销售-->维护的流程。使用范围:

    1)如果产品的定义非常稳定,但是产品的正确性非常重要,需要每一步的验证。

    2)产品模块之间的接口、输入和输出能够很好地用形式化的方法定义和验证。

    3)使用的技术非常成熟,团队成员都很熟悉这些技术。

    4)负责各个步骤的子团队分属不同的机构,火灾不同的地理位置,不可能做到频繁的交流。

    局限性:

    1)各步骤之间是分离的,但是软件生产过程中的各个步骤不能这样严格的分离出来。

    2)回溯修改很困难甚至不可能。

    3)最终产品知道最后才出现,但是软件的客户,甚至软件工程师本人都需要尽早知道产品的原型并适用。

  3. 瀑布模型的各种变形。

  4. Rational Unified Process 统一流程

    1)业务模型

    2)需求

    3)分析和设计

    4)实现

    5)测试

    6)部署

    7)配置和变更管理

    8)项目管理

    9)环境

    RUP把软件开发分成几个阶段:

      (1)初始化阶段:分析软件系统大概的构成,系统与外部系统的边界在哪里的,大致的成本和预算是多少,系统的风险主要来自哪里。

      (2)细化阶段:分析问题领域,建立健全的体系结构基础,编制项目计划,按优先级处理项目中的风险。

      (3)构造阶段:团队开发出所有功能及,并有序地把功能集成为经过各种测试验证过的产品。

      (4)交付阶段:团队的工作重点是确保软件能够满足最终用户的实际需求。

  5. 老板驱动的流程:开发流程事实上是由行政领导主导,或者有公司的老板驱动。

    1)当软件订单的获得不是主要靠技术实力,而是靠个人关系,或者暗箱操作的时候。

    2)大型企业内部,软件功能往往有行政体系来决定。

    3)有些老板比一般技术人员懂得市场和竞争。

    4)软件团队尚不成熟,不懂得如何对行政领导有技巧的说不。

  6. 渐进交付的流程,MVP和MBP:【开发-->发布-->听取反馈-->根据反馈做改进】

 

阅读感受:

  以前我虽然知道一款软件的发布需要及其复杂的流程,制作一款软件并不比其他类的功能简单。但是我并没现有想过软件开发中会有哪些具体的流程,与其说没想道倒不如说想不到。这么多开发模式当我,我并不知道哪一个适合我,我有时哪一种,如果仅凭我的认识自然认为统一流程最好了,但是若是真的遇到实战项目,我真的可以做到吗?这个很难说。也许我应该向这方面努力,虽然我知道现阶段的我是不可能达到能够领导一个团队的水平的,至少我也得有这样的梦想。

posted @ 2017-03-25 12:38  悦尔  阅读(116)  评论(0编辑  收藏  举报