技术

IT这个行当之需求与时间管理 golang结构体和包中的类型或基础类型定义方法 golang中结构体的初始化方法(new方法) 项目管理总结 python函数式编程之-装饰器(Decorators) python文件批量处理 Go,互联网时代的C Python推导式演变(Comprehensions) 项目管理感悟 golang学习简单例子 了解GitHub工作流【译】 PHP Socket的使用 Apache 日志文件格式及简单处理 Python脚本--下载合并SAE日志 PHP命名空间及自动加载 基于CSS3实现尖角面包屑 部署Ceilometer到已有环境中 OpenStack Ceilometer Collector代码解读 OpenStack Ceilometer数据存储与API源码解析 OpenStack Ceilometer中的Pipeline机制 OpenStack Ceilometer Compute Agent源码解读 学习Python动态扩展包stevedore 学习Python的ABC模块 Python包管理工具setuptools详解 OpenStack Horizon 中文本地化 WSGI学习 在虚拟机单机部署OpenStack Grizzly 学习使用python打包工具distutils python包工具之间的关系 给OpenStack创建Ubuntu镜像 OpenStack Grizzly Multihost部署文档 为什么使用pip而不是easy_install HTML中meta标签viewpoint的作用 交互式编程-IPython 页面提速之——数据缓存 给OpenStack创建Win7镜像 Ceilometer的命令行使用 部署一个ceilometer-horizon项目 给OpenStack创建Windows XP镜像 几种企业的存储系统 概念模型、逻辑模型、物理模型的区别 五中常见的开源协议整理(BSD,Apache,GPL,LGPL,MIT) OpenStack监控项目Ceilometer的一些术语 VNC和远程桌面的区别 OpenStack Ceilometer项目简介 虚拟化与云计算中KVM,Xen,Qemu的区别和联系 调试和修改OpenStack中的Horizon部分 JavaScript变量作用域 kanyun worker原理 kanyun server服务 在OpenStack中部署kanyun kanyun的api-client命令 sae下的python开发部署和一个简单例子 OpenStack Nova内部机制 PHP可变变量 JS中防止浏览器屏蔽window.open PHP操作Session的原理及提升安全性时的一个问题

标签


项目管理感悟

2014年02月20日

走上管理岗位后,也曾在黑暗中痛苦地摸索过相当长一段时间。多次碰壁之后,总结出了一套项目管理的基本方法论,用利益相关者分析的方法去看待周围形形色色的人和事。经验告诉我们,优秀的管理者离不开对人性的深刻洞察,一定要从技术为中心转向以人为中心。本文虽然谈管理,但不仅限于管理,如果你也曾对人性怀疑过、失望过、百思不得其解过,或许可以这篇文章中找到答案。

黑暗中的明灯

“碰壁之后再看理论,一个字一个字、一句一句的去分析咀嚼,会觉得那真是黑暗里的一盏明灯,一下子点出你为什么那么痛苦,因为你就是没掌握理论,就是忽视了客观规律的存在和作用。”
  • 技术人攻略:你在项目管理上有很丰富的经验,请谈谈怎么才能做好管理? > 怎么叫经验丰富呢,经验丰富就是遇到好多坎儿,被绊了好多次,每绊一次就长一次智慧,这么着就丰富了。你对一件事的判断为什么会准确,那一定是以前错误地判断了很多次,有过很多次深刻的教训,并且每次错误的判断都付出了代价,最后你知道了。这时候再遇到问题的时候,就能从很多很多方面有深刻的体会,就判断得精准了。

我刚做项目管理的时候,也有过一个挺痛苦的过程,好长时间都不理解,为什么我一心一意关心别人,别人却跟我对着干,我一心想让项目成功,偏偏有人暗中搞鬼,甚至想让它失败,或者是根本就不关心。后来发现真的不是你对别人好,别人就好好给你工作,你把心掏给人了,可能别人照样开小差,自己另干一摊,这样的人大有人在。我就开始思考这是为什么,但总想不清楚是怎么回事。

