乡村

超级玛丽奥项目管理

讲的还算是很形象,作为一个项目管理的寓言还不错。原文地址:http://www.otakustay.com/mario-project-management/超级玛丽奥,一个无比经典的游戏,在红白机上的受欢迎程度无出其右,游戏的设计必有其出色之处,才导致那么多人的痴迷。本篇文章试图将超级玛丽的游戏设计的部分理念和细节转换为项目管理的方案,使用游戏的方式去管理项目,找寻一条快乐的管理之道。游戏的组成超级玛丽的游戏组成非常简单,只有几个必要的概念,但是可以玩出无数的花样:主角一个水管工,名叫玛丽奥,某天他的公主被邪恶的大魔王抓走了,于是开始了拯救公主的征途……在项目中,主角无疑是整个团队,首先保证整个团队的一致性和不可分割性,使其成为一个单独的个体,而非若干个个体组合起来的松散的组织。当团队拿到项目的这一刻,就如同站在屏幕左边的玛丽奥,一段征程就此开始。关卡游戏的最基本组成是一个一个的关卡,每一个关卡最后都有已知的惊喜(不是一个城堡就是一只公主),正因为关卡这个概念的存在,才造就了游戏的多样化和挑战性。相对项目来说,一个关卡可以变成一个里程碑,每一个里程碑最后也都有着预先准备的“惊喜”。每一个里程碑成功交付之时,作为管理者,必须让所有成员意识到我们又突破了一个关卡,这是值得庆祝的事,并且要让每一个成员都认可这是团队一起努力后应得的结果。坑出于游戏中怪物智商普遍低于平均线,“坑”这一事物反而成了游戏中的一大障碍。跑着跳着欢快着,一不小心掉进个坑里,是多么没有面子的事情。对于项目,所谓的坑,自然是一个又一个的困难。在一个里程碑开始之初,就应当规划好整个头上的“场景”,整个团队有权利也有义务知道,按照小小主人公的奔跑速度,在什么时候会遇上坑,是一个怎么样的坑,以便团队事先做好应对的措施。而坑也是游戏中极富多样性的一个元素,也许玩的时候并没有仔细地分析,坑的各类其实是很多的:标准坑大量存在于各个关卡之中,只要按标准的速度“走”过去,在适当的里面起跳就可以轻松地跃过。但是永远也不要小看这样的坑,当地形变得复杂,一个又一个的标准坑连在一起,中间只剩一个人的容身之所,就会让游戏的难度大大增加。同样,在项目中,最常遇上的困难也就是如此简单的标准坑,只要团队按着计划的步调前进,在适当的时候给予一次小小的冲刺,就可以安全地度过。但是当这类不大不小的困难连续出现,在解决一个问题之后又紧接着出现另一个问题,之间只留下勉强喘息的时间之时,就是对项目组的一个考验。如果在项目开始之初就对关卡的地形了如指掌,事先做好全面的心理准备,在通过的过程中调整好自己的步调,相信绝大多数的“玩家”还是不会败在这种环境之下的。大坑大坑的跨度之大,足以让没有充分助跑就随意起跳的玛丽奥同志坠入无限的深渊。在初代的游戏中,最大的一个坑甚至需要足够的助跑,在平地的边缘起跑,才可以勉强地落到对岸。大坑对项目来说绝对是一种挑战,在这段时间内,项目组将不可避免地出现火力全开的情况,甚至要为此加班加点。但即便如此,如果没有之前的助跑,无论你的弹跳力多么超群,在大坑面前都无法避免跌入地狱的结局。因此作为项目进度制定者,对于大坑必须有明确的标识,提前一定的时间知会整个项目组。此时项目组需要开始调整自己的节奏,为即将到来的攻坚战作好准备,以最大的冲刺速度突前,直到坑的边缘,决然地起跳。每一次跃过大坑,都会给玩家带来成就和喜悦之感,往往项目也正是通过对困难的征服所带来的成就感,才得以保持整个团队的士气,一直向着最后的终点冲刺。碎坑碎坑是一种很特殊的坑,他由非常多但非常窄的坑组成,每2个坑之间仅容下一个身位的立足之所。在项目的进行过程中,遇上这样的情况也是不可避免的。小小的麻烦总是不断地骚扰,当一个函数出现了点问题、当客户来电说需要有一个小小的修改、当有同仁身体不适需要休息……而当这些细碎的问题撞在一起时,一个典型的“碎坑地形”就出现了。那么如何去应对矿坑地带呢?玩过游戏的人都知道,面对这样的地形,与其小心翼翼地从每一个坑上跳过、屏住呼吸随时注意自己的下一个落点、提心掉胆有惊无险地通过,不如在不远处开始加速,以飞奔的速度从上面通过,碎坑是可以直接跑过去的,而不需要起跳这样笨拙的动作。同样映射到项目之中,当面对一个碎坑地形的时候,如果管理者可以及早地发现问题,并通告整个团队。那么团队只需要一鼓作气,加快自己的节奏,哪怕无可避免地有一些加班加点的情况,但只要拥有足够的速度,碎坑将如同平地,无法给项目的进度造成任何的阻挠。砖砖也是游戏场景中无处不在的重要元素,主角可以拿他那比金子还硬的拳头(绝对不明脑袋)去敲一下砖头,至于砖头里有什么,那就另当别论了。当然可以肯定的是,不会敲出一个BOSS来:)在项目中,砖可以是一些起眼或者不起眼的小细节,而是不是去敲这个砖,并不会影响到项目整体,即便一个砖都不敲,项目最终也是可以交付的。只是砖作为一种额外的收益,如果花些心思去敲了,往往能得到一点什么。同样的,砖也有很多种:普通砖普通砖遍地都是,稍微敲一下就会碎裂,但往往不会给出什么东西。当然也存在极少数的情况,会出来一个蘑菇或者一朵鲜花,当然也有敲不完的金币。总得来说,普通砖里充满了机遇,但过分追求的结果往往是失望。对于项目,我们也经常能看到这样的现象,一个小小的元件摆放在那边,从各个角度看都有让人重构的冲动。但是对于管理者来说,这样的重构是不是值得,敲下这块砖会不会出现自己需要的收益,却是一个非常需要关注的事情。在大多数的情况下,我们并不反对去敲每一块砖;但是如果希望项目在绝对最短的时间内完成交付,是不是也同样可以选择忽略那些平凡的“砖”,用这一跳的时间去做更值得关注的事?方砖如果不是因为这东西不能拿去砸怪物的话,我很乐意称之为“板砖”。这是何等坑爹的一种砖,他就是那么一个广场,无论你怎么敲他,他都不会碎裂,也不会挤出哪怕是那么一丝的分数给你。当然项目中这样的情况也不少,当你从一开始就走在一条错误的道路上尝试,无论怎么努力也得不到回报。但是请不要气馁不要绝望,正是因为有这样无数的尝试,你的团队才能确定这块砖是不是真正的方砖,是不是绝对不会产出任何的收效,这样团队才可以在日后遇上类似情况时避免进入一个无谓的圈套去挣扎不休,而是直接忽略那个看起来充满诱惑的炸弹,直接冲向目标。要相信项目中每一分投入都会有相应的回报,每一次努力都有其应有的价值。问号砖问号砖太显眼了,除了上面有个大大的问号,还会不断地闪烁着光芒提示你来敲。而且,问号砖是不会不给你东西的,少则一只蘑菇,甚至有可能是一个无敌的星星。唯一的遗憾是,问号砖的数量还是比较稀少的。项目中,把握好每一个问号砖是非常关键的,一个砖带来的收益往往能起到决定性的作用,正如一个无敌星星能让你在以后很长的一段路程中平安无事(前提是别傻到掉坑里)。一但发现有一个如此闪亮的砖头,即刻组织一定的人力物力去敲掉,收益绝对能大于成本。这样的砖往往是一个全新进入视野的第三方组件、或者一位有意合作的资深人士、或者一款制作精良的工具,他将为项目接下去的进度提供足够的推力,不仅仅是对项目执行的帮助,也是整个团队士气振奋的关键所在。最终BOSS最后的BOSS,抢走我们(一点也不)可爱的公主的大魔王,库巴老乌龟,他始终那么耐心地将公主绑起来放在自己的房间里,然后站在一座桥上面等着主人公的来到。从剧情的角度看,库巴实在是无比可爱,无论是哪一个关卡,都会充满耐心地迎接剧情……对项目来说的最终BOSS,那无疑就是项目的交付了,虽然说交付往往并不是终点,但是对于项目来说,至少是很大很大的一步,称其为BOSS也没有任何的过错。玩游戏的都知道,库巴有2种打法,其一是慢慢地虐死他,其二是跳到他身后碰一下那个斧头,然后咔嚓一下库巴就掉火里去了……相对的,项目的交付也有两种方法:其一,简单地完成项目的需求,给予一个最低限度可运行的成果,完成基本的交付工作,获得项目的相应报酬。这算是一种皆大欢喜的结果,项目组使用了最合理的人力物力,完成了项目的需求;客户也拿到了其所希望的产品,并为此支付合理的报酬。其二,深入地理解客户的需求,不断挖掘出潜在的需求,完成良好的设计,构架起精美的实现,最后交付一个超出客户期望的产品。也许对于项目组来说,投入了更多的人力物力,却最终只得到合同中协议的报酬,就好像费劲力气折腾死了库巴,最后也就和(一点也不)可爱的公主说上一句话。但是玩游戏的人能从中体会到更大的乐趣,项目也是一样,在收获合同规定的报酬之余,项目组也获得了客户更好的认同,以及客户的忠诚度,为未来的发展打下了一个基础,在将来的某一时机,会得到应有的回报。项目过程在“超级玛丽式项目管理”中,我们将游戏的元素运用到项目,让所有成员可以更直观(相信多数人玩过超级玛丽,也知道这些概念)地理解项目的整个过程,以达到更紧密的团队合作。项目启动之初,项目经理必须能够根据项目的进度安排,与技术经理一起制作出“关卡”和“地图”,一个关卡即一个里程碑,在每个关卡的地图中,要明确标识出“坑”的位置以及大小。随着项目的启动,我们的主角玛丽奥先生将会出现在地图之上。随着项目的推进,先生也不断前进着。从地图上可以轻松地看出,项目是不是快要遇上“坑”了,会是一个怎么样的坑,全团队都可以直观地对项目的现阶段进展进行理解,当有“大坑”出现时,提前作好冲刺准备,当“碎坑地形”出现时,鼓足干劲通往直前……当然,项目并不是游戏那样有着最初静态的设定的。项目必须随着时间的推移不断地拥抱变化,地图也需要实时地进行修改,甚至加入一些通过下水道进入的特殊关卡,甚至是下水、上天等特殊情况。相信熟练玩游戏的开发者们,不会面对游戏的变化产生任何害怕的情绪,相反,也许会激起他们的好胜之心,更加投入地去解决困难。最后,当我们的主角站在桥上,面对着最后的大魔王库巴老好人的时候,团队作出最后的努力,战胜BOSS,解救公主,然后是盛大的庆祝,一个项目圆满落幕……如何让成员更有干劲至此,一个项目的元素基本齐全,项目可以稳步地进行。但是过于稳定的环境,会逐渐让项目成员产生疲倦的心态,效率也会按一定的曲线开始下降。这对于管理者来说,自然是不愿意看到的现象,因此,必须有一定的激励机制,让成员可以随时处在一个较好的心理状态。在游戏中也有一些这样额外的元素,可以引申到项目之中,对成员士气的激励有着非常好的效果:生命蘑菇游戏中最充满传奇色彩的元素,怎么看都不能吃的绿色蘑菇,却有着生命+1的效果。生命蘑菇永远出现在不可见的地方,当你在特定的位置停下脚本,轻轻地起跳,突然就出现了一块砖,一只漂亮的蘑菇落在你的脚边……对于项目来说,生命蘑菇就是对成员额外的努力的奖励,每一个成员都有完成本职工作的义务,但是在义务之外,如果对项目有着卓越的贡献,自然需要给予相应的奖赏,以至最后形成一个良好的循环,每一个成员都会自发地从项目的角度寻找突破口,并自觉地给予更大的产出。生命蘑菇的哲理是“你永远看不到他,但他就在那儿”,只要自身足够努力,他不会离你太远。怪物(们)怪物在游戏中几乎以弱智的形态出现,对玩家没有太大的威胁,但是当一脚踩扁一只蘑菇,一下踢飞一只乌龟,这种快感也是游戏吸引人的重要因素。因此在项目中,作为项目正常进行之余,定期进行总结、交流,提出一些更具挑战性的“子项目”来“玩玩”,确实有助于保持住团队成员的状态。同时,怪物是多样性的,技术的攻关也要具备多元化的特点,让不同职位、不同专长的人都可以平均地得到表现的机会。其他元素游戏中还有很多其他的细节,每一样都能映射到项目中的某个方面,比如:超级玛丽的任何一关,只要按住奔跑键和向前键,在适当的地方起跳,绝对可以毫不停留的冲到终点。但是一但有一处的停留,后面的进程反而会遇到种种麻烦,不是躲避满身是刺的怪物,就是各种大坑需要计算距离来助跑……除了库巴老同志外,每一关卡的最后都有一根旗杆。其实拿到旗杆的满分非常容易,但是无数玩家为了能跑过杆子而孜孜不倦地努力着。但其实这根杆子是跳不过去的……玩家只是看到了这么一丝希望,他们就会不断去努力。初代的超级玛丽不够刺激,变因不够多,用作充满变化的项目不适合?那么看看这个变态版的超级玛丽,想办法再用到项目中去?

