软件业的生存之道学习笔记

第一章 软件商务:我的个人观点

  软件业和传统行业不同,主要因为它其实并不是一个真正意义上的行业,它可以具有任何功能和应用,这意味着软件业得产品和服务范围几乎不受限制

  软件业务中的管理技术主要是指监控为特定客户的需要而设计软件产品或者信息系统的过程,监控建立、测试、分发的过程,以及监控在这个软件产品或者系统的使用期中支持、增强其功能的过程。

第四章 软件开发方法:超越软件工厂

  软件公司必须学会管理整个流程,流程指的是从定义产品需求、系统体系结构到最终测试和技术支持在内的一切内容,包括完成一项产品在不同阶段和功能所牵涉到的反馈机制。

  NATO关于软件工程问题的报告(1968)

    * 客户和设计者缺少对系统需求的了解

    * 由于估算技术差劲、没有为客户需求的变化预留时间,以及没有很好地了解系统就将程序任务分块。从而使得,对于开销和时间上的估计往往与实际的花费有巨大的差距。

    * 变数很大。例如,程序员的生产率有可能相差26倍。

    * 很难区分设计和开发工作,有些设计方面的决策仍必须在编程过程中做出。

    * 由于“程序开发通常并不是一系列步骤的简单叠加,每一个步骤都是相互关联的”,因此很难监控软件项目的进度。

    * 软件系统规模的快速增长

    * 同一项目下的各工作小组之间缺乏沟通,许多事情没有有效的协调或充斥大量无用的信息,这使得沟通效果更加糟糕,并且处理所需信息的自动化程度不高。

    * 开发在线产品控制工具需要巨大的花费

    * 很难客观地度量程序员和系统的性能

    * 软件开发人员之间在系统开发过程中,追求的不是“实用”而是“更新”和“更好”,这使得他们在单个项目中既有研究、又有开发和商品化,从而使得预测和管理变得极其困难。

    * 对程序员的需求呈快速增长之势,然而训练有素、经验丰富的程序员数量有限

    * 难以保证大型软件系统的可靠性(减少错误及提高系统的容错性)

    * 软件依赖于硬件,这使得很难在不同的计算机之间实现软件的标准化

    * 缺少可辅助构建新的程序的可重用的软件组件

    * 软件维护成本往往超过系统最初的开发成本

  大部分新创业的软件公司、以及开发方法发生变化的成熟的公司所常见的各种管理上、技术上和策略上的问题:

    项目管理:

      1 进度安排和项目控制

      2 规划和资源分配

      3 风险管理度量

    软件设计和开发:

      1 缺少详细而有效的开发策略和过程

      2 产品设计难于稳定、修改、演变和移植

      3 无序的产品计划和无序的体系结构设计过程

      4 不规范的功能设计和规格说明过程

      5 有可能更快的非标准化的创建过程

      6 在开发、继承和测试中几乎没有并行工作或自动化

      7 设计、代码和文档没有很好的正式的检查

      8 修改控制系统不佳

      9 客户反馈和设计导入机制不合适

    知识和人员管理

      1 体系结构和设计知识含糊,而且没有广泛共享

      2 难于查找已有的产品和项目信息

      3 小组之间沟通,反馈和学习较差

      4 严重的超负荷工作和低落的人气

      5 招聘和人员安排工作混乱

      6 没有培训和员工技能发展计划

      7 没有职业发展或个人管理系统

 

posted @ 2013-07-20 14:23  褐色键盘  阅读(189)  评论(0)    收藏  举报