在互联网系统中开发效率与系统稳定性与产品成败非常相关开发效率在一定程度反映了团队的执行力快速开发能力带来了产品的竞争优势系统稳定性(包括安全及性能等)则是产品的后防线稍有失误则会给产品带来很大伤害因此开发效率与系统稳定性是衡量互联网系统开发成熟度最重要的两个指标 在软件开发周期不同阶段这两者如何控制? 在需求阶段对开发效率的影响常见的是沟通理解偏差带来的技术风险之外最常见的还有需求变更的风险后者大多是来自市场环境的变化作出调整技术主管更多的是积极心态去应对但对前者沟通理解偏差导致效率问题也不罕见更值得警惕 在技术设计阶段最大的风险是技术方案找个无需多讲考验团队的架构能力以及对当前系统的驾驭程度 开发阶段最大的风险是单元测试不到位或缺失很多号称敏捷型项目依赖在线上测试及修改当模块增多后这样代码健壮性就会变得比较脆弱不少团队也会越走越慢 Review阶段风险是简洁性及性能除了压力测试能达标之外警惕那些不易懂的代码这些代码将来会成为事故多发地带 部署阶段最大的风险是上线计划把控上线过程中操作错误的情况并不罕见如去年Amazon EC的故障就是由于操作失误造成 从宏观看来技术方案的风险最大由于模块很多具有丰富经验的高手不可能参与每一个环节这就会出现木桶的短板效应架构师认为不重要的地方总是会出问题给用户体验造成极大伤害 另外还有团队文化的风险大部分团队很难形成书面交流的习惯口头沟通需求讨论方案对创业团队非常适合在团队变大之后这样的习惯会造成信息流动障碍可能会给工作效率带来更多负面问题同时大部分团队也对流程模板规范缺乏了解与重视过多依赖参与人的内部驱动力及能力无法依靠制度与流程来取胜 |