后来开始学习项目管理知识,工作也已经有了4-5年工作经验了,PMP、IPMP、Prince2、ITIL,基本上能叫出名的项目管理理论我都学过,目前打算攻读了项目管理工程硕士。好多人感觉这些内容没什么意思。但如果已经在实际工作中碰过很多钉子,再学理论的时候就真的会豁然开朗,觉得理论说的句句都是至理名言。要是没碰过钉子,只会觉得那就是一句很普通的话。碰壁之后再看理论,一个字一个字、一句一句的去分析咀嚼,会觉得那真是黑暗里的一盏明灯,一下子点出你为什么那么痛苦,因为你就是没掌握理论,就是忽视了客观规律的存在和作用。

项目管理里有个很重要的概念:做项目一定要进行利益相关者分析。要干好一个项目,项目里的人真的不是因为你对他好就好好干,当然你对别人不好,别人肯定不听你的话。项目团队成员起码要对你这个项目经理很尊重、很支持,觉得你这个人人品不错,这是最基本的,但即使你和大家都打成一片,表面上看关系融洽,可还有很多人有自己的小算盘,比如有的人想私下里干点什么活,就对你分配的任务尽量推脱;有人想跳槽,希望能通过项目增长经验,希望分配到的任务正好是可以增加经验方便以后跳槽的;还有的人觉得给的钱不多,给的待遇不好,也没有必要给公司卖命等等,大家思想都很活跃,人家想什么你不知道,肯定管不好。我是那种把工作看得特别重的人,觉得工作就是第一位的,但后来我发现很多同事是生活型的人,工作对他们来说主要是一个挣钱的途径,能对付过去就行了,更重要的是要生活好,不要加班,不要因为工作在他的精神生活上有任何的压力。说到底这就是不同的人价值观、兴趣、生活工作方式形形色色,在项目里的利益各不相同,有的人贪图舒服,想得到舒服的利益;有的人不希望分配太多工作,因为还得省下时间干点自己的事儿。这都是拿不上台面的,但是实际上这些情况确确实实存在,并且都会对你的项目产生重要的影响。

管理软件项目的核心有两个,一个是管需求,另一个就是管人。你一定得关注你的团队、你的上级、你的领导、你的客户、你的供应商,以及下包商,还有相关监管部门和合作伙伴,所有跟项目有关的这些人脑子里想什么,你得关注,你得琢磨。每个人都有自己的小算盘,每个组织、机构更是有自己的小算盘。通过平时和他们多方面的接触,在接触的时候观察他们。首先你的头脑里要有一个概念,给项目里所有的人定位,这些人究竟是支持你的、对你中立的,还是反对你的。分析的基础就是想清楚他们在项目里想获得什么利益,这个项目会不会对他们的利益有损害。

一般情况下,你的直属领导应该都是支持你的,但也不一定。如果你非常出色,能力和你的直属领导差不多,那他可能就就不会支持你,甚至暗中反对你。比如说做项目的时候把优势人力全都调走,给你一些没有经验的人,项目进度非常紧,他釜底抽薪还在旁边吹毛求疵,看你的笑话。还有就是相关合作伙伴的关系,比如你的项目是为客户开发一个新系统,替换老系统,你需要和老系统的技术人员及项目经理沟通。既然你是取代他的,他会支持你吗?有可能他表面上看着跟你很热络,但在真正提供支持的时候,他是有所保留的。并不是说一定会这样,但这都是有可能的,人家给你钉子吃,你别想不通,得想办法。

所以你要分析所处的这个环境,你接触到的人在这个环境里的处境如何,他能从这个项目里得到什么东西。如果你的项目成功了,对他的利益是有损害的,可能他就会暗中反对你。还有就是你项目组的成员,通过你的项目,是不是能得到自己的利益,比如能拿到项目奖金,能得到领导的表扬肯定,能有晋升,能学到更多东西,然后项目安排得还合理,不用老加班甚至干通宵,这样他就觉得在承受能力之内,得到想要的,他就会满意。

