-
从价值观看敏捷
2009-10-16
上个月参加了AgileChina2009大会,席间和其他的与会者交流各自公司在敏捷方法上的一些实践和经验,当讲到如何在公司内推广时,无论是自上而下还是自下而上,最终的效果总与公司的文化和价值观息息相关。
这次还顺便给大家推荐了一下阿里巴巴的文化和价值观,华为和诺基亚西门子的一些朋友觉得十分有意思。我突然发现,我们的价值观太适合运用敏捷方法了:
- 客户第一,整个团队的最高目标就是通过尽早和持续地交付有价值的软件来满足客户,这点毋庸置疑。
- 团队合作,敏捷宣言的第一条就是“个体与交互胜过过程与工具”,个体与交互不正是团队合作么,而且这里的团队不局限与开发团队,还包括客户,敏捷方法同样注重与用户的协作。
- 拥抱变化,这就不用多说了,它也是敏捷方法的基础,“响应变化胜过遵循计划”。
- 诚信、激情、敬业:这是一个自组织的团队所应有的素质
甚至我们还能找到“快乐工作,认真生活”的影子,敏捷过程提倡可持续的开发,可持续啊,不是让你使劲加班,拼命工作。一个好的敏捷团队应该能够保持恒久稳定的进展速度。
讲完价值观,顺便讲个题外话,关于结对的:
结对是敏捷方法的实践之一,也可以视为“团队合作”,之前就经常和某个同事结对,效果非常不错。这次有幸与Fred George交流了下结对的一些想法,他认为团队中,新人之间不应该结对,两个新手的结对成效往往还不如一个人做,应该是由有经验的开发者(他把开发者分成大师、熟练工和新手)与新人结对,这能帮助他们快速成长。如果团队中主要是新人,那可以让他们轮流与老人结对,待新人们成长起来之后再让他们互相结对。在遇到疑难杂症、或者需要做一些重要的工作时,可以选择两个高手结对。对他而言,与大师结对是一个很让人享受的过程。
-
AgileChina2009北京行
2009-09-18
上周去北京参加了AgileChina 2009大会,本来是十分期待第一天上午Kent Beck和Dave Thomas的两场演讲,但由于日程安排加上飞机航班的延误,到达北京时已经是中午了,错过了现场聆听两位大师演讲的机会,灰常的遗憾啊。
总的来说,这次大会很成功,InfoQ的大会是搞的一届比一届好了,这次AgileChina的主题早已不再是什么是敏捷、为什么要敏捷了,What、Why的时代早已过去,现在该是How的时候了,很多主题都是关于如何在团队中有效实施敏捷,讲述实际遇到的问题与对策,当然还有一些软技能的东西,比方说新人如何融入敏捷团队等等。
参加技术活动么,除了好的内容,当然也少不了交流,第一天晚上还和一些国内同行聊了很久,华为、诺基亚西门子的敏捷实践很有意思,这次华为好像是组团来的,见到不少人的牌子都写着华为;第二天上午Fred George的“那是鸟,还是飞机?不,那是超人!”很精彩,下午和他交流了下对遗留系统重构的一些思路,感到收获颇丰,对于测试较少甚至是没有测试的遗留系统,先不要做任何重构,为那些你认为会出问题的地方补上测试,随后慢慢地将代码抽取出来,小步重构。我虽然早就知道方法应该尽量简短,逻辑清晰,但每个方法平均1.1行代码,这个数字还是让我觉得有些惊讶,估计我目前还做不到。
既然来了北京,自然少不了和北京的朋友见个面,主办方InfoQ和ThoughtWorks的自然不会少,还有就是几家出版社的编辑,另外也认识了几个新朋友,准确的说是之前在网上就认识,不过第一次在线下见面。
第三天下午的飞机,上午去了趟奥林匹克公园,看了看鸟巢和水立方,因为天气很好,所以心情也很棒,据说这是北京难得的好天气哦,看来我的运气还是十分之好呢。
这次北京之行时间比较短,希望明年有机会再去北京,参加QCon 2010,到时候我一定抽点时间再去天安门、长城转转,我可是参会旅游两不误,哈哈~~
-
《Spring攻略》译者序
2009-08-24
《Spring Recipes》交稿已经有阵子了,前两天从编辑那里得知书已经出版了,最近就能上架了,放上译者序做个纪念。感觉这次出版周期特别的长,Spring 3.0都到M4了,这本讲2.5的书才上架。说到本书的中文名《Spring攻略》,其实几个译者都是希望直接使用原书名的,不过出版社还是坚持说除了几本很出名的书,基本直接用英文名的书销量都不怎么样,最后也就妥协了,用“攻略”总比用“实战”强吧。
发现本书的排版有点问题,原因大概是这样的,一开始编辑排版时发现某些单词要换行,按照英文的板式,单词换行要加上“-”,但最终定稿时,这些单词又不换行了,可这些“-”又没有去掉。。。希望再版时能修正这些错误。
=====================================================
几年前,机缘巧合之下,我被一个朋友拉去参加技术活动,在那次活动上我第一次接触到了Spring。说实话,当时怎么都没有想到几年间Spring会有如此迅速的发展,更想不到自己会与Spring如此有缘。
从Expert One-on-One J2EE Design and Development到Expert One-on-One J2EE Development without EJB,Spring之父Rod Johnson一次又一次让大家眼前一亮。而Spring更是被广大Java开发者所接受,可以毫不夸张地说,提到Java企业级应用的开发,第一时间蹦出的词汇中肯定有Spring。
正是因为Spring如此大红大紫,越来越多的人希望了解它、学习它。每当有人让我推荐学习资料时,我都会让他去网上下载官方文档,这足以满足大多数人的需要。但如果你比较喜欢飘着墨香的纸质书,而又恰好捧起本书,相信它一样也不会让你失望的。书中以“问题描述/解决方案/实现方法”的形式介绍了Spring中的大多数内容和Spring Portfolio中的一些项目,读者既可以跟着作者的思路慢慢学习,也可以“对症下药”,立刻解决眼前的问题。要是你对Spring已经有了一定的了解,那么本书也能作为一本不错的参考手册,偶尔翻翻也会有意想不到的收获。
正如Spring背后有着一个优秀的团队一样,本书同样也有一个优秀的翻译团队,大家相互帮助、相互鼓励,唯一的目标就是为读者带来最好的作品。在全书翻译期间,荣浩负责第1~5章,俞黎敏负责第6、7、16、17、18章,杨春花负责第8~12章,而我则负责第13、14、15、19章以及全书的审稿、统稿。
最后,请允许我在此感谢那些在本书的翻译过程中给予我们帮助的朋友和图灵的编辑们,正是有了你们,本书才能最终呈现在读者面前。亲爱的读者朋友,如果你发现书中存在错误或者有什么意见,请毫不犹豫地告诉我们,我们不胜感激。
2009年2月
-
终于拿到世博会的门票啦
2009-08-09
这个礼拜终于拿到了预定的2010世博会门票,公司里一起预定的,本来还以为要过段时间才能拿呢。门票是一张硬质纸卡,另外有一个漂亮的小袋子,话说我倒觉得那个小袋子比卡好看,呵呵。话不多说,上PP小秀一下,希望上海能办一届成功的世博会


