软件工程与项目管理讲义

合集下载

软件工程与项目管理培训资料

软件工程与项目管理培训资料
Theme color makes PPT more convenient to change.
Adjust the spacing to adapt to Chinese typesetting, use the reference line in PPT.
持续改进
持续改进是质量保障的核心,包括缺陷管 理和迭代优化,通过不断的反馈和改进来 提高产品质量和用户满意度。
感谢与提问
在软件工程与项目管理培训资料 的学习中,感谢各位听众的认真 聆听和积极参与。如果您有任何 问题或疑惑,欢迎随时提问。我 们将竭诚为您解答,希望我们的 培训资料能给您带来帮助和启发。
THANKS FOR WATCH 谢谢观看
失败案例分享
沟通不畅 技术选型失误
导致项目延期或产生沟通误解 选择不适合的技术栈,影响项目进度
缺乏规划
项目目标不清晰,导致任务混乱
Unified fonts make reading more fluent.
Theme color makes PPT more convenient to change.
面向对象方法
以对象为中心,提高系统的灵活性和扩展性
软件工程实践
质量管理
制定质量标准 进行质量评估 持续改进质量
01 04
风险管理
识别风险因素 分析潜在风险 制定风险应对方案
02
项目管理
制定项目计划
03
分配资源
监控进度和成本
总结
软件工程是一门复杂而重要的学 科,涵盖了多个方面的知识和方 法。合理运用软件工程原则和方 法,结合实践经验,可以有效提 高软件开发过程的质量和效率。
● 03
第3章 软件设计
软件架构

软件工程与项目管理讲义

软件工程与项目管理讲义

软件工程与项目管理是成熟的博大精深的学科。

所谓新视野乃是指站在“企业-产品-人”这个系统的角度看待问题,旨在创导使“企业-产品-人”走向成功的“方法论和模式”。

本章乃全书之综述,重点探讨“企业的根本目标、产品开发之道、用人之道、如何成为优秀的软件人才”这些论题,探索一般性的规律,并给出开创性的观点和论断。

与传统的软件工程与项目管理书籍相比,本章不仅内容新颖,而且言词激进、极富个性色彩和扇动性。

本章大多数内容都是作者亲身验证过后总结出来的,将给多数读者带来有益的震撼。

敬请读者首先敞开心扉阅读本章,然后进行大脑风暴,吸取精华、摒弃糟粕。

1.1 软件危机新理解IT产业已经逐步发展成为中国的支柱产业之一,然而充满活力、优秀的软件企业太少了(苛刻地讲,十个手指头都能瓣完),绝大多数软件企业长期面临“产品质量低下、进度延误、成本高昂”的共性问题,就像患了恶劣的慢性病,无法根除。

太多原本雄心勃勃的软件企业并没有战死在沙场上,而是被恶病折磨得奄奄一息直至颓然去世。

IT产业的利润和前景实在太诱人了,没有获得免疫力的新企业又如雨后春笋般地诞生,前仆后继,延续着相似的故事。

三十年多前(1969年),NATO会议把这种病被称为“软件危机”。

三十多年过去了,这种病仍然存在,之所以不再危言耸听,是因为人们司空见惯、习以为常了。

并且适应了极度浪费社会财富的“快速诞生、快速死亡”的企业生存方式。

为什么长期克服不了“软件危机”?难道是国内大学计算机教育太差劲了?不是!大学里的计算机课程面面俱到,经常考试,基础教育非常扎实。

中国大部分学生有勤奋学习的优良传统,他们的计算机知识技能普通不差。

难道是书籍资料不够导致人们不懂软件开发、不懂管理吗?不是!书市上的软件工程、项目管理、编程技术等书籍泛滥成灾,Internet上有取之不尽的免费资料和代码。

难道是软件人才不够?不是!国内大学源源不断地输出计算机相关专业的毕业生,还有无数非计算机专业的人改行从事软件开发工作。

软件工程与项目管理

软件工程与项目管理

