首先看一下《微软团队:成功秘诀》分别在china-pub和豆瓣上的书评把:
china-pub
本书叙述了吉姆.麦卡锡带领微软Visual C++开发团队的故事,告诉读者如何构建一个优秀的软件开发团队,如何在一段时间内成功地开发一个软件,而且此后不断地完成新版,并一直受到市场的肯定。他将自己思考的结晶和种种惨痛的教训归纳出54条言简意赅的法则,从产品设计、程序开发到成功的营销,无所不包,在微软,本书是每一位项目经理的必读圣经。 |
豆瓣
作为一位经验丰富的老手,作者将自己思考的结晶和种种惨痛的教训归纳出54条言简意赅的法则,从产品设计、程序开发与构建、准时推出产品,到成功的营销,无所不包。您将会发现本书就像软件开发本身一样迷人有趣。本书是为软件设计者、开发人员、营销人员、技术主管,以及所有亟欲一窥软件开发奥秘的人士所写的。 |
法则一:
Establish a shared vision 建立一个共同的目标
在团队总建立共同的目标是非常重要的,团队中的成员只有当有了共同的目标之后才能有归属感,才能对憧憬中的产品产生荣誉感,才能在管理中更好的调动各个成员的积极性,从而将团队推向正轨,让产品如期发布!
“团队中每一位成员都必须非常清楚我们要做什么、成品会是什么模样、基本的产品策略是什么、什么时候必须完成。凡是与共同目标相冲突的看法都必须转化成一致,而不是把它消音。和谐的共识是绝对必要的,否则软件不可能做得好,很多事会复杂化而难以收拾。”
所谓目标是共同的希望,对未来的事情所描绘出来的景象,比方说作者在给VC++项目组开会时候的描述“Visual C++是最伟大、最值得骄傲的产品,你们难道不这么认为吗?我知道我们可以如期完成它,而且用它来给对手一个迎头痛击,不只我一个人这么想吧?我们将创造微软的明日世界,我们会大有作为的,不是吗?”其实他已经给VC++了一个很好的目标,他让成员们觉得,我们都是在伟大事情,一但在团队中形成了荣誉感,你会发现你的团队将会空前的团结!
法则二:
Get their heads into the game 使大家主动投入
“如果每个人都在认真思考如何使团队更有效率,这个团队自然就比较容易表现出高效率,反之亦然。”让每一个人都参与进来,需要管理者能够调动每一个人的积极性~让大家都主动的去思考问题,为产品主动的出谋划策。
需要管理者去倾听每一个愿意说的成员的言论或者主意,需要判断的这些言论或者主意的能力,面对好的想法,也许它不切实际,但是也不要一棒子打死,而是要进行诱导,让他下次可以提出更好的更切实际的想法来。
鼓励创新而非抹杀它!
为什么组员会怠于思考或是不敢说出想法?
• 因为他们认为没有人会重视他的想法。
• 因为他们认为该由别人告诉他该做什么事。
• 因为他们认为这样做没有什么好处,只会使老板皱眉头罢了。
• 管理者只管发号施令而已。
法则三:
Create a multi-release technologyplan 建立开发多版本的技术规划
授权共决,其实就是全民参与,无论是对待成员的新想法还是对待项目的技术规范时都使用全民参与。(这样好吗?安全吗?)
法则四:
Don't flip the bozo bit 别做笨蛋
软件产业中最重要的事情是“让大家思考!”。
“在微软我们把这种人叫作b o z o,意思是笨蛋。永远没有人会注意笨蛋的所作所为,即使他真的有贡献,他也不会有任何份量。笨蛋当然是不可信任的,你对笨蛋惟一的期望是但愿他不要搞砸事情。
在我的部门里,这种德行是不允许的。我要每一个人都全心全力地投入,每个人都得有贡献,每一个人都可以侃侃而谈我们的产品─如何在市场上竞争、何时出新版本等等,而且每个人对产品的看法都一致,不会众说纷云。
将自己的意见强行加诸于他人者,其实是笨蛋。”
需要随时防范组员出现“江郎才尽”病!
法则五:
Use scouts 刺探敌情
必须有一个人或者有一些人去观察未来的发展趋势,预言新技术。这个角色是非常重要的!
“这次他们学乖了,事先派了两位最优秀的组员担任“侦察员”,做了一次彻底的技术调查和完善的规划,终于在危机爆发之前将之化解。”
““侦察员”就是为科技的改变而准备的,如果你决定永远停着不动,那你不需要“侦察员”。”软件公司中如果没有这个角色还叫软件公司吗?
法则六:
Watch the ratio 注意人员的组成比例
“基本原则是开发人员和品保人员的比例不超过2:1”这个是作者为我们提出的建议,而在SUN这个比例被修改为1:1,甚至是1:2,可见在项目中品保人员比开发人员更加重要!
“其实真正负责软件如期完成的是品保人员。当进度落后时,我们第一个要看的是品保人员:人数够不够?有没有充分授权?有没有确实参与设计?进度上能不能跟开发人员配合良好?能不能一有问题出现就立刻提出警告?品保人员和开发人员的理念一致吗?是不是跟开发人员过度亲密而放水?”
“一个健全的软件开发团队一定要符合上述的人数比例原则,平均每一位品保人员所支援的开发人员不超过两位。”能做到吗?至少在我们公司这个,基本上,很难!
法则七:
Use feature teams 运用特色监督小组
融入任务(I d e n t i t y) 充分的授权和责任感,使人具有控制权和影响力,愈能使自己与任务融为一体。
建立共识(C o n s e n s u s) 共识是特色监督小组的气氛。
地位平等(B a l a n c e) 由于特色监督小组的每一位成员都是不同的背景、专长,不同的工作角色和不同的观念,没有谁比谁优越的情形,所以每个人的地位都是平等的。
权威是来自学识,而非职位。
在一个理想的项目中,基本上有两种角色存在:创造者(c r e a t o r)和推动者(f ac i l i t a t o r)。创造者是一些专业人员,例如开发程序、行销、软件品保和文件撰写;而推动者则负责凝聚团队共识和维持最佳的开发环境。
法则八:
Use program managers 项目经理的职责
项目经理是软件开发团队的一份子,他的职责是:
• 领导大家定义出一个成功的产品。
• 引导大家对产品注入深切的期望和信念。
• 带领团队将理想实现,变成可预见的产品诞生。
项目经理应该要有技术的背景,而且必须在两种层面非常专精:一是对开发产品所使用的技术很熟悉,二是拥有建构软件的技术领导能力。项目经理必须精于哄骗、驱策、鼓励、要求他的团队做出最好的软件和表现出最好的工作效能,他清楚知道软件制作过程中每一项的投入和产出细节,他必须懂得用最好的方式定义产品和维持健全的技术。最后,项目经理还必须是团队的发言人,面对媒体、客户、以及整个组织。
项目经理是软件开发的核心人物。
你想了解这个团队?看看他们的软件就知道了,反之亦然。
团队精神:
1. 一群人同心协力,集合大家的脑力,共同创造一项智能财产。
2. 个人的创造力是一种神奇的东西,源自于潜在的人类心智潜能,它被情感丰富,而被技术束缚。
3. 一群人全心全意地贡献自己的创造力,结合成巨大的力量。结合的创造力由于这一群人的互动关系、彼此激荡,而更加复杂。
4. 这种复杂的情况之下,领导变成像是人际互动的交响乐指挥,辅助并疏导各种微妙的人际沟通。
5. 在团体中的沟通和互动是正确而健康时,能够使这一群人的力量完全结合,会产生相加相乘的效果,抵销互斥。沟通顺畅能使思想在团队中充分交流传达。
6. 团队工作的品质比时程更重要,而作品的伟大是需要对“团队精神”特别加强,才能达成。“团队精神”可视为个别成员精神的平均值,而个人的精神( p s y c h e)则是使他能感觉、能思考、能推论的内在力量。
7. 倘若忽视了“团队精神”,则只会有平庸的成果。
法则九:
Be an authority , not an authority figure 要权威,不要霸权
权威的目的是让每一位团队成员都有自己的专业权威,和团队的专业自信,这才是管理者真正的权威。
竞争
创新无处不在,绝对不可以停滞不前!
如果你无法时时掌握时代的脉搏,如果你怠于响应周围迅速而剧烈的变化,特别是竞争者的行动,如果你不能持续地创新原有的技术,永远保持领先,那么别人马上就会趁虚而入,取代你而成为市场上的优胜者,掳获顾客的心和他们的荷包。
确定了你的情况之后,应该先考虑采取标准步法。
标准步法:
法则十:
Alone? A market without a competitor ain't 没有竞争对手?未必是好事
(注:任何人都有敌人!)
法则十一:
Dead beat? Break out of a feature shoot-out 竞争者紧追不舍?推出创新的功能特色(注:想法设法的压制你的敌人!)
法则十二:
Behind? Ship more often with new stuffs 落后竞争对手?加大投入,更快推出新版本(注:沉下心来,夺回领地!)
法则十三:
Ahead? Don't ever look back 领先竞争对手?不要回头(注:挑战自己,战胜自己!)
准时地、经常地推出新产品是软件开发产业中最大的金科玉律。
法则十四:
Take the Oxygen along 保持新鲜
快速变迁的节奏是信息社会的常态,你必须快速前进,否则就落伍了。
顾客
想方设法的让顾客迷恋上你的产品!
法则十五:
Enrapture the customer 给顾客惊喜
顾客最低的希望是你能够理解他所感受到的痛苦经验。
法则十六:
Find the sweet spot 寻找靶心
法则十七:
It's a relationship, not a sale 与顾客建立关系,而不是卖产品
法则十八:
Cycle rapidly 加速产品推出的周期
设计
软件的设计─每一位团队成员都必须参与─这表示团队整体对功能需求的了解程度。
软件设计的第一要诀是:将全团队中最好的想法组织起来,去满足顾客内心最深处的需要。(带领团队做案例研讨,带领大家思考如何解决一切的疑难,让每一件事都在该做的时候做好。)
法则十九:
Go for greatness 追求卓越
法则二十:
State your theme 设定主题
重点是产品的功能特色不能像是一袋子随便抓过来的东西,应该把与主题无关的东西都删掉,而且你的目标也必须符合统一性(unity of purpose)才行,这一点是与主题互为一体的两面。将资金投注在这个目标上,让所有的人都完全明白这个目标,并且为这个目标努力,做得到这些的话,你的产品就会完全包含这个目标。
法则二十一:
Minimize dependencies 不要倚赖不确定的事
法则二十二:
Propitiate the gods 平息顾客的愠怒
法则二十三:
Portability is for canoes. 软件的可移植性
法则二十四:
Design time at design time 在设计时将时间因素考虑在内
开发
法则二十五:
Don't accept dictation 拒绝不合理的命令
千万不要一味的唯命是从,在必要的时候拒绝!敢于拒绝!
如果在上位者不让真正执行任务的人来估计所需的进度,那就是专制。
开发进度表应该由下而上来拟定,每一个人负责自己的工作,也负责设定它的时间表,负责准时完成工作。责任和充分授权是一体的两面,二者兼备才能拟出合理的开发计划。一种非常有趣的进度估算方法!
法则二十六:
Now go play 把工作当作游戏吧
法则二十七:
Be like the doctors 用医生的方法
当病人已经药石罔效时,医生通常会对病情有所保留,避免病人太过悲观或恐惧,并且尽量鼓励病人保持希望,最好能让病人有个期望完成的目标。
医生绝对不会斩钉截铁地断言什么医疗行为一定会有什么样的结果,反而是以
一种自在且充满信心的口吻说:“试试看吧,一切都还没有确定呢。
另外一件应该向医生学习的事情是,即使是再小再简单的医疗行为,都带着几分风险,所以医生会说:“当然,任何情况都是有可能的,治愈率再高我都不能跟你说百分之百没问题。
法则二十八:
Remember the triangle:features, resources, times 软件开发金三角:特色、资源和时间
作为一位软件开发的领导人,你得集中注意力在三件事情:资源(人和钱)、特色(产品与其品质)和时间。这三件事是软件开发的核心,其他的都是外围。
资源、特色和时间是三角形的三个边,任何一边的变化,都会影响到另外一边或两边。所以如果时间落后了,去看你的三角形,看看对特色和资源的影响;当有人谈到可以增加什么功能特色时,你得立刻谈起时间和资源,以显得你思虑周
详反应敏捷。所以,管理者的第一要务是把这个三角形放在心里,随时利用这个模式来思考问题,你会发现答案都在这个三角形内。
法则二十九:
Don't know what you don't know 不懂别装懂
法则三十:
Don't go dark 建立适当的检查点
法则三十一:
Beware of a guy in a room 留心没有检查点的组员
法则三十二:
If you build it, it will ship 软件要经常建构,就能顺利推出
法则三十三:
Get a known state and stay there 掌握实际情况
法则三十四:
Use ZD milestones 零缺点里程碑
零缺点不代表软件中没有错虫,也不表示没有遗漏的功能,而是指团队的成品达到了事先规划的品质水准,也经过测试验证,就是零缺点里程碑。
法则三十五:
Nobody reaches the ZD milestone until everybody does 所有组员一起到达零缺点里程碑
法则三十六:
Every milestone deserves a no-blame postmortem 完成每个里程碑后,心平气和地检讨
法则三十七:
Stick to both the letter and the spirit of the milestones 把握里程碑的实质意义与精神
法则三十八:
Get a handle on "normal" 培养正常的团队运作
法则三十九:
A handful of milestones is a handful 里程碑不宜太多,才好掌握
法则四十:
Every little milestone has a meaning (story) all its own 每一个里程碑应有专属的宗旨
法则四十一:
Look for the natural milestones 寻找自然出现的里程碑
以下是六种自然出现的里程碑:
1. 产品设计趋于稳定。
2. 中间产品被明确定义。
3. 团队真正了解要花多少时间和努力才能完成目标(通常这会发生很多次,而且多半是进度落后的时候)。
4. 产品设计被删减,或是资源增加,或是进度延误,
或是三者同时发生。
5. 开发活动停止。
6. 产品进入除错或稳定阶段。
法则四十二:
When you slip, don't fall 如果滑了一跤,别就此倒地不起
- 进度落后与道德无关,请切记!
- 不要隐瞒事实。
- 化阻力为助力,利用进度落后来激发效率。
进度落后不是问题,被进度落后吓倒才是问题。进度落后并不代表产品的难度太高而无法开发。但是如果进度已经落后却未被察觉,那表示组员们不思考、不观察、不讨论,此时组织可说是濒临瓦解了。
善用你的迟延,这是最能看出你领导能力的时候,此时也是组员最脆弱也最需要你的时候,在这个时候组员最能把你的话听进去,此时组员的学习能力最强。如果你在办公室内激动得大喊大叫,指天骂地,那就错失了赢得组员的心的大好机会。你必须说:“O K,进度落后了,让我们来看看问题出在那里?⋯⋯今天下午五点在会议室,我们要检讨每一个细节,问题一定要设法解决!”当组员了解到你不是企图卸责或算帐,而是真诚地想解决问题,就会乐意把一切开诚布公地摊开来谈,大家一起研究问题,从各种角度去设法克服问题。“进度落后”反而变成大家宝贵的成长经验。
法则四十三:
Don't trade a bad date for an equally bad date 不要因为进度落后而更改最后期限
进度落后的程度是与计划的不确定性成正比。
法则四十四:
After a slip, hit the next milestone, no matter what延误了这个里程碑,就一定要如期到达下一个里程碑
我们必须明白,每一次的延误,就是你和团队信心的一次受挫,所以,延误这个里程碑时,最好的补救办法就是无论如何绝不延误下一个里程碑。团队必须挽回对自己的信心和对理想的承诺;因此,下一个任务必须准时完成的意义更重大,团队需要重建信心。
法则四十五:
A good slip is a net positive 把延误当作宝贵的学习机会
法则四十六:
See the forest 见树亦见林
如果本项目有六个模块,各有9 0 %的部分已经完成,那么你已经完成了5 4 %。每个模块完成了九成,听起来是个挺不错的成绩,但不能当成整个项目完成了百分之九十,它们之间不是相加的关系。你必须“见树亦见林”。如果任何一个模块完成比率是零,那么整个项目的完成率也是零。
法则四十七:
The world changes, so should you 世界在变,所以你也得跟着改变
虽然你想做些改变,你未必有勇气实行。
伟大的软件必定只有一个中心思想,至于品质能够实现到什么程度,依赖领导者能否带领团队融合无数个小而重要的改变。如果你能在混乱中辨识出对项目最有意义的改变,并且引导团队去适应它,将它融入团队的精神中,将来就会在产品中表现出这项改变,呈现在顾客眼前。
法则四十八:
Violate at least one sacred cow 关怀多于要求
法则四十九:
Beta is not the time to change Beta测试版不是修改功能的时候
法则五十:
The Beta is for spin development Beta测试是暖身活动
法则五十一:
Triage ruthlessly 急救术
法则五十二:
Don't shake the Jell-0 小心保持软件的稳定
法则五十三:
Compete with the superior story 伟大的软件应该有一个伟大的故事
法则五十四:
Create a winning image 建立赢家形象