1.1软件=程序+软件工程
~软件开发的不同阶段
1)玩具阶段
2)业余爱好阶段
3)探索阶段
4)成熟产业阶段
5.1团队与非团队
团队共同的特点:1)团队有一致的集体目标,团队要一起完成这个目标
2)一个团队的成员不一定要同时工作
3)团队成员有自己的分工,互相依赖合作,共同完成任务
5.2软件团队的模式
1)蜂窝模式:一堆人球在哪里人就在那里。
2)主治医师模式:一个学生干活,其他人跟着打酱油
3)明星模式:明星的光芒盖过了其他人的总和
4)社区模式:每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬
5)业余剧团模式:个人在团队中听从一个中央的指导和安排
6)秘密团队:一些软件项目在秘密状态下进行,别人不知道他们具体在做什么
7)特工团队:有一些有特殊技能的人参与模式
8)交响乐团模式:家伙多门类齐全,各司其职。演奏靠谱,练习多
9)爵士乐模式:另外一种演奏模式
10)官僚模式:脱胎于大机构的组织架构
5.3 开发流程
1)写了再改模式:与蜂窝团队模式非常像
2)团队模式功能:具备不同能力的同事们平等的协作,共同完成一个功能
3)瀑布模型:温斯顿并不推崇严格意义上的瀑布模型的各种缺陷,并提出了一些改进的方法
17章
17.2其实还是人的问题
我们建立第一个科学的时候,我遇到了很大的困难,这些困难不是来自政治界的,而是来自学术界本身,来自学术界某些权威,有位权威就是不同意给我立体和资助。
~瀑布模型有适用的范围吗?
1)如果产品的定义非常稳定,但是产品的正确性非常重要,需要进一步验证
2)产品模块之间的接口,输入输出能很好的用形式化的方法定义和验证
3)使用的技术非常成熟,团队成员都很熟悉这些技术
4)负责个步骤的子团队分属不同的机构,或不同的地理位置,不可能做到频繁的交流
17.3 绩效管理
比资历?大锅饭?比效率?背靠背评比?比不犯错误?如何区别对待?
队员评估这一机制,得出以下4个值:
1)技术等级或技术能力
2)劳动生产力或结果
3)对团队的贡献
4)对产品的贡献
~如何区别对待?
按照完成任务维度。团队贡献的维度
17.5 团队合作的几个阶段
1)萌芽阶段:一个人的角色和职责还不清楚,大家都很有礼貌,成员也在琢磨任务到底有多大,每个人忙着适应,开始各种讨论。
2)磨合阶段:追求最大和谐,投票,咨询,独裁,交换决定权
3)规范阶段:团队公开的讨论流程和工作方式。一些不成文的规则建立起来。团队定下来更现实的目标。在工作中互相支持,意识到并尊重各人的个性。
4)创造阶段:团队知道为何而战,并将注意力集中到如何创造,实现目标上,高度自治,没有人为此担心或发牢骚。
17.6软件工程的职业道德
原则1.公众 原则2。客户与雇主 原则3.产品 原则4 判断 原则5 管理 原则6 职业 原则7 同事 原则8 自身
探讨:理想团队模式的构建,需要每个人牺牲小我成全大我的精神,要在最短的时间内磨合个性,了解自己与他人,发挥每个人最大的优点,不能盲目自大,更不能过分自卑
团队协助,最重要的是学会尊重他人,尊重他人的劳动成果,尊重他人的学习成果,学会倾听,学会理解与包容。
软件流程见17章总结中