我在项目中的笔记1【开篇】

我在项目中的笔记1【开篇】     工作也很久了,说大点,给别人还能吹吹,说自己还带过团队,管过项目,可实际肚子里面装了多少,自己最清楚,能骗了别人,骗不了自己,所以啊,就把自己在项目中的经历记下来,或许是经验,也有可能是教训,还有可能记录的是失败。很阿Q的说,是比不小的财富。     笔记的内容会很杂,围绕的主题是自己的项目经历,其中我会找些项目方面的资料,也会加进来,做为自己的学习笔记。     作为开篇,做个卷首语。

管他的

管他的 “管他的”是经理送我的几个字,那天,开完年会,老大发短信,就发了这个字,喝的晕晕沉沉的,也不知道是个啥意思,正不明白着,老大的电话就过来,说是送我的字,希望我能明白,说实话,我到底还是没明白过来,就倒下了。 之后,再想想,我做事很属于那种犹犹豫豫的人,无乱是好事坏事过来,都会想那么多的可能,越想越怕,越想越不想做,用现在的话就称之为“拖拉”。 我这种就是典型的拖拉人,虽然每天很忙,一直是瞎忙,等有时间的,做的最多的就是睡觉,除了睡觉,就是看google的阅读器,google阅读器里面的一些内容,都是翻墙可以看到的,那些消息看的让我对这个社会没有了信心。做的再多,干的再好,又能怎样,还不是没个房子住,没个车子开。 悲愤感慨了一下,这篇是凑个数,弥补好久没有乱侃一下。管他的,这日子还要一天一天的过!

