“为什么你们开发这么慢?”软件大牛的研发效能提升秘籍
互联网产业的飞速发展,带来了更多样、多变的用户需求,这对研发团队的快速响应提出了更高要求。曾几何时,互联网公司为了更快响应市场需求,大量扩张组织规模,甚至采用"拼工时"的做法,然而不仅解决不了问题,反而出现了许多“无用功”: · 研发团队人数扩充了两倍多,加班也没少加,可产品还是频频延期,上线后问题频出…… · 开发提测质量差,大量压力聚集到测试,开发与测试互相扯皮…… · 需求文档一大堆,项目设计、开发再测试,部署后却发现和需求大相径庭…… · 开发人员疲于应付业务,对于新技术“不练不会不学”,工作热情与效率低下…… · …… 人数、工时、工作量都堆上去了,产品却问题百出,这不再是单纯的效率问题,而是团队的研发效能出了问题。 研发效能:团队能够持续地为用户产生有效价值的效率,包括有效性(Effectiveness)、效率(Efficiency)和可持续性(Sustainability)三个方面。 近年来,国内越来越多的公司开始注重研发效能问题,成立研发效能小组、引进成套解决方案、聘请效能工程师等。有些实现了技术落地,但更多情况却是花费了人力物力财力,却没能起到应有的效果。 这些现象的问题在于:软件开发的灵活性决定了研发效能提升的困难性。尽管有敏捷开发、持续集成(CI)、持续开发(CD)、DevOps等系列思想与技术方案,可如果只是简单照搬的话,往往效果不好,有时甚至会造成负面效果。 事实上,不论何种规模的组织改革,都需要团队的共同配合,这要求每名成员不仅要理解新模式的内涵、体系,也要熟悉并掌握所需的关键技术。而小异推荐的以下九本书,都是软件工程效能领域的经典书籍,是世界级软件大师的心血之作,从理论框架、技术路线到实战指导一应俱全。如果你正有相关需求,相信这些书一定会大有裨益。 01《重构:改善既有代码的设计 第二版》 软件开发“教父”Martin Fowler经典著作《重构》的“重构”版。它清晰揭示了重构的过程、原理和实践准则,构建了丰富完善的重构体系;同时包含了300页的重构名录及60余项具体技巧,不失为一本详实的工具宝典。 相较于原版,新版改进了众多重构手法,淘汰了“大型重构”转而聚焦操作的细节,显得更接地气、更适应时代;新版采用JavaScript作为示例,但其背后的理念和架构适用于任何编程语言,不论是应用于修改旧代码,还是编写新代码,都能有效避免“代码的坏味道”,使代码更易被理解和修改,提高研发效能。 02《分析模式:可复用的对象模型》 这本书是Martin Fowler的另一本经典著作,马丁大叔在这本书中分享了丰富的对象建模经验,以及识别重复问题并将其转化为可复用的模型的敏锐洞察力。 概念模式无法孤立地存在,基于这一认识,作者还给出了一系列“支持模式”。这些模式探讨了如何将概念模型转化为软件,并使其适合于大型信息系统的架构。对每种模式的讲解都包含了其背后的设计思路、应该(或不应该)使用这些模式的时机以及实现中的诀窍。 这本书中展示的例子构成了一本实用手册,既包含有用的模型,又涵盖对复用技能的深刻洞见,这些都有助于改进分析、建模和实现。 03《领域特定语言》 这本书Martin Fowler在DSL(领域特定语言)领域贡献的一本著作! 学会使用领域特定语言(DSL),可以简化复杂代码、促进开发者与客户间的沟通、提高生产效率、突破开发瓶颈。这本书为专业软件开发人员介绍了使用DSL所需的知识,展示了构建DSL的多种有效技巧,并指导软件工程师根据具体应用做出正确的选择。 书中给出了许多采用Java和C#编写的示例,并精选了部分适合采用Ruby编写的示例。通过这部内容丰富、覆盖范围广泛的著作,开发人员能够掌握做出DSL重要决策所需的知识,并在恰当使用DSL时获得技术和业务上的显著收益。 04《领域驱动设计:软件核心复杂性应对之道》 领域驱动设计(Domain-Driven Design, DDD)提出已有十八年,但近几年才得到国内互联网圈的重视,相关概念层出不穷,但落地者寥寥无几。究其原因,一是新概念、术语过多,知识体系却云山雾罩,二是国内落地最佳实践太少,三是时间、精力成本过高,得不偿失。 本书是“领域驱动设计之父”经典著作,拥有众多声名显赫软件大师鼎力推荐,凝聚领域建模专家数十年的实战经验,深度剖析构建高质量复杂系统的核心技术。 本书是领域驱动设计方面的经典之作,修订版更是对之前出版的中文版进行了全面的修订和完善。 全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。书中给出了领域驱动设计的系统化方法,并将人们普遍接受的一些实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计新实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。 05《持续交付2.0:业务引领的DevOps精要 增订版》 这本书的作者乔梁是持续交付领域专家,国内持续交付和DevOps理念的首批实践者与布道者。 《持续交付2.0》浓缩了他近十年的实践心得,没有假大空的术语堆砌,贴合国内业务实际,从组织文化建设、软件系统架构、业务需求协作等七个方面,提出了详尽的持续交付策略分析与扎实系统的“中国化DevOps解决方案”。 不仅如此,书中详解了多个国内业务团队在持续交付思想指导下,实现效能提升乃至“起死回生”的实操改造案例,不论是对开发人员、管理人员还是团队改革者都具有极高的参考价值。 06《代码整洁之道》 软件工程最经典的著作之一软件开发经验,豆瓣评分8.6,世界级软件开发大师“Bob大叔”Robert C. Martin的力作,被誉为“程序员童子军规则”。 代码质量就像地基,没有干净、整洁、易修改的代码做基础,再先进高效的研发模式都是空中楼阁。而这本书讲的正是“好代码是什么样子的”。Bob大叔将软件视为艺术,强调“惟有写出人类容易理解的代码,才是优秀的程序员。”为此,他将自己几十年的编程经验与编程社区的智慧浓缩成书,并运用实例进行充实,从命名、函数、注释等各个方面总结出了一系列行之有效的整洁代码操作实践,确保读者编写出干净的代码,有效提升代码质量,实现效能提升。 07《敏捷整洁之道:回归本源》 敏捷理论从提出至今,在得到无数实践检验的同时,也一直饱受争议。《敏捷宣言》签署近20年后,软件开发界的传奇人物,《代码整洁之道》的作者罗伯特·C. 马丁(“鲍勃大叔”)重出江湖,为新一代软件行业从业者——不论是程序员还是非程序员——讲述敏捷的价值观与原则。 本书回顾了敏捷的历史,重述敏捷最初的用意,阐述敏捷的本质,澄清长久以来人们对敏捷的误解与混淆,让敏捷回归正途,正本清源,为软件行业从业者讲述敏捷的价值观与原则,给出敏捷开发人员面临的关键问题的实用答案。不管你是开发人员、测试人员、管理人员、项目经理还是客户,本书都会告诉你如何把敏捷用对。 08《善工利器:程序员管理范式》 在这本书中,两位作者分享了他们从编程和管理实践中积累的宝贵经验,以及对于软件研发管理、人员管理、团队管理等方面的真知灼见,收集300余条经过千锤百炼而成的经验法则与至理名言。 这本书全方位深度剖析不同程序员的性格特征,在招聘程序员、培养新晋程序员快速融入团队方面,展示大量操作性极强的技巧,强调程序员性格、招聘与培养、激励与文化、敏捷式管理。是零基础管理者、程序设计经理、IT项目管理者的团队管理手册! 此外,本书每章末尾附有“工具”一节,这些配套的清单、表格和报告等电子资源,可以让招聘、管理和激励程序员变得更加轻松。 09《知行 技术人的管理之路》 如果: ·你是一位想做管理的“有志”工程师,却不清楚如何去努力; ·你是一位被要求带团队的架构师,却一时不知道该从哪里下手; ·你是一位新上任的管理者,希望快速掌握管理要领; ·你做了多年管理,希望提炼和梳理系统的管理方法论; ·你希望助力技术管理者的成长和发展。 如果你兼具“技术”和“管理”这两个属性,那么本书探讨的内容会更让你感同身受。 这是一本来自于技术管理者又回馈给技术管理者的书,针对“技术人如何做管理”这一主题提供了立体的视角和系统的方法论。本书基于作者十年互联网管理经验,针对技术管理者最常遇到的困惑和挑战,结合技术人的思维特点和实际工作场景,系统回答了技术人做管理时所面临的三个大问题—管理的意愿、管理的认知和管理的实操,兼具理论性和实践性。 10《Google软件测试之道》 想了解Google的测试理念有什么与众不同?Google的快速开发,快速发布的秘密又是什么?小异推荐您看下这本《Google软件测试之道》。 本书由测试领域的传奇巨匠James Whittaker与两位Google顶级专家Jason Arbon 、Jeff Carollo 联合撰写,一起披露了Google如何做测试的精髓所在,并提供了一套崭新的最佳测试工程实践方案。即使你的产品并非如Google般的规模,相信你仍然可以从中受益匪浅,可以作为任何从事软件测试人员到达目标的指南。 本书描述了测试解决方案,揭示了测试架构是如何设计、实现和运行的,介绍了软件测试工程师的角色;讲解了技术测试人员应该具有的技术技能;阐述了测试工程师在产品生命周期中的职责;讲述了测试管理及在Google的测试历史或在主要产品上发挥了重要作用的工程师的访谈,这对那些试图建立类似Google的测试流程或团队的人受益很大。 本书还介绍了作者对于Google测试如何继续演进的见解、Google乃至整个业界的测试方向的一些预言,相信很多读者都会感受到其中的洞察力,甚至感到震惊。 11《测试工程师全栈技术进阶与实践》 本书蕴含了作者十余年的测试工作实际经验,系统性梳理了软件测试的知识体系,重点讲解了自动化测试、API测试、代码级测试、测试框架与数据平台的构建等一系列关键技能,以及分布式服务架构、微服务架构等新技术测试,同时围绕如何解决软件测试实际问题,分享并讲解了一系列行业最佳实践案例,理论联系实际,为读者展示了软件测试技术的全貌。 作者行文逻辑清晰,文笔通俗易懂、循循善诱,文中的拓展内容有合理的引导与诠释,有助于广大读者,特别是刚入行的新人对测试形成更全面的认知。 赠人玫瑰,手留余香,不要忘记点赞、收藏、关注 @人民邮电出版社 哦~ 一键三连,感恩有你~ (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |