构建之法-5-团队和流程

2019-05-10  本文已影响0人  BigLong
团队和流程.png

只有一个好的团队,才能做成大事。
——鲁迅没说过

5.1 非团队和团队

提出了一个问题:什么是一个团队?随便凑一伙人算是团队吗?这个说不好,但是一个好的团队应该会满足两个特点:

  1. 团队有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时工作,例如接力赛跑。(王屋村搬砖的“非团队”成员则不然,每个人想搬多少就搬多少,不想干了就结算工钱走人。
  2. 团队成员有各自的分工,互相依赖合作,共同完成任务。(王屋村搬砖的“非团队”成员则是各自行动,独立把任务完成,有人不辞而别,对其他的搬砖人无实质影响。)

5.2 软件团队的模式

软件团队的模式

每种模式都各有优劣,不同的团队可能会有不同的最佳合作模式。


5.3 开发流程

做开发总得有一个完整的开发流程。

我们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效率,以及提升用户满意度、软件的可靠性和可维护性。

开发流程
5.3.1 写了再改模式(Code-and-Fix)
写了再改模式.png

这种模式就像小孩“过家家”一样,开发的程序用过一次就扔了,不足取。

5.3.2 瀑布模型(Waterfall Model)
收集反馈并改进.png
在这个模型下文档的重要性
5.3.3 瀑布模型的各种变形
5.3.4 Rational Unified Process 统一流程(RUP)
RUP的工作流(纵轴)和开发流程的各个阶段(横轴),图中的阴影面积代表不同角色在各个阶段的参与程度。由于阴影面积起起伏伏,这个图又被称为RUP驼峰图
5.3.5 老板驱动的流程(Boss-Driven Process)
  • 领导对许多技术细节是外行。
  • 领导未必懂得软件项目的管理,领导的权威影响了自由的交流和创造。
  • 领导最擅长的管理方式是行政命令,这未必能管好软件团队或任何需要创造力的团队。
  • 领导的精力有限,领导很忙时,团队怎么办?
5.3.6 渐进交付的流程(Evolutionary Delivery),MVP和MBP
不断演进的evolution循环

这种流程比较像敏捷开发模式。

用MVP的思路,团队会找出最关键、最小的功能集,快速实现,三个月就可以听到用户的反馈


结束

有人说,现代软件工程分为四个阶段:

和PM吵
和设计吵
和测试吵
和用户吵

你觉得应该如何避免吵架?

上一篇 下一篇

猜你喜欢

热点阅读