热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

高效程序的45个习惯---第八章敏捷协作

38定期安排会面时间立会(站着开的会议)是将团队召集在一起,并让每个人了解当下进展状况的好办法。顾名思义,参与者们不允许在立会就坐,这可以保证会议快速进行。

38 定期安排会面时间
 
立会(站着开的会议)是将团队召集在一起,并让每个人了解当下进展状况的好办法。顾名思义,参与者们不允许在立会就坐,这可以保证会议快速进行。
 
要保证会议议题不会发散,每个人都应该只回答下述三个问题。
1 昨天有什么收获。
2 今天计划要做哪些工作作?
3 面临着哪些障碍?
 
只能给予每个参与者很少的发言(大约两分钟)。如果要讨论某些问题,可以在立会结束之后,再召集相关人员进行。
 
平衡的艺术
1 会议占用开发时间,所以要尽量保证投入的时间有较大的产出。立会时间最长不能超过30分钟。10到15分钟比较理想。
2 如果要使用需提前预定的会议室,就把预定的时间设定为一个小时吧。这样就有机会在15分钟的立会结束后,马上召开更小规模的会议。
3 虽然大多数团队需要每天都碰头,但对于小团队来说,这样做可能有点头了,不妨两天举行一次,或者一周两次,这对小团队来说足够了。
4 要注意报告的细节。在会议中要给出具体的进度。但不要陷入细节之中。
5 迅速地开始可以保证会议短小,不要浪费时间等着会议开始。
6 如果觉得立会是在浪费时间,那可能是大家还没有形成真正的意识,这不是坏事,有利于问题进行改进。
 
 
39 架构师必须写代码
 
 
优秀的设计从积极的程序员那里开始演化。积极的编程可以带来深入的理解,不要使用不愿意编程的架构师。
 
 
平衡的艺术
1 如果有一位首席架构师,他可能没有足够的时间来参与编码工作。还是要让他参与,但是别让他开发在荐关键上的,工作量最大的代码 。
2 不在允许任何人单独进行设计,特别是你自己。
 
 
40  实行代码集体所有制
 
项目中绝大部分的代码都可以轻松应对.
 
平衡的艺术
 
1 不要无意间丧失了团队的专家技能。如果某个开发人员在某个领域中极其精通,不妨让他为这方面的驻留南家。而且系统的其它部分代码也对他开放,这样对团队和项目都很有帮助。
2 在大型项目中,如果每个人都可以随意改变任何代码,一定会把项目弄得一团糟,代码集体所有制并不意味着可以随心所欲,到处破坏。
3 开发人员不必了解项目每一部分的每个细节,但是也不能因为要处理某个模块的代码而感到惊恐。
4 有些场合是不能采用代码集体所有制的。也许代码需要某些特定的知识,对特定问题域的了解。比如一个高难度的实时控制系统。这些时候,人多了反而容易误事。
4 任何人都可能有一些灾难事故,或者有可能被竞争对手雇佣。如果不向整个团队分享知识,反而增加了丧失知识的风险。
 
41 成为指导者
 
 
成为指导者。分享自己的知识很有趣,付出的同时便有收获,还可能激励别人获得更好的成果,而且提升整个团队的实力。
 
平衡的艺术
1 如果一直在就同一个主题向不同的人反复阐述,不妨记录笔记。此后就此主题写一篇文章,甚至一本书。
2 成为指导者是向团队进行投资的一种极佳的方式。
3 结对编程是一种进行高效指导的,很自然的环境。
4 如果总是被一些以懒于自己答案的人打扰。
5为团队成员在寻求帮助之前陷入某个问题的时间设定一个时限,一个小时应该是不错的选择。
 
 
42允许大家自己想办法
 
给别人解决问题的机会。指给他们正确的方向,而不是直接提供方案。每个人都能从中学到不少东西。
 
平衡的艺术
1 用问题来回答问题,可以引导提问的人生走上正确的道路。
2如果有人真的陷入胶着状态,就不要他们了。告诉他们答案,再解释为什么是这样的。
 
43 准备后好再共享代码
 
准备好后再共享代码,绝不要提交尚示完成的代码,故意签入编译未通过或者没有通过单元测试的代码,对于项目 来说,应被视作玩忽职守的犯罪行为。
 
 
平衡的艺术
 
1 有些源代码控制系统会区分“提交”和“可公开访问”两种代码权限。此时可以进行临时的提交操作,不会因为完全提交未完成的代码,而团队的其他成员感到郁闷。
2 有些人希望代码在提交之前可以进行复查操作。只要不会过久拖延提交代码的时间就没有问题。如果流程的某个部分产生拖延,那就修正流程吧。
3 仍然应该频繁提交代码。不能用“代码尚未完成”作为避免提交 代码的借口。
 
 
44 做代码复查
 
 
那该如何进行代码复查呢?可以从下面这些不同基本方式中进行选择。
 
1 通宵复查。可以将整个团队召集在一起,预定好美食,每个月进行一次“恐怖的代码复查之夜”。但是这可能不是进行代码复查最有效的方式,大规模团队的复查会议会很容易陷入无休止的讨论中。大范围的复查不公没有必要,而且有可能对整个流程造成损害。我们不建议这种方式。
 
2 捡拾游戏。当某些代码编写完成,通过编译,完成测试。并已经准备签入时,其他开发人员就可“检搭”起这些代码开始复查。类似的“提交复查”是一种快速而非正式的方式,保证代码在提交之前是可以被接受的。为了消除行为上的惯性,要在开发人员之间进行轮换。这是一种很有效的技术。
 
