让没有任何经验的人去开枪,确实是件提心吊胆的事!但是枪不管能不能打响,你必须去尝试,而且要一千次、一万次地去尝试,只有这样才能成为神枪手!
这里假设你是计算机专业的学生,正在参加软件编程培训:
第一步,先想一想PMBOK的十大知识领域是什么?如果想不起来了,去仔细看看图6-1。
第二步,按个儿尝试十大知识领域内容。
1.试试时间管理
当天吃完晚饭后,想一想什么时候预习编程课内容?明天早上几点准备出发去上编程课?几点上编程课?课后什么时间巩固编程内容?很简单,大家都会说这些问题很容易回答。好,想好了,然后请把它们的答案依次写下来,而且要求是准确的时间安排:
①当天晚上8:00—9:00,先预习明天上午要进机房调试的编程内容;
②第二天,早上8:30—8:50,准备一个U盘(保存程序用),准备好编程书本,出发去学校机房;
③早上9:00—9:45,到学校第N机房,进行上机编程;
④晚上6:00—7:00,在寝室内巩固当天的编程知识。
如果你能准确地把上述内容写下来,则恭喜你,你已经会做简单的进度计划安排了。
2.试试范围管理
你能准确地描述第二天上机编程的内容吗?假如你想编一个计算器(见下图)。这是我毕业那年一家软件公司给我出的题,我弄了两个小时,愣是没有弄出来。
先罗列一下这个软件的功能范围:
①能计算加法;
②能计算减法;
③能计算乘法;
④能计算除法;
⑤能在输入框中输入内容,并能删除内容;
⑥能做浮点运算;
⑦实现混合运算功能;
⑧实现MC、MR、MS、M+功能;
⑨实现开根号、百分比、分数功能;
⑩实现出错提示功能。
如果能把该计算器的上述基本功能罗列完整,则说明你学会了软件项目范围的简单管理(项目范围分解和确定)。
3.试试质量管理
假如你确实能把图6-2所示的计算器用代码编写出来,最终效果就是如图所示那样。那么你做过以下几件事情吗?
①检查过代码的语法及逻辑吗?检查过了,这就是白盒测试;
②用计算器界面上的按钮做过所有算法吗?这里的所有算法包括了单一的加法、减法、乘法、除法等,还包括了混合运算。做过了,则说明你做过了黑盒测试;
③你试过一次最多能输入多少数字吗?如10位、12位、15位,最后有没有报错?或者不能再输入了?试过了,而且能得到报错或不能再输入的结果,则说明你做过边界值测试了;
④在计算出错的情况下,如除数输入0的情况下,计算器给出友好的提示了吗?有而且是很准确的提示,则说明你已经做过人机交互友好性测试了;
⑤假设你在机房刚刚编写完该计算器,那么在开发环境下请老师试用了吗?若回答是,则说明你经历了α测试;
⑥假设你已经通过了α测试,然后请几位同学在他们的个人电脑里试用你的计算器。试用结果他们很满意,则说明你已经做完了β测试,该计算器合格,可以正式对外出售了。
一个计算器,若你能经历上述测试内容,则说明你的软件质量意识已经很强了!做出来的东西,已经相当不错了!
4.试试成本管理
假设老师是你的老板,他明确问你,“编写一个商业级的计算器软件需要花多少钱的成本?”请你准确估算一下。
①人工开发成本:5天×200元/天=1000元;
②电费、水费、房租费、饭费、路费、电话费:5天×100元/天=500元;
③老师的管理费:5天×10元/天=50元;
④软件推销费:1天×450元/天=450元;(假设运气不错,一天就卖出去了,而且只卖一套)
⑤维护费:总成本5天×200元/天=1000元;(假设一年维护5天次)
⑥ 税金:按照普通服务类税费5%收取。假设销售一套该软件最终价格是5000元,则税金为5000元×5%=250元。
把①~⑥的成本进行累加:1000元+500元+50元+450元+1000元+250元=3250元。这就是该计算器从开发到变成商品,最后销售获利的所有成本。哇,要是你能把上述内容想全,则说明你可以成为公司级财务决策人员了!要是你能把前三类想到,那么你可以做项目经理了。
5.试试沟通管理
还是做计算器,在开发这个软件的过程中你做过如下类似的工作吗?
①你询问过周围的人,特别是你认为的潜在使用该计算器的客户,希望能有什么功能吗?如果没有咨询过,就直接开发该软件了,那么问题就大了!很可能没有人愿意使用你开发的东西。(事实上微软公司已经给我们开发了)
②在开发过程中你跟你的老师沟通过设计方案吗?或者请老师评审过该软件?如果没有,将会很糟糕!
③开发完成后,你跟潜在用户,假设是你的同学讨论过该软件是否好使吗?如果没有,把该软件直接卖给用户,很可能不是你的老板要倒霉了,就是你要被炒鱿鱼了!
假如在开发该软件过程中,上述三个问题,你的回答都是“是”,那么说明你有比较强的沟通意识!
6.试试风险管理
还是做计算器,别小看计算器,也是需要风险管理的!
①在做计算器前,想过卖得出去吗?假设老师要求你必须把所编写的计算器卖出去一套,不然你就要饿肚子了。做出来的计算器卖不出去就是风险,因为你要饿肚子了,你将拿不到一分钱的工资,还白忙了一场!也许,能不能卖得出去这个问题,应该是你的老师或者是雇用你的公司想的事,但确实是跟你紧密相关的一个风险,而且你也应该想到!除非编写这个软件纯粹是为了练习。
②计算器在规定的时间内能编写完成吗?完不成,就是风险!想当年我在两个小时内没有编写完成这个无聊的计算器,就没有被那个公司录取!有风险,就有代价!
③计算器的需求你搞清楚了吗?也许你开发出来的是图6-2所示那样的计算器,你还觉得不错!但是,客户要的却是这样的计算器。
简直要发疯,怎么会这样?说好了,不是做计算器吗?怎么变成了科学型计算器了?是的,这样的事情将会在很多的软件项目中出现——因需求模糊而导致的开发风险!
还有很多关于计算器的开发风险,你能想到一些吗?如果你能想到三种以上(包括刚才举例的),则说明你对风险管理意识是很强的!
7.试试人力资源管理
人力资源管理更多的是团队管理,所以,把你的老师以及你的同学看作一个软件项目团队吧。
老师准备找人做计算器软件。他首先想到的是:用谁呢?在一个班级里,高手也就两三个人。很幸运你被选中了,并对你提出了明确的任务要求,同时告诉你干好了有奖,干坏了要罚。于是,你先去图书馆对有关计算器方面的编程知识进行了充电学习,然后开始设计,并敲代码。当你碰到困难时,老师能在第一时间出现,并鼓励你。你的两个同学是你的软件测试人员,当你的软件编写完成后,请他们帮忙测试。最后,你很顺利地提交了计算器软件,并得到了老师的奖励。
上面的过程,就是人力资源管理的主要内容。
8.试试采购管理
要编写计算器软件,得买一台电脑、一套VS.Net 2015,还得买一套桌椅,采购清单如下:
序号 | 名称 | 数量 | 单价(元) |
---|---|---|---|
1 | 电脑 | 1 | 6000 |
2 | VS.Net 2015企业版 | 1 | 50000 |
3 | 桌子 | 1 | 200 |
4 | 椅子 | 1 | 80 |
合计 | 56280元 |
然后,制订采购计划,必须在两天内把所有的设备采购到位,以保证计算器软件按时完成。接着,就按照清单和采购计划,获取资金,实施采购任务。
一个典型的采购管理案例完成了,看来跟平时在家买菜、买米的过程有点类似。
9.试试干系人管理
这个计算器软件的项目干系人包括你自己、你的老师、你的同学,还有最后买你软件的那个客户,这些是主要的相关人。当然,还可以包括设备供应商,但是在这个软件项目里是次要的相关人。
明白了吧?所谓的项目干系人,就是指跟软件项目有关系的一帮人,而且你不但能识别他们,还要学会区分主次。
10.试试整合管理
如果上面9部分知识你都试会了,而且能试得不错,那么做最后一个整合管理过程也不会太难。所谓的整合管理就是把上面的9部分知识进行综合应用,整体考虑,统一安排,实现软件项目的有序执行。如你要实施这个计算器软件项目,必须制订整体实施计划,在制订计划过程中,必须借助实施范围管理内容确定工时;同时,根据实施任务确定的工时,确定软件人工开发成本;在估计整体进度时间安排上,还要考虑质量管理所带来的时间要求,考虑采购时间安排;这些采购设备成本是否需要纳入软件开发成本之中,也需要统一考虑。风险的发生,会影响开发成本、进度计划、开发质量等。所以,如果你能对上述问题进行综合考虑,并按照计划实现软件项目开发,那么你就初步掌握了整合管理知识的运用。
用计算器软件项目来考验初学者,是小试牛刀。别看计算器软件项目很小,但是在软件项目管理过程中,却麻雀虽小,五脏俱全!能不能成为软件项目管理高手,更重要的是要有主动管理意识,能时刻去主动实践,主动提高,那才是王道!千万不要小看了!
当彻底领悟了PMBOK的方方面面,并能灵活应用;或者面对上亿甚至几十亿级别的软件项目,能轻车熟路、游刃有余时,那么你将成为真正的战神!显然,我们需要这样的宏观管理者。
1.要把无意识的管理行为转化为有意识的管理行为
虽然从无到有只是一字之差,但是却实实在在代表着软件项目管理水平的差距!我们平时上学、工作都按部就班,到点了该起床时就起床、该吃饭时就吃饭、该出发时就出发、该上课时就上课、该下班时就下班、该回家时就回家,一天到晚,看来也井井有条。这是在条件约束下的习惯性、被动的自我管理。哪天老板一高兴,突然给你放几个礼拜的长假,你很有可能早上睡到太阳照屁股了,还不愿意起床!甚至黑白颠倒,白天睡觉,晚上兴奋地过夜生活。这个现象我觉得从人的本性来说,也情有可原。平时都被约束着,一旦自由了肯定想放纵一下的。但是,总有一部分人,不管日常工作还是节假日放假,都保持着良好的生活节奏,不会大起大落,也不会黑白颠倒。这些人相对前者,有着很强的自我约束力,也有着很强的时间观念!他们在没有受约束的情况下,也能保持正常的生活规律!这就是差距,这就是主动和被动的区别。
作为高难度的软件项目管理,我们自然希望有主动管理意识的人才。当软件项目需要计划时,能及时有效地安排;当碰到风险时,能灵活应对;当质量出现问题时,能用火眼金睛及时发现,并加以解决;当成本、需求失控时,能力挽狂澜……尤其是当软件项目还没有启动时,甚至能预测未来的发展趋势,并做足对策。战无不胜的神人,是我们在软件项目管理中追求的极致目标。
然而,要从无主动意识转为主动意识很强的高水平的管理者,是需要经历很长时间的实践才能磨炼出来的。这要求我们有足够的耐心,去学习、去尝试、去挑战。
2.站在巨人的肩上
“如果说我比别人看得更远些,那是因为我站在了巨人的肩上。”——牛顿
大科学家牛顿告诉我们,要善于利用技巧,使自己的成功来得更容易些。如果你是一位正在从事软件项目管理的人员,你可以把日常的管理工作跟本书的方方面面进行对照,在这里你将得到很多迷人的“贝壳”。
3.反复回顾
我记得自己在2010年考取高级信息系统项目管理师后,又对相关教材至少进行了三次通读,每读一次,都有新的收获。同时,跟自己的实际工作进行对照,使自己的信息化管理水平突飞猛进(主要是意识领域变化最快,能清楚地知道想要做什么、应该做什么、在做什么)。
4.学会应变
学管理类的知识千万不可死记硬背、生搬硬套,而要灵活应用。原因有二:
其一,软件项目管理经验是受现实条件约束的。如20世纪六七十年代,硬件设备的功能极其有限,如果在那时采用面向对象的管理方法去要求软件项目开发,则会让人崩溃的。又如同样的软件项目进度计划,计算器软件项目的进度计划可能需要简单罗列几条即可;而大型软件项目的进度计划不但要求有整体概要计划、分项计划,还要有详细的阶段性进度计划,甚至个人计划。
其二,软件项目管理经验是人总结出来的,存在某些方面偏差的可能性。所以,学习软件项目管理知识,要带着有色眼镜去看,而不能照搬照抄。
本文分享自 博文视点Broadview 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!