成本:
1.
钱多一点可以促进工作的顺利进行,但是太短时间内投入太多的钱,则会产生更多的无法解决的问题。
2.
软件开发的主要成本还在于人员的成本,而人员规模和软件的完成时间不是成线性变化。多加一人,交流成本、管理成本都会增加不少。就像十个妇女在7个月内不能生出一个小孩,一个孕妇在7个内就可以生出一个小孩。在一个进行的项目中,人员的变化是比较少的。
质量:
1、
质量分为:
外部质量和内部质量。
2、
外部质量:用户能够感受到的。
3、
比如:健壮、效率、可用、可靠、容错能力、恢复能力等非功能性质量。这些因素可以作为需求,成为范围的一部分内容。
4、
内部质量:程序员能够感受到的。
5、
比如:可维护、可读、灵活、重用、可测试
6、
在这些特性中,不能说我先把功能完成,再去满足这些特性,要不成本可能会几倍几十倍的增加。
7、
干劲才是杀手。有时匆匆忙忙用
1
个小时写的一堆代码,用了
3
个小时调试,还心中余悸。
8、
提高内部质量,可以在减少缺陷的同时,也可以缩短开发周期。
时间和范围:
1.
时间和范围是软件项目的最佳控制杆。功能多可以争取更多的时间;功能少可以减少时间。
2.
范围容易发现,时间不易估算,所以需要迭代。
3.
需求人员(市场人员)确定范围,决定功能的优先级;
4.
开发人员估算功能的完成时间。
5.
职责明确,各角色可以相互协助,比如开发人员了解某个模块影响会比较大,可以建议需求人员提高这个模块的优先级。