-
要事第一
2009-07-29
几个月前参加过一次关于时间管理的内部培训,据给我们培训的“时间管理大师”说自己每天可以保证10点半前就躺在床上,一年看100本书,天呐,100本书,别说我不怎么爱读书,就是喜欢也看不了这么多。。。当时就觉得培训中的内容十分有用,早就想整理出来了,不过一直都没弄。今天趁着重温 PPT的机会,把一些精彩的地方写下来。
请记住,时间对每个人都是公平的,它远比金钱来的宝贵,因为你可以创造金钱,却不能创造时间。
在读书时几乎没有什么感觉,时间绰绰有余,等工作了慢慢就发现其实时间总是不够用,整天忙忙碌碌,事情却不见少。
彼得.德鲁克说过:
什么事情,可以使得一位知识工作者真正地、迅速地提高效率,创造更多的成就?
我将会说:“你一定要明确你的时间哪里去了,不要依赖记忆,它是不可靠的”后来我开始记录工作日的大致时间安排,后来惊讶的发现自己的效率还有待提高,还可以挖掘一下,现在基本每个工作日都要在公司待差不多10小时以上,以后应该可以少点,既把事情做完,又能有不少自己支配的时间。
这里提到了要做时间记录 ,随后进行时间回顾 ,看看哪些事情是可以抛弃的,是否可以重新排列优先级,是否可以合并优化。
个人时间管理的秘诀就是——要事第一 !!!
千里之行始于足下,长的就不说了,先从计划一天的工作做起吧:
- 上班:建立任务清单,列出今天必须做的、应该做的和可能做的事情,并估算时间
- 下班前:整理并回顾一天的工作,与早晨的青岛那进行核对,分析一下差距
这里有一个比较十分有用的工具,那就是时间矩阵图 ,按照重要程度和紧急程度来进行划分。
- 重要:你个人觉得有价值且对你的使命、价值观及首要目标有意义的活动。
- 紧急:你或别人认为需要立刻处理的紧急事件或活动。
紧急 不紧急 重要 I
危机处理
有限期的任务
故障
投诉II
计划和策略
建立关系
学习和发展
真正的创新不重要 III
不速之客
一些会议
一些报告
接电话IV
看报纸
闲聊
赌博
看肥皂剧请尽量让自己活在第II象限!!!
最后是一些关于避免时间黑洞的小贴士,发现我居然一个都没有做到,汗颜啊:
- 关闭IM工具, 记住彻底关闭
- 关闭邮件达到的提醒
- 保持环境的干净整洁
- 给杯子倒满水准备一张工作清单, 完成一个, 划掉一个!
- 告诉周围同事一段时间不要打扰你
- 感觉精力不够, 先休息一会——上网不是休息!
-
上海动物园一日游
2009-06-21
上周末去了次上海动物园(也叫西郊公园),我都快忘记上一次是什么时候去的那里,反正很小就是了。这次就当是重新回到童年,去动物园春游,其实真的和小时候春游没什么区别,带上一些中午野餐吃的东西和一次性桌布之类的用品就去了。而且周末嘛,动物园里几乎都是家长带着孩子来的,走个几步就会看到牵着孩子小手的家长,或者是推着童车的,当然也有一个人在前面跑,后面跟着家长的,反正那里几乎就是亲子乐园,呵呵。
发现动物园的变化不大,有不少地方都能和记忆中的对上号。从正门进入公园后,沿着主干道慢慢地走着,先是经过两栖爬虫馆,别以为光是展览两栖爬虫的,里面还有包括鲨鱼在内的各种鱼类,挺好奇的为什么大蟒蛇能和乌龟和平相处,放在一个玻璃温室里,乌龟还能在蟒蛇身上爬爬。出来后没多久就是金鱼廊,展出了很多金鱼,虽然很多种类都分不清,但“水泡眼”那种很有特色的我还认识~
记得很久前上海动物园死过一头长颈鹿,事后发现是因为误食了游客丢的塑料袋,现在动物园里很多地方都会有警示标记,上面画着一个卡通的长颈鹿头像,写着“爱我,请别喂我”,而在金鱼廊附近就有一个长颈鹿“海滨”纪念亭,里面陈列着“海滨”的标本,时刻提醒着游客们不要随便喂食动物。
再往后走么就是孔雀园、进入式鸟院、企鹅、鹦鹉这些鸟类的地盘了,没有看到孔雀开屏,估计是它觉得面前这个端着相机的家伙不好看,懒得和我比,不过还是有很多其他东西可以看看的。比如下面这个,千万别以为是白斩鸡,人家叫“白鹇”。
走过天鹅湖后,也就差不多是午餐时间了,话说那天风和日丽,正适合在公园草坪上野餐,动物园的草坪很大,而且种有很多大树,在下面野餐还是很不错的。度过了惬意的两小时后继续上路,去动物园最想看的当然是国宝,国宝的待遇就是好,单人间,有吃有喝,下午去的时候估计正好是午睡时间,几只熊猫都在睡觉,当然也有精神比较好的,在啃竹子的,隔着玻璃为它喀嚓了几张。
看完憨态可掬的熊猫,立马就是野兽了,什么巴西狼、狮子、老虎、灰熊什么的,估计动物园的生活太安逸了,基本大家都在睡午觉,平时觉得应该比较爱睡的熊,这次倒是很积极地盯着游客,准确地说是他们手里的吃的东西,偶尔还会作个揖,“说”声谢谢。
再往前,就是食草动物了,长颈鹿、大象、羚羊这些,性情比较温顺,动物园入口附近有大象表演,不过我没有去看,想想应该和电视里看到的差不多。坐在一旁休息的时候,看到两个小朋友抱了一大堆草过来,投进栅栏给羚羊吃,估计那个草是专门买的牧草吧,否则上哪儿找这么多草过来,看那几头羚羊吃的还挺欢,不喝下午茶,可以来点下午草嘛。
最后参观的是灵长类动物,仅仅算猴子,这里的品种两只手都数不过来,也许用上脚趾还是不够。最凶猛的应该是山魈,那个脸看着就挺凶相的,据文字介绍,群体活动的山魈能把猛兽打跑;而最小的应该是松树猴,在那里不仔细看估计一时还找不到它。小猴子们见到游客倒是非常高兴,跳在笼子上,伸出手来时刻准备接东西吃,参观的时候正好是饲养员喂食的时候,就看到饲养员从里面打开门,把一盆水过倒进去,呃,发现它们的伙食还真是不错诶,小日子过得挺舒坦的,呵呵。
上海动物园占地不是很大,所以一天时间足够走遍整个动物园了,而且公园门票也不贵,算是个周末休闲的好去处~
-
难得的反馈
2009-05-15
WinSCP,一个优秀的开源SCP/SFTP客户端,我从好几年前开始负责它的简体中文汉化工作,也算是在业余时间参与一下开源项目。这几年中,发布了好几个版本,但从来没有收到过任何用户的反馈,说翻译中存在些问题,哪里翻译的不恰当,等等。前几天突然收到Martin Prikryl一封邮件,说WinSCP论坛里有一个关于中文翻译的帖子,他看不懂,帖子里给了一个patch。我去一看,内容大致是在远程操作界面里菜单中同时有两个相同的标签(其中一个是指本地操作,另一个是指远程操作),用户只能靠下面的说明来区分它们,他在远程操作的标签上加了“远程”两个字。随后我仔细看了做语言包时用的文件,英文原文就是一样的,但patch还是很有道理的,所以就做了修改,同时还对他没有提到的另外几个类似的条目做了修改。
开源就是要靠大家一起来动手,贡献自己的知识、力量,众人拾柴火焰高。可是在中国,也许是用的人多,愿意真的出力的就没有这么多了,甚至连反馈都不太积极。拿满江红上的那些中文文档来说吧,我们把优秀的开源项目的文档翻译成中文,免费提供给大家,虽然有一审、二审,对参与者也有要求,但毕竟还是会存在很多问题,少则几人多则20多人的庞大团队,说没问题才是怪事呢。因此非常希望读者能够积极反馈,帮助我们改善文档的质量,但下载量一个劲往上涨的同时,反馈意见却寥寥无几……
出力的少,出钱的就更少了,前几天和同事聊天,他说自己为了体验一下PayPal的功能,为Vimperator捐了次款,结果收到了作者的回复,说这是第一次收到来自中国大陆的捐赠,还激情洋溢地告诉他Vimperator今后的发展路线。可见Vimperator的作者收到这笔捐赠还是很激动的,呵呵。
中国有着庞大的开发者群体,大部分都正在或者曾经使用着开源软件,但相对这个庞大的基数,投身其中的人就少了一点。真希望以后能有更多的人不再是一个开源使用者,而能成为一个贡献者,无论贡献什么,贡献多少,有心就好。
-
从积木看项目
2009-03-22
培训多少是有些枯燥的,印象中那些关于项目管理的培训大多是一个经验丰富的资深人士以授课或者讨论的方式向在座的学员传授知识、心得或者一些实践技巧。最近参加了一堂别开生面的项目开发实践课(乐高游戏体验),从名字上就能看出来,其实是在玩乐高积木,如果抛开游戏背后的东西,单纯玩玩积木也是很有意思的一件事,哈哈。

