2007,是 InfoQ 中文站诞生的第一个年头。
从建站伊始的人手匮乏,到现在的新闻 24 小时同步;从集中力量同步主站内容,到加强原创内容建设,进一步关注国内社区发展;我们一直在努力。这一年来,一直有您的支持关注相伴,带给我们信心与力量,促使我们为您奉上更高质量的内容;我们,一起在努力。
转眼已是年末。当我们的文笔从青涩变得成熟,当我们从站上的内容、评论中成长,我们也谨愿,在接下来的一年里,我们可以将所知、所学、所思与您一同分享!
下面我们概括了一下本年度的社区十大新闻,希望它们可以帮助您回顾一下 07 年里您对敏捷开发的认知变化和实践收获。“温故而知新,可以为师矣。”
1. 敏捷的核心:消除浪费,走向精益
敏捷的核心是什么?敏捷给软件企业(以及软件开发者个人)带来的好处究竟在哪里?这个问题有很多不同的答案。例如“重视个人和交流”,软件开发者喜欢这样的态度,这是毫无疑问的。例如“重视可工作的软件”,它的价值是显而易见的。但在这一切的背后,敏捷的核心是什么?畅通的信息渠道、清晰的成本 / 收益核算、全面消除浪费,这是精益制造的核心所在,也是敏捷软件开发的核心所在。
点评:一千个人眼中有一千个哈姆雷特,同样,对于敏捷核心的理解也是仁者见仁智者见智的。本文中,作者一路娓娓道来,以其丰富的开发经验、敏锐的洞察力和深入的思考分析为我们指出了他眼中的敏捷核心。读罢此文,或许你不一定会赞同作者观点,但或许能帮助你加深对敏捷开发的认识。
2. 讨论:敏捷不是什么?
敏捷不是放诸四海而皆准的通用理论,敏捷不是玄而又玄的文化,敏捷不是在传统项目合作模式下包治百病的金丹,敏捷不是抛开纪律盲目求快。除了这些,敏捷还不是什么?
点评:“敏捷”正在成为越来越热门的词汇,而现今更有一种盲目跟风的趋势,开口敏捷,闭口敏捷,似乎软件开发中的一切问题都可以从敏捷开发中找到答案;更有甚者,借这种风气来趁机炒作自己,“好风凭借力,送我上青云”。如果我们可以了解清楚敏捷不是什么,就可以借一双慧眼看透这些人为制造的重重迷雾。3. 软件开发社区"宗教信仰"之争风波未息
一石激起千层浪,James O. Coplien 在 10 月 9 日发布的一篇以 TDD 为例,将当今的软件开发描述成宗教信仰驱动的文章,在社区里引起了激烈的争论。虽然反对者有之,支持者亦有之,但持有对立观点的双方都有着共同的讨论基础:以事实为依据,以亲身实践为出发点。即:实践是检验真理的唯一标准。
点评:我们崇尚的是一切从实践中来、到实践中去,而不是纸上谈兵,更应鄙弃鹦鹉学舌人云亦云。你身边有对热门技术的盲从者么?还是真正的敏捷技术的传播者?
4. 渐进式敏捷,从下而上的敏捷推行策略
如果组织高层领导大力推行敏捷那当然是好事,但很多时候敏捷的主要推行者还是技术人员和中层技术型管理者,老板们还在等着看他们实践的成果。在这种情况下,有计划、有技巧地采用渐进式的、由下而上的推行方式,可能就是让敏捷在企业中扎根的第一步。
点评:千里之行,始于足下。当你困扰于如何在企业中推行敏捷时,先不要想一口吃个胖子。靠自己小范围的实践来影响周边的人,让别人看到这些实践的价值,也许是更好的推行方式。
5. 敏捷开发实践真的不利于架构设计吗?
增量迭代开发(敏捷实践之一,它意味着每次迭代的产出只是本次迭代范围内的需求)真的不利于产生好的设计吗?Scrum 真的提倡“忽视架构问题”吗?如果没有敏捷技术实践的话,架构设计能有效的演化吗?测试先行式的开发真会产生优雅的设计吗?在红绿条提示下的重构循环只在局部小范围内有效吗?
点评:敏捷 VS 架构,一直都是很热门的话题,那敏捷开发中的 YAGNI(You Aren’t Gonna Need It)原则和架构到底是不是相悖的呢?按照敏捷开发理论,架构算不算是会造成浪费的预先设计呢?
6. 敏捷遭遇实效营销
实效营销是科技领域的一种产品管理方法论,和那些敏捷软件开发方法相似,它追求价值与原则。当实效营销者遇到了敏捷开发者,会发生什么?
点评:敏捷究竟是否适用于产品开发?ThoughtWorks 的三位咨询师都给出了自己的答案。你的意见是什么?
7. 异地项目开发应该如何管理
为了降低成本、提高企业竞争力,现代软件开发中分布在多个地点(甚至多个国家)的项目越来越常见。但分布式项目的缺点是交流成本急剧上升,给管理带来更大的难度。近日在“敏捷中国”用户组展开了一个讨论:当团队分布在不同地点时,项目管理应该如何进行?
点评:分布式团队中的沟通成本一直都是很多开发团队心中的痛,当涉及到几方的文化背景和语言都存在差异时尤为如此。在你所在的团队中,是默认这种情况所造成的影响不断加剧,还是采取一系列的实践和工具来加以改善?
8. 敏捷方法需要文档吗?
有些人认为敏捷不需要文档,甚至不支持任何形式的文档化。Ian Cooper 用敏捷宣言和具体的敏捷方法解释了这个问题。
点评:“敏捷就是不写文档”,你是否也有这样的误解呢?
9. 为什么敏捷实践会遭遇失败?
虽然众多敏捷专家都在帮助敏捷项目走向成功这方面投入了很多精力,但是我们也应当每过一段时间就停下来思考一下,为什么有些敏捷项目或是对敏捷的实施会失败呢?了解了这些以后,或许我们就能在日后的实践过程中躲开前行路上的种种陷阱。
点评:本文中作者描述的可能导致实施敏捷实践失败的种种因素,对于打算在企业内部推行敏捷实践的读者具有颇高的指导意义。
10. 质量是可以谈判的吗?
如果客户对你说,他们对软件的质量不感兴趣,他们只要求在规定的日期必须完成所有规定的事情——你会怎么做?你会听从客户的话在质量上妥协吗?(顺便一问,什么是质量?)
点评:开发人员和客户眼中所看到的,绝不是同一个世界,那我们是否能够真正了解客户所关注的质量目标?我们在抱怨客户固执的时候,有没有想过自己却可能是真正固执的那一个?
评论