您的位置:首页 > 运维架构 > 网站架构

软件公司如何做好产品研发和项目实施的经验和思考

2017-12-23 20:33 495 查看
2017-12-24

 

作者简介:胡砥峰,现任北京文思海辉金信软件有限公司高级产品经理、高级架构师、福建区交付总监,具备14年软件行业经验,主要服务于金融IT类公司,服务银行、证券等客户项目。2003年入职三五互联,2004年入职东南融通,2011年入职山东浪潮金融软件,2015年入职文思海辉。2006年开始做项目经理,2011作为研发经理、架构师负责公司开发平台研发,绩效产品研发等。2015年开始负责文思海辉ss条线传统开发平台和互联网分布式架构开发平台研发。

 
一、前言

早在2008年开始我就开始在思考这个问题, 如果才能更好更快的做好项目,经过多年的工作经历、思考和实践,慢慢形成了目前的一些思路。不一定完全正确,但确实取得了一定的效果。撰写本文,希望能抛砖引玉, 望大家讨论、批评指正。

另外,本人长期和一线技术人员厮混,层次有限,可能无法站在高级管理层来思考问题。某些观点可能会贻笑大方,也希望大家私信指点一下。

 
二、我们遇到项目的现状(不同公司情况可能不一样,但我猜大同小异)

1、售前人员和销售,大量的跟进项目,因为项目招标时间、中标情况、入场时间很不固定,技术人员没有办法闲置等待单个项目中标。

2、项目中标后,负责的部门经理一般优先在本部门、本条线(相当于事业部)挑选人员。

3、挑选人员的考虑因素一般是,配一个差不多的项目经理,另外再优先考虑闲置人员入项目,说白了,临时搭建一个草台班子。

4、因为项目的人员释放是按阶段的,我几乎没遇到过同一个项目组的人员,能连续做2个类似项目。

5、闲置人员的构成:一部分是原项目上线了释放出来的, 还有一部分是项目经理觉得不好用退回到资源池的。鉴于很多项目经理会将得力的技术人员抓在手里,所以对新的项目经理来说,我只能呵呵。对此点情况要求一线的领导者,对各项目的实施情况、人员情况有更好的了解。做好关键人员的协调工作,要求项目经理站在更高的层次考虑问题。

6、对项目经理来说,还有更坏的情况,项目启动了,自己被任命成项目经理,但是没人,一边招聘,一边呼吁领导从各项目组抽调人员。这种将不知兵的情况,太考验项目经理的水平和心理素质了。

7、好嘛,入场一段时间后,人员基本凑齐了,通过吃吃喝喝、跟原来项目经理打听人员情况、再自己观察,项目经理基本上大概了解了团队人员的情况,运气好的话,这基本上1个多月过去了。。运气不好的话,遇到几个坑货,想打人的心思都会有,情况自己脑补。。项目计划的时间、成本  都是悬在项目经理头上的达摩克利斯之剑。。。。我还真听说过,项目经理掉挑子不干的情况。。

8、这时候,需求基本上了解清楚了。 要进行设计开发了。运气好的话,能从其他项目组那一个半成品的工程代码来改,运气不好的话,哥们你自求多福吧。。

9、注意,到了开发阶段了,  你会发现,大家的设计规范,开发平台可能不一样,你项目组可能没人会用这个开发平台(更夸张的是某些公司根本就没开发平台,需要你自己搭一个,或者去网上随便找一个)。有的客户会指定用哪个开发平台,一些大公司还可能有好多个开发平台的情况。。。   

10、根据我多年的观察, 超过一半以上的项目组,遇到的情况都是,开发人员是第一次采用该项目的开发平台。。  项目经理们,心理素质要强啊!

11、很多公司整理的开发平台,其肯定是多年来的一些总结, 但是遇到不熟悉的技术人员,拿枪当棍子打人,也是白搭。。。

12、好了,不熟练的人,不同的开发习惯, 不熟悉的开发工具, 甚至不熟悉的业务需求,这项目怎么做?  答案很简单啊。。   加班。。 插一个小笑话,面试官问,你毕业3年怎么会有5年工作经验?  面试者很腼腆的回答:您听说过加班吗?    面试官。。。。

13、跌跌撞撞的,项目要进入测试阶段了,那就使劲测试吧,测出问题就改,这个阶段基本上好一点的开发人员也大概比较熟悉了,上线试运行吧,用正式生产数据来检验我们的项目成果。一般情况下,这阶段问题还是很多,加班也会很严重。