课程开始后,讲师就道明了这次的两个主题——价值驱动和迭代,随后说明了游戏规则:
1、每组有500块积木,作为“启动资金”,项目分3个阶段进行,每阶段20分钟
2、每组一共是9个人,选出1名PM(负责统筹)、2名观察者(记录过程中组员的优点和缺点)、1名裁判(派到外组监督)、1名客户代表(根据需求卡片提出需求),其余的都是开发人员(只有开发人员能够触碰积木)
3、过程中观察者和裁判不能说话,裁判到外组监督过程
4、每次下发9张需求卡片,记录着要求(可能存在冲突)和对应的分值,每个阶段最少做3张,由客户代表选择并根据自己的想法进一步细化,如提出的需求在实现上有疑义,组员可与客户代表协商
5、每阶段结束后裁判返回自己组,参与讨论,由观察者指出本阶段大家做的好的地方和不好的地方,大家各抒己见,裁判将他所监督的组的优点也带回自己组分享(其实这里可以看出来裁判也是间谍,呵呵)
6、下一阶段开始前,裁判、观察者和开发人员轮换,PM和客户代表不变需要额外说明的是第二阶段开始前,每组会按照座位的顺序选出一名组员“跳槽”到其他组,直至结束,第二第三阶段开始前评委(就是其他的老师)会根据大家的作品选出一个小组注入“资金”,额外给一袋积木。整个过程开始前,每组会拿到一张大纸,PM会在上面标上TODO、Doing、Done、Sign(用户代表验收签字栏),前三栏用来贴卡片,最后一栏用户代表确认小组完成了他提出的要求就签字画押。
第一阶段我自告奋勇去做了裁判,到其他组晃了一圈,这时卡片下来了,我看了下“要求单一颜色”、“有两个头的怪物”、“长超过15cm、宽超过10cm”、“怪兽有4只脚”等等,客户代表选定了卡片交给PM,并根据这个提出自己的要求,PM协调开发人员用桌上的积木完成需求。
20分钟很快就玩掉了,大家开始讨论,随后是作品展示,因为每组拿到的卡片并不一样,而且有很大发挥空间,所以大家做出来的东西都不一样(这个是肯定的嘛)。讲师也提出了一些问题,例如,制作过程中有的小组把客户代表晾在一边,或者是客户代表只是一个劲地说“随便”,小组成员之间缺乏沟通,只有一组完成了单一颜色这个需求,但是这也埋下了隐患,后面几轮没有这么多同色的积木……
第二阶段开始,我终于成了开发人员,可以玩了,但我们的一名主力开发不幸“跳槽”了。。。另外新加盟的开发成员显然被我们其他几个忽略了,刚开始时大家都没有主动和他交流,只是各顾各地在那里动手完成需求。这时需求的冲突出现了,第一次要求两个头四只脚的怪兽,现在要求一个头两只脚了,衡量了一下分值,我们还是决定改。这次客户提了很多要求,我们做的也很快,一口气完成了3000+的分值(两轮18张卡片只剩下1张单一颜色的没有做),要知道上一轮最高的小组也只做了2700分,大家很兴奋。这个阶段结束后,我们拿到了第2笔投资,第一阶段的奖励给了另一个组。在点评时,讲师提出了他发现的问题,“跳槽”过来的新成员大多没有得到重用,不是做了观察者就是做了裁判,当了开发人员的也就我们这组了。
第三阶段开始,我们这里上演了戏剧性的一幕,来我们这里的裁判提出要帮我们做开发,原来他在之前的组做了一轮观察者,然后就过来做了裁判,自己还没玩过呢,我们倒是很乐意让他来做,不过讲师不同意,对不住了兄弟,你继续看我们玩吧。这回我做了观察者,坐在那里看着大家热火朝天的工作着——重构上一轮做的城堡和怪兽,为城堡添加两层大门,怪兽有个孩子……一共是27张卡片,除了有冲突的基本都做了,整个项目完成后计算总分,各组比较最后结果。最后的讨论结束后,每组都选择了代表发言,并做了展示,大家交流了自己的感受及这次的收获。
讲师也向大家提了几个问题,大家是凭什么选择需求卡片,哪些做哪些不做的?如果一次性给大家60分钟,而不是像这样分3个20分钟,迭代3轮,还能做出现在这样出色的作品吗?其实整个的游戏过程就是一个项目,我们有真正项目中的各个元素,只是大家做的不是软件。
最后秀一下我们组的作品:


