2009年7月7日

《敏捷无敌》上市居然引来一些好玩的事情

不知道怎么就得罪了几个人,开始网上说些不入流的话。。。
估计原本想恶搞一下这本书的,没想到事与愿违,反而起到了意想不到的宣传效果。

很快让此书就冲到了china-pub某个栏目的第二位。。。


网上最大的敏捷软件开发资料站 http://incredibleagile.com/
阅读详细......

关于http://incredibleagile.com/ 的实验结果很有意思

关于http://incredibleagile.com/ 的实验

虽然只作了一个页面,稍稍做了点SEO, 很快就被google收录了。。。

并且从最初的 第六页,不断上升。。。。现在已经到了第二页的正数第五的位置。。。

不过,baidu还是没有收录,看来竞价排名跟google还是不一样啊!


网上最大的敏捷软件开发资料站 http://incredibleagile.com/
阅读详细......

2009年6月24日

做个敏捷软件开发资料站的SEO实验

最近blogspot在国内普通用户又不能直接访问了,还得翻墙。。。真是不爽!

做个实验,看看能有多少流量敏捷软件开发资料站

http://incredibleagile.com/

看看多长时间能收录,然后才是流量了 :)
阅读详细......

2009年5月19日

《敏捷无敌》终稿


真可谓好事多磨,经过两个多月的调整、排版、纠错,《敏捷无敌》终于终稿。明日即将送至印刷厂进行批量印刷。这次首印5000册,价格39.00.

这里提前晒晒书皮吧。



欢迎大家拿到真书的时候多提宝贵意见,到《敏捷无敌》论坛 http://bbs.richaide.com 进行在线沟通交流。

谢谢。
阅读详细......

2009年2月23日

欢迎大家共同建设一个《敏捷社区》

好久没有更新这个Blog了,主要是因为最近正在忙于 一本敏捷软件开发的小说。

现在终于完工了,跟出版社签订了合同,即将出版。

同时准备建设一个 关于敏捷软件开发的社区: http://bbs.richaide.com/index.php

欢迎大家到那里去捧场!
阅读详细......

2008年11月5日

Hire Attitude - Train Skills

Frankly speaking I didn’t understand what these words meant until I had a Google just now.

It should be Hire for attitude - train for skill

Some snip from internet about the explanation of this sentence:

The most important factor in hiring is attitude. Hire for it. Through the resume process you're going to find people who have the basic skill levels you're looking for. That's the first hoop. Then with a telephone screen you can find out if people have the foundational knowledge and the intellect for what you want.

But when you bring them in for an interview, the most important question you need to answer is "Can we work with this applicant?" The second most-important question is "Is this applicant teachable?"

If you cannot answer "yes" to BOTH of those questions, a "do not hire" sign needs start flashing above your candidate's head. Move them along, wish them well, and bring in your next applicant.
阅读详细......

2008年10月20日

ScrumWorks,让Scrum更敏捷

这个Scrum工具用了很久了,但一直没有总结ScrumWorks,这次小珂同学要求写一个介绍,这才真的写下来,希望对大家的Scrum实践有所帮助。

---敏捷精灵



曲折的选择之路

在开始实施Scrum之前,除了需要对所有涉及到的人进行培训之外,另外一项重要工作就是选择一个适合自己的Scrum工具。很多关于敏捷的论文或教科书都提到了白板和Excel电子表格。但白板与Excel电子表格明显不能满足一个注重过程资产的软件项目的要求。白板虽然适合每天的跟踪汇报,但是对Product Backlog支持明显不够,也没办法保留历史纪录。Excel虽然有很多现成的模板可以用,但当是团队成员比较多时,同时修改一个共享Excel文件,会相互冲突,不好同步。


我们最初使用的是一个叫ScrumWiki免费/开源工具。因为之前大家一直把Wiki当作知识共享工具,每个人都很熟悉Wiki的机制与语法,采用采用wiki这种共享创作模式的Scrum小工具,可以让大家随意编辑,更新任务状态,非常适合我们当时的分布式开发。但随着Product Backlog变得越来越大,变化越来越频繁的时候,ScrumWiki明显不能满足我们的需求。特别需要指出的是,作为免费开源的软件,因为已经没有人支持和维护,系统存在一些Bug只能靠自己修正,花在维护和添加新功能到这个免费工具上的时间越来越多,已经是“买椟还珠”,大家决定放弃这个工具。