ManicTime版本更新,有中文版了

ManicTime是一款数据收集软件,装在您的计算机上可以很准确的计算出你做每一项事情所花的时间 ,也可以计算出你离开的时间,比如,你离开计算机出去吃饭了,你离开多久,它就能计算出多久,使用起来很方便。ManicTime很早就知道,因为没有中文版,而且这东西比较占内容,就一直没用。前段时间装系统了之后,想统计一下自己的电脑使用情况,就装上了,用了几个月,一次电脑恢复了系统,没有备份数据,之前的数据都没有了,杯具啊!这次是从9月份开始用的,用到现在,基本上隔一段时间就做一次数据备份,数据很重要。今天电脑开始,就出现有新版本的升级提醒,就update了,完毕之后,高兴了,有中文版了看得舒服的了。汉字,喜欢的很啊下载地址http://www.manictime.com/

win7下面android使用eclipse开发环境部署

前提:使用eclipse肯定必须要安装jdk,配置jdk的环境的。我单独下载了eclipse的版本,没有在之前的eclipse装,我搭建了一个php的开发环境也是这样,单独的eclipse用于php的开发,java的开发用的是myeclipse。前提有了之后,接着需要有android-sdk-windows, 在http://developer.android.com/sdk/ 下载还要有 Android Development Tools (ADT) 通过eclipse插件安装的方式安装,地址:https://dl-ssl.google.com/android/eclipse/关键配置几个环境变量变量名:ANDROID_SDK_HOME 必须这么写值:D: oolsandroidandroid-avd avd模拟器的地址变量名:path值:D: oolsandroidandroid-sdk-windows ools 照这样的的写其他的配置可以参加http://news.congci.com/news/windows7-android-eclipse-adt看看。

