Feeds:
文章
评论

Archive for 2011年2月

正霖画的龙

Red dragon (Zhenglin 3)

云震学校Half Term,放假在家,留的作业是“做”一只龙。我本来想搭把手,整个有创意的,例如弄个Lego龙,但创意不够,且要求小朋友自己独立完成,不能作弊。

于是就画。

小蒋弄了张威尔士龙的图片,照着描,如下是她自己的作品,不是拍马屁,我惊讶她临摹功夫很不错,小时候画鸭子的功夫没丢下。

Red dragon (mum)

然后是我儿子的第一幅作品。我第一次看到的时候,笑歪了。小蒋很不满意,我却觉得不错,毕竟是小朋友第一次临摹这么复杂的东西,能画出这么多细节和大致的位置关系就很不错了。

Red dragon (Zhenglin 1)

如下是云震第二次的作品,在小蒋的指导下。

Red dragon (Zhenglin 2)

最后这个,是正霖第三次的临摹,据说是完全他自己画的,没有小蒋的指导了。然后上了色。我是非常非常的满意。是临摹,还能明显看出自己创作的地方,例如尾巴~~;构图也不错,丰满。 Smile

他自己的签名也很有味道。 Open-mouthed smile

Red dragon (Zhenglin 3)

Read Full Post »

aid201002是AIChinese产品的内部开发代号。aid201002项目组已经经历了4次迭代开发,迭代周期从2个月到6周不等。最初的两个迭代,是产品设计阶段。直到第二个迭代结束,才完成了AIChinese的第一次公开发布。

回顾每个迭代的末期,整个项目组,从管理、设计、开发到测试,全线都是紧张得一塌糊涂。即使如此,还是不得不做很多的妥协,之前是将发布时间延迟1-2周,现在则是把预计的功能点砍掉几个。

每次发布结束,“痛定思痛”,在制定新迭代计划和功能点的时候,思必驰的大领导和主管市场的头目,都会补充一句:避免项目前松后紧。

我看,前松后紧是避免不了的。

简单一个问题:距离项目结束还有一周的时间,眼看着工作是玩不成了,怎么办?十个项目有六个会这样:公司领导把项目组的负责人召集起来,狠挖灵魂深处,结论是:项目推迟2周完成;另外有三个项目会这样解决:不仅项目推迟2周完成,再增加人手。在项目最“紧张的”时候,对大多数决策人而言,可以有弹性的,只有进度(Time),最多再增加一项成本(Cost)。项目管理教科书上说:项目可以控制的元素包括进度Time、质量Quality、范围Scope、成本Cost、商业收益Business Benefit(还有一个什么来着?忘记了……)。其实,调整其他控制元素的弹性的情形不仅是可以接受,而且是经常遇到的。例如,眼看项目完不成了,新需求还在开发,完成的需求还到处冒小火花 — 测试组不断的报各种各样的Bug。这时候,可以接受的策略是,仅保证重要的需求,边边角角的小毛病就睁一只眼闭一只眼了。这个策略就是在放松质量的弹性;又例如,眼看项目完不成了,一些新需求就干脆不做了,这个策略是在放松范围的弹性。就产品项目而言,前述的各个控制元素都是可以有弹性的,动哪个,需要开发、商务和产品客户一起来决定,所谓征求项目的相关人(Stakeholders)的综合意见。话说回来,是不是增加了可以“动”的东西,进度的压力就小了啊?可惜不是。割肉从来不是件轻松的事情,不是有俗话说:手心手背都是肉嘛。

其次,“三岁看老”这样的事情仅是古话,六十年前连Internet还都没有出现,日新月异的变化如何可以预见?这里插一段闲话,月初刚刚买了一个佳能500D,我和我老婆都不懂,所以拣便宜货。Amazon上刚好有打折,老婆就动了心。不过她还是有脑子的:让我查查近期佳能会不会有新货发布,这样老型号就会进一步降价。查了下,别说,500D的下一代的下一代,传说中的600D,还真的要在这个月发布。长话短说,还是买了。这不前天(2月7日)佳能就宣布了发布600D,我给老婆看了下新闻。她很自信的说:2年后,我再买便宜的600D,然后把500D给云震,把卡片机给焯焯。当然,我很高兴她有这样的长远的设计,但这里面有很多的问题:2年后,为啥要买600D替换500D呢?600D也好,500D也好,都是入门级的单反,2年后,难道我们继续徘徊在入门级?2年后,单反还值得兴奋吗?2年后会不会什么3D HD照相机就已经普及了?2年后,我们的这个500D有机会留给云震吗?这几年,我们一个相机掉水里了,一个相机丢掉了,不买这个500D,我们也是只有一个卡片机,没备份啊。