在这类问题。
• 概括来说,软件危机包含两方面的问题:一是如何开发软 件,以满足不断增长、日趋复杂的需求;二是如何维护规 模不断膨胀的软件产品。
• 这次会议同时提出了解决“软件危机”的途径,即采用工
程化的思想来管理软件开发的过程,并正式提出“软件工
程”一词,从此一门新兴的工程学科—软件工程—应运而
生。
(3)从软件企业本身来讲,其作用体现在:持续地规范 软件开发过程和软件管理过程,不断地优化软件组织 的个人素质和集体素质,从而逐渐增强软件企业的市 场竞争实力。
(4)从软件企业发展进程来讲,其作用体现在:克服软 件危机,控制软件开发进度,节约开发成本,提高软 件质量。
.
27
2.软件的分类
1)按软件功能 • 系统软件 • 支撑软件 • 应用软件
• 主要思想是:一个问题的数据结构与处理该问题数据 结构的控制结构有着惊人的相似之处,根据这一思想, 从目标系统的输入、输出数据结构入手,导出程序框 架结构,再补充其他细节,就可以得到完整的程序结 构图
• 对输入、输出数据结构明确的中小型系统特别有效
.
47
1.4.3 面向对象的开发方法
.
48
• 面向对象开发方法的基本出发点是尽可能按照 人类认识世界的方法和思维方式来分析和解决 问题。客观世界是由许多具体的事物、事件、 概念和规则组成的,这些均可看成对象
.
12
时期 特点
软件的含义
程序设计 程序
主要程序设计语言 汇编语言、机器语言
软件使用者 软件规模
程序员本人 小型
开发软件需要的人力
个人
软件开发涉及的工作
编码
.
程序系统 程序及规格说明书
高级语言 少数用户

软件工程与项目管理说课课件

软件工程与项目管理说课课件

9
三、教学方法及手段
教学方法
六步教学法
实例教学法
课堂讲授法
28/07/22042/48/7
10
三、教学方法及手段
教学手段
传统板书教学
多媒体教学
28/07/22042/48/7
11
三、教学方法及手段
教学设计
明确任务
教学准备
教学评价
软件测试
教学设计
28/07/22042/48/7
教学检查
教学实施
12
3
(三)课程设计
培养学生的学习兴趣和岗位认知
掌握软件生存周期与软件开发模式,结构化程序设计的编程思想 、 向对象分析、设计与编码方法,有关软件的评审、测试与维护,项 目计划与项目管理方法。 能用软件工程的方法参与软件项目的分析、设计、实现和维护。
能将知识与技能应用到专业领域的设计中 ,满一)内容选取
根据软件开发和项目管理的实际要求,结合行业、职业、岗 位群和我院的实际,在吸收其它同类教材的优点情况下,我 对《软件工程与项目管理》的教学内容进行了以下整合:
(1)将第3章软件项目管理和第4章计算机系统工程融合整理为新 的第3章项目分析与规划。 (2)将第5章需求分析、第6章结构化分析建模、第7章基于UML 的面向对象分析、第8章概要设计、第9章结构化设计建模、第10 章基于UML的面向对象设计建模融合整理为新的第4章软件需求分 析、第5章软件概要设计、第6章面向对象分析与设计
实施 教学活动
定期 教学总结
兼职教师教学质量保障体系
28/07/22042/48/7
18
五、实践教学
• 本课程时一门偏重于理论教学的课程,它需要 配合其它课程才能转换为职业岗位能力,因此 做了校内实践教学安排计划

软件工程与项目管理_03

软件工程与项目管理_03
将用户非形式的需求陈述转化为完整的需求定义,再 由需求定义转换到相应的需求规格说明的过程。
© 2012 Inspur Group
Inspur Education
软件需求分析的重要性:
软件需求分析是软件生存期决定性的一步,是软件开发的 基础。
分析员和用户:
在分析软件需求和书写软件需求规格说明书的过程中,分 析员和用户都起着关键的、必不可少的作用。
Inspur Education
软件生命周期
三个时期: 八个阶段: 软件定义 问题定义 可行性研究 需求分析 概要设计 系统设计 详细设计 编码和单元测试 系统实现 综合测试
软件生命周期
软件开发
软件维护
运行维护
3
© 2012 Inspur Group
Inspur Education
成功来之不易
4
(6) 基于用例的方法
© 2012 Inspur Group
Inspur Education
1.用户面谈
一种理解商业功能和商业规则的最有效方法
• • • • • • • • • 面谈过程需要认真的计划和准备 面谈之前 确立面谈目的 确定要包括的相关用户 确定参加会议的项目小组成员 建立要讨论的问题和要点列表 复查有关文档和资料 确立时间和地点 通知所有参加者有关会议的目的、时间和地点
© 2012 Inspur Group
Inspur Education
3.1.3 导出系统的逻辑模型
在分析综合中逐步细化软件功能划分各子功能,对系统 数据域进行分析,建立新系统的逻辑模型(系统图.数据流 图.数据字典.E-R图、UML模型图表示)。 常用方法是,面对结构化分析方法(SA)面向数据结构 (JSP)方法,面向对象OOA方法。