所以做管理就得琢磨每个人的想法,每个人都有自己的利益诉求。古话说得好:“无利不起早”,“天下熙熙,皆为利来;天下攘攘,皆为利往”。你困惑为什么对人这么真诚,别人对你却这样,就是因为你没有考虑到大家的利益。做一件事一定要考虑到方方面面的利益,做这事儿没有利益,别人是不会支持你的,如果这件事做成了对人家有伤害,他一定会反对你的,那这种反对可能不在表面上,可能是暗中的。所以说,关心别人就是关心自己,你就得想别人的利益。如果不能扭转矛盾,起码能明白怎么回事儿,起码能预测你在哪些方面会遇到障碍。不要把这种矛盾激化、扩大,一定要想怎么化解、回避或者是用各种其他的方式把矛盾减小减轻,对你要做的事儿减到一个更小的伤害,甚至更优秀的做法是能把对立的人争取过来。

最后这条咱们一般人很难做到,能做到的人一定是能做大事儿的。例如电影里一个很优秀的指挥官,知道下面的人背叛了他,却还是在关键时刻挽救了他的生命,让这个人从此后就被争取过来了。为什么说能做大事儿的人心胸宽广呢,就是说你背叛我了,甚至你要杀我,我还能救你。三国里,有个敌方的将领把曹操的儿子杀了,但要平天下需要收服这个将领,所以曹操就把这种杀子的仇恨埋在心里,仍然重用他,但是曹操平时一看见这个将领心就痛,于是避免直接面对他。曹操为什么是枭雄啊,他能忍常人不能忍的事儿,这么复杂的利益冲突,曹操能忍,所以他能干大事儿。我觉得能干大事儿的人,就得有这种本事,得把特别尖锐的矛盾化解,而且能把它转化为支持你的力量。一般人都没这种本事,但你要明白这是为什么,如果有一个理论的支撑,你就会很坦然的看待这一切事情,你就不会总问为什么会这样啊,我怎么总遇到这样一些人啊。在你明白了这一切事之后,就会觉得这很自然,就会想着手做一些什么事情,来让事情往更好的方向发展,化解这些矛盾,化解这些对立。如果创业做一个公司,你所面对的人和利益方就更多了,比如说媒体、政府机构、社会的方方面面,层层面面等等,如果媒体和公司对立,那你得想怎么扭转。你做一件事儿越大,涉及到人的利益越多,所有这些人的利益要怎么摆平,如果摆不平就做不好这件事。大家注意到没有,一些非常成功商界领袖,他们为人都非常地低调,为什么?就是他们时时处处在考虑别人的感受。

以人为中心

“技术出身的人脑子里容易全是技术,缺少管人的那根弦儿。从技术为中心转到以人为中心,这是一个很大的转变。”
  • 技术人攻略:你什么时候开始从技术转型做管理?有没有遇到一些印象深刻的事儿? > 今年是我从业第5年,2012年作为项目经理开始独立管理项目,是给国家十二金工程之一做税务软件,项目总共有60来个人,金额大概2千万。

我之前做系统设计,完全是技术背景,从没管过人。一般项目经理都是系统设计人员升上去的,当时正好那个项目我是主要的需求分析和系统设计,我设计完了得给人安排任务,所以就让我管项目了。当时我们项目组好几个人都挺有特色的,有一个小伙子特别固执,记得我是花了好几个下午,每次好几个小时,跟他掰开了揉碎了讲解一些技术问题。他对此有不同的看法,经过我的一番苦口婆心的努力,他表面上同意了,结果功能开发完成之后,发现他私自在项目里用了自己的一个控件。公司肯定是不允许的,因为控件并没有经过授权,在技术上和性能上是否有问题是未知的,并且这控件是不是要付费都不能确定。还有一小伙子,平时特乖特仔细,干活也特认真,对人也特尊敬,突然有一天就失踪了。当时我们都懵了,好几天都找不着人,后来终于和他联系上了。他说自己学的专业不对口,不想做软件了,没有任何交代就跑了。以前做技术哪会面对这种事呀,现在你是项目经理了,怎么解决,这成了你的份内工作。

真正的项目里面就是冲突不断,你会遇到很多奇特的,预想不到的问题。项目管理的本质就是管理不确定性,对于第一个小伙子的问题,我如果定期做code review就可以防止,不会到最后才发现问题。现在很多公司code review都走形式,不做也没什么事儿。但是管理是什么呢,是为了防止意外,可能10次中9次都没事,但那一次就出了大事儿。制度是保证,不管遇到什么样的人,什么样的事儿,只要按照制度做,都能保证比较平稳的一个过程,得到一个好的结果。但是很多人对于繁琐的项目管理过程例如现在用的最多的CMMI3,有些看法,这是另外一个大的话题。

