分享

环境、现状与反思

 昵称10504424 2013-12-24

环境、现状与反思

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条有效运用资源的方法:

  1. 针对IT治理价值,与开发者保持坦率的沟通,解决其中问题而不是压制言论。
  2. 组建公司级跨职能IT治理委员会,保证治理顺利推行,保证技术体现客户最大利益。
  3. 建立量化指标,利用公认的指标评估治理进度。
  4. 保证IT基础设施各部分的透明。
  5. 将公司IT治理策略延伸到外包商。
  6. 建立能表现业务目标的全景视图。
  7. 将IT治理视为促进企业成长的基石,利用奖金引导员工的正确行为。
  8. 对公司员工和团队内跟不上变化,相关技能欠缺等等迹象多加注意。
  9. 在软件开发周期的每个环节都实施IT治理,以防留下盲区,导致差错。
  10. 推进自动化,但不抛弃人工评审流程。

10种白白挥霍资源的行为:

  1. 未经解释就强制推行的官僚流程。
  2. 架屋叠床的监督层级。
  3. 无人能懂的报表。
  4. 被隔离于代码之外的开发者。
  5. 仅限于单个部门的努力。
  6. 企图一切尽善尽美的紧张神经。
  7. 仅在一两个方面实施IT治理的开发流程。
  8. 缺乏跟踪IT管理的支出和效果评估。
  9. 重复创造的策略。
  10. 对IT治理资源充足程度的盲目自信。

3.2 衡量IT治理和相关投资成效的10个问题

  1. 管理层是否支持和实施IT治理?
  2. 开发者是否参与其中?
  3. 是否是公司的主动战略行动?
  4. 是否增加了企业透明度,使部门和员工权责分明?
  5. 是否让引入新技术和企业合并时的基础设施融合更加容易?
  6. 能否帮助员工改进行为?
  7. 是否给所有干系人提升价值?
  8. 能否做到极尽精益和高效?
  9. IT基础设施可否随时抽检,而保证没有问题?
  10. 是否减少了软件缺陷?

4 杂谈——终结IT业七大流言

  1. 信息技术是精确的科学 现实是, 建立应用依靠的是程序员的代码,而编码是一门艺术,程序员是匠人,信息技术同样需要工艺。
  2. 下一个版本能解决这些问题 软件开发商的常用伎俩。
  3. 开箱即用 企业级软件往往很难达到开箱即用,这往往是软件厂商的吹嘘。
  4. 代码文档完善 现实是,开发人员被进度和变更压榨了120%的时间,无力维护文档。
  5. 文档说明一切 文档质量参差不齐,有时不得不聘请外部顾问。
  6. 团队不需要“黑客”和“牛仔” 前者指那些擅长安全技术的人员,后者则指那些技术强硬但特立独行的人员,他们的共同特点是技术过硬,工资不菲。其实开发团队中如果有掌握安全技术的成员,能使你开发的系统更安全;而如果能驾驭牛仔,他将能帮助团队冲破围城。
  7. 最大的安全威胁在公司外部 现实是,绝大多数攻击源自公司内部。

参考文献:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多