敏捷开发一千零一问系列之一:序言及解决问题的心法(无我)

 作敏捷开发时间长了,就感受不少事情都理所固然,愈加以为“问题很难得”,最近作培训的时候收集了一些问题,不少现场来不及解答,逐一发表在这里。编程

如何解决一个问题

知识多了天然能够解决问题,经历多了天然也能够积累经验,可是在一个只出现10年的领域,还有一堆只工做了10多年的年轻人中间,必然有一天会遇到历来没有人解决过的问题,这时候怎么办呢?安全

掌握解决问题的心法是核心。架构

对这个系列而言,就是要掌握用敏捷开发的方法解决问题的心法。掌握了心法就能解决全部问题,这比知道一千零一个问题的答案更加剧要,所以会先用三篇来综述一下解决问题的心法,能够总结为无我、无住、共振三个词汇。ide

为何不写成更通俗易懂的现代汉语?由于找不到贴切的词汇,更没有简短、容易记忆的语句,罗哩罗嗦写了一大段,保证你们关闭IE就忘光了。工具

估计在看完十个二十个问题和答案后,再回来看这篇序言,你们会和我同样认同这三个词汇是最佳答案。测试

无我

包括两个部分,无我无人 和 无如今无将来的我编码

无我无人

这里的”人“是他人的意思。接口

原来的敏捷宣言中包括了无我无人的成分,“个体与交互赛过过程与工具”及“客户协做赛过合同谈判”说的就是这个部分。开发

为何须要过程、工具、合同、谈判?由于有部门分割,有利益差别。文档

在传统开发过程当中无形中产生了不少对立团体,好比客户负责本身的价值而咱们负责编写功能(注意功能不等于价值,不然用户故事语法就不须要前面的”做为一个……“和后面的”以便……“了),程序负责编码而测试负责质量,领导负责计划而员工负责执行,产品经理负责销售市场及竞争力而项目组负责……甚至乃至在一个团队中,都有个人任务、你的任务之分,一旦这些成为事实,那就太须要过程、工具、合同、谈判了。

因此要用敏捷开发的方法解决问题,首先应该先融合不一样团体的利益,好比拥抱客户价值,拥抱变化,团队工做,代码全部制,自动化测试与持续集成(开发人员参与编码的测试)、代码审查……

无如今的我和将来的我

就是千万不要以眼前利益为驱动,而要把如今和将来放在一块儿考虑。

这个没有出如今敏捷宣言里,于是经常被伪敏捷的人拿来做为不写文档的接口,又被反敏捷的人拿来做为***敏捷的漏洞。

”到底要不要写文档?“答案固然是”看着办“。但怎么看着办呢?若是一我的在”看“的时候内心想:”其实我本身开发者写代码不需把想法写出来的,如今劳心费神写文档的人是我,将来不知道便宜了哪一个后来人呢“,这个时候看着办就是危险的。

但若是他在想:”这个部分代码里边表达地很不清楚,而这个产品20年后还会有人用(好比汽车电子),因此应该写成文档;那个地方呢,一看代码就很明确了,不写了。“这个时候看着办就是安全的。

差异在哪里?第一我的的想法里边有”我“有”他人“,干扰了看着办的出发点。

人有天生的惰性,习惯了”Max the undo“,就是把事情拖到最后再作,若是一旦误解了敏捷开发中的“不作不行的时候才作”,就很容易找到借口把不少应该作的事情推掉。

还有不少事情有如今和将来的差异,好比短时间功能的生产率与长期架构的稳定性,短时间“强分工的专家团队”的高效率与从此人员离职的困扰,如今马马虎虎提交代码与往后测试团队加班测试……这里边潜意识里都有一个概念:“如今先凑合过吧,到时候我还在不在仍是个问题呢”。这都是由于区分如今的我和将来的个人缘由。

无我对于运用敏捷开发方法解决问题相当重要。

若是解决问题的时候,老是想“咱们应该干什么,他们应该干什么”“由于他们少干了什么,因此咱们不能干什么”“这件事情没作好,是由于他……”,那么像开发人员要关心客户价值、两我的要结对编程、一个团队要天天立会这些实践,就永远用很差。

相关文章
相关标签/搜索