做项目经理一定得对人特别关注,以前我把很多精力放在技术上,而真正要做好一个项目得把精力放在人上,关注人的脑子里在想什么。最开始遇到问题我一度怀疑自己的能力,为什么我管不好这些人。在做了很多项目以后,我发现每一个项目都要面对这些事儿。有很多人都是非常难以相处的,你要想怎么能把这些人利用好,怎么跟他团结好,让他为项目服务,和他达成一致让他按照你的想法做。如果做不到这一点,你的项目就很难成功。

做项目经理什么都得管,我职业生涯中有过4次,手下的开发人员失恋了,还都是男生,就好几天不出活儿,我急得像热锅上的蚂蚁,人家也痛苦地那么理直气壮,甚至痛哭流涕地辞职离开北京了。什么样的都有,做管理不是说管技术就行了,这个项目里每一个人出了什么样的意外,出了什么不确定的事儿,对这个项目的结果都有影响,你都得负责。管理项目就是管理不确定性,这句话的深意由此可见一斑。项目经理要关注大家的情绪,他们有一个好心情,干活效率就高,出错也少,你要对别人的情绪负责就是这个意思。

技术出身的人脑子里容易全是技术,缺少管人的那根弦儿。从技术为中心转到以人为中心,这是一个很大的转变,是灵魂的震动,很多人意识不到。 我挺感谢那两个人,让我在第一个项目中就遇到了这样意外的事,第一次让我感觉到做管理是很难的一件事,才迫使我有这样的转变。

  • 技术人攻略:技术管理还有哪些需要注意的地方? > 太多了,说说项目监控吧,根据管理学的理论,一个人最多只能管7个人,不管你能力多么强,精力多么旺盛。想要详细的知道这7个人每天都在干什么,他8个小时是不是都实实在在的都在干你希望他做的事儿,他付出的时间和成果是不是成正比,监控这些人是要花费很多时间的,要不然管理得分层次呢。如果要详细的查每天8小时干了多少活,让组员把每天干了什么写下来,然后去核对,非常费时间。首先要项目经理对这个业务、技术非常精通吧,才能准确地评估任务应该花多长时间,核对检查一个人得花多少时间,还有6个人需要检查呢。

而且技术这种活,是很没有标准的,你说两个小时的任务,开发人员说我遇到一个难题,用了一天才解决。在实际工作中确实很可能遇到这样的情况,项目组以前从未遇到的技术难题,他用一天给攻克了,是不是也是合理的。当项目经理管理的越来越多的时候,就考虑分组管理,那么小组长就要是可靠的人。

管理软件人员为什么难,他把机器上窗口一开,你看着是干活呢,但他的思想游走在什么地方你根本不知道,怎么能通过观察他的行为,知道他在干什么呢,知道他在为你的项目出力呢。所以要控制人的行为是很难的,管理的关键是控制人的思想。 怎么控制思想,你是不是得关心他想什么,但是如果没有那么多精力怎么办,那就得关注核心人物。项目里核心的架构师,核心的设计人员,这是绝对不能出问题的,绝对要跟你一条心,其他人出了问题关系也不大,都有办法补救的。有办法补救的就可以放松一点,没办法补救的、核心的,一定要抓住。但是也不能过于依赖核心人物,管理的核心思想是要尽力做到一切人都是可替换的。就是不依赖个人,而依赖组织。 这个谈起来话长了,又是一个广泛的话题。

技术vs管理