-
西湖掠影
2009-03-15
最近在杭州培训,当然要四处走走,虽然之前去过西湖了(比较想去西溪湿地和灵隐寺),但想想不同的时间应该有不同的景色,所以这次又经不起别人诱惑,和一起培训的同学们再游西湖。
大概是天气比较好,又恰逢周末,在坐公交去西湖的路上就感觉到今天会是“人山人海”。因为路比较堵,车上人又很多,所以我们在岳庙前一站就下车步行了,好在路不是很长,一路说说笑笑很快就到了曲院风荷(可惜现在还不是看荷花的时候)。


好的天气真的会带来好的心情,好到可以随便抓路过的小朋友合影(声明下不是偶,不过这对双胞胎姐妹真的还蛮可爱的说)。
随后么就到了武松墓和苏小小墓,这里没有怎么停留。在我的鼓动下,大家走进了中国印学博物馆,在里面突然有种自己是文盲的感觉,一排印章放在那里,没几个字是认得的,中国的历史文化果然博大精深,我们还有很多东西要学呢!
接着自然就走进了孤山公园(我们之中有人把这几个字拆成了“瓜子山公园”,十分之贴切,字是从右往左写的
),正巧有一对新人在这里拍婚纱照,记得上次游西湖我也碰到了拍结婚照的几对新人,这里还真是不错的外景地。