软件工程与项目管理_02

软件工程与项目管理_02
方案的理由。
© 2012 Inspur Group
Inspur Education
7. 草拟开发计划 分析员应该为所推荐的方案草拟一份开发计划,制定
工程进度表、估计对各类开发人员和各种资源的需要情 况、估计系统生命周期每个阶段的成本、给出下一个阶 段(需求分析)的详细进度表和成本估计。
© 2012 Inspur Group
基本符号:5个,以概括的方式抽象地描绘一个实际系 统。
© 2012 Inspur Group
Inspur Education
系统符号:11个,更具体的描绘物理系统。
© 2012 Inspur Group
Inspur Education
© 2012 Inspur Group
Inspur Education
开购书 申请
购书申请
开购书 证明
购书证明 收书费
领书单
人工教材销售的系统流程图
发书
© 2012 Inspur Group
Inspur Education
计算机教材销售系统:由计算机实现有效性审查(不 该购买或已卖完的教材),收书款和发书仍由人工完成。 开购书申请和购书证明可一步完成,增加缺书统计和采 购功能。
第三层:合成后的系统流程图
© 2012 Inspur Group
Inspur Education
例2:教材销售系统 人工教材销售系统:先找系办公室开购书申请,凭申
请找教材科开购书证明,向出纳员交付书款获得领书单, 然后到书库找保管员领书。
© 2012 Inspur Group
Inspur Education
© 2012 Inspur Group
Inspur Education

软件工程软件项目管理ppt课件

软件工程软件项目管理ppt课件

1. 基本COCOMO模型 表10-3 基本COCOMO模型的参数取值
类型 组织型 工作量 MM=2.4(KDSI)1.05 进度 TDEV=2.5(KDSI)0.38
半独立型
嵌入型
MM=3.0(KDSI)1.12
MM=3.6(KDSI)1.20
TDEV=2.5(KDSI)0.35
TDEV=2.5(KDSI)0.32
表10-1 功能点的计数
加权因子(根据项目的复杂性) 测量参数 外部输入和输出 数 外部接口数 用户交互数 系统要用的文件 数 总计数值 数量 简单 3 7 3 7 平均 4 7 4 10 复杂 6 10 6 15 FP计数 (=数量x加权 因子)
COCOMO模型是一种精确、易于使用的、基于模 型的成本估算方法,最早由勃姆(Boehm)于1981 年提出。 在COCOMO模型中,根据开发环境及项目规模等 因素,可把项目分为以下3类: 1.组织型 相对较小、较简单的软件项目,对此种软件一般需 求不那么苛刻。 2.嵌入型 该种类型的项目受到硬件、软件和操作等方面限制 较多。 3.半独立型 对此种软件的要求介于上述两种软件之间,但软件 规模和复杂性属于中等以上。
5
4 3 1
G
D I,H J
图10-7 办公楼建设项目的工程网络图
10.4.4 项目进度估算
图10-6 一个软件项目开发的Gantt图表示
10.4.3 工程网络图
工程网络图又称 PERT 图。在工程网络图中,用圆 圈表示开发工程中的一项具体任务,圆圈之间的箭头 表示各项任务完成的先后顺序和相互依赖关系,箭头 上的数字表示完成该项具体任务所需的时间 。绘制 PERT图都是从终点向起点逐步倒推,根据各项任务相 互之间的依赖关系画出每一项任务,直至整个工程的 起点。

《软件工程与项目管理》第10章-软件项目管理

《软件工程与项目管理》第10章-软件项目管理

项目收尾过程
要点一
验收项目成果
组织相关干系人对项目成果进行验收,确保项目目标已实 现。
要点二
总结经验教训
对项目执行过程中的经验教训进行总结,为今后的项目提 供借鉴和改进依据。
04
软件项目管理工具与技术
项目管理软件工具
微软Project
Trello
一款功能强大的项目管理软件,提供 项目计划制定、任务分配、进度跟踪 等功能。
进度与Hale Waihona Puke 本的控制进度与成本控制挑战
软件开发过程中,进度延误和成本超 支是常见问题。
解决方案
制定详细的项目计划,合理分配资源 ,加强项目监控和调整,确保项目按 计划进行并控制成本。
质量保证与测试
质量保证与测试挑战
软件质量是软件项目的核心要求之一,但质量保证与测试过程中可能存在疏漏 和不足。
解决方案
Extreme Programming
一种敏捷开发方法,强调编程实践和持续集成,适合需求变化频繁 的项目。
统一过程方法
统一建模语言(UML)
一种用于软件工程的标准化建模语言,支持从需求分析 到系统设计的全过程。
统一过程(UP)
一种结构化的软件开发过程,包括初始阶段、细化阶段 、构建阶段和交付阶段。
保证按时交付
降低风险
通过有效的进度管理和时间安排,可以确 保软件按时交付给客户。
项目管理有助于识别和评估软件开发过程 中可能出现的风险,并采取相应的措施来 降低或消除这些风险。
软件项目管理的历史与发展
20世纪60年代
软件工程的概念开始出现, 人们开始意识到软件开发需 要系统化的管理方法。
20世纪80年代
预测完成项目所需的总成本。