14、项目上线了, 项目经理松了一口气,心想,我要带着这帮兄弟们去做下一个同类项目,应该可以轻松很多了。。但是这基本上是不会发生的,一看项目成本,公司领导又要催你释放级别高的技术人员了。而项目经理一般要到项目验收前才能撤出项目,等他接到新项目后,会发现,他的项目成员要么在其他项目,要么离职了。一夜回到解放前。。

15、有些人说,公司不是一般有产品吗? 产品化实施不会这么折磨吧?  我只能说,too young too simple!!   研发就是一个烧钱的投入,很多公司能投入研发的成本有限,一不小心就是大量投了研发之后,市场不认可,直接打水漂。别跟我说你这不对啊,华为大量投研发很有效啊。这不代表你们公司也行,因为他们在产业链的高端,有定价权。我用过他们研发的产品,也很一般(应该说参差不齐吧)。

16、不要以为这些状况是小公司或二流公司的情况, 据我了解BAT等互联网公司也好不到哪里去。大家是五十步笑百步。而且不止软件行业,很多工程行业可能也差不多。我们国家在高速发展,很多行业都很急躁(我不想用浮躁这个词,我个人认为不准确),大家都急于追求成功,急于追求赚更多的钱或急于出成绩。很多项目给我们的时间都是,时间紧、任务重、资源有限。 。   。   兄弟们,我们就是处于这样一个时代,这样一个环境,你改变不了,抱怨是没有用的,想办法解决问题才是正道。 

三、对项目交付问题的思考,是否有历史经验值得借鉴?

我自己对这个问题思考已久,当我看过当年明月的书《明朝那些事儿》之后,豁然开朗。我突然发现我们做项目和军队打仗是一个道理。都是组织一个团队,去攻克一个城池(解决一个项目)。下面为了更好的理解,请原谅我大段引用书中的2段话,看过的人直接跳过。

 

【1】作者谈论王阳明悟道,什么是“道”? 其实各行各业都有共性的东西,我们面向对象的设计不也是基于此吗?

自古以来,有这样一群僧人,他们遵守戒律,不吃肉,不喝酒,整日诵经念佛,而与其他和尚不同的是,他们往往几十年坐着不动,甚至有的鞭打折磨自己的身体,痛苦不堪却依然故我。

有这样一群习武者,经过多年磨炼,武艺已十分高强,但他们却更为努力地练习,坚持不辍。

有这样一群读书人,他们有的已经学富五车,甚至功成名就,却依然日夜苦读,不论寒暑。

他们并不是精神错乱、平白无故给自己找麻烦的白痴,如此苦心苦行,只是为了寻找一样东西。

传说这个世界上存在着一种神奇的东西,它无影无形,却又无处不在,轻若无物,却又重如泰山,如果能够获知这一样东西,就能够了解这个世界上的所有的奥秘,看透所有伪装,通晓所有知识,天下万物皆可归于掌握!

这并不是传说,而是客观存在的事实。

这样东西的名字叫做“道”。

所谓道,是天下所有规律的总和,是最根本的法则,只要能够了解道,就可以明了世间所有的一切。

这实在是一个太大的诱惑,所以几千年来,它一直吸引着无数人前仆后继地追寻。更为重要的是,事实证明,道不但是存在的,也是可以为人所掌握的。

 

【2】作者谈到名将蓝玉出征北元,那么到底具有什么样素质的军队可以称得上是最强大的军队呢??

这是一个值得分析的问题,战争的胜利是将领和士兵共同努力的结果,在我看来,一支军队强大与否可以从其外在表现体现出来。大致分为四等。

    

第四等的军队是乌合之众,他们没有军纪,四处抢劫,没有纪律。这样的军队只要受到有组织的军队的打击,就会一哄而散,他们绝对算不上强大。

    

第三等的军队有着完整的组织结构,他们军容整齐,步伐一致,但斗志不高,士气不盛。他们虽然比第四等要强,但只要遇到更有战斗力的敌人,也必然会被打败。他们也算不上强大。

第二等的军队不但有统一的指挥系统,装备精良,而且士气高涨,在行军途中经常会喊出两句“杀敌报国”的口号,士兵们都急于表现自己的英勇。

这一档次的军队有气势、有冲劲。他们不畏惧任何敌人,可以称得上是强大的军队,但很遗憾的是,他们也不是最强大的。

与最强大的军队相比,他们还缺少一种素质。这种素质就是沉默。

最强大的军队是一支沉默的军队。这种沉默并不是指军队里的人都是哑巴,或者不说话。

所谓的沉默应该是这样的一种情景:

指挥官站在高地上对他的十五万大军训话,这十五万军队漫山遍野,黑压压的占满了山谷、平地。

他们不同相貌、不同民族、不同地方、不同习好,却挤在同一片地方,听着同一个声音,看着同一个方向,鸦雀无声。