ubuntu10.4安装vmware server2笔记

折腾了两天,终于是安装进去到了。把自己在win7下面的镜像都能用起来了。安装过程中也遇到的不少的问题的。1.ubuntu10.4 是在win7下用wubi安装的,分配的空间大小不够  用wubi-add-virtual-disk就可以解决  参考地址:http://forum.ubuntu.org.cn/viewtopic.php?f=159&t=129547&p=17559042.下载vmware server2需要打补丁,才能安装  我使用官方的文件做的补丁,没有下文的这么复杂,如果需要的华,我把自己打包好的文件可以上传上来。  参考地址:http://linuxzh.3322.org/?p=1853.安装火狐浏览器的中打不开控制台,没找到解决办法,有个可以用命令行打开的技巧  参考地址:http://linuxzh.3322.org/?p=1854.补充一点:ctrl+alt+del的替换键ctrl+alt+prt(截图键)参考这些就可以解决掉了

ssh连接linux中文出现乱码

ssh连接linux中文出现乱码解决办法:1.使用管理员账户vi /etc/sysconfig/i18n2.修改将LANG="zh_CN.UTF-8"修改为LANG="zh_CN.GB18030"或者修改为LANG="zh_CN.GB18030"也都是可以

spring定时器小结【1】-TimeTask的实现

