Category Archives: A_生活

Nike 10km

今天是Nike 10km的赛跑日,本来以为是在浦东的,结果居然是在松江,7:30之前集合。好吧,那我只好凌晨5点半起床,买了早饭,打个车去地铁站。起点站上车就看到几个同行——同去松江跑步的朋友——结果后面陆陆续续地上来无数去跑步的人,一车厢穿着同样的跑步服的人、去同一个地方做同一件事,这景象还蛮有趣的。以前在南京只有去奥体看奶茶演唱会的时候有过类似的经历,呵呵。
到了地铁站,有人引导到接驳车送到现场,现场人很多,跑步的有大约15000人,还有很多工作人员,大概都是大学城里的学生,秩序还挺好的,这让我对Nike的组织工作印象蛮好的。
换好跑步鞋,寄存了东西,开跑~ 一开始人多,等我跑出起点线的时候已经是4分多钟了。
1小时之后…
当我看着终点的计时器从00:59:50多秒跳到01:00:00的时候,我跑回了终点!才花了56分钟,这个成绩我自己相当满意了,呵呵。
之后休息一下,领了纪念品,就去听演唱会了。其实也算不上演唱会,铺垫的是松江大学城的两个乐团和上海一个hip-hop街舞表演,主戏就是韩庚的出场了(虽然这个人之前就没听说过…) 韩庚唱了三四首歌之后,“演唱会”也就结束了。
其它:
· 现场人多手机也多,移动的数据网络变得很慢很慢,电话也很难打通,松江这边的网络今天经受了一次考验。然后我想起世博会,平时就好几十万,极端时甚至100多万的人流,里面的通讯还是很流畅,这一点相当牛X,相当给力啊。今年的世博最大的亮点可能就在于无线通信了。
· 第一个出场的乐队主唱长得很像周隽,一样的发型,一样的黑框眼镜,一样风格的穿着,这样的形象果然是主流。
· 韩庚不知道什么时候流行的… 现场粉丝还不少,也许有不少人是为了他来参加这个10km跑的?呵呵。但是他一出场,现场就没秩序了,导致很多后面的人根本就看不到舞台,素质啊,sigh…

[slideshow]

Share

豆子生长记

    同事在办公室里种了个豆子(有知情人士请告知这是啥豆子…),俺们决定每天给它拍张照,看看有多大变化——
    btw, Frank走之后咖啡杯留了下来被俺们作为花盆,也算作一种纪念吧,呵呵。

种下去三四天之后
2010-7-14:

2010-07-14

2010-7-15:

2010-07-15-am 2010-07-15-pm

2010-7-16:

2010-07-16-am 2010-07-16-pm

过了一个周末过后,居然已经这么大了…
2010-7-19:

2010-07-19-am

Share

无题

    今年没有正宗生日,不过农历生日是这个周六,就回家聚聚了。
    以往回无锡都是周五晚上,不过今天早上有东方市民音乐会的“恢宏·勃拉姆斯专场”,早早地就买了票,为了犒劳自己,我选择听完音乐会再回家~
    再次走进许久没有去过的东方艺术中心,心情有点复杂,里面除了大厅的展览和节目表,一切如故,唯一变化的是我们自己吧。早早地进入了音乐厅,人还不多,我还挺喜欢感受一个没多少人的大厅的。观察着陆陆续续进来了人们,有一个家长带着小孩过来感受音乐而小孩子似乎不愿意的,也有一家三口很happy地享受的;有或年轻或年迈一个人静静坐下的,也有一对对couple一起来听音乐的……
    音乐会开始,首先是勃拉姆斯的“D大调小提琴协奏曲”,某些旋律似曾相识,很有气势,也许“交响情人梦”里演奏过?音乐很赞,更赞的是小提琴独奏——陈瑞玲(Verena Chen),一个93年出生于德国的小女生,精通钢琴和小提琴,小小年纪就多次获奖,更举办过独奏音乐会、和一些德国的交响乐团合作过,大概算是天才了吧。这回是她首次和上海爱乐乐团合作。对于音乐其实我一窍不通,只是在现场听,看着独奏时一个人表演,看着指挥和乐团的合作,会有些不一样的感受。有时候想想人类还真伟大,居然能把这么多种乐器完美地融合在一个音乐中,作曲家的灵魂通过指挥由乐团演绎出来,给人震撼。
    “主菜”过后是两首序曲,“悲剧序曲”和“学院庆典序曲”,据说这是指挥高健特意把序曲放在后面的,含意嘛,忘了,汗… 之后是谢幕,然后又演奏了两首曲子,气氛和感觉都很好~
    听完音乐会,回到无锡老家,难得和父母亲戚们一起过了个农历生日,收了生日礼物,很开心。
    快清明了,明天去扫墓,要去看看爷爷奶奶了。

DSC04363

Share

晒晒车子

    周末去了趟南京拿点秋天的衣服,顺便买了长草了有一段时间的车子(可是不是四个轮子的…)——Dahon SP8折叠车。
    很久之前借骑Ali的公路车的时候他就向我推荐这款车了,虽然是折叠车,但号称不比公路车慢。有一次在上班路上遇到Ali骑着这款折叠车,跟他比了下速度,确实很快。种子就种在了心里——直到现在,上下班单程7.4km,很适合骑车的距离,加上现在很舒服的天气,种子终于发芽长草了~

    废话不多说了,晒照片~
DSC03858 DSC03859 DSC03860 DSC03865 DSC03866 DSC03869  DSC03875 DSC03870

Share