“从开始做管理以后,我就觉得技术是一个相对简单的事儿,而且很多项目失败,十有八九不是因为技术的问题,基本都是因为管理的问题。”
  • 技术人攻略:很多技术人员都不愿意做管理,对这个问题你怎么看?

    要做技术的话,在不同的公司有不同的情况,比如说互联网公司比较注重技术,技术在整个的运营中占比较大的比重,管理能力就不需要很强。如果项目就2-3个人,真的不需要很强的管理能力,跟这几个人搞好关系就可以了。如果团队超过10个人以上,甚至几十个人,像我们有的大项目几百个人,你的管理能力就必须要强了。要不然几百个人是一盘散沙,10个人8个心眼,几百个人有几百个方向,力量怎么能形成合力呢,要拧成一股绳,必须靠管理。互联网公司可能技术要求更高一些,而且单兵作战更多一些,不会有那么大规模的团队,超过10个人,管理就一定是很重要的。有些人就是想走技术路线,做得也很不错,这也很好,萝卜白菜各有所爱,行行出状元。

  • 技术人攻略:有因为技术失败的项目吗?你怎么看待技术和管理之间的关系?

从开始做管理以后,我就觉得技术是一个相对简单的事儿,而且很多项目失败,十有八九不是因为技术的问题,基本都是因为管理的问题。 包括做的一些上千万、上亿的项目,有些好几年推进不下去,或者失败了,百分之百全是管理的问题。我做项目管理这么多年吧,接了各种各样的项目,真正因为技术失败的,几乎没有。

  • 技术人攻略:是不是行业软件的技术相对比较简单? > 也不是,当初做国家应急平台。交易数据也是天文数字,涉及到大并发访问。最重要的还是安全性上的保证,这种关乎国计民生的项目有很大的政治影响,如果安全信息被泄露了,那会有很大的影响,这种项目在技术上要万无一失的,否则后果不堪设想,所以技术上也是有很大压力的。互联网企业确实在技术方面要求更高,也涌现出很多优秀的技术架构和技术策略,这些都是行业软件需要学习和借鉴的。

为什么说技术难题相对容易解决呢,因为不管遇到了多大的技术难题,我们解决不了,还可以找一些高人,花钱一般都能解决。但是管理问题一旦出现,花多少钱都解决不了。钱能解决的问题都不是问题,技术问题最终不管多难,它能办,管理问题你看它简单,你怎么都办不了,你耗上几年,拖死了,也办不了。关键技术问题是看得见、摸得着的,管理问题好像是看不见、摸不着,不容易察觉的,需要洞察力,但又实实在在存在的,所以我说它难。 但是很多人,尤其我手里很多技术人员,工作了7-8年,甚至十年,都不理解这个事儿,他都认为技术是最重要的,于是也摆不正自己在项目中的地位。我承认技术很重要,但在我所处的行业环境里,不是最重要的。

项目是不是成功,项目经理和领导、客户的沟通特别重要。为什么项目经理的沟通能力那么重要,有时候你少说一句话或者说错一句话,客户火了,你底下人干再好,技术再出色也白搭。而且我们的客户主要面向政府,你跟他们谈技术,他看不起你。我们出去跟政府谈什么,谈商业模式、运营模式,客户关心的是我怎么把这个业务运营起来,政府服务社会的这个管理模式是什么。客户提到技术人员,如果说“那是个技术人员”,意思是没什么跟你好谈的。所以我们跟客户一般很少谈技术,客户认为技术不是最重要的问题。

  • 技术人攻略:那在行业软件领域,技术人员该怎么寻求职业发展呢? > 纯编码的技术人员在行业软件领域地位不高,随时招一批人都可以替换。比较关键的是业务人员,能跟客户谈需求,做系统设计,如果能谈业务运营、商业模式,那就是咨询顾问了。 对于工作几年仍然在做coding的人,如果技术水平不是很高,又能coding点东西,但真出了问题又束手无策,这样的人就没有核心价值。有很多编码人员,做完一个项目,也不太清楚做得是什么,业务需求都不能描述,就是做完了不知道自己做的是什么。有很多日本,美国的公司都是把需求设计那在自己手里,中国人做低端的coding,做完了不知道自己做的东西是干什么的,怎么回事。一样的道理,如果只是做编码,核心竞争力就受到限制。

不过如果你技术上真是大牛,能拿得起来,例如出了个问题,比如出现故障、问题,别人束手无策,你能立马解决,这样特别牛的人在哪都需要。政府和金融的系统,一定要保持安全、稳定,万无一失,所以技术上必须不能有任何纰漏,也需要技术高手。