软件工程与项目管理(第三课)

软件工程与项目管理(第三课)
a) 数据源点: 对系统的描述可以知道“通过放在仓 库中的PC机把事务报告给定货系统” 所以仓库管理员是数据源点。
21
定货系统的顶层DFD(2)
b) 数据终点: “规定每天向采购部门送一次定货报告” 所以采购员是数据终点。

数据源点或终点 (外部实体)
仓库管理员 数据源点
采购员 数据终点22
定货系统的顶层DFD(3)
(2) 名字应该反映整个处理的功能,而不是它的一部 分功能。
(3) 名字最好由一个具体的及物动词加上一个具体的 宾语组成。应该尽量避免使用“加工”、“处理” 等空洞笼统的动词作名字。
(4) 通常名字中仅包括一个动词,如果必须用两个动 词才能描述整个处理的功能,则把这个处理再分 解成两个处理可能更恰当些。
绘系统的主要功能。
26
细化定货系统的DFD(2)
仓库管理员 事务 订货系统 订货报表 采购员
“处理事务和”“产生报表”是系统 必须完成的两个主要功能。
“处理事务和”“产生报表”代替图 中的“定货系统”。
27
细化定货系统的DFD(3)
2
加工编号
接收 事务
加工名字
仓库管理员事事务务 订货系统 订货报订表货 采购员 报表
数据流程图是对实际构建的系统分析综合后, 提取逻辑模型的一个过程,它更关注于过程 内数据的处理,而把具体处理数据的物理过 程,物理分布忽略。
系统流程图就是表示整个系统处理事物的基 本过程;数据流图是描述各个子块之间如何5 进行数据传递:
数据流图特点
它是逻辑系统的图形表示,容易理 解,是极好的通信工具,设计数据流 图只需考虑系统必须完成的基本逻辑 功能,不需要考虑如何实现这些功能, 是软件设计很好的出发点。

软件工程及项目管理基础知识

软件工程及项目管理基础知识

软件工程及项目管理基础知识:信息系统工程质量管理:质量计划、质量保证、质量控制软件质量因素:正确性、健壮性、安全性、可用性、适应性、效率、风险、可理解性、可维修性、可测试性、可移植性、可再用性、互运行性。

项目进度控制的重要方法:规划、控制、协调进度控制所采取的措施如下:1 组织措施2 技术措施3 合同措施4 经济措施5 管理措施影响进度因素:1 人的因素2 材料和设备的因素3 方法和工艺的因素4 资金的因素5 环境因素成本管理由4个过程组成:1 资源计划过程2 成本估算过程3 成本预算过程4 成本控制过程影响工程成本主要因素:1 项目属性2 人员属性3 项目成果属性4 计算机属性5 其他因素影响工程变更的主要因素:1 工程的生命周期2 工程的计划、组织和管理3 客户需求变化4 新技术、新工艺的影响5 其他外部因素和不可遇见的突发事件何为风险?控制风险的方法:风险是指某种破坏或损失发生的可能性,风险管理是指识别,评估,降低风险到可以接收的程度并实施适当机制控制风险,保持在此程度之内的过程。

控制风险的方法:1 对动作进行优先排序,风险高的优先考虑 2 评价风险评估过程中的建议,分析建议的可行性和有效性3 实施成本/效益分析4 结合技术、操作和管理类的控制元素,选择性价比最好的安全控制5 责任分配6 制定一套安全措施实施计划7 实现选择的安全控制风险分析的方法与途径:定量分析和定性分析项目风险管理应该包括:1 一个风险管理计划,应强调主要项目风险、潜在的影响、解决方案、降低风险的措施 2 一个风险预防计划或应急计划,包括降低风险所必需的资源、时间及成本概算3 一个在整个项目周期内自始至终对风险进行测定,跟踪及报告的程序4 应急费用,并将其列入预算。