3 结对编程。在极限编程国,不存在一个人独立进行编码的情况。
 
在代码复查中要看什么呢?你可能会制订出要检测的一些特定的问题列表,这示这里是一个可供启动的最基本的检查列表。
 
1 代码能否被读懂和理解?
2 是否有任何明显的错误?
3 代码是否会对应用的其他部分产生不良影响?
4 是否存在重复的代码?
是否存在可以改进或重构的部分?
 
 
复查所有的代码。对于提升代码质量和降低错误率来六,代码复查是无价之定。如果以正确的方式进行,复查可能产生非常实用而高效的成果。要让不同的开发人员在每个任务完成后复查代码。
 
平衡的艺术
1 不进行思考,类似于橡皮图章一样的代码复查没有任何价值。
2 代码复查需要积极评估代码的设计和清晰程序,而不只是考量变量名和代码格式是否组织的标准。
3 同样的功能,不同开发人员的代码实现可能不同。差异并不意味着不好。除非你可以让某段代码明确变得更好,否则不要随意批评别人的代码。
 
4 如果不及时跟进讨论中给出的建议,代码复查是没有价值的。可以安排跟进会议。或者使用代码标记系统,来标识需要完成的工作。跟踪已经处理完的部分。
5 要确保代码复查参与人员得到每次复查活动的反馈。作为结果,要让每个人知道复查完成后所采取 行动。
 
 
45 及时通报进展与问题
 
及时通报进展与问题。发布进展状况,新的想法和目前正在关注的话题,不要等着别人来问项目 状态如何。
 
平衡的艺术
 
1 每日立会可以让每个人都能明确了解最新的进展和形势。
2 在展开进度状况时,要照顾到受众关注的细节程序。举例来说,CEO和企业主是不会关心抽象基类设计的具体细节的。
3 别花费太多时间在进展与问题通报上面,还是应该保证开发任务的顺利完成。
4 经常抬头看看四周中,而不是只埋头于自己的工作。
 
 
 
 
 
 

推荐阅读
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • Java虚拟机内存管理与优化技术深入解析
    Java虚拟机内存管理与优化技术深入解析 ... [详细]
  • Python作为当今IT领域中最受欢迎且高效的语言之一,其框架能够显著加速Web应用程序的开发过程。本文推荐并对比了十大顶级Python Web开发框架,其中CubicWeb以其卓越的代码重用性和模块化设计脱颖而出,为开发者提供了强大的支持。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • 全面解析Java虚拟机:内存模型深度剖析 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • 在当前各种算法实现和开源软件包层出不穷的背景下,算法对程序员的重要性是否有所减弱?回顾历史,早期程序员必须熟练掌握算法并频繁自行编写。然而,随着技术的发展,算法逐渐成为一种“商品”,现代开发者更多依赖现成的库和商业算法解决方案。有观点认为,机器学习领域中,许多算法已经被高度封装,不再需要深入理解其背后的数学原理。然而,这种趋势也引发了关于技术深度与广度平衡的讨论,强调了基础理论知识在应对复杂问题时的不可替代性。 ... [详细]
  • 程序员的“语言奇缘”续篇:计算中心管理员小C的非正式编程之旅
    (以下故事纯属虚构,旨在为编程爱好者提供一丝轻松时光,如有雷同,纯属巧合,敬请读者勿过度联想)在操作系统课程中,我们认识了计算中心的管理员小C。小C虽然并非科班出身,却凭借对编程的浓厚兴趣和不懈努力,逐渐在技术领域崭露头角。她不仅熟练掌握了多种编程语言,还经常利用业余时间开发一些实用的小工具,帮助同事提高工作效率,成为了团队中的技术明星。小C的故事激励着每一个热爱编程的人,证明了技术之路不问出处,关键在于不断学习与实践。 ... [详细]
  • 深入解析 C 语言与 C++ 之间的差异及关联
    深入解析 C 语言与 C++ 之间的差异及关联 ... [详细]
  • 探索 PHP 8.0 的重大更新:轻松获取年度月份数据
    PHP 8.0 引入了多项重要更新,包括增强的类型系统、全新的 JIT 编译器以及联合类型等特性。这些改进不仅提升了性能,还简化了开发流程。本文将重点介绍如何利用 PHP 8.0 的新功能轻松获取年度和月份数据,为开发者提供更高效、更简洁的解决方案。 ... [详细]
  • 从Google Jam落选后,意外收获了一颗“桔子”,重新整理行囊再出发 ... [详细]
  • 0.10.2 编译在 ARMHF 和 ARME 架构上遇到问题 ... [详细]
  • NVIDIA最新推出的Ampere架构标志着显卡技术的一次重大突破,不仅在性能上实现了显著提升,还在能效比方面进行了深度优化。该架构融合了创新设计与技术改进,为用户带来更加流畅的图形处理体验,同时降低了功耗,提升了计算效率。 ... [详细]
  • Django新手指南:第三步——构建你的首个项目
    在本教程中,我们将引导你完成创建第一个Django应用的步骤。通过实际操作,你将逐步了解Django框架的核心概念和基本功能。从项目结构到视图和模板的实现,我们将详细介绍每个环节,帮助你快速上手并构建出一个功能完整的Web应用。 ... [详细]
author-avatar
xiaojin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有