l 质量第一,生产率第二。
高质量对所有用户都有价值,而生产率只对开发方有意义。
l 软件工程的三个基本策略
复用:提高质量与生产率;
分而治之:把一个复杂的问题分解为若干个简单的问题,然后解决;
优化——折衷
l 所有的错误都是严重的,不存在微不足道的错误。
l 管理者不能老惦记着自己是一个官,而应时刻意识到自己是责任的主要承担者。
l 程序员的秉性
诚实、简单(实用主义)、爱憎分明、工作单调但不乏味
l 好的程序经理应具备的条件:
技术水平是程序员队伍中的最高级别;
能做最多且最难的工作;
有人格魅力;(以身作则,公正待人)
(ps:个人认为沟通的能力才是最重要的)
l 程序员升为经理后一定要编程;软件公司的经理是既要精通技术,又要懂得管理,但很多技术人员是在工作中领悟如何管理的。
l 项目计划:
知己知彼:项目可用的资源有人、可复用的软构件、软硬件环境。
进度安排:项目计划应是动态的,随着客户需求等变化而变化。
进度表要经过开发小组讨论并通过,这样才能实施;
进度表中必需确立若干里程碑;
进度表中对时间的安排必需有一定的缓冲时间;(这点是以后需要注意的)
l 质量管理——提倡“零缺陷质量管理”;两大核心为:
高目标:只有确立高目标,才有可能达到较高的质量水平。
可执行的规范:好的规范必需是企业有能力执行的;无规范则导致无序和混沌;太严密的规范则容易扼杀程序员生机勃勃的创造力。
l 软件的质量因素——简化为以下几种:
正确性与精确性(首要考虑的,可扩充到容错性与可靠性)
性能与效率
易用性
可理解性与简洁性
可复用性与可扩充性
l 质量检查:质量检查应该在每个实践环节都要执行,对应于进度表,在每个里程碑到达时执行质量检查比较合理。检查的内容包括:作出评审及作出建议。
l 可行性分析的要素:
经济:成本收益分析;短期长期收益分析。
技术:能否在指定的时间内完成;能否达到预期的质量标准;能否达到预期的生产效率。
社会环境:产品所处的市场分析;产品及市场受政策影响。
人(团队)
l 需求分析的困难在于:客户说不清;需求本身经常变动;分析人员或客户理解有误。
l 需求分析的核心问题:
应该了解什么:由主到次,由宏观到微观。
通过什么方式:与客户交流;向行家请教;分析同行业优秀及失败的软件;