项目定义并说明项目管理三要素之间的关系:所谓项目,就是在既定的资源和要求的约束下,为实现某种目的而相互联系的一次性工作任务,这个定义包括三层意思:一定的资源约束、一定的目标、一次性任务。

软件工程及项目管理基础知识

软件工程及项目管理基础知识

软件工程及项目管理基础知识:信息系统工程质量管理:质量计划、质量保证、质量控制软件质量因素:正确性、健壮性、安全性、可用性、适应性、效率、风险、可理解性、可维修性、可测试性、可移植性、可再用性、互运行性。

项目进度控制的重要方法:规划、控制、协调进度控制所采取的措施如下:1 组织措施2 技术措施3 合同措施4 经济措施5 管理措施影响进度因素:1 人的因素2 材料和设备的因素3 方法和工艺的因素4 资金的因素5 环境因素成本管理由4个过程组成:1 资源计划过程2 成本估算过程3 成本预算过程4 成本控制过程影响工程成本主要因素:1 项目属性2 人员属性3 项目成果属性4 计算机属性5 其他因素影响工程变更的主要因素:1 工程的生命周期2 工程的计划、组织和管理3 客户需求变化4 新技术、新工艺的影响5 其他外部因素和不可遇见的突发事件何为风险?控制风险的方法:风险是指某种破坏或损失发生的可能性,风险管理是指识别,评估,降低风险到可以接收的程度并实施适当机制控制风险,保持在此程度之内的过程。

控制风险的方法:1 对动作进行优先排序,风险高的优先考虑 2 评价风险评估过程中的建议,分析建议的可行性和有效性3 实施成本/效益分析4 结合技术、操作和管理类的控制元素,选择性价比最好的安全控制5 责任分配6 制定一套安全措施实施计划7 实现选择的安全控制风险分析的方法与途径:定量分析和定性分析项目风险管理应该包括:1 一个风险管理计划,应强调主要项目风险、潜在的影响、解决方案、降低风险的措施 2 一个风险预防计划或应急计划,包括降低风险所必需的资源、时间及成本概算3 一个在整个项目周期内自始至终对风险进行测定,跟踪及报告的程序4 应急费用,并将其列入预算。

项目定义并说明项目管理三要素之间的关系:所谓项目,就是在既定的资源和要求的约束下,为实现某种目的而相互联系的一次性工作任务,这个定义包括三层意思:一定的资源约束、一定的目标、一次性任务。

北航“软件工程与项目管理”讲义-3-2011

北航“软件工程与项目管理”讲义-3-2011

传统软件生命周期模型
周期模型
W模型——瀑布模型的变种 模型—— (2) W模型——瀑布模型的变种 –V模型仍然将测试作为一个独立的阶段,所 V模型仍然将测试作为一个独立的阶段, 以并没有提高模型抵抗风险的能力。 以并没有提高模型抵抗风险的能力。 –Evolutif公司在V模型的基础上提出了W模 Evolutif公司在 Evolutif公司在V模型的基础上提出了W 将测试广义化,增加了确认 验证内容 确认和 内容, 型,将测试广义化,增加了确认和验证内容, 并贯穿整个软件生命周期。 并贯穿整个软件生命周期。 –W模型由两个V型模型组成,分别代表测试 W模型由两个V型模型组成, 两个过程是同步进行的。 与开发过程 ,两个过程是同步进行的。
传统软件生命周期模型
W模型示意图 模型示意图
传统软件生命周期模型
原型方法(prototyping) 3. 原型方法(prototyping)
–完整准确的需求规格说明很难得到 完整准确的需求规格说明很难得到
• 早期用户对系统只有一个模糊的想法; 早期用户对系统只有一个模糊的想法; • 开发过程中用户可能提出新的需求; 开发过程中用户可能提出新的需求; • 环境的变化也要求开发过程中的系统随之改变; 环境的变化也要求开发过程中的系统随之改变; • 预料之外的实际困难使得开发人员不得不改变需求 来适应。 来适应。
使用uml进行软件建模仔细地管理需求实行变更请求和配置管理敏捷模型agilemodelingamambler从许多的软件开发过程实践中归纳总结出来的一些敏捷建模价值观原则和实践等组成的am只是一种态度不是一个说明性过程它描述了一种建模风格am是对已有生命周期模型的补充它本身不是一个完整的方法论在应用传统的生命周期模型时可以借鉴am的过程指导思想敏捷建模价值观沟通简单反馈勇气谦逊敏捷建模原则核心原则1主张简单2拥抱变化4递增的变化5令项目干系人投资最大化6有目的地建模7多种模型8高质量的工作9快速反馈10软件产品是主要目标11轻装前进补充原则敏捷建模实践核心实践1项目干系人的积极参与2正确使用工件3集体所有制4测试性思维5并行创建模型6创建简单的内7简单地建模8公开展示模型9切换到另外的工件10小增量建模11和他人一起建模12用代码验证13使用最简单的工具补充实践8不到万不得已不更新模型developmentprocessdevelopmentprocessdevelopmentprocessdevelopmentprocesssoftwaredevelopmentprocessmanagementreleasemanagementrequirementstestcodeingdebuggingdocumentplanningsystemsdesignobjectsdesignunittestingintegratedtestingsystemtestingartdesign产品立项developmentprocessdevelopmentprocessdevelopmentprocessdevelopmentprocesssoftwaredevelopmentprocessmanagement项目建议书implementmanagementrequirementscodeingdebuggingdocumentplanningsystemsdesignobjectsdesignunittestingintegratedtestingsystemtestingartdesign免费维护期项目立项
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程与项目管理是成熟的博大精深的学科。