出了公园就是白堤了,说实话我知道人多,但还是没想到能有这么多,还有就是放风筝的,小风筝我就不说了,看到了一个放风筝的高人,在那边捣腾一个很大的圆圈的风筝(请原谅我这么没有表现力的文字,我真的不知道它该叫什么),很可惜,在旁边站了一会儿也没能等到它飘起来。


最后大家决定找地方吃饭,说实话西湖景区旁边吃饭真的不太方便,特别是在饭点找个能一下坐10来个人,又不是很贵的地方,貌似大多数旅游景点都这样。。。吃完一部分人提出要回去了,想想最近大家都比较累,就集体返回了。这次走了小半个西湖,期待后面能有时间让我去一次西溪和灵隐,呵呵~
-
今天正好有空,来这里涂几笔
2009-01-23
今天正好有空,来这里涂几笔。算算到支付宝已经三周了,总的来说感觉还不错,期间参加了一下公司年会,发现大家还是很富有娱乐精神的,超级星声代12强就不用说了(里面还有曾经的驻唱歌手,冠军之争毫无悬念,但大家唱得的确不错),其他人也都能将恶搞进行到底,的确很强大!
言归正传,说点正经的,这些天里明白了几件事:
1、要做好一个开发者必须了解业务知识,否则充其量就是高效“编码机器”,最近的重要任务就是看各种各样的文档。但我还是有点“偏食”,重点挑技术类、架构类的文档看,呵呵。
2、之前对工作经验的认识也有点狭隘,只看到了项目经验中的开发,却忽略了文档,要写出专业的文档,表达清楚自己的想法,也不是这么容易的,有时我甚至觉得写书都比写文档容易。
3、团队合作真的很管用,就算是两个新人也能碰撞出火花

这么长时间没写代码,真的好想找点东西来写写,年后估计就有机会了,搞不好还是写到吐的那种。。。
P.S.
最近终于把《Spring Recipes》的所有稿件都审校完了,接下来就等出版社复审,顺利的话7月份就能上市了,期待有个好口碑。








