怕老鼠的猫 怕老鼠De_猫
music——
关注数: 64 粉丝数: 189 发帖数: 5,064 关注贴吧数: 82
《Google软件工程》第五章读书笔记 这一章主要探讨了在一个团队中,领导者的角色以及他们如何在不同的情境下发挥作用,确保团队的成功。 首先,书中指出,没有领导者的团队就像一艘没有船长的船,只会随波逐流,最终导致工程师们浪费时间。领导者的作用在于为团队指明方向,确保大家朝着同一个目标努力。谷歌的团队文化强调了两种不同的领导角色:经理和技术负责人。经理主要负责人员的管理和团队的整体绩效,而技术负责人则侧重于技术决策和项目管理。两者需要紧密合作,以确保团队既有良好的技术决策,又能保持高效的工作节奏。 特别有趣的是,书中提到了“技术主管经理”(TLM)的角色,这个角色兼具了经理和技术负责人的职责。在小型团队中,通常由一个人同时担任这两个角色。这种角色需要在技术与人际关系管理之间找到平衡,不仅要确保技术决策的正确性,还要关注团队成员的成长和工作满意度。 在阅读过程中,我深刻体会到,优秀的领导者不仅需要具备出色的技术能力,更需要有管理和激励团队的能力。书中强调,领导者应当服务于团队,而非仅仅通过权威去影响他人。这种“无权力影响”的领导风格能够有效地激发团队成员的主动性和创造力。 总的来说,这一章给我最大的启示是,成为一个成功的团队领导者需要不断学习和适应。无论是技术领导者还是经理,他们都需要在实践中不断磨练自己的领导技能,平衡好团队成员的需求和业务目标。这不仅能提升团队的整体绩效,还能创造一个积极的工作环境。
《Google软件工程》第四章 本章指出,做出影响世界的发展决策的人与必须接受这些决策的人之间的权力越来越不平衡,这些决策有时会使全球边缘化的社区处于不利地位。因此,与下一代软件工程师分享和反思我们所学的知识非常重要。要成为一名出色的工程师,除了解决问题外,还需要考虑所建工具如何影响人类的轨迹,并希望这种影响是积极的。 1.偏见是默认的 当工程师不关注不同背景的用户时,即使是最优秀的员工也会在不经意间让用户失望。所有人都有一定的偏见,社会科学家已经认识到,大多数人都有无意识的偏见,这些偏见强化并传播现有的刻板印象。无意识的偏见是隐藏的,比有意的排斥行为更难改正。因此,组织也必须认识到这种偏见的存在,并努力在员工队伍、产品开发和用户推广中解决这一问题。 由于偏见,谷歌在一些产品中未能公平地代表用户。例如,谷歌照片的图像识别算法曾将黑人的照片误识别为“大猩猩”,这一错误引发了广泛的批评。导致这一失败的原因包括数据集的不完整、工程团队的多样性不足,以及目标市场未充分包括代表性不足的群体。这些问题不仅伤害了用户,也削弱了用户对谷歌的信任。 2.了解多样性的必要性 谷歌认为,成为一名出色的工程师需要将不同的视角引入产品设计和实施中。这也意味着在招聘和面试中,负责招聘的谷歌员工必须致力于建立更具代表性的团队。了解如何预测和预防伤害有重要的先决条件。要实现为所有人建造产品的目标,首先必须了解代表性人群。工程师需要打破仅凭计算机科学学位和工作经验就能成为出色工程师的观念。 工程师应关注完整生态系统内的所有工作,至少需要了解用户的人群统计数据,并关注那些可能受到产品伤害的人。为了应对这一挑战,工程团队需要代表其现有和未来的用户。在团队缺乏多样性的情况下,个别工程师需要学习如何为所有用户构建产品。 3.构建多元化能力 出色的工程师应理解产品对不同人群的影响,不仅要有技术能力,还需要敏锐的判断力,知道何时该构建产品,何时不该构建。判断力包括识别和拒绝导致不良结果的功能或产品的能力。这是一个崇高且艰难的目标,需要工程师扩展关注范围,关注当前用户之外的未来用户,尤其是那些可能被剥夺权利或遗弃的用户。 总体而言,本章强调了多样性和包容性在软件工程中的重要性,呼吁工程师们在产品设计和实施中考虑到不同用户的需求,以实现真正的公平工程。
《Google软件工程》第三章 知识共享的重要性 知识共享对于组织的成功至关重要,因为它可以提高问题解决的效率和创新能力。组织内部的专家和知识传播机制共同作用,帮助成员解答问题并促进整体知识水平的提升。 学习的挑战 在没有良好学习文化的组织中,知识共享面临多重挑战: 1.缺乏心理安全:人们害怕在别人面前冒险或犯错,担心因此受到惩罚,导致知识封闭。 2.信息孤岛:组织各部分之间缺乏沟通和资源共享,导致信息碎片化、重复和偏移。 3.单点故障:关键信息仅掌握在少数人手中,一旦这些人不在,团队将陷入困境。 4.要么全会要么都不会:知识在专家和新手之间无法有效传递,新成员难以快速成长。 5.鹦鹉学舌:模仿而不理解,导致知识应用效率低下。 6.闹鬼墓地:因害怕问题而避免接触或修改某些代码或流程。 谷歌的应对策略 谷歌通过多种策略应对这些挑战,确保知识在组织内有效传递: 1.心理安全 1.1导师制:为新员工(Noogler)分配导师,帮助其快速适应环境,提供个性化建议和支持。 1.2大团队的心理安全:鼓励合作而非对抗的互动,确保新人敢于提问,老员工乐于分享知识。 2.多样化的知识共享机制 2.1个性化帮助:专家提供一对一的指导,解决具体问题。 2.2文档化知识:通过团队wiki等工具,记录并分享知识,使其能够在更大范围内传播。 2.3内部知识:填补团队成员个人知识与文档化知识之间的差距,确保知识传递的连续性。 结论 知识共享不仅仅是技术问题,更是文化问题。谷歌通过建立心理安全、导师制和多样化的知识共享机制,有效应对了知识共享的挑战。最终,组织需要根据自身情况不断调整和优化知识共享的方法,确保知识能够在组织内自由流动,促进整体成长与进步。 通过以上策略,谷歌不仅提升了团队的整体知识水平,也为新成员提供了良好的成长环境,确保组织在快速变化的技术领域中保持竞争力。
《软件开发的201个原则》第三章 低质量的需求分析,会造成低质量的成本估算。如:频繁的需求变更、不完整的需求列表、不充足的用户沟通、低质量的需求规格说明和不充分的需求分析。 当面对需求或者问题的时候,我们需要先确定问题,跟客户、产品多沟通,通过产品原型文档和设计稿等尽可能多的获取需求信息。然后把自己所理解的需求记录下来,规划构建一个满足这些需求的系统。 同时,我们还需要记录需求为什么被引入。当后续需求变更的时候,有助于确认是否可以安全地变更。 在进行设计或者编码之前,我们还需要对需求进行评审。 并非所有的需求都是同样重要,我们可以按照重要性给每个需求打分排布优先级。 给每个需求编号,以便在后续设计和测试中持续追踪需求。 对于待定项,需要明确注释谁处理、到何时为止,以确保这个待定项不会被一直保留。 在我们开发日常中,版本之初需要提前熟悉产品文档,尽可能多的了解产品诉求。评审阶段需要跟pm线上、线下多沟通,避免歧义和需求gap产生。在设计阶段,需要自己结合产品需求和工程现状,将规划方案整理留档。对于待定项,需要明确at到人,确保问题及时得到处理。对于需求变动,需要做好注释,确保系统可以安全的变更,后人可以方便的接手。
《软件开发的201个原则》第二章读后小结 软件开发的一般性原则: * 质量第一。忽略质量的产品,从长期角度来看,等于慢性自杀; 设计、开发不能一味求快,要从长期可迭代考虑,注重质量,尽可能遵循软件设计六大原则。 * 质量在每个人眼中都不同。不同的角色,对质量有着不同的标准; 对于我们开发者来说,在工期内尽可能设计出良好的架构,落地高质量代码,就是第一优先级。 * 开发效率和质量密不可分。开发效率和质量总体成负相关; 不能一味追求高质量、过度设计,还要考虑产品上线周期。 * 高质量软件是可以实现的。将软件开发过程科学模板化,通过设计、评审等模式确保质量; 我们的前期技术评审,开发过程中的组件化框架、cr机制等这些流程模版,都是确保我们开发质量的科学方式。 * 不要通过通过改进软件实现高质量; 高质量软件不是迭代出来的,一开始设计方向错了,后面都是徒劳。重要的基建、业务模块,我们一定要做好设计,组内评审,确保方向不跑偏。 * 低可靠性比低效率更糟糕; 低效率可以通过加大人力投入来解决,但是低可靠性往往会在上线后持续的对我们的产品质量造成影响,而且随着业务迭代,耦合性增强后,这种危害日益显现且难以剥离。比如TBCAsyncImageView、大图浏览器。
1 下一页