当快猛糙技术团队开始思考如何提升工程质量和效率的时候,恭喜你,只是你的团队活了下来,而且还想活的更好。
1 提高工程师的技能和思维
工程师存在的意义不是写代码,加功能,而是解决问题,做好产品,满足用户。
没有所谓的 Java程序员、后台程序员。我依然问题工程师就应该是全栈。语言、框架、应用,都只是工具。工程师最不不应该拒绝的就是学习新技能。
相对于技能,思维是很难提升的。难就说明了是可以提升了。阅读、交流、写作、演讲都对思维有帮助。
普通工程师和 10X工程师的核心差异在于思维。技能都是花时间补充的,无非是快慢。思维的提升需要 运气和努力,比如需要一个好的 mentor 引导和你的悟性及努力。
2 常规化处理技术债
技术债不可能一下子消灭完。技术债就如同 bug 一样,不可能有没bug的代码,只是bug的数量和影响在能接受的范围内即可。把处理技术债纳入到年度计划和季度计划中,痛并快乐着,在不影响业务研发速度的同时,给处理技术债留有时间。
3 减少系统设计中妥协设计
没有设计完美的系统,系统是妥协的结果。可能之前的一些妥协设计会影响接下来的发展。提前调整设计,但不要过度设计,来应对日益增长的需求。
4 健全的监控和测试机制
监控能让我们及时发现问题,不要等到服务宕机了,让用户通知你的系统坏了。先于客户或用户了解到系统的健康状况,掌握主动权
大部分小型技术团队是不做完备的测试的,或者说根本不重视测试的。本质上是当时管理层认为当时测试的价值远远小于测试需要投入的成本,这个理由其实也说的过去,如果初创团队的技术团队不豪华,不要奢望有测试人员的存在了。但是,当测试的价值远远大于需要投入的成本的时候,测试就很有必要了。不过是程序员自测还是组建单独的测试团队。
5 CI/CD
只有两三人的时候,研发团队无需什么规范的流程、制度。重要的是快速出结果,快速解决问题。但是团队一旦扩大起来,对应的协作模式就要有所调整。
用自动化提高效率,有流程约束结果。这时候 CI/CD是不可避免的了。CI,即持续集成。CD,即持续交付和持续部署,D,Delivery、Deploy。
6 DevOps
DevOps,即开发、测试、运维三个领域的合集。快猛糙团队基本上不重视测试,运维被开发兼任。落地的困境其实很小,不然部门间的阻力会让人望而却步。
DevOps的核心在于自动化。
DevOps并不是全新的概念,而是CICD思想的延伸,CICD是DevOps的基础核心。没有CICD自动化的工具和流程,DevOps将没有任何意义。