几经周折,最终选定了ScrumWorks Basic作为我们实施Scrum的工具。为什么选择ScrumWorks Basic, 而不是其它如XPlannerVersion OneMingleRally等工具呢?首先,这是一个商业化产品,一直有人持续开发与维护,大家不想重蹈ScrumWiki无人维护的覆辙;其次,有免费使用版,且无时间限制,如果需要,我们可以随时无缝切换到商业版ScrumWorks Pro;第三,根据当时的一个调查,业界使用率排名第三位,说明有足够的用户基础。第四,这个工具是专门为Scrum量身定做的,简洁直接,不像Version OneMingle等工具因为需要考虑其它敏捷软件开发模式,而搞得过于庞大复杂。第五,从功能上讲,个人认为这个是对Scrum各个方面支持最好的商业产品。


一年下来,事实证明我们当初对ScrumWorks Basic的选择是非常正确的,它不仅容易安装、使用方便,还让我们的Scrum实践更加敏捷。

CS/BS两种访问模式,轻松满足Scrum项目管理需要


ScrumWorks Basic既提供了简单的web客户端,还提供了强大的java客户端,可以满足不同的使用需要。

ScrumWorks Basic clients and server


桌面客户端需要在访问的机器上安装Java运行环境,允许用户操作所有的Scrum数据,譬如添加、修改、删除、移动Backlog条目,从Excel中导入或导出数据到Execl,后台数据备份,阻碍(Impediment)管理等。

Product Backlog Window

通过ScrumWorks Basic创建或者打开一个产品后,通过桌面客户端登陆,即可以看到如上所示窗口。右侧是Product Backlog,可以通过“Releases”方式为Product Item组织分类,这点对于我们做了10多年的产品非常重要,因为产品Backlog需要分成多个发布版本来管理。左侧是以时间排序的Sprint列表以及对应的Sprint Backlog,可以根据需要,随时隐藏其中一侧。由于采用了“相对优先级”的概念,通过拖曳的方式就可以非常简单的设定优先级先后顺序(优先级高的在上面,低的在下面)。从“Product Backlog”到“Sprint Backlog”的过渡非常简单,只需要选定一组最高优先级的Backlog 条目,直接拖过去或拖回来即可,大大提高了我们开Sprint计划会议的效率。

左上角的分栏可以告诉我们正在工作在哪个产品上,因为我们一个团队就要负责三个产品,这点对多个产品的支持对我们也非常重要。


Web客户端(如下图所示)提供了一个轻量级的基于浏览器的访问方式,可以从任何一台装有Web浏览器的设备上访问。它提供了一个非常个性化的总结性的Web页面,不仅有Sprint Burndown Chart,还单独区分“用户自己的任务”、“全部任务”及“所有阻塞(Impediments), 方便单个用户更新任务状态、剩余工作量,添加备注,查看阻碍(Impediment)等。


Team Member View


简单高效的Sprint管理

ScrumWorks Basic提供了一个单独的Sprint管理接口,让我们的每个Sprint都变得有条不紊。