所谓新视野乃是指站在“企业-产品-人”这个系统的角度看待问题,旨在创导使“企业-产品-人”走向成功的“方法论和模式”。

本章乃全书之综述,重点探讨“企业的根本目标、产品开发之道、用人之道、如何成为优秀的软件人才”这些论题,探索一般性的规律,并给出开创性的观点和论断。

与传统的软件工程与项目管理书籍相比,本章不仅内容新颖,而且言词激进、极富个性色彩和扇动性。

本章大多数内容都是作者亲身验证过后总结出来的,将给多数读者带来有益的震撼。

敬请读者首先敞开心扉阅读本章,然后进行大脑风暴,吸取精华、摒弃糟粕。

1.1 软件危机新理解IT产业已经逐步发展成为中国的支柱产业之一,然而充满活力、优秀的软件企业太少了(苛刻地讲,十个手指头都能瓣完),绝大多数软件企业长期面临“产品质量低下、进度延误、成本高昂”的共性问题,就像患了恶劣的慢性病,无法根除。

太多原本雄心勃勃的软件企业并没有战死在沙场上,而是被恶病折磨得奄奄一息直至颓然去世。

IT产业的利润和前景实在太诱人了,没有获得免疫力的新企业又如雨后春笋般地诞生,前仆后继,延续着相似的故事。

三十年多前(1969年),NATO会议把这种病被称为“软件危机”。

三十多年过去了,这种病仍然存在,之所以不再危言耸听,是因为人们司空见惯、习以为常了。

并且适应了极度浪费社会财富的“快速诞生、快速死亡”的企业生存方式。

为什么长期克服不了“软件危机”?难道是国内大学计算机教育太差劲了?不是!大学里的计算机课程面面俱到,经常考试,基础教育非常扎实。

中国大部分学生有勤奋学习的优良传统,他们的计算机知识技能普通不差。

难道是书籍资料不够导致人们不懂软件开发、不懂管理吗?不是!书市上的软件工程、项目管理、编程技术等书籍泛滥成灾,Internet上有取之不尽的免费资料和代码。

难道是软件人才不够?不是!国内大学源源不断地输出计算机相关专业的毕业生,还有无数非计算机专业的人改行从事软件开发工作。

我敢说,不论是人才还是人手,人是足够多了。

象北京、上海等发达城市,软件人才明显供大于求,很多计算机专业本科生、硕士生、博士生找不到合适的工作。

难道是政府对IT产业扶持不够?不是!全国各地到处建设软件园区、高科技园区,地方政府的减税免税政策、奖励政策适时出台。

对比一下国内农业和传统工业的处境,IT产业享受到政府的照顾已经好到天上了。

难道社会对IT产业投资不够?不是!我们刚刚经历了网络泡沫、电信泡沫,不是社会投资太少了,而是投资太多但是没有产生期望的效益才会产生泡沫。

尽管中国还不是发达国家,但平心而论,你会发现当今软件企业的生存环境真是太好了,实在找不出象样的借口来推卸失败的责任。

内因决定外因,是大部分软件企业的内功太差,以至成为扶不起的阿斗。

软件工程和项目管理学科已经发展了数十年,技术细节问题早已研究甚多。

