移山亦可有道 ——读《移山之道》
微软高级开发经理邹欣老师著的赫赫有名的《移山之道》读完了,读之前就在想,如果只看目录,我会产生怎样的疑惑或者我最想了解到的是什么呢?时至今日,书本读完了,那就挑选几个自己感兴趣的话题,以Q&A的形式,与大家分享吧。
1. Q:如何看待代码复审与结对编程?
A:代码复审,即审察代码是否在规范之内正确解决问题。它主要目的在于找出代码的逻辑和算法等的错误或劣势,使代码得以改进,并起到相互学习促进的作用。代码复审也能使开发人员更加的了解项目的开发策略和流程等;结对编程由可以互换的驾驶员和领航员两个角色平等互补的进行开发,结对编程能随时进行复审与交流学习,同时能带来更多工作的信心和监督。
代码复审与结对编程还是有很大的不同之处:代码复审时,尽管每个人都会提出意见但是不是每个人都与那段代码打交道,也不一定复审者对代码感兴趣,出发点是消极的,但是,结对编程没有“你的代码”、“他的代码”这样的界限了,两个人与同一段代码打交道,更能提出好的意见和建议。此外,代码复审一般都是代码快可以提交了才进行,结对编程能一边写代码一边复审,修改代码的代价将要小于前者。但是,结对编程相对来说花费的人力较多。
2. Q:一个团队会经历怎么样的几个阶段,如何在各阶段领导一个团队?
A:总结了《移山之道》与网络搜索,粗略结论如下:
1) 萌芽(forming)阶段:
成员对工作和人际关系:高度焦虑状态
成员的情绪特点:激动、希望、怀疑、焦急、怀疑
在心理上:极不稳定状态
作为leader,应该明确团队方向、目标和任务,分配好角色和各自的职责,并将任务分解成易操作的短期目标。此时,领导者应有快刀斩乱麻的指导型风范。
2) 磨合(storming)阶段:
成员对工作和人际关系:剧烈动荡状态
成员的情绪特点:紧张、挫折、不满、对立、抵制
此时,领导者应有影响力,积极应付和解决出现的各种问题和矛盾;引导成员对自己的角色及职责进行调整;邀请团队成员积极参与解决问题和作出决定
3) 规范(norming)阶段:
成员对工作:积极、努力
人际关系:已确立,大部分矛盾已解决
成员的情绪特点:信任、合作、忠诚、友谊、满意
这一阶段,领导者主要扮演促成者和鼓励者的角色,协调成员之间的矛盾和竞争关系建立流畅的合作模式,积极放权使成员自我管理和激励。
4) 创造(performing)阶段:
成员对工作:积极、努力;团队效率叨叨颠峰状态。
人际关系:融洽
成员的情绪特点:开放、坦诚、依赖、集体荣誉感强
领导者的主要任务就是要建立团队业绩和个人绩效的考评机制,最大限度的调动成员的积极性。同时要意识到危险所在,防止好的团队因骄傲自满而衰败。
3. Q:怎么样对待项目开发过程中发现的项目计划的不足之处?
在敏捷开发模式中,在项目计划阶段,首先必须要明确,好的计划和设计是一切的开始。当我们在开发过程中,发现之前的计划并不合理时,怎么办?笔者翻阅了一下书籍和网页,似乎,大家都默认在计划阶段工作已经成熟了,在实施阶段就按照计划推进。
但是,一旦计划出现失误,是不是就意味着项目将面临很大的失败的风险?是不是意味着,如果时间来得及,重新计划是最佳的选择呢?我个人觉得,如果计划出现重大的失误,如果时间来不及了,宁愿宣告失败就不必浪费下一步的时间了,如果只是有些瑕疵,则可以考虑将变更的部分放到开发流程的下一个迭代过程中。
此处,求达人高见!
4. Q:软件都已经发布了,事后诸葛亮会议是否多此一举?
A:这个问题我的看法是,如果成功了,自然需要举杯相庆,要是失败了更是需要来这么一个事后诸葛亮的会议。
首先,如果成功了,每个人都有一份功劳一份收获,大家团队协作这么久,自然有很多的酸甜苦辣想与所有成员一起分享,也能从中总结出一些成功的经验,学习到别人闪光的地方,并有助于以后的提高与改善。话说,成功是踏着失败的尸体爬上山的顶峰的。失败了,事后诸葛亮会议就是在“码尸体”为成功铺路。总结教训,有过改之。
再说了,不管怎么样,是非成败转头空,经过这么久的奋斗与努力,付出这么多,聚在一起,吃喝谈笑一场总也不为过分吧。
5. Q:看完《移山之道》,有何感想或者评价?
A:以下是一个非软件专业的门外汉的心声:
说实话,刚刚学习《高级软件工程》这门课的时候,心里不少的焦虑,代码,开发软件。。。那是多么枯燥的主啊。一想起要看完一本教材,心里更是不爽。最后发现,我错了。
《移山之道》全书从软件开发的角度出发,虚拟王屋村移山软件开发公司stone项目开发的全过程,通过故事的情节,将技术与实战衔接,并且贯穿起了项目构想,项目计划,开发过程,测试以及版本发布等整个团队流程。这本书,行文十分的生动风趣,不乏各种“冷笑话”,看起来轻松而又愉快,并没有我想象中的枯燥,反而是以集成了多元文化的幽默风趣形式阐述技术的内涵以及团队管理运作之道,值得一读。作为入门级别的选手,更是推荐一看,相信我,你不会失望的。
最后,移山,并不需“子子孙孙无穷尽也”,移山亦可有道!
Dongliang He
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架