内容简介:他山之石可以攻玉。我们实施GJB5000A,是为了提高我们的软件工程能力,那些开发出很多厉害软件产品的大厂,它们的软件工程能力自然不弱,我们看看可以从这些大厂身上学习些什么。工欲善其事,必先利其器。
他山之石可以攻玉。
我们实施GJB5000A,是为了提高我们的软件工程能力,那些开发出很多厉害软件产品的大厂,它们的软件工程能力自然不弱,我们看看可以从这些大厂身上学习些什么。
-
使用先进的工具
工欲善其事,必先利其器。
大厂都爱自己造轮子,一般都会有一个专门的部门去做开发 工具 的开发和维护,包括各种像编译、部署、持续集成等等。 这些工具帮助开发人员提高效率,保证了质量。
我们实施GJB5000A的组织,多数都有人力资源不足、软件调试时间长、软件质量要求高的特点,使用先进的开发工具,能够提高软件开发效率和质量,降低调试时间,是组织提高自己软件工程能力的一种容易实施也容易见效的措施。
-
严格执行开发流程
在大厂里,软件开发必须严格遵守那些已经证明行之有效的开发流程。 这些硬性要求包括:
-
要基于分支进行开发新功能或者修复 Bug;
-
要遵守公司或者团队的代码规范;
-
代码合并之前要有至少一个人 Review 通过;
-
要写自动化测试代码,并且保证所有测试用例通过。
通过这些优秀实践的实施,使得大厂开发出来的产品质量得到保障。
在获取有效流程的方式上,实施GJB5000A二级和三级的组织可能有所不同。 实施GJB5000A二级的组织可以多从其他先进的组织学习一些有效的开发流程; 实施GJB5000A三级的组织可以不断地总结自己的实践经验,从中归纳出适合自己的有效流程。 但无论何种方式,有效的开发流程都是能够确保软件开发质量得到保证的。 只要组织不断改进自己的开发流程,在每个开发过程中不断形成对组织的项目行之有效的实践,组织的开发过程质量就会不断提高,从而保证软件产品的质量不断提高。
据说在谷歌的卫生间里面,甚至会张贴着有关 Testing on the Toilet 的贴纸,让你在去卫生间的时候还能学学怎么写测试,这种学习软件工程知识的文化氛围也是值得我们实施GJB5000A的组织学习的。
-
不盲目依赖测试
虽然测试在大厂的开发过程中是非常重要的一环,但大厂不会把交付软件的质量全部交给测试。 大厂认为即使软件经过了完整的测试,也不能保证质量就是可靠的。 所以大厂们还会配合一套完善的发布和监控流程。
我们实施GJB5000A的组织在对待测试这点上很有意思。 一般不会那么相信组织内部的测试结果,但是会非常相信第三方测试的结果。 一些重大的试验,组织会要求软件必须通过第三方测试。 通过第三方测试的软件在重大试验环节就不会出问题了吗? 现实当中被打脸的比比皆是。
其实,除了测试之外,我们本来就具备的系统联试、出厂质量评审等活动都会帮助我们确认要出厂试验的软件质量的。 正如大厂除了测试之外,会有一套软件发布前的监控流程,我们也应当在测试之外,正确地、恰当地使用系统联试等技术手段来保证软件质量。
这正是:
大厂水平人共知,吸收借鉴军软里
先进工具和流程,提升质量是根本
参考文献: 《微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的? 》,宝玉,极客时间专栏《软件工程之美》
作者简介: 王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。 现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。