TestTimerTask.javapackage cn.joypen.spring.demo3;import java.util.TimerTask;/**TimerTask测试@author JOYPEN@email user.zhaopeng@qq.com@webSite htt://joypen.cn@time 2010-7-22 下午07:26:21 */public class TestTimerTask extends TimerTask { @Override public void run() { System.out.println("enter TimerTask !"); }}applicationContext.xml< ?xml version="1.0" encoding="UTF-8"?>< !DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" > class=&quot;cn.joypen.spring.demo3.TestTimerTask&quot;&gt; class=&quot;org.springframework.scheduling.timer.ScheduledTimerTask&quot;&gt; 5000 5000 class=&quot;org.springframework.scheduling.timer.TimerFactoryBean&quot;&gt;TestMain1.java public static void main(String[] args) { // ApplicationContext ctx = new // FileSystemXmlApplicationContext("applicationContext.xml"); ApplicationContext ctx = new FileSystemXmlApplicationContext("/src/applicationContext.xml"); }

半夜醒来,心痛的感觉.

半夜醒来,心痛的感觉.终于感受到心抽着痛是什么感觉了!好像发送过不止一次了!

redhat9 jdk安装笔记

redhat9上面,默认的java环境是1.3的,用java -version就能看得出来。如果要替换成其他的版本,总结下自己的安装过程。卸载原有的jdk,(网上有种说法,可以让多个jdk的版本并存,我相信,windows可以的,linux一样可以,我需要一个默认的就行,如果某个应用需要其他版本的,单独设置classpath就行了。)1、查看当前jdk的一些包,会出现一些包信息#rpm -qa | grep gcjlibgcj-devel-4.1.2-14.el5java-1.4.2-gcj-compat-src-1.4.2.0-40jpp.112….这里的不是标准2、使用卸载命令rpm -e –nodeps libgcj-devel-4.1.2-14.el5将上面出现的包一一进行卸载3、使用java -version查看,会出现no such file or diretory4、安装jdk,从sun上面下载到的是bin文件,需要修改权限,使用chmod 777就行. chmod 777 ./jdk.bin一路enter,安装结束5、设置环境变量,有好几种设置方法。a、仅针对当前shell的b、针对用户的命令是 vi .bashrcset JAVA_HOME=/home/joypen/jdk1.5.0_22export JAVA_HOMEset PATH=$JAVA_HOME/binexport PATHset CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport CLASSPATHc、针对所有人的命令是 vi /etc/profileJAVA_HOME=/home/joypen/jdk1.5.0_22PATH=$JAVA_HOME/binCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOME PATH CLASSPATH6、让设置生效#source /etc/profile7、再使用java -version查看[root@localhost joypen]# java -versionjava version "1.5.0_22"Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode, sharing)8、编写Test测试class Test{ public static void main(String[] args){ System.out.println("this is a test!"); }}9、javac Test.java10、java Test this is a test!11、结束注:杯具的事情是,最后这样运行,影响了整个环境。

1 2 3 4 7