技术人员的发展瓶颈一般会出现在第5-6年,如果到30多岁的时候还不能成为技术大拿,就会遇到瓶颈。工资涨到一定程度就不可能再往上涨了,想要有发展,就要往系统设计、需求分析及项目经理的方向转。 如果真能发展成技术大拿,公司出了什么技术问题都能解决,那也在公司有核心价值,如果只是普通的coder,遇到问题你只是参与,解决问题还得依赖于别人,或还得调集外部的资源解决,那就真的没有核心价值了。

不论是向业务、管理还是其他什么方向发展,有几年的过硬的技术基础都是非常好的优势.

精通业务需求

“我们在业务需求方面也没有达到专家的水平,不能主导客户需求,总是被客户主导。也只有精通需求,你才知道要花多少钱做这个项目,否则没做就亏定了。”
  • 技术人攻略:为什么行业软件领域需求分析和系统设计的重要性比较高? > 做软件之前要先进行系统设计,开发人员主要是根据系统设计进行编码。需求人员的要求更高,要能跟客户谈,还要能把握住这需求,如果需求控制不住,不断增加,项目有可能就会赔本。一个特别好的需求分析人员应该能引导客户,很多项目开始做的时候,客户根本说不出来要做什么。项目管理里对需求的定义非常精准,需求是“requirements and expectation”,就是客户的期望,期望是客户没有说出来但是想要的东西。控制需求的能力,就是虽然客户没说出来,但是做出来之后,客户一看正是他想要的。极少人能达到这种程度,这要求对客户的业务非常的精通. 我们做北京市公务员系统的时候,法律刚公布,我们就要把公务员法整个给吃透。跟客户谈的过程中还要能引导客户,因为客户随口说的需求很可能是错的,如果你花了很多时间去做,最后做错了,你不能说是客户让我这么做的,原因还是你没有正确理解客户的期望。

很多情况下客户是真的想不清楚需求。我去年接了一个公司整合的项目,中国信访需要做一个内部的OA系统,满足被整合的这几家公司的管理和运营,包括项目管理、销售管理、采购管理、财务管理、商务管理、人事管理等,几乎涉及到公司运营的方方面面。公司整合了,不同子公司的领导、职能部门还没有想清楚这么大的公司到底应该怎么管,每家公司的业务分类、具体运作流程都不一样,整合后的组织架构未定,那么在新的组织架构下,原有各个公司职能部门的职责如何分配都未定,不同子公司的领导、职能部门对整合后的想法、预期都不一样,也没想清楚怎么回事;而领导又急于建立起OA系统,把所有子公司的售前、实施中的项目都量化地管理起来,这些项目每年承前启后,大约有1000多个,如果没有OA系统,根本无法管理。面对这种复杂的情况,应该怎么应对?

做法就是站在机构整体运营管理的角度,从CEO的角度考虑怎么管这个机构,让OA系统既要体现统一管理,又要能兼容支持各个子部门在整合过渡期的需求,并且能过渡到统一管理的最终目标,这对系统的灵活性要求非常高。总部给出了建设思路、原则以及基本的业务流程,但很多具体的需求还要站在客户的角度,主动分析细化。这个项目很难做,你会发现对于一个需求,你和不同的人谈,会得到不同的回答,对于很对一个需求,都会得到N个回答,你怎么办?这就要求需求分析人员广泛收集方方面面的需求,深入分析各个子部门在项目、销售、采购、财务等各方面的管理差异,结合业界最佳管理实践和理念,按照以项目管理为核心的指导原则,采用最合理的运营流程来进行需求定义。关键是要有主导需求的能力。

面对复杂的情况一定要抓住关键!对于销售工作,管理要点是销售机会、销售合同、开票、回款,管理项目的要点是成本、进度指标,还要抓计划和监控,这些是万变不离其宗的。

还有就是从控制信访运营管理风险点的角度入手来定义需求。比如说怎么判断一个项目是不是健康,怎么提前发现问题,控制风险,要定期监控项目的进度和成本,不能光看成本,成本控制得特好,进度延后了,不健康;进度超前了,也不一定健康,要看是不是过量的投入了,有些项目提前囤积了大量的人,导致其他项目缺人。一个项目节约了不一定是好事儿,进度超前了也不一定是好事儿,要考虑到它对其它项目、整体运营的影响。不同业务类型的项目进度和成本的确认都有不同的方式,把这1000多个项目的成本、进度指标都量化计算出来,定期监控,超出标准值20%的项目就是有问题了。

