什么是软件研发的工程化?研发团队真的理解吗?
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
DevOps在路上
扫码关注公众号
扫码阅读
手机扫码阅读
软件工程化的理解与实践摘要
在软件开发领域,存在对“软件工程化”的误解,有人质疑现代工具如Jenkins的用处,而在讨论团队协作的实际问题如分支策略、依赖管理时,这种误解导致了沟通上的无力感。
什么是软件的工程化
软件工程化指的是将代码编译、打包以及部署等过程进行标准化和自动化。这包括准备代码、下载依赖、编译打包以及准备环境和启动程序。尽管个人程序员可能认为本地脚本足以处理这些任务,团队规模放大和复杂性增加时则会面临更多挑战,如多人开发、业务集成、流程延长、多语言技术栈、灵活配置和快速回滚等。
个人解决方案,如编写shell脚本,仅适用于个人问题,并不能解决团队的协作问题。软件工程化的目标是协助团队合作,而不是个人问题的解决,未能实现团队协作的解决方案可能导致技术债务的累积。
软件工程的平台化
软件工程的平台化是为了实现企业软件研发活动的可持续化。可持续化是指不依赖单一个人的专业知识,而是通过标准化流程来保证业务连续性。个性化的持续交付流程会给团队和企业带来不确定性和风险。
平台化可以作为帮助企业实现研发活动可持续化的重要基础,但常被忽视。要实现软件工程的平台化,必须坚持标准化原则,识别优先级,逐步发展标准,培养团队的工程化意识,寻找具有广泛知识面的人才,且避免盲目的自动化。
实现软件工程化的建议
- 坚持标准化原则,消除违反标准化的行为。
- 逐步实现标准化,考虑优先级和性价比。
- 培养团队的工程化意识,尤其是基础平台团队。
- 寻找具备多种语言和工具知识的人才。
- 避免无脑自动化,以免阻碍标准化进程。
参考文献:《你以为搞个流水线每天跑,团队就在使用CI/CD实践了?》
DevOps在路上
DevOps在路上
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
DevOps在路上的其他文章
Jenkins集成GitLab的正确姿势,实现Git代码提交触发CI/CD
❝jenkins和gitlab是目前DevOps工具链中最常见的,抛开gitlab-ci不谈,gitlab代码
发布、部署,傻傻分不清楚?从概念到实际场景,再到工具应用,一篇文章让你彻底搞清楚
unsetunset部署与发布:缺乏发布管理的部署活动对软件交付是低效的unsetunset部署和发布是软件工
Docker可视化管理工具总结-推荐使用Portainer
对于初学docker的小白,一款好的可视化工具有助于快速掌握docker基本形态和概念,下面针对docker
放弃"Jenkins"的种种理由,期待更好赋能研发的持续交付平台
Jenkins 很酷,但是不完美,有历史局限性造成的问题。本文仅从“如何更好给研发团队赋能的角度”,剖析Je
嗨,别着急做度量,平台工程需要先从“数据治理”开始做起
最近一直想写一篇关于“「数据治理”和“度量相关”」的话题,一直太忙,今天静下心来写点自己的体会先从平台工程说
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线