所以工程专家们和管理专家们不要再沉迷于“形而上学”、“屠龙之技”的研究,而是要换个视野看问题,摸索解决中国企业面临的“软件危机”难题。

中国教育界和工业界长期的失误在于:大学教育以填鸭的方式给学生灌输技能,却忽视传授思想和方法;学生们埋头学习,不知学以致用,离开学校后对企业、产品、人生一片茫然;企业以混乱甚至错误的方式开发产品,重复着前人的失败而不是成功。

这就是产生“软件危机”的真正根源。

1.2 企业-产品-人在软件行业,“企业-产品-人”这三个主体构成了复杂的系统,一般性的知识框架如图1-1所示。

如果人们不明其理而行事,必然会对系统造成伤害。

软件行业“企业-产品-人”走向成功的知识框架我认为,教育界和工业界应当研究和推广让“企业-产品-人”走向成功的“方法论和模式”,这是解决“软件危机”最有效的办法。

何为方法论?方法论是用于指导人们解决问题的系统性的思想方法,而不是一堆孤立的方法、技术的集合。

方法论主要研究“是什么”、“为什么”、“怎么办”这类基本问题,当人们掌握方法论之后,在实践过程中,自己能产生解决特定问题的方法。

何为模式?模式描述了在我们周围不断重复发生的问题,以及该问题的解决方案的核心,这样你就能一次又一次地复用该解决方案而不必从头开始研究。

在技术开发领域,人们总结了不少很有价值的模式,例如设计模式、编程规范、文档模板等等,被业界人士广泛采用,大大地提高了工作效率。

人们期待更有价值的模式,那就是让“企业-产品-人”走向成功的模式。

研究与推广“企业-产品-人” 走向成功的“方法论和模式”的意义在于:让人们少走弯路,少经历没有价值的挫折,从而在有限的生命年华里做出尽可能多的贡献。

三年前我写了一篇文章叫《大学十年》,这篇文章在Internet上广泛流传,激励了相当多的大学生。

许多读者误以为我的大学十年辉煌之极,从而羡慕不已。

其实每个人都有自己的美好的和不好的经历,我只是把个人经历作了文学处理、写得比较好而已。

在企业里工作三年后,我终于意识到大学十年里的最大失败:完全靠自己摸索前进,走了太多弯路,有一半时间在错误的道路上艰苦奋斗,浪费了大量青春时光并且不知不觉地损害了健康。

如果有很好的方法论指导和成功模式可循的话,以我当时的天赋、勤奋、毅力和创造力,连续奋斗十年,何止于今日空有满腹经纶,而对社会缺乏实质性贡献!广大学生和企业员工没有机会学习走向成功的方法论和模式,只好凭着本能和运气去工作、去生活、去奋斗。

这不是少数人的命运啊!而是几亿人那!基于切肤之痛和多年的实践与思考,我提出了本文颇为激进的观点,期望同行的工程专家和管理专家研究与推广上述“方法论和模式”。

也许这个课题太复杂了,太缥缈了,以致于国内找不到一本现成的教科书。

为便于阐述观点,我勾画了知识框架草图。

毫无疑问,不论干哪一行,人们都应当掌握“专业基础知识和技能”,这是立足之本,所幸国内大学在这方面的教育相当不错。

在软件企业工作的人们还要学习“软件工程、项目管理、市场营销、财务管理、人力资源管理、国际化”知识,懂得越多,成功的可能性就越高,然而这些领域是国内大学教育的薄弱环节。

目前教科书的最大不足是没有紧密围绕“企业-产品-人”这三个主体来阐述方法论和模式。

研究人员必须先分析清楚“企业-产品-人”的宏观特征与规律,再进行系统分解,从而在各个相关学科创建方法论和模式。

在研究和推广上述方法论和模式的过程中,大学里的教授们和讲师们将受到强烈冲击,因为许多教授和讲师对企业和产品知之甚少,甚至自己的人生也相当落魄,拿什么“传道、授业、解惑”啊?何以为师?这种现状必须改革,如果教授和讲师不合格的话,只好下岗或者提前退休,否则误人之弟。

下文将探讨“企业的根本目标、产品开发之道、用人之道”这三个论题,尝试提出系统性的观点、论断,为研究软件工程和项目管理的方法论和模式打下基础。

1.3 企业的根本目标1.3.1 观点和论断学过法律的人都知道:宪法是国家的根本大法,是立国之本,任何普通法律法规都不得与宪法相抵触。

企业的根本目标是“合法地赚取尽可能多的利润,使企业利益最大化”。