每次新开一个Sprint时,会有一个单独的对话框,只需要输入起止时间、Sprint名称、Sprint目标,以及选择对应的Scrum 团队即可。在Scrum开发模式下,为每个Sprint起一个名字,不但可以增加团队软件开发的乐趣,提高大家的参与程度,还可以记录下Scrum Team当时的心情,这点非常重要,而ScrumWorks Basic正好提供了这个接口。列举我们的几个Sprint名称,创意来自于《加里森敢死队》:

  • Sprint1---"兵不厌诈(the Big Con"
    因为大家第一次采用Scrum, 对这个Agile流程都很期待,同时呢,对于怎么做,如何用,还很模糊
  • Sprint2---"越狱记(Breakout
    经过了第一个Sprint后,大家干劲十足,士气高涨,认为我们可以在第二个Sprint取得重大突破(breakout
  • Sprint3---"虎口余生(Hours to doom day"
    这个Sprint里面有很多技术难点需要破解,如果解决不了,那么后面的工作就无法进行,将是非常关键的一次攻坚战。
  • Sprint4---"大结局(The Big End)"
    这次计划会议,作为Scrum Master,自己因为有事没有参加,汗!但大家认为工作基本差不多可以做完了,起了个结局的名字。

每天开站立例会时,可以把如下图所示的Sprint明细窗口用投影仪直接投放到墙上。让大家可以看到Sprint目标、Burndown ChartSprint Backlog 条目的状态及剩余时间等,提高沟通的效率和紧迫感。

Sprint Detail Window

如果遇到阻碍(Impediments),可以通过如下接口及时添加并更新进展。

Impediments Window


通过“主题”分类管理Backlog


ScrumWorks Basic提供的“主题”功能可以更方便的组织和管理product backlog条目。“主题”就象关键字或者标签,可以分别应用到每个Product Backlog条目,从而实现Product Backlog条目的分组管理,这种方式比“文件夹”更有效,因为同一个条目按照自己的需要,可以施加一个或多个主题。 这样就可以轻松的按照指定的“主题”对backlog进行过滤,迅速找到你关心的条目。这种管理方式,对一个庞大的Product Backlog是非常有效率的。

对主题的分类,没有任何限制。可以按照需求列表划分,也可以按照功能列表花粉,或者你想到的任何其它分类模式。


Apply themes


我们把主题用到需求变更管理上后,获得了非常好的效果。把每一个需求,定义成一个主题。当某项需求变更的时候,我们通过该主题进行过滤,可以迅速找到可能受到影响的Backlog条目,分析影响的大小,再对回归测试计划进行相应调整,可以保证产品功能的完整性不受干扰。


多种报表
Scrum象其它敏捷软件开发方法一样,依靠的是经验管理,ScrumWorks Basic提供的多种报表与衡量机制,为经验管理提供了超强的支持。

Product Burndown Chart从更高的

角度展示当前Product的完成状况.

Enhanced Product Burndown Chart* 通过区分由于添加或者删除Backlog条目引起的变化,可以更准确地预测出产品可能的完成日期。


Dashboard Report通过一种简洁的

方式,将一个或多个产品的状态集成

在一起,并以颜色分别标示是否延迟、

是否正常,让高层管理团队对所有实

Scrum的项目进展状况一目了然。

Sprint Change Report详细勾勒出Sprint中任务添加/删除/重新估算对整个产品backlog的影响。


其它亮点

ScrumWorks Basic除了提供多用户机制外,还提供了虚拟团队管理模式,一个用户可以加入不同的团队,这样可以让我们成功实现以下项目管理模式:

  • 单个团队工作于单个项目
  • 单个团队同时工作于单个产品的多个版本
  • 单个团队工作与多个项目
  • 多个团队工作于单个项目
  • 多个团队工作与多个项目

此外,ScrumWorks Basic还提供了支持SOAP协议的API接口, 可以订制add-ons、报表,或跟其它应用程序集成。


缺失与遗憾

以上介绍都是基于ScrumWorks Basic这个免费版本的,同ScrumWorks Pro这个收费的商业版本相比,缺乏如下重要特性:

l 缺乏BugzillaJira的集成
ScrumWorks Pro
BugzillaJira的集成,体现在它可以导入两者中的条目作为backlog条目,并且可以像对其他backlog条目一样,对这些条目进行操作。可以使用搜索来选择感兴趣的条目,并进行单独或多项导入操作。

l 没有带有主题过滤功能的burndown图表,及其他辅助了解项目状况和走势的功能
ScrumWorks Pro
中,将backlog按照主题进行组织后(类似于web 2.0中使用标签),可以高亮或是过滤这些backlog,并且能够使用同样的主题针对burndown图进行过滤,这点对定量分析还是非常有用的。

l 不能添加附件
对于Backlog条目而言,如果能添加需求、设计等文档或其它文件,将是很有用的。

l 邮件自动通知

l 跨团队、跨产品、跨项目的“我的任务”视图

l Sprint日历订制,主动剔出周末或者其它假期的干扰,生成真正的Burndown Chart


如果不想忍受这些缺失与遗憾,而且资金充裕的情况下,可以选择ScrumWorks Pro


更多敏捷实践总结,可以参考笔者的敏捷软件开发随笔(http://scrumxp.blogspot.com)



阅读详细......

2008年9月19日

Scrum工具大比拼---流行Scrum工具一网打尽

早就想写这个总结了,因为SCRUM很好, 工具却难找,但一直没有出台,是想等自己都试用过后,这样才更有发言权。可有些工具真的是很难搭起一个环境,这样只好摘录一些网友们的评论了!

白板
最直接的方式,用于每天的tracking,还是非常不错的,但是对Product Backlog支持明显不够

Excel
我们最初也用过,主要是成员多的情况下,修改时会相互冲突,不好同步。。可以参考我写的这个文章[scrum工具]用excel表格工具实现Scrum

ScrumWiki
这个也用过,一开始感觉还不错。但当你的需求变多变复杂的情况下,就不容易用了。后台脚本使用Perl写的,我们的一个外国同事还对他专门进行了修改,增加了好多feature,这样才好用起来。作为免费的软件,目前已经没有人支持和维护。

Scarab

Java server 平台, 支持灵活定制,免费

Double Chocco Latte
基于PHP , 支持Apache 或IIS, MySQL or SQL Server , web 客户端,免费

VersionOne
商业化产品!没什么好说的,业界老大!

从 功能上看,的确非常新颖,贯彻了敏捷中的User Story为先的原则,和VSTS类似,将Issues、Defect、Task合并概念成为Task(在VSTS中更加优雅,叫做WorkItem), 并且必须挂在UserStory下,这个工具值得看看,有试用版可以下载,或者可以使用他们在线提供的试验平台

基于ASP.NET and IIS和 SQL。

团队可以使用“V1:敏捷团队”来管理产品和sprint backlog,通过交互式的“任务板(taskboards)“和"测试板(testboards)" 进行每日开发活动,藉由报表和燃烧图查看进度,以及其他活动。
通过这些功能,“V1:敏捷团队”的用户可以做到:

  • 从电子表格中快速导入故事与缺陷,管理合并后的产品backlog。
  • 利用简单的多条目拖放操作,方便地完成计划制定、对故事划分优先级。
  • 使用电子白板界面同时制定多个版本的发布计划,提高效率。
  • 通过交互式的任务板(Taskboard)、测试板(Testboard)、每日Scrum dashboard来对版本和sprint进行可视化追踪。
  • 针对版本和sprints的关键敏捷度量数据生成图表,如Burndown、Velocity、Estimate trends、Cumulative Flow Reports。

唯一的问题就是提供的选择过多,对于寻求简单明了工具的人,并不是一个好产品!.

GNATS
GNATS 传统来讲,属于缺陷跟踪工具, 但根据Jeff Sutherland, 已经支持 Scrum. 免费

欢迎访问 "敏捷软件开发随笔---敏捷精灵二三事"



Select Scope Manager
商业化产品,有试用版可下载。定制性比较差.

XP Plan-it
仅仅支持把你的数据放在他的server上,你通过下载的客户端更新和查看数据。。 好像对大多数人来讲意义不大

XPWeb
另一个基于web的分布式方案。免费!

使用PHP+MySql可运行于Linux, Windows, or Mac.但其演示在IE7下工作不怎么样,没法详细测试.

XPlanner
最牛的祖父级的开源工具,完全免费,业界使用率排名第四,真的是穷人的项目管理工具!

作为一个基于Web的XP团队计划和跟踪工具,要求 Apace Tomcat

XP 独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题。 XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持。.

ScrumWorks
个人认为对Scrum个方面支持最好的商业产品,市场排名第三位,我们一直在用。可支持不同的Team工作于不同的项目上,非常灵活。既有简单的web客户端,也有强大的java客户端。

有免费使用版,且无时间限制,我用的就是。

支持对Bugzilla和Jira的集成,带有主题过滤功能的burndown图表,以及其他辅助了解项目状况和走势的功能,还有众多别的特性。

ScrumWorks Pro与Bugzilla和Jira的集成,体现在它可以导入两者中的条目作为backlog条目,并且可以像对其他backlog条目一样,对这些条目 进行操作。可以使用搜索来选择感兴趣的条目,并进行单独或多项导入操作。Infoq与Danube科技的JD Aspinall进行了交流,讨论了这个特性的本质,以及如何与ScrumWorks Pro一起使用Bugzilla和Jira。

我想提出这个特性请求的用户们都希望同时使用这两个工具。

产品的许多用户将他们全部的bug作为Product Backlog条目录入到ScrumWorks Pro中并进行跟踪。不过也有很多其他用户,由于其他种种原因,使用不同的工具来跟踪问题,并且只选择导入某些特定的缺陷到ScrumWorks Pro中。

Burndown图表现在可以按照主题 进行分组。将backlog按照主题进行组织后(类似于web 2.0中使用标签),你可以高亮或是过滤这些backlog,并且能够使用同样的主题针对burndown图进行过滤。

ProjectCards
ProjectCards 维持项目管理的索引卡片,精确的具体内容,一个项目控制盘,搜寻和过滤能力和拖放反复计划。六十日免费的试用。

基于 Client/Server结构,支持plug-in for Eclipse.

TargetProcess
是一个敏捷项目管理与Bug跟踪系统。企业版提供很多定制的功能,包括Pre-paid 20 hours of development by TargetProcess stuff和提供开发指南与API参考的全部源代码。

这个工具挺适合小项目团队的。

这儿有个 Demo 帮助读者理解这个产品,内容是通过创建一个新的项目,在迭代计划时给开发人员指派故事(Story)。

他们的价格模式包括“按站点 / On Site”(需要安装)和“按需 / On Demand”(Web版),并提供折扣。

ExtremePlanner
一个基于web的工具,它的功能几乎与ProjectCards完全一样,但是它添加了在任务级别进行评估的功能,这一改进非常棒。由于是基于web的, 所以它的界面可能不够漂亮,但是由于基于浏览器,它获得了一些灵活性(例如,当项目成员想在线查看状态报告时,如果是使用ExtremePlanner,就无需安装任何东西。)

我还在进一步考察这个工具,但是它看起来相当不错。

要求Windows, Linux, or MacOSX平台 (with Java 1.4.2 or higher and Apache Tomcat 4.1 or higher)

Rally
商业软件用户使用率排名第二位!支持用户需求的筛选、扩展的筛选标准、改进版本剩余时间表、新的通知规则(notification rules),以及用于Eclipse和CruiseControl.NET的连接器。

有免费在线试用体验版本.

Mingle

Mingle在ThoughtWorks官方站点可以免费下载,且5个用户以下的可以永久免费使用。Mingle是用纯Ruby打造的且运行在JRuby上 的一个产品,由于ruby是一门脚本语言,所以其移植性就很好,用其编写的程序安装起来也甚是容易,在Windows、Mac和Unix多种主流平台上跑 都是没有问题的;但也正是由于采用ruby编写,Mingle对硬件的要求也甚高,在我这台512M内存的机器上跑是超慢的、让人闹心的,建议还是放到性 能好的、单独的服务器上,内存容量官方建议是2G。还遇到了好几次ie错误,只好放弃了。

Mingle后台存储采用数据库方式,目前仅支持mysql和Postgres两种数据库版本,这个比 较遗憾,我无法使用现成的Oracle数据库了。

简单用了一下,发现如下很好的Features:
- 支持建立"个性化"项目模板,便于复用;
- 附带项目wiki,便于"项目知识积累和管理";
- 丰富的card properties,使需求驱动的管理流程更加清晰;
- 支持card和源代码之间的link;.

TRICHORD
这个名为“TRICHORD”的敏捷项目管理工具,是基于精益思想的,对Scrum也适用。TRI指的是三种视角(时间、任务和团队),CHORD则是和谐的意思。

它作为全团队分享项目状态的一个工作空间来运作,里面提供三种层次的看板图——特性看板(发布—特性)、故事看板(故事—迭代)和任务看板(工作日—任务)。特性看板用停车场图来归纳,故事和任务看板用延烧图来归纳。

具体可以参考这篇文章
用“看板图”实现敏捷软件开发项目的可视化
阅读详细......

2008年9月18日

Scrum介绍---Scrum in 90 minutes

刚刚发现一个《Scrum in 5 min》,而这个43页的ppt介绍地更加具体和详细, 可以真正让你懂得什么是Scrum

---敏捷精灵
This is a 90 minute introduction to Scrum that is fully redistributable and reusable. Use it to introduce Scrum to your user group or organization. Provided as a PowerPoint file so you can customize it. For Mac users, the presentation is also available in Keynote, which is what it was created in. Please acknowledge the source but please use it widely. ……

Thank you to these translators to their generous contributions.

This is a completely updated, much fancier version of this popular file that has been available for download since 2002.

Scrum in 90 min


阅读详细......

Scrum是什么---Scrum in 5 min

Scrum是什么?什么是Scrum? 想简单了解一下吗?这是一个关于Scrum的快速介绍,只有16页,有一些很有趣的图,非常容易理解,是不错的扫盲书。

---敏捷精灵



scrum in 5 min

Softhouse - Scrum in Five Minutes



阅读详细......