1 我们今日的窘境
1.1 环境
我们所处的环境是一个追求“革命性技术”的业界。公司追求着多、快、好、省地解决问题的捷径,管理者关注的只是软件进度、发布版本、成本和利润,在他们背后,软件缺陷已经埋了下来。专注代码质量的程序员往往不受青睐,因为他们思考的更多,在开发进度方面往往不尽人意。当项目负责人无法评估或不关注代码质量时,客户只会得到一堆调试不良的代码。
1.2 人才流失
今天的程序员大多数都不会长期从事某一种技术,这与收入紧密挂钩。程序员会倾向与转型为更高收入的技术队伍,或者退出IT业。随着市场供求关系,各个阵营市场占有率,利润等多种因素左右着程序员的收入。即便是在某个技术上十分出众的程序员,面对经济上的现实差距,也无法抵抗金钱的诱惑而转投其他技术队伍。现在的市场,不再尊重那些资深从业者,而是迎合“现学现卖”的投机者。归其根本在于,对代码质量的低要求,使得技术硬手无用武之地。
1.3 系统交互复杂
今日的信息化系统已经不能由独立的公司或软件产品承担,而是趋于多公司,多平台的相互协作与交互。现实的挑战就是,更大的系统,更多的平台,更繁琐的流程,更复杂的整合需求,以及更多的标准。
1.4 技术快餐
与之前不同,现今的开发者更为大胆。他们敢于将未经验证的新技术应用与产品或项目。开发者可能经过短暂的学习(一周或者几天)就将学到的并不熟练的技术应用于项目,之后的风险全部转嫁的测试或者客户身上。而此后也不再对这些新技术继续安排学习。程序的可靠程度和可维护性大大降低。
1.5 产品团队不堪重负
与项目不同,产品的代码版本及分支路线更为复杂,其生命周期更长。当你进入某个产品项目,你很可能面临的是,缺失或低质的项目文档,多种风格并存的代码以及潦草的少的可怜的注释。那些最先搭建系统的前辈可能已经离职,开发团队组成也许已经经过几代,你听到的最多的是抱怨。面对那些延期的bug和新的需求,没人通晓这些堆积如山的代码,牵一发往往动全身。阅读和理解代码占据工作的大部分,面对客户的各种要求往往不堪负重。
2 一些成功的经验
2.1 提高代码质量
问题描述 | 根本原因 | 缺陷类型 | 严重程度 | 出现次数 | 解决方法 |
修改下拉列表内容后,进行操作会触发未处理异常。 | 数据完整性约束被破坏,阻止操作。 | 设计缺陷 | 严重 | 4 | 禁止修改下拉列表选项。 |
上传大文件报错。 | 服务端限流。 | 配置缺陷 | 一般 | 2 | 修改配置文件的消息大小限制。 |
... | ... | ... | ... | ... | ... |
这份表格是否好用,在于其更新的频率与用户群。它能够帮助PM及时发现bug集群,并可以通过例会或邮件打预防针,防止缺陷核对表上的bug蔓延。
2.2 为人才流失做准备
2.3 一些成功的系统整合经验
2.4 有效降低产品的维护成本
2.5 让团队成员参与项目管理
如果团队成员没能参与项目管理,则项目管理将大打折扣。为了让团队的每位成员都参与到项目管理中去,有以下建议:
3 IT治理
IT治理就是要明确有关IT决策权的归属机制和有关IT责任的承担机制,以鼓励IT应用的期望行为的产生,以联接战略目标、业务目标和IT目标,从而使企业从IT中获得最大的价值。
3.1 IT治理成败20条
10条有效运用资源的方法:
10种白白挥霍资源的行为:
3.2 衡量IT治理和相关投资成效的10个问题
4 杂谈——终结IT业七大流言
参考文献:
《差错 软件错误的致命影响》
W3c0.com 提供的内容仅用于培训。我们不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。W3c0 简体中文版的所有内容仅供测试,对任何法律问题及风险不承担任何责任。 当使用本站时,代表您已接受了本站的使用条款和隐私条款。版权所有,保留一切权利。 鲁ICP备15022115号