分享

大厂的软件工程给实施GJB5000的组织带来的启示

 东北十三少 2020-10-16

他山之石可以攻玉。

我们实施GJB5000A,是为了提高我们的软件工程能力,那些开发出很多厉害软件产品的大厂,它们的软件工程能力自然不弱,我们看看可以从这些大厂身上学习些什么。

  • 使用先进的工具

工欲善其事,必先利其器。

大厂都爱自己造轮子,一般都会有一个专门的部门去做开发工具的开发和维护,包括各种像编译、部署、持续集成等等。这些工具帮助开发人员提高效率,保证了质量。

我们实施GJB5000A的组织,多数都有人力资源不足、软件调试时间长、软件质量要求高的特点,使用先进的开发工具,能够提高软件开发效率和质量,降低调试时间,是组织提高自己软件工程能力的一种容易实施也容易见效的措施。

  • 严格执行开发流程

在大厂里,软件开发必须严格遵守那些已经证明行之有效的开发流程。这些硬性要求包括:

  • 要基于分支进行开发新功能或者修复 Bug;

  • 要遵守公司或者团队的代码规范;

  • 代码合并之前要有至少一个人 Review 通过;

  • 要写自动化测试代码,并且保证所有测试用例通过。

通过这些优秀实践的实施,使得大厂开发出来的产品质量得到保障。

在获取有效流程的方式上,实施GJB5000A二级和三级的组织可能有所不同。实施GJB5000A二级的组织可以多从其他先进的组织学习一些有效的开发流程;实施GJB5000A三级的组织可以不断地总结自己的实践经验,从中归纳出适合自己的有效流程。但无论何种方式,有效的开发流程都是能够确保软件开发质量得到保证的。只要组织不断改进自己的开发流程,在每个开发过程中不断形成对组织的项目行之有效的实践,组织的开发过程质量就会不断提高,从而保证软件产品的质量不断提高。

据说在谷歌的卫生间里面,甚至会张贴着有关 Testing on the Toilet 的贴纸,让你在去卫生间的时候还能学学怎么写测试,这种学习软件工程知识的文化氛围也是值得我们实施GJB5000A的组织学习的。

  • 不盲目依赖测试

虽然测试在大厂的开发过程中是非常重要的一环,但大厂不会把交付软件的质量全部交给测试。大厂认为即使软件经过了完整的测试,也不能保证质量就是可靠的。所以大厂们还会配合一套完善的发布和监控流程。

我们实施GJB5000A的组织在对待测试这点上很有意思。一般不会那么相信组织内部的测试结果,但是会非常相信第三方测试的结果。一些重大的试验,组织会要求软件必须通过第三方测试。通过第三方测试的软件在重大试验环节就不会出问题了吗?现实当中被打脸的比比皆是。

其实,除了测试之外,我们本来就具备的系统联试、出厂质量评审等活动都会帮助我们确认要出厂试验的软件质量的。正如大厂除了测试之外,会有一套软件发布前的监控流程,我们也应当在测试之外,正确地、恰当地使用系统联试等技术手段来保证软件质量。

这正是:

大厂水平人共知,吸收借鉴军软里

先进工具和流程,提升质量是根本

参考文献:《微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的?》,宝玉,极客时间专栏《软件工程之美》


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章