如上,说是题外话,也不全是。我是说,在项目开始阶段,期望百无一失的需求,期望十全十美的产品设计,是天方夜谭。这说法是老生常谈了,基于此,敏捷的概念是这样的流行。敏捷就是讲究拥抱变化。思必驰的市场负责人对项目管理有一个提纲挈领的认识:项目管理就是控制客户期望和项目产出的匹配。项目产出不能低于用户的期望,也不要高于用户的期望,最理想的是一模一样。这和股价的预测结果是一样的:如果某公司的表现和预期一致,则对该公司的股价的预测往往是有效的。无论表现是高于预期还是低于预期,都会导致股价的预测的偏差。预测有偏差了,不论实际股价是高于预测值还是低于预测值,都会影响投资的效果。

一个典型的案例是,用户对产品的期望是逐渐逼近,逐渐明确的。实实在在的东西,往往会改变用户对产品的认识,这些个改变,直接影响到需求的变化。开发人员得到的需求是做一个桌子,做出来了,客户看到了,启发了在桌子下面增加一层隔板的设计,可以增加储物空间,新的需求就来了。这个时候,没有隔板的桌子已经不能满足客户对产品的期望,必须要做出来有隔板的,否则客户对现在这个桌子没有信心,他的兴奋点和营销策略已经完全转移到了有隔板的桌子了。

另外一个典型案例是,用户对越接近成品的产品,越有实质的意见和建议。新的意见,往往导致需求变更或者增加。还是以桌子为例。开发人员根据迭代原则,很快的给出了一个桌子的原型,四条腿,一个面,向客户征求意见。客户可能就是大概看了一眼,觉得是个桌子,好吧,继续吧。当开发人员把桌子大体都完成了,该雕刻的花纹雕刻了,该上的漆上了,再拿给客户看,客户对接近成品的桌子就会有很多很具体的意见了。类似增加个隔板的要求在这个时候出现,不奇怪。

还有一个典型案例是,决策者往往是很忙的,他没时间对产品原型做认真的研究,但对接近成品的产品,则有一种责任感驱动,进行认真的考量。决策者的重要的意见,不采纳不行,采纳了,就是工作量。

一点点人性论的东西:客户对产品的要求是无止境的。比较邪恶的说法是:不会让你项目组闲着没事干的。完成了A,能不能把B也做出来?反正有时间的。

另外一点点人性论的东西:人都是懒惰的,项目伊始,没人会说今天的事情按计划完成了,我多做一点,提前完成一点,以防今后某一天没完成计划,提前做出余量。没完成计划的余量最好提前计划好,别指望靠“前紧后松”来解决。

Read Full Post »

header

今天弄了这个blog的Header图片,用四张方图拼在一起。

开始是手工做的,后来琢磨着没事换换Header图片应该是比较有意思的事情,就写了如下几行代码。

用了Python Image Library

   1: import Image

   2: # stitch four square image in line to form a header image

   3:  

   4: UNIT_SIZE = 125 

   5: # then the size of the targeting header image is 

   6: #   4*UNIT_SIZE * UNIT_SIZE 

   7: TARGET_WIDTH = 4 * UNIT_SIZE

   8:  

   9: def main():

  10:     # read in four image files in sequence, assuming all squared

  11:     image1 = Image.open('1.JPG')

  12:     image2 = Image.open('2.JPG')

  13:     image3 = Image.open('3.JPG')

  14:     image4 = Image.open('4.JPG')

  15:     images = (image1, image2, image3, image4)

  16:     

  17:     target = Image.new('RGB', (TARGET_WIDTH, UNIT_SIZE))

  18:     

  19:     left = 0

  20:     right = UNIT_SIZE

  21:     for image in images:

  22:         # resize to 190*190    

  23:         # layout four images to a 760*190 header image

  24:         temp = image.resize((UNIT_SIZE, UNIT_SIZE), Image.ANTIALIAS)        

  25:         target.paste(temp, (left, 0, right, UNIT_SIZE))

  26:         left += UNIT_SIZE

  27:         right += UNIT_SIZE

  28:                 

  29:     # save header image

  30:     quality_value = 100

  31:     target.save('header.jpg', quality = quality_value)

  32:     print 'done!'

  33:     

  34: if __name__ == '__main__':

  35:     main()

Read Full Post »

Untitled

使用暴风影音,弹出暴风咨询,首页,都什么什么啊!不可忍不可忍!这编辑是没有任何职业修养的流氓。

Read Full Post »