作者回复: 👍很有道理
作者回复: 谢谢分享,帮转发一下@果然如此 的回复,我也觉得有一定道理,供参考 :)
------
@果然如此 2019-06-09 19:54
回复纯洁的憎恶:软件工程是过程控制的方法论,而产品设计才是保证伟大的产品,两者应该结合。
作者回复: 作为普通程序员,看起来对项目影响有限,但是实际上一样还是可以利用所学软件工程知识做一些事情。
*首先是做好自己的事情*
作为程序员,每天主要工作都是写代码,但是怎么写其实很有讲究的。比如说:
- 你在一个任务开始之前,是不是会做设计?哪怕简单的设计,设计做好了,会不会找同事评点你的设计?
- 写代码的时候,代码质量是不是够简洁明了?对需求或架构有疑问是不是能及时去沟通确认
- 写完代码有没有自己测试?有没有写自动化测试,保证自动化测试代码的覆盖率?
- 上线后,有没有观测上线的后的错误日志和数据,收集用户的反馈?
- 对于技术债务,有没有去尝试优化解决
如果能把自己的事情做好,那么你已经对项目产生了很大的积极贡献,同时你也逐步建立了自己在团队中的影响力,让其他成员看到,软件工程可以帮助你把任务做好,把代码写好。
*然后是用好工具*
工具在软件工程中作用很大,同时引入成本也相对低,不需要领导审批,也不需要申请经费。比如说:
- 项目管理工具,如果你们的日常任务都是口头说明的,那么可以借助任务管理跟踪工具,像Jira、禅道等,把日常任务跟踪管理起来,哪怕是你自己的、或者自己小组的任务。这样日常要做哪些事情,时间点,进度,可以一目了然。当你手头已经有很多任务了,产品经理还想给你塞需求,你就把项目管理工具上的任务给他看,让他清楚你当前已经没法做更多的事情了,除非等手头的事情忙完,或者推迟手头的事情。
- 源代码管理工具,git这种源码管理工具现在已经是标配了,如果没有用当然应该赶紧用起来,用了也可以借鉴一些成熟的开发流程,例如Github Flow (O网页链接 )
- CI/CD,持续集成持续部署似乎还不够普及,如果没有的话,要考虑做起来,花一点时间,把CI/CD环境搭建起来,用起来。用CI/CD结合开发流程,降低测试和部署的成本,降低代码集成可能产生的问题风险,把自动化测试覆盖搞上去,让QA可以及时测试到最新代码。
用好工具,可以提升开发效率提高项目质量,如果只是自己负责的项目用,相对阻力要小,可以从小的见效快的事情做起,比如自动化部署、自动化测试这些,然后再逐步扩大范围。
*最后就是影响更多的人*
要想让软件工程在项目中发挥大的作用,仅仅自己用是不够的,需要整个项目都用起来,都用好,才能最大化的发挥作用。所以终极目标还是要通过前面做的这些事情,改变大家的观念,引起大家的重视,让更多的人用起来。
从小事情做起,先在小项目作出试点,让团队成员知道怎么用,用了有什么积极的效果。这就像当年改革开放时的小岗村,几个人先做起来,作出成绩,然后就可以更大范围试点,更大范围推广。