转载理由:阿朱写的这篇文章,把我之前思考的很多问题,都有总结。今后有机会再实践。目前人微言轻额!只能管好自己!
我经历了不同公司、不同软件研发团队,但发现犯的错误都很相似,所以总结一份,便于大家自行建设自己的团队。
对于互联网公司,反正代码Owner权/服务器Owner权都在自己手上,所以无须害怕代码稳定非要强控代码稳定,只要能做到及时发现BUG(日志与监控的重要性)、天天上线更新即可。
一、开发leader的职责明确定位
1、技术设计:技术选型、跨系统接口设计、公共基础代码识别/设计/开发/维护、核心复杂代码实现方案设计/实现/维护、疑难BUG分析诊断、代码模块重构梳理分析设计
2、提高生产率:自动化工具研发与推广、代码模板研发与推广
3、开发任务管理:开发工作量评估、开发任务分配
4、质量保证:性能/集成/安全性/可扩展/代码可维护/程序可运维方面的CodeReview、开发风险识别/报告/解决
5、团队能力提升:新人指导、领导复盘总结/分享交流、最佳实践总结与推广
开发Leader的职责定位如果不明确,很容易变成没有技术主控能力的虚胖的管理者,或者很容易变成与其他程序员争工作的高级程序员。所以明确好开发Leader的职责,按照职责寻找好开发Leader,发挥好开发Leader的作用,整个团队的研发质量就能有很大的保证。
二、业务知识完整吸收
1、跨系统业务跟上:全程业务链条知识学习,尤其是跨系统之间的业务衔接
2、新人专业能力跟上:开发Leader作用发挥、师傅制作用发挥
很多BUG是开发团队对业务细节扭曲理解/细节遗漏
很多BUG是新人对日常工作规范、常用技术最佳实践手法、业务知识/产品代码/平台/框架/工具不熟悉,日积月累导致。开发Leader也没有做严格而勤奋的CodeReview,功能从外面看实现了但其实内在代码一塌糊涂
三、技术知识完整吸收
1、平台/框架/工具知识吸收
2、通用技术知识吸收:前端知识、数据库知识
很多BUG是开发团队对技术不熟悉而错误使用技术导致
我为了让应用系统研发团队熟悉了解平台,搞了很多措施:
WIKI:平台使用文档、平台常用场景代码Demo、平台研发人员撰写平台使用最佳实践
固定每月交流会:应用系统研发团队的Leader和平台研发团队Leader每月对接,谈平台的需求、平台的问题、平台知识的普及
开放对接人:开放平台每个核心组件的主要联系人,便于应用系统研发团队人员出现紧急问题时能够直接联系到具体平台开发人
四、代码知识完整吸收
1、代码流程梳理:函数调用关系
2、接口关联性:URL层、JS函数层、逻辑层、数据库层(JOB/SP/VIEW/Trigger)
3、在多层多模块间的多入口多出口的分析遗漏/修改遗漏/修改不一致
很多BUG是开发团队不断人来人往导致对历史代码没有全盘熟悉导致
所以,开发团队人员稳定,开发团队负责的系统/客户方稳定,很关键
日常,需要固定的学习时间,开发Leader来带着大家学习代码流程、接口关联性影响。
我过去规定过一个月有2次完整的一下午学习时间,这两个一下午不能安排项目任务,做项目计划时就要跳过不能算。而且在Leader/总监的考核方面,也对他们有最佳实践总结与推广/部门学习的指标,这就是组织能力建设的KPI。
五、编码最佳实践工作规范跟上
1、函数设计最佳实践、模块/系统接口设计最佳实践、前后台解耦最佳实践
2、提高程序性能的编码最佳实践
3、提高程序安全性的编码最佳实践
4、提供程序可运维的编码最佳实践
这都需要开发Leader来从CodeReview、复盘总结、BUG诊断分析中日常梳理总结,这也会影响框架设计、代码模板设计、接口设计、自动化工具研发、重构分析梳理。
六、开发过程最佳实践工作规范跟上
1、代码check in注意事项
2、Bug修改注意事项
3、补丁修补升级注意事项
4、跟踪调试注意事项
这都需要开发Leader日常梳理总结并推广执行应用。
原文链接:http://mp.weixin.qq.com/s?src=3×tamp=1467688862&ver=1&signature=eKJUXV9spI*Q2DDb*3D0Lby4k6A3Yfx5j7RhXhQWWwYYkIZARpOXaRZKWmauW8M3VNQeb0OUndX6BxnstBPyP*546KIKzl*IlzOwy29R9N5dcpm7ancuiGw00lOX22AvYficTUc-3acN8352WTSOrA==