首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

代码整洁之道--读书笔记(13)

编程知识
2024年09月19日 06:20

代码整洁之道

image-20240904225436374

简介:

本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。

本书适合所有程序员阅读,也可供所有想成为具备职业素养的职场人士参考。

第十三章 团队与项目

image-20240919070111183

小项目该如何实施?如何给程序员分派?大项目又该如何实施?

13.1 团队开发仅仅是简单的混合吗?

这几年来,我为许多银行和保险公司做过咨询。这些公司看起来有一个共同点,那就是它们都是以一种古怪的方式来分派项目的。

银行的项目通常相对比较小,只需一到两名程序员工作几周即可

这样的项目通常会配备一名项目经理,但他同时还会管理其他若干项目;会配备一名业务分析师,但他同时也为其他项目服务;也会配备几名程序员,他们同样同时参与其他项目的工作;还会配备一到两名测试人员,他们也同时测试其他项目。看到其中的模式了吧?这些项目太小,无法把一个人的全部时间完全分配其中。每个人在项目上的投入都是以50%甚至25%的比例来计算的。

但是,不要忘了:事实上并没有半个人的这种说法。

让一个程序员把一半的时间投入在项目A中,把其余时间投入在项目B中,这并不可行,尤其是当这两个项目的项目经理不同、业务分析师不同、程序员不同、测试人员不同时,更不可行。这种丑陋的组合方式能称为团队吗?这不是团队,只是从榨汁机中榨出的混合物而已。

有凝聚力的团队:

形成团队是需要时间的。团队成员需要首先建立关系。他们需要学习如何互相协作,需要了解彼此的癖好、强项、弱项,最终,才能凝聚成团队。

有凝聚力的团队确实有些神奇之处。他们能够一起创造奇迹。他们互为知己,能够替对方着想,互相支持,激励对方拿出自己最好的表现。他们攻无不克。

团队的人员组成及其比例:

  • 有凝聚力的团队通常有大约12名成员。最多的可以有20人,最少可以只有3个人,但是12个人是最好的。这个团队应该配有程序员、测试人员和分析师,同时还要有一名项目经理
  • 程序员算一组,测试人员和分析师算一组,两组人数比例没有固定限制,但2∶1是比较好的组合。
  • 由12个人组成的理想团队,人员配备情况是这样的:7名程序员、2名测试人员、2名分析师和1名项目经理。

团队组成人员的分工与职责:

分析师与测试人员:

  • 分析师开发需求,为需求编写自动化验收测试。测试人员也会编写自动化验收测试,但是他们两者的视角是不同的。两者虽然都写需求,但是分析师关注业务价值,而测试人员关注正确性。
  • 分析师编写成功路径场景;测试人员要关心的是那些可能出错的地方,他们编写的是失败场景和边界场景。

项目经理:项目经理跟踪项目团队的进度,确保团队成员理解项目时间表和优先级。

监督人员:其中有一名团队成员可能会拿出部分时间充任团队教练或Master[2]的角色,负责确保项目进展,监督成员遵守纪律。他们担负的职责是,如果团队因为项目压力太大选择半途而废,他们应当充当中流砥柱。

团队的发酵期:

  • 成员克服个体差异性,默契配合,彼此信任,形成真正有凝聚力的团队,是需要一些时间的,可能需要6个月,甚至1年。
  • 凝聚力一旦真正形成,就会产生一种神奇的魔力。团队的成员会一起做计划,一起解决问题,一起面对问题,一起搞定一切。
  • 团队已经有了凝聚力,但却因为项目结束了就解散这样的团队,则是极为荒谬的。最好的做法是不拆散团队,让他们继续合作,只要不断地把新项目分派给他们就行。

团队和项目,何者为先?

专业的开发组织会把项目分配给已形成凝聚力的团队,而不会围绕着项目来组建团队。一个有凝聚力的团队能够同时承接多个项目,根据成员各自的意愿、技能和能力来分配工作,会顺利完成项目。

如何管理有凝聚力的团队?

管理团队的项目速度:

每个团队都有自己的速度。团队的速度,即是指在一定时间段内团队能够完成的工作量。有些团队使用每周点数来衡量自己的速度,其中“点数”是一种关于复杂度的单位。他们对每个工作项目的特性进行分解,使用点数来估算。然后以每周能完成的点数来衡量速度。管理人员可以对分配给团队的项目设置一个目标值。

项目承包人的困境:

作为项目承包人,如果有一个专属团队完全投入在其项目上,他能够清楚计算出团队的投入是多少。他们明白,组建和解散团队代价高昂,因此公司也不会因为短期原因就调走团队。

如果项目分配给一个有凝聚力的团队,并且如果那些团队同时在做多个项目,那么在公司心血来潮时便可以改变项目的优先级。这可能会影响项目承包人对未来的安全感。他们所依赖的资源,也可能突然间便被抽走。