如果做这个项目时,对于项目管理理论非常精通,那么做需求分析就会得心应手,就不会被众人的声音淹没,不知所措,而能够主导需求,分辨客户提出的需求哪些是合理的,哪些是错误的。为什么有的项目需求总是控制不住,客户没有想清楚总是在变化,这是客观因素,还有就是我们在业务需求方面也没有达到专家的水平,不能主导客户需求,总是被客户主导。这是很多项目最亏本的原因,大量的项目,包括几百万上千万规模的项目,需求频繁改动,永远没有完结的日子,项目好像总也做不完,这样拖上几个月,几年,亏损,客户还不满意,这样失败的项目非常多。我前面说的技术难题好解决,管理难题不好办,也是这个意思。不精通业务,就没法成功地做好项目,你花了几十万、几百万甚至更多,做出来东西客户说不是我要的,怎么办?所以说需求分析,业务规划非常重要。

这个项目我们在需求、设计上花费的时间和精力非常大,占到了工作量的40%以上,编码上的要求相对较低,技术上的压力相对小一些,但也要考虑大并发量下系统的快速响应问题。

还有就是如果不精通业务可能会受骗,客户给你100万的项目,但成本却花了200万。我曾经做过的一个大项目,光谈业务规划和需求就谈了两年。几千万甚至上亿的项目,要求我们要对业务方方面面有非常深入的掌握,如果你比客户还清楚,难道会不清楚要多少钱吗。也只有精通需求,你才知道要花多少钱做这个项目,否则没做就亏定了。

  • 技术人攻略:你怎么看待行业软件领域的发展前景? > 我感觉传统软件行业仍然是一个非常有发展的行业,这和国家有很大的关系。政府的十八大提出要建立工业化、信息化、城镇化、农业现代化,推动工业化和信息化的深度融合,这个上升到国家战略的高度。这就是说传统行业的方方面面都要增加信息化这个引擎,咱们很多的领域都是靠耗尽资源、破坏环境来获得GDP,新一届政府反复说要调整经济结构,怎么调整,就是要靠工业化和信息化的深度融合,传统行业都要改造成以信息化为引擎的行业。

举个非常简单的例子,老百姓头疼的交通问题要通过信息化的手段解决,例如GPS、电子路况导航,可以给每辆车装GPS,达到动态的监控城市的车辆状况,对交通进行动态的调节和疏导。再说环保,我们国家的环境污染非常严重,破坏生态环境是不可逆的,花多少钱都扭转不了。污水、废水都排放到江河里,怎么监控,靠人行吗,还是要靠信息化,要在关键的排污口、工厂,各种有影响的地方监测,搜集这些数据,靠信息化来监控环境,优化环境。食品安全问题也是一样,追根溯源,环节监控都要依赖信息化。

还有就是供应链的问题,将来的企业,尤其是大集团企业的竞争,不是企业与企业的竞争,而是供应链与供应链的竞争。比如生产汽车,需要上千家供应商,如果供应链非常健康,可以和几千家供应商、客户、代理商之间通过信息化的电子商务和信息化的供应链来沟通。好处在于可以及时响应客户的需求,可以按需生产,库存少,所以资金周转快,对现金流的压力就小。如果传统行业能打造端到端的供应链,那对传统行业就是更好的提升。

从企业之间的资源整合来看,B2B的角度也有很大的作为。总体感觉互联网和传统行业没有那么大的对立,都是不断的融合,促进经济发展,融合的趋势大于对立。


golang-python学习心得
微信公众号:golang-python
个人微信ID:fuhao1121
网址:http://fuhao715.github.io
QQ:243312452
编程学习心得轻松学编程
回复:『 p 』查看python课程回复
回复:『 g 』查看golang课程回复
回复:『 m 』查看项目管理
回复:『 w 』查看其他文章
点击"阅读全文"进入http://fuhao715.github.io