消化人月神话
来源:互联网 发布:dnf代练接单软件 编辑:程序博客网 时间:2024/05/02 04:29
程序的规模包括:
普通程序。
程序加上通用化,测试,文档和维护就成了编程产品。
程序规模很大,为了便于理解、开发和维护,我们将它分解为模块,为它定义清晰的接口,然后将各个构件集成为系统,称之为编程系统。
编程系统 * 编程产品 == 编程系统产品
从工作量上面来说:
编程产品 = 3 * 程序
编程系统 = 3 * 程序
编程系统产品 = 9 * 程序
对我来说,编程的乐趣在于,持续学习,探索细节,以及找到Bug,将“部分”组合成“整体”最后创造事物,这个过程的巨大魅力。它是一个极富创造性的过程,既是科学也是艺术。
当然编程也不可能时刻都那么有趣,也有枯燥的时候,发脾气的时候,无可奈何的时候。
对项目进行管理时,进度安排不合理常常导致项目失败。
进度与工作量不能混淆,人月不能互换,就是说1个人做一年的程序,不等于12个人做一个月。这主要是因为:
1.任务次序有限制
2.分解独立子任务的数量有限制
3.参与人员需要沟通(包括培训和交流)
所以向进度落后的项目中增加人手,会使沟通的成本急剧增加,进度可能达不到预期。
1/3计划
1/6编码
1/4构建测试和早期系统测试
1/4系统测试
可能是一个合理的时间安排。
团队构建一个可能的结构是外科手术团队。一个首席程序员,定义功能和技术性能说明书,设计程序架构,其他人编码,测试,文档,以支持他的工作。团队还包括了语言专家和工具维护人员。
系统的概念完整性由首席程序员一个人说了算,其他人把精力集中在自己要解决的问题上,这样有助于创意的形成,以及沟通的减少,从而错误也减少。
软件活动包括:
根本任务,打造构成抽象软件实体的复杂概念结构。Conceptual
次要任务,使用编程语言表达抽象实体,在空间和时间限制内将它们映射为机器语言。Representation
软件开发中的问题包括:根本问题,次要问题。
根本问题包括:
1,复杂度,来自于程序员之间沟通不良;程序本身的复杂度;新增功能的副作用
2,一致性,各个小系统随时间和环境的变化趋于不一致
3,易变性,硬件,人群,法律以及应用领域等因素引起的变化
4,不可见性,程序是抽象的,无法用图形表示程序的整体结构,给沟通和理解造成巨大困难
解决的办法:
1,通过购买,使用现成的软件组件
2,快速原型,首先开发高风险的核心架构
3,优秀的人才,专家是专门用来飙高音的,专家和新手的差距是10-20倍
4,迭代开发,有机成长的系统
- 消化人月神话
- 《人月神话》-人月神话
- 人月神话
- 人月神话
- 《人月神话》
- 人月神话
- 人月神话
- 人月神话
- 人月神话
- 《人月神话》
- 人月神话
- 人月神话
- 人月神话
- 人月神话
- 《人月神话》
- 《人月神话》
- 人月神话
- 人月神话
- 动态生成验证码用于ASP.NET登录或注册模块中
- [java 控制 ftp] 额,java控制ftp ,几年前写的,看着类名,,,多嫩啊
- 关于线程安全的一些记录
- 黑盒测试、白盒测试和灰盒测试的基本概念
- 想你
- 消化人月神话
- [jdbc封装]许多种数据库的连接地址 ,也是怀旧的代码.
- JAVA功能代码《11》----Java中将Array转换成Map
- JAVA功能代码《12》----使用NIO快速复制文件
- [xml]java解析xml ,怀旧
- JAVA功能代码《13》----在Java中调整数组大小
- 【InfoQ】Java深度历险系列
- [创新杯]2010 年创新杯练习题 ,抽奖抽神马 ,附送一个小shell,呵呵
- JBPM实践系列(二)jsp页面中流程图的显示