这个根本目标就如同企业的“宪法”,是企业生存和发展之本。

企业所有的特定目标和行动都是围绕上述根本目标开展的。

任何背离根本目标的行动都将对企业造成伤害,应当杜绝。

如果企业主不明白这个道理,企业必定会很快倒闭。

如果广大员工不明白这个道理,企业必将岌岌可危。

如果你想到企业工作(或者已经在企业工作),希望取得事业上的成功,你首先必须理解企业的根本目标。

上述文字简单朴实,没有任何玄妙之处,似乎任何人都看得懂。

但是我敢断言,除了极少数天生的商人之外,绝大多数人在遭受第一次商业挫折之前不会深刻领悟企业的根本目标。

我们从小到大接受自闭的政治教育太久了,被灌输的幼稚口号太多了,以至于长大成人后仍然极度缺乏商业智慧。

天哪,赚钱这种事情连文盲都能做啊!怎么可以成为企业的根本目标呢!企业的根本目标难道不是为了振兴民族产业、为国家多做贡献吗?不是,的确不是!“振兴民族产业、为国家多做贡献”是全体国民的义务,不是企业的根本目标。

只要企业有利润、能活下去,它就已经做出贡献了。

因为国家的主要税收来自于企业,企业有利润后才能纳税,企业纳税后国家才有钱搞建设。

只有企业活着,员工们才有工作、才有稳定的收入、才有能力养家糊口、才能维持社会繁荣稳定。

只要企业合法地赚钱,它赚得越多,那么它对国家的贡献就越大。

政府对企业的唯一约束就是“守法”,甚至不要求“守德”。

众所周知,烟草对人有百害而无一利。

烟草公司赚钱越多,表明烟民受害越深。

从道义上讲,拯救广大烟民的最有效办法就是让政府封杀所有的烟草公司。

但是全世界的政府都不会出于道德而封杀烟草公司,因为烟草公司没有犯法,并且给政府交纳了巨额利税。

政府与企业之间存在互利的交易关系:政府应该为守法的企业提供服务(而不该骚扰企业),企业付给政府的服务费就是利税。

所以企业的本性就是惟利是图,而不是救国就民,无论大企业还是小商贩都一样。

在计划经济时代,无数国企曾经为国家做出了巨大的贡献。

当计划经济转向为市场经济之后,曾经功德无量的国企逐步沦落为国家的包袱。

人们给国企强加了太多的社会义务,国企不仅包揽了职员们的“吃喝拉撒睡”,甚至还要建子弟学校,治病救人,养老送终等等。

社会义务榨干了企业的利润和精力,企业焉有不垮之理!不论是“姓资还是姓社”,企业改革的主要目标就是让企业回到赚钱这个正道上来。

违背企业本性的做法注定是要失败的。

我曾经给某大学软件学院的工程硕士们讲授《软件工程》课程,几乎每次讲课我都要强调企业的根本目标,大讲特讲钱的重要性。

企业惟利是图的本性就像“低俗赤裸的真理”,玷污了纯真学生们的耳朵。

学期结束之际,有个学生写了一篇很有代表性的心得体会:本学期听了林锐老师的课程之后,我对软件工程,尤其是商业领域的软件工程应用有了全新的认识。

所谓全新的认识,我想主要是从经济利益的角度看待软件工程问题。

在林老师讲课之前,外籍教授Prof. Luqi 和Prof. Berzins 给我们讲授了如何从工程角度出发来分析一个问题、分割一个问题、解决一个问题。

但是后来林老师则从商业的角度系统地阐述了为什么要提倡软件工程。

唯一的解释就是经济利益的驱动——钱!在听林老师讲课的初期,我是有一定的反感的,真的无法立刻接受。

或许是由于一个学生对社会的认识的不足,或许是由于受到古人的影响而对那些关心金钱的话题的鄙视。

总之,在听课的过程中,我总是忽略了经济利益的作用,从未考虑过软件危机的真正成因。

在一次课程的中间休息阶段,我与同学们聊起了林老师的课程内容。

我说“他的课程太没劲了”,“来来回回就是经济利益”,“太俗了”,“社会上正是这样吗?”总之,我所反映的就是对他的课程内容的不信任。

这时有一位已经在公司里任CTO的同学这样对我说:“林老师所讲的是正确的而且很有用的,我每周都要给我们公司的员工们上一次课,课程的内容很大程度上就是来自于林老师的讲义,而且事实上,社会上就是这么来做的。

相关文档
最新文档