相信大多数同学学习编程,从第一个项目开始的工作也是编程,一切都是那么自然,自然到认为只有技术一条出路,只顾不断精进技术,却不曾想过技术之外还有更广阔的世界,还有更大的可能。
那么你是否曾想过项目里为什么要有项目经理,测试,甚至SQA这些角色。为什么要有需求文档评审会,代码评审等这些流程。为什么需要有各种Checklist(检查表),各类模版等工具。为什么有些项目加班很多质量却很差。如果你也有这些疑问,说明你的好奇心还没有被“自然”磨平。
大虾曾面试过一位工作多年的软件工程师,问起如何保证团队中其他工程师提交的代码质量。他说靠工程师的个人经验。大虾相信他代表了一大部分人的观点。但在实际项目中,团队的成员往往都是高低搭配,土豪项目不在此列哈,我们更希望通过某种确定的方法来消除不确定性,并保证所有成员的代码质量。并且这种方法是可以复制到其他项目。比如:我们可以通过代码规约来规范所有成员的代码,也可以通过代码评审工具或者人工评审等方法来提高代码质量。有同学说:有人就是不遵守代码规约怎么办?只能靠个人觉悟了吗。大虾的建议是使用工具Checklist,将重点关注的项,比如:方法名必须遵守驼峰式等,列出来并打印,让工程师完成编码后,进行自查,确认完成一项勾掉一项并签名。通过以上的例子,可以看出只是简单引入质量保证的工具Checklist就可以有效的贯彻全员的执行力,从而提高代码质量。
只要留心观察,我们就可以发现项目中很多流程的设置,比如:需求文档的评审会,代码评审等等,都是为了提升软件的质量。软件质量为什么如此重要呢?那是因为客户满意度是项目的生存之本,而质量又是影响客户满意度最关键的因素之一。因此,我们只要从质量的角度来看项目,就很容易理解为什么要设置这些流程,以及为什么要应用这些工具和方法了。
那么大虾为什么要从质量开始讲软技能呢?因为比起沟通技巧等管理技能,质量除了相对“硬”,又跟项目组所有成员息息相关。对于想要获得更好发展的程序员来说,质量是必备的基础知识。
本专栏将从两个视角学习质量,第一从程序员的视角,我们应该怎么做来保证自己提交成果的质量,让自己成为一个靠谱,让人信赖的人。第二从项目或者团队管理者角度,我们应该制定怎样的流程规范来保证达成质量目标。以上面Checklist例子为例,作为程序员需要理解为什么要引入这个工具,并认真执行。作为项目管理者需要掌握此工具,并能在项目实践中灵活运用。类似Checklist的工具在本专栏中还有很多,这些工具方法都是大虾经过多年项目实践的。希望同学们在学习的过程中,能从这两个角度进行思考,并在工作中多多实践。
通过本专栏同学们可以发现技术之外还有更广阔的天地,掌握质量保证流程,工具及方法。不仅可以发现项目中的质量问题,还可以通过组合流程工具,提出自己的方案,并解决问题。为今后走管理道路打下坚实的基础。有的同学说我就想走技术路线,那还需要学习质量保证相关的知识吗?答案是肯定的。因为质量不是某个人的事情,而是所有成员的责任。更不用说作为技术骨干,如果不懂质量保证方法,那如何让下面的技术人员高效协作,并高质量的完成任务呢。
大虾建议同学们应尽早系统化地学习软件工程,质量保证,项目管理等相关的软知识。因为初入职场大家都是一张白纸,不会有很多“自己的想法”,更容易接受新的知识。这个时候进行系统化的理论培训,有利于形成全局视角,在今后的项目中可以边观察边实践,一边提升技术,一边提升自己管理相关的软技能,为职业生涯发展打下坚实的基础。
本专栏结合大虾十多年工作经验及实践,有别于其他管理类书籍的枯燥,使用通俗易懂的语言,紧贴项目开发流程,并使用大量实例,主要面向程序员,对程序员需要掌握的质量知识进行系统的介绍。本篇是质量的缘起,也是同学们与大虾的缘起,欢迎订阅本专栏(免费)并关注大虾,一起感受不同于技术的别样魅力。
|