这才是所谓沉默的真意,这才是军队最重要的素质。

蓝玉率领的正是这样一支军队,他们攀越高山,渡过大河,进入了沙漠,在这片不毛之地里,有的只是那刺眼的阳光和满天的风沙,他们的后勤无法保障,士兵们只能自己携带笨重的干粮辎重,不断有人倒下,但余下的人继续向前走。士兵饥饿、口渴、疲劳,但这些都挡不住他们前进的脚步,

这是一支顽强的军队,支持他们的就是他们心中的信念和目标——彻底消灭敌人

对应第二章节,我们说的项目现状,我们是第几等的军队呢? 答案是显而易见的。

 
四、如何解决我们的困境?

答案很简单, 悟道要求太高,咱们很难做到。现实一点,就是从打造团队出发。。

我挺佩服的一位很多年的同事杨松涛在讲解问题的时候经常说,做事情要分3个层面, 战略层面、战役层面、战斗层面。

我只能先思考,解决战斗层面的问题了,如果把交付项目看作一场战斗的话。

 

1、规范化:从公司或条线、事业部层面,采用统一的技术路线,统一的开发平台(包含java开发工具、数据开发工具、前端开发工具),统一的设计开发规范,基于这些为基础,进行人员培训、产品研发和项目实施。【类比:对军队来说,步兵、机械化部队、航空部队等同一军种用的是统一的武器,也是统一的训练方式】

 

2、产品化:对一个项目来说,没有产品,你就是硬着上,人海战术,付出很大的代价才能拿下。【类比:对军队来说,如果有炮兵部队,先对着敌人阵地来一阵炮轰,把对方城池轰塌或消灭大部分有生力量,大局已定,剩下的就是训练有素的步兵冲上去收拾残局了。】这就是产品要达到的目的。

 

3、专业化:对于技术人员来说,经过统一的训练,采用统一的工具,清楚的知道自己的职业发展路线,明白自己现在要干什么,未来能干什么,培养他们成为一个专业人员。【类比:军队现在都是职业军人,刚开始只能做执行者,有潜力的后面要学习管理指挥战斗】

 

4、多元化:对于部分有能力和有机会的技术人员,需要培养多一种技能。 比如做java开发的一般要能掌握部分前端页面开发技能,甚至有的做java的也能做数据开发。【类比:海军陆战队需要接受步兵,海军及部分空军的技能训练】

 

5、老兵的战斗力溢价:每个公司都有人员流动,有刚毕业的员工入职,经过几年的项目实践,能留下来的一些技术好的员工,如果投入到项目组,可以起到稳定军心的作用。因为遇到事情不会紧张。【类比:军队也是如此,老兵上战场从容淡定,新兵蛋子容易尿裤子。。】,同样的道理,老兵具备战斗力溢价,其工资也需要存在溢价,这个是公司从战略层面要考虑的问题。

 

6、战略预备队:建立一定比例的人员冗余,即战斗预备队。  挑选1~6年的技术能力较强或有潜力的技术人员,能出差,能干活的。应对一些项目突发需要人员,紧急过去填坑,等项目稳定了,另外安排人员替换回来。这些人员平时处于研发投入或技术研究状态。【类比:朱元璋的侄子朱文正守南昌城的时候,关键时刻都是调用预备队上去救火,才能稳住阵脚】

 

7、加大应届生的招聘和培养力度:自己从头培养的人,很容易接受统一的训练,不会有历史包袱和坏习惯,经过几年培养,很容易认可我们的价值观和做事方式。【类比:参考戚继光练兵】

 

8、识别能力不足的人:物以类聚人以群分,这句话是非常有道理的。 当团队中能力不足的人聚集在一起的时候,我们经常会发现,能力出色的人反而混不下去了。因为经过一段时间后,能力出色的人会觉得这样搞太累,太没成就感了,结果一般都是换项目团队,或者离职。。【这个只是观察到有这个现象,提出来只是希望大家思考,不是非常肯定的结论。】

五、如何做产品研发?   

按目前最火的科幻小说《三体》的一个词,做好产品进行降维打击?或者类比目前军事上的特种作战,斩首行动。。。。

 

1、挑选一批最优秀的人员,组建研发团队。我特别反对利用闲置的资源去做研发。研发就是烧钱,没办法。木桶理论在有些时候确实不好说全对,但是在研发项目,我非常认可。    【类比:看看美军最顶尖的特种部队的人员挑选、训练方式、配套装备、支援系统,都是最顶尖的科技试验场,不惜代价的烧钱来提升战斗力】

