异地金融研发团队的敏捷实施策略-Top100Summit

通过重构提高组织灵活性-百度技术沙龙

重构到管道式函数-软件匠艺小组

全球敏捷之旅2015天津站花絮

全球敏捷之旅2017北京站《禅与复杂》演讲(2:59-3:56)

TDD中变形动作的优先顺序 - Transformation Priority Premise

在TDD循环中,重构(Refactoring)是不改变行为而改变内部结构的动作,保持测试常绿。而变形(Transformation)是改变内部实现来使测试由红变绿。这些变形的变化使代码形式从特殊specific到一般generic。

Uncle Bob的一篇文章。http://blog.8thlight.com/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html
中用了bowling game kata 和 Prime Factor kata来解释。

继续阅读 More

Do you like my piece of paper?

What I see every day is people creating pieces of paper to take into a room for people to look at and decide if they like that piece of paper, and if they don’t totally like it they say what they would prefer to see on that piece of paper.

This repeats until everybody is happy with a piece of paper.

capture3

继续阅读 More

SVN pre-commit hook

某团队希望做到Continuous Code Review, 想在每次check-in 到SVN之前,先判断特定用户群体否在commit log里面包含了”Review By: xxx”的字样。

记得以前NSN里面有人用过这个法子,记不太清了。

于是研究了一下脚本,其实SVN/GIT都提供了类似的hook, 在<your repository>/hooks 目录下,都是shell或cmd脚本(要看服务器的操作系统了),会在不同的事件时触发。

为了实现更复杂的功能或者需要跨平台,那不妨用shell或cmd去调用Python脚本咯。

继续阅读 More

每日站会说什么?

经常听到有人抱怨说,敏捷实践中会议太多,形式主义严重。在真实了解实际情形后,我们会发现并非这些敏捷实践本身没有价值,而是因为没有正确地领会会议的目的,采取了不恰当的会议形式,或其它深层次的问题,导致会议不能产生预想的结果。每日站会就是一个例子。

首先必须明确,每日站会的目的:基于迭代目标的团队协作和快速反馈。更详细点地说,每日站会提供了在达成迭代目标过程中的团队协作同步点,以及快速反馈循环中的检查和调整点。它的目的不是汇报状态,不是要知晓每个团队成员昨天把时间花在了哪里,不是要知道每个人将要把时间投入在什么地方,而是对目标的跟踪和校准,以及加强在达成目标过程中的协调和合作。

继续阅读 More

Scrum忘记的土地- The Land that Scrum Forgot

Scrum is a starting point. In fact, it’s a great starting point. But, as a framework rather than a full-blown methodology, Scrum is deliberately incomplete. Some things—such as the best technical practices to use—are left for individual teams to determine. This allows a team to create the best fit between their project and environment and an assortment of technical practices.

Scrum是一个起点。事实上,这是一个很好的起点。但是,作为一个框架,而不是一个成熟的方法论,Scrum故意是不完整的。一些措施——例如使用最好的技术实践——留给每个团队自己来决定。这允许一个团队在他们的项目和环境和各式各样的技术实践之间创建最适合自己的方式。

继续阅读 More

用户故事使用中的十大错误

1) 在用户故事中,将开发中的相关人员作为系统用户角色

比如 As a po/apo/ppo/developer/tester/manager/integration engineer, I want 。。。

必须注意,As a 中的role是运行时实际使用该系统的用户角色,不是开发时干系人的角色

包括客户文档相关的用户故事,也要以实际使用该文档完成某项任务的视角来描述:什么角色,什么情况下使用该文档用来做什么,达到什么样的可衡量的目标等,而不是某经理要求该文档。

2) 把系统的发布版本放入用户故事标题中

继续阅读 More