《软件开发的 201 个原则》思考:1. 质量第一
Edward Yourdon
爱德华·纳什·尤顿(1944- ),国际公认的专家证人和电脑顾问,著名的软件工程师,电脑咨询工程师,千年虫电脑病毒专家,著作家与教授,软件工程方法论的创始人。
《软件开发的 201 个原则》的第一个原则写了质量第一,质量是衡量一个开发,或者一个应用程序的最重要的衡量点。无论是在项目交付,产品上线,都是十分重视的。质量的重要性,不言而喻。
1. 客户不会容忍低质量产品的,开发人员也不应该容忍低质量的代码。我的亲身经历就是,我开发的东西在客户那跑出问题,客户就直接找上来,为什么会这样,天天烦着你。从此之后,我对代码的质量达到了一个新的高度,甚至到同事都觉得我这么做真多余。质量的重要性或许有些人不明白不理解,觉得有测试团队或者这个功能跑完没问题呀,就没有问题了,其实这是极其错误的。当你直面客户,天天被指着骂的时候,不要怪你当初没有认真把控代码质量。
2. 从 21 年交付了一个极差的项目之后,因为当时我确实能力较差,也是我第一个交付的项目,我树立的观念就是质量放在首位,没有可商量的余地。我甚至自己写测试用例给测试团队用,然后他们自己再根据他们的理解去增加,我缺失的。我开发的组件的单元测试覆盖率均在 90%以上,接口的单元测试,也封装了一套代码来进行测试,就是为了一个高质量的代码(还有别的方面)。
3. 直接说“不”,我个人认为不是在每个开发人员的成长阶段都可以这么做的。首先通常能说这些的人,一般是技术主管,有话语权的。其次,在刚开始的开发人员,并不知道质量是怎么衡量的。往往初入职场,怕被说,先把功能先完成。我在我真正开始接触客户的时候,我就是这么一个状态,直到接了几个项目,我才开始意识到也同时可以说“不”,不能这么着急地交付项目,不给团队一点测试或者完善代码质量的时间。那能够建立说“不”的基础,其实是对代码工程化能力的全面体现。良好的封装,代码的高复用率,完善的 code review 机制等等。不是说一步到位,但是基础建设一定是有的,才能够这么说。为什么要这些基建,因为我认为文中所说的问题,其实在一个具有良好优秀工程化能力的团队里是不会出现的,即使出现,也会马上调整好。
4. 我挺排斥的,我现在的公司也有这个现象。但我反思的是,如何减少这个问题的发生。公司很多人说都在加班开发,但都没有去想想怎么提高开发效率,减少开发时间。领导或许会压榨你,叫你赶快做。但是赶完之后,你是否还愿意花时间去复盘这次的开发,如果没有对这次开发做复盘,那不要抱怨领导,因为你也就一直被人领着走,下一次你还是被赶着开发。时间都是靠自己省出来的,而这些时间的减少就是工程化能力的体现。
这是百度团队翻译的书本,本篇不涉及商业,单纯个人想法记录反思,有想要讨论的欢迎评论留言。
评论