2、挑选最得力研发Leader,  牢记古话:一将无能,累死三军。强将手下无弱兵。   这个产品研发经理,要求精通技术和业务,有较好的项目领导管理水平。【类比:军事上例子太多太多了,历代名将皆如此】

 

3、研发的成果是从项目中来,到项目中去, 当产品去项目中实施的时候,要求最少配备1名研发人员,直到项目上线后,才回到研发团队,进行总结提升等。

 
六、如何挑选项目经理?项目经理应该具备什么素质?应该如何思考问题?

 

1、项目经理的选择肯定是要根据项目情况而定, 个人建议采取提名制,决策者组织3~5人的小范围短时间的讨论(当然参与讨论的人对即将任命的项目经理需要有一定的了解)

 

2、对于第一次做项目经理的人员,必须安排高级项目经理作为导师,进行协助,并承担项目责任。每周都要沟通,能现场最好!

 

3、项目经理的要求?我自己理解的重要性顺序如下:

a、责任心(我们团队的  德明、 小毅,大家可以参考一下)

b、逻辑能力、简单的说脑子灵活。能快速明白很多事情(我们团队的鸿毅,大家参考一下)

c、领导能力、抗压能力和沟通能力, 很快能把大家撮合成一个有战斗力的集体(我们北京团队的 博阳,大家参考一下)

d、协调能力(我们广州团队的周云,大家参考一下)

e、技术最低要中等偏上,技术越好做事会更轻松。(我们湖南团队的袁阳,大家参考一下)

特别说明:这里举例的同事,很多都具备多项能力,我只是形容对我印象最深的一点。还有很多非常优秀的同事可能接触不多,无法列举,我相信每个人心中都有自己认可和学习的对象。

 

4、项目经理应该如何思考问题?我自己理解的重要性顺序如下:

a、成本控制,最大限度的帮公司赚钱。这是体现你价值的最重要标准。

b、站在客户的角度思考,这个项目客户最迫切想解决什么问题?或客户最想达到什么样的效果?在公司许可的范围内,尽量努力做到,双赢真的是最佳方案。

c、在考虑上一条的情况下,牢记花多少钱做多少事。大家要取得一个平衡,过渡设计和过渡投入,最后背锅的是自己。

d、利用公司许可的管理制度,尽可能以人为本,照顾好团队成员,最大限度花钱,吃饭,活动,团建。凝聚团队。我们最贵的是人力成本,这些费用不值一提。

e、公司内多了解其他项目情况,其他人员的情况,做一个可以信赖的同事。因为你可能新组建项目团队的时候,会遇到很多你之前不熟悉的人,了解的越多越好,同理,项目结束后,一定要给上级领导汇报个人员表现。

f、站在上级领导的角度思考问题, 优先释放的不一定是你不想要的人员,而是在你项目可以挺住的情况下,释放更好的资源,方便领导做安排。为领导排忧解难,才是好同志嘛。 

 
七、技术人员的成长进阶

这里只是个人意见和观点。

 

1、刚毕业,一定要去大公司。接受正规的培训和项目历练,你遇到非常优秀的同事的可能性更大,那都是我们学习前进的榜样(不只是工作方面,生活方面,思维方面都会影响你),这是正规部队和杂牌军的区别。 这方面我的感触非常深,我在毕业的第二年加入东南融通,当时的项目经理 晓东(厦大92级的),架构师 阿龙(清华90级的) 对我的各方面影响巨大,内心真是非常感激,一直以来我都以同样的方式,在工作和生活方面,去引导我后面毕业的同事。

2、毕业前5年不要过分计较待遇,更加要考虑,职业发展。 

3、责任心、专注、要投入精力,不管哪个行业很优秀的人,都付出过超越常人的努力。有句话说,世界上最恐怖的事情,就是比你优秀的人竟然比你还要努力!

4、了解自己的特点,普通人的天分就够了,我曾经带过的一个师弟小郭子,07年毕业跟我做项目,10年进了阿里巴巴,现在混的不错。特点:够拼,非常专注。

5、勇敢,  人生需要勇气,需要决断能力。  吹牛也需要勇气。 有一次mycat技术QQ群有人问我最强项是什么?我就是回答,吹牛,然后实现它。

6、跟对人。  不用我说了吧?   郭嘉为何抛弃袁绍投靠曹操?   遇到不同的人,就会有不同的人生。。当然,你也要有自己的能力。

 

八、小结

以上都是根据自己的经历,思考,有感而发,花了4个小时写这个文章。非常感谢一路遇到的很多非常优秀的同事,让我学习成长,虽然很多天各一方,但是:海内存知己,天涯若比邻。  我会找你们喝酒吃饭的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息