组建和解散团队只是人为的困难,公司不应受到它的束缚。如果公司在业务上认为一个项目比另外一个项目的优先级更高,应该要快速重新分配资源。项目承包人的职责所在,便是清晰地定义和陈述项目的价值与意义,让项目得到公司管理层的认可和支持。

13.2 结论

团队比项目更难构建。因此,组建稳健的团队,让团队在一个又一个项目中整体移动共同工作是较好的做法。并且,团队也可以同时承接多个项目。

在组建团队时,要给予团队充足的时间,让他们形成凝聚力,一直共同工作,成为不断交付项目的强大引擎。

From:https://www.cnblogs.com/TonyCode/p/18419704
本文地址: http://shuzixingkong.net/article/2117
0评论
提交 加载更多评论
其他文章 DLA:动态层级注意力架构,实现特征图的持续动态刷新与交互 | IJCAI'24
论文深入探讨了层级注意力与一般注意力机制之间的区别,并指出现有的层级注意力方法是在静态特征图上实现层间交互的。这些静态层级注意力方法限制了层间上下文特征提取的能力。为了恢复注意力机制的动态上下文表示能力,提出了一种动态层级注意力(DLA)架构。DLA包括双路径,其中前向路径利用一种改进的递归神经网络
DLA:动态层级注意力架构,实现特征图的持续动态刷新与交互 | IJCAI'24 DLA:动态层级注意力架构,实现特征图的持续动态刷新与交互 | IJCAI'24 DLA:动态层级注意力架构,实现特征图的持续动态刷新与交互 | IJCAI'24
云上分布式SQL Server,你值得拥有
云上分布式SQL Server,你值得拥有 介绍Microsoft SQL Azure 是微软的云关系型数据库,后端存储又称为云 SQL Server(Cloud SQL Server)。它构建在 SQL Server 之上,通过分布式技术提升传统关系型数据库的可扩展性和容错能力。 数据模型 (1)
云上分布式SQL Server,你值得拥有 云上分布式SQL Server,你值得拥有 云上分布式SQL Server,你值得拥有
一文搞定WeakHashMap
写在前面 在缓存场景下,由于内存是有限的,不能缓存所有对象,因此就需要一定的删除机制,淘汰掉一些对象。这个时候可能很快就想到了各种Cache数据过期策略,目前也有一些优秀的包提供了功能丰富的Cache,比如Google的Guava Cache,它支持数据定期过期、LRU、LFU等策略,但它仍然有可能
一文搞定WeakHashMap 一文搞定WeakHashMap
mongo 副本集rs 理解和使用小结
转载请注明出处: 在MongoDB中,rs(通常指的是“replica set”的缩写)是复制集(Replica Set)的标识符或在使用时的一种常见前缀,尤其是在命令行工具和脚本中引用复制集时。复制集是MongoDB用来实现数据冗余和高可用性的一个核心组件。 复制集(Replica Set)的作用
Log4j2—漏洞分析(CVE-2021-44228)
目录Log4j2漏洞原理漏洞根因调用链源码分析调用链总结漏洞复现dnsrmi Log4j2漏洞原理 前排提醒:本篇文章基于我另外一篇总结的JNDI注入后写的,建议先看该文章进行简单了解JNDI注入: https://blog.csdn.net/weixin_60521036/article/deta
Log4j2—漏洞分析(CVE-2021-44228) Log4j2—漏洞分析(CVE-2021-44228) Log4j2—漏洞分析(CVE-2021-44228)
EntityFramework Core并发迁移解决方案
场景 目前一个项目中数据持久化采用EF Core + MySQL,使用CodeFirst模式开发,并且对数据进行了分库,按照目前颗粒度分完之后,大概有一两百个库,每个库的数据都是相互隔离的。 借鉴了Github上一个开源的仓库 arch/UnitOfWork 实现UnitOfWork,核心操作就是每
【Abyss】Android 平台应用级系统调用拦截框架
Android 平台从上到下,无需 ROOT/解锁/刷机,应用级拦截框架的最后一环 —— SVC系统调用拦截。
【Abyss】Android 平台应用级系统调用拦截框架 【Abyss】Android 平台应用级系统调用拦截框架 【Abyss】Android 平台应用级系统调用拦截框架
使用梯度下降法实现多项式回归
使用梯度下降法实现多项式回归 实验目的 本实验旨在通过梯度下降法实现多项式回归,探究不同阶数的多项式模型对同一组数据的拟合效果,并分析样本数量对模型拟合结果的影响。 实验材料与方法 数据准备 生成训练样本:我们首先生成了20个训练样本,其中自变量X服从均值为0,方差为1的标准正态分布。因变量Y由下述
使用梯度下降法实现多项式回归 使用梯度下降法实现多项式回归 使用梯度下降法实现多项式回归