上海Moto工作一个月随笔

    来上海Moto工作一个多月了,有些感想随便写写,当然某些“敏感”的东西就不放在这边了,呵呵。

    首先,最大的不同,是Scrum——近些年流行起来的敏捷软件开发模型。以前在南摩,基本是按照Requirement, Design, Code, Test这个流程走下来的,很清楚,对项目进程也比较好把握。Scrum的理念不一样,它假设项目的需求是会随着时间而变化的,于是它被设计得很有弹性很自由。它的模式大概是这样:
        1) 将整个产品要实现的功能写成backlog,假设按一个Sprint(周期)21天算,把这些backlog分成在这个周期内可以完成的sprint backlog;
        2) 召开sprint planning meeting,划分,确定这个Sprint内需要完成的任务,标注任务的优先级;每个Scrum team自己选择感兴趣的story并分配给每个成员;
        3) 进入sprint开发周期,在这个周期内,召开Daily Scrum meeting,看每一天完成Story的进度;
        4) 整个sprint周期结束,召开Sprint review meeting,将成果演示给Product Owner;
        5) 团队成员最后召开Sprint retrospective meeting,总结问题和经验;
        6) 这样周而复始,按照同样的步骤进行下一次Sprint。
    因为每个Sprint周期很短,所以可以按照需求的变化及时地把这些变化做进项目里。据说这个模型在很多公司实施得很好——
    然而,我觉得在Moto,我看不到Scrum的那么多优点,反而体会到了一些缺点。
        1) 对于scrum team的成员,他只是接触一个个的story,却并不知道这个项目的总体进度,有很多要从整体考虑的东西会被忽略;
        2) backlog里的story需要有非常详细的描述和正确的优先级、effort的预估,可是描述经常不清楚,优先级/effort在真正做事情前很难估计正确;
        3) 缺乏一个CM team支持,加上没有很好的版本控制工具(这跟Scrum没啥关系…),导致需要做release的那段时间会很混乱;
        4) 对于需求的变化,往往是在做一个个story中途发生的,同样会导致这个story白做或者需要改变story要做的事情,浪费effort。
     其实不管什么软件开发模型,对于需求的变化都是非常头疼的,有的变化甚至需要带来架构上的变化,很让人无语。在MDB时感觉还好,一般都是运营商定制好了一个手机的各种需求,然后我们再开发,变化不会太大;而现在做STB,有的东西说变就变了,很无语的。。。
    不过,这些缺点里有的是可以通过老板的工作弥补的,比如说他可以把项目的总体进度share给我们,可以专门找人做CM,可以用更好的版本控制工具,虽然都需要投入,但我觉得是值得的;有些缺点可能真没办法…

    第二,我想说说SVN,这是我们现在用的版本控制工具。以前在MDB我们用Clearcase,很强大的东东,但据说很贵,每年都要charge一大笔钱。而SVN是开源、免费的。以前用SVN、CVS,都是用来在网上下开源的代码,跟昊子合作的那段时间也只是用来在trunk上check in代码的工具而已,体会不到它版本控制的功能。而在真正的大项目里用上SVN之后,我的一大感受是,便宜没好货。相比起clearcase,SVN的差距确实太大了,没有dynamic view只能checkout到working copy;建branch也必须整个项目的东西一起建;merge需要queue而且也是整个项目的code一起搞;某些属性(比如externals)很容易被忽略导致错误地在某个branch上做了本该在另一个branch上做的事… 就我已经经历过的一个多sprint来说,粗略估计花在SVN上建branch、check out、最后merge的时间,可能要占到一个story的20%时间。
    我的想法是,对于一个小项目,或者各个部分比较容易分得开的项目,用SVN还行,如果需要很多人在某一个模块里经常做改动,用SVN的效率会很低。我知道网络上的开源软件都是用SVN的,也许对SVN的了解还不深所以不清楚它的好处,但我觉得在大公司里做的大型项目,还是应该用更好的版本控制、项目管理软件吧。

    第三,关于code review和merge。其实这和前两点都有点关系,不过我还是想特别说一下。在scrum模型里,code review并不是一件很重要的事情,它关注的是及时地把feature deliver给客户。然而在实际操作中,如果缺乏code review会导致很严重的问题。说实话在MDB我对此没有特别的体会,因为在那边有很严格的流程,所有的code都需要inspection才能进main line。而在这里相对随意,code review只是在review board上提一下,然后大家看看、有comments就在上面提就行了,最后有没有改也不知道。就上一个sprint里,我就见过一同事随便改的code也提了review,我看了一下发现里面有了不少bug,过了一天却发现code又被整体改了一遍,跟一开始完全不一样了,bug也没了,我汗… 这样的review有什么效率和效果啊。
    想想还是MDB那么严格的机制比较好,提inspection的时候自己都会保证code质量已经到了一定程度了,不会随便提的,大家一起开会看code有时候是会觉得浪费时间,但长远地看这还是能保证code质量、减少将来的effort的。Merge的话因为在MDB用clearcase,可以对单个文件一个个地改最后用view看一下就可以了,而且经常会请同事帮忙看看merge得对不对,所以较少出错。而现在SVN的merge是件头疼事儿,因为一般merge都是sprint快结束时做的事情,大家一起上,所以只能乖乖排队,而这一排队,等上一两天也是正常的——也就是说要等一两天你的code才能merge到main line里去;有时候也会遇到“没品”的同事一声不吭在merge queue里插队,他是快了,可自己等的时间就更长了….
    关于review,我觉得我们可以做得更严格,即使浪费现在一点时间也是值得的;关于merge,我真是不想用SVN啊~

    关于老板也有些想法,不过比较敏感就不写了,呵呵。最后学习某人,贴张图,休息一下^_^
Scrum_track_form 理想的办公环境

Share