周末的时候和一群驴友(22人)到苏州小小自虐了一下,15公里短途穿越,路线规划:灵岩山(走后山)-->大焦山(走非常规线) -->羊肠岭(走小路)-->寿星岭-->白马涧-->花山-->鹿山-->皇冠山。虽说是短途,但还是有点小挑战性的,步行7个半小时左右,回来一身的疲惫,不过很舒坦,非常喜欢这样的运动!
路途中遇到了一位神人,真的是佩服的五体投地,竟然搞了一辆山地自行车上去,差点就要跪地膜拜了. 下面言归正传,说正经事情!
一. 项目实施进度缓慢
在徒步的过程中,因为遇到了各种问题,山路叫难走,有人摔倒,有人没有水等,从而导致后面预计进度比规划的时候慢了很多。当然这只是一次活动而已,慢一点快一点无可厚非。我就在想在项目实施的过程中也出现了这样的缓慢问题,到底如何去解决。也正是因为最近有两个项目推进的进度实在太慢了,压力山大所以出来自虐一下,希望放松一下自己。
最近在实施一个工厂的项目,项目周期已经非常长了,预计几月份几月份要完成,而具体的时间一次次推迟,现在貌似都没有时间概念了。现在双方差不多都疲软了,进度非常的缓慢,这里总结一下相关的问题,可以供大家参考一下。
二. 销售,技术,实施,客户
在一个项目中基本会出现如上几个角色,这也是一个项目中最基本的角色。但是根据公司的规模还有项目的大小会出现更多的角色,首先声明我们这里是小公司,小团队,问题有我都承认,团队经验不足我也承认,请不要一口否认这样的模式,这样的团队很垃圾。任何公司团队都是从小做起的,任何人,任何项目,任何团队,任何企业都有问题,这里我们只讨论为何出现这样的问题,我们该怎么解决。
销售: 先项目前期会给客户“画饼“,有水平的销售这个画的有滋有味,没有本事的销售那就是牛皮吹上天; 销售本事一般都不懂技术,而且销售人员一般为了拿下这个客户都会有一点水分在这个里面,会有一些过多的承诺。如果和销售人员接触的多话应该可以体会出来,特别是技术人员,技术人员最怕过渡承诺,因为爽在你口,痛在我身!
技术:在一个以项目为主的公司里就是一个悲剧角色,在整场戏里面就是一个让人无法理解却又值得同情的人物,有问题要担住,有奖励只能默默埋头。这也许是最普遍的一种现象,而且是有苦不能言,哑巴吃黄莲之后还要往肚子吞的。看这篇文章的人应该都能够体会,声明一下我不是在贬低技术,因为我曾经也做过一个名技术人员。
实施:除去销售外的一个面对客户最多的角色,要负责的事情就是将开发完成的项目给客户安装实施好,并且能够让客户正常使用,并且提供相应的使用培训。我目前就是处于这种角色之中,这个角色是最能够直接了解和分析客户需求的一个人。同时负责收集和反馈问题给技术人员,并且协调好公司技术人员与客户之间的问题沟通传递。
客户:一个想骂他们千百遍的角色,当然这个是对于技术和实施来说的,甚至有时候有一种恨之入骨的角色。但是销售非常喜欢这类角色,因为客户能够给他们更多的资源和机会,因为连带的关系所以有时候技术和实施也不喜欢销售。
三. 相互之间的矛盾和冲突
刚才简单介绍了上面的四种角色,可能有些公司的角色划分更加明细,这是我们团队目前的一种角色划分,再次说明我们是小团队,团队很不完善,也不成规模,我们是在实际的环境中讨论问题。
销售和客户:销售首先和客户接洽,销售会和客户说我们公司会做什么,我们的产品有什么优势,我们能够给你们解决什么问题,我们能够提供什么样的服务(我们公司主要提供仓库,生产等条码解决方案)。客户对此非常感兴趣,决定要上什么项目,于是销售和客户一拍即合。在这个过程中销售因为不懂技术,有时候会过度承诺给客户一些需求,往往这个时候过度的要求在于其他公司看来也是一个难点,客户也许正为这个为难,所以问题的症结点扣准,那么你就能够拿下客户。销售给客户说我们能够解决这个问题,客户一定对此非常感兴趣,但是这个时候往往会给技术留下一个坑,可能解决这个问题所花费的人力时间都超出想象。但是要说明的是,有时候会为了一种商业目的,往往会有这样的一种销售手段来提高销售的成功率,这个也是无可厚非的,技术问题一般都是可以解决的,只是难易程度问题。
销售的过渡承诺往往在项目还是没有开始的时候就决定了后面的开发以及实施的难度,然后销售人员为了签单也不可避免的做一些承诺。我这里不是贬低或者抵制销售的过渡承诺,相反还比较支持销售有时候的适当承诺,从公司的整个的整体出发点来说这样是没有错的,只不过需要承担更多的风险和压力,而这些压力会实际体现在开发和实施人员的身上。为了让项目良好的推进,在项目前期在适当的时间可以让有资质和经验的技术人员和销售一起去了解项目的内容,而不是等到最后签单之后才决定让技术人员介入此事,这是保证项目推进的一个比较不错的方式!
(1) 销售人员在前期明确自己公司的整体实力,整体实力是:能够做什么,做到什么程度有难度,完全不能完成
(2) 了解客户的真实需求和目的,不是细节需求而且想解决一个什么问题。比如我要解决排产人工计划的问题,要能够使用软件编辑计划和调整计划
(3) 销售可以和技术在适当的时间同时去拜访了解客户问题,并且多做沟通
实施和客户: 实施是在项目推进过程中直接和客户接触的,他能够在项目推进的过程中及时的发现问题。但是项目实施有时候又是项目开发经理来担任的,这是一个非常重要的过程,在很多时候我们一直在强调如何使用文档管理项目的需求等等,客户说话要算数,让客户明确自己的需求等等,无论我们使用何种方式来管理这个需求和确认需求,在开发的过程中总是新需求不断的出现和需求的变更。往往项目延期我们都会认为项目是因为不断的有新需求和需求变更导致项目无法把控,当然我承认事实是如此,难道我们就无法减少这种不可控的因素么?
项目实施的过程中就要不断的和客户去沟通,我们知道有些事情无法避免,那么当问题出现的时候我们应该努力去找客户商量解决办法,而不是等问题完全暴露无遗的时候再去努力抱怨。可以加强和客户的沟通,你可以现场操作,你可以去问实际的操作人员,甚至在某段时间你可以帮助他们去做某项工作,只有这样你才能理解他们是怎么做的,你才能发觉项目的需求。客户领导可能会抱怨你的实施进度很慢,但是实施人员一定要努力去面对这些问题,而不是去逃避客户的问题。
(1) 实施人员可以现场操作,实际跟踪,甚至某段时间协助他们完成相应的工作
(2) 向实际操作的人员了解具体如何使用的,他们的工作难点在哪里,不同的工种操作你都要去了解,最好是实际操作
(3) 跟客户领导反馈你发现的真实问题,有时候客户领导和公司领导一样根本不可能知道实际的问题,而只是表面的知道问题,并且让客户确认。
(4) 放下自己的身段,就作为一个普通的操作工。我觉得这点很重要,很多做这种相对高级点的工作,在实际的项目实施过程中都怕去做这种流水线的工作,就和技术人员很多不敢给客户打电话一样的。
实施和技术:在项目过程中,技术和实施及时亲兄弟,用一句话来形容就是"唇亡齿寒",所以这两个一般情况下关系是相当不错的,但是有时候也会有冲突的。实施人员在实施的过程中软件出现问题,那么最直接的问题就是技术人员没有做好,而这个关键的时候如果客户知道了,倒霉的肯定是实施人员。实施人员受罪了技术人员还会好过么。因为实施人员直接接触客户所以能够知道客户具体需要什么东西,这个决定了技术人员的开发方向,这个过程也会影响项目的推进。
(1) 实施人员要能够把握住客户的确实要求,了解他们的问题之后要能够总结归类然后反馈。我在实施过程中会先将客户的问题给记录下来并且分析难以程度以及紧急程度再反馈给技术开发人员。
(2) 过滤伪需求排除不再范围内的需求,有些客户提出的要求并不是一个可行性的需求,也有一些不是在我们范围内的需求。我们这个需要明确把握,在项目实施的过程中我有几次充当烂好人,结果也没有得到什么好处,反而适得其反。先做好本职工作再在有能力的情况下去帮助客户解决问题。
(3) 技术人员要能虚心的接受实施反馈的问题,在某种情况下技术人员认为不太可能的事情但是对于客户来说是非常重要的。比如在一个表格中第一列和队列显示的内容问题,你认为第一列和第二列位置无所谓,但是对于客户来说却是非常重要,为什么这样你体会不出来,或许是习惯问题!所以技术人员要能够接受莫名的问题。
四. 表和里的问题
可能是因为我没有大局观,也可能是我没有考虑问题的本质。以前我一直做互联网方面的开发,但是个人认为这对于自己来说不是一个什么太好的事情,所以现在退居一步做一些传统行业方面的软件。我公司现在的软件方面主要是以条码,二维码,RFID 为基础的仓库管理系统和生产管理系统。但是在做互联网和传统软件上我觉得有很大的区别,这个区别不知道我自己是否理解的正确,可能也是因为我站的角度不一样。
讲一个真实的事情: 同事A和我在探讨一个项目问题的时候,我们发生了一些问题的偏岐。我们给客户实施一套仓库管理系统,难度较大。我们定好某一天去客户现场部分实施,但是项目从整体上是没有成型的,只是部分功能可以使用完全算不上一个软件。同事A却希望能够多开发一些功能界面,即使功能不好也可以,只要能够看到是那么一回事就好了,他是想让客户知道我们做了很多事情。 而我认为这是一种虚假的做法,从开发多个"仿制"界面来说,本身就是一个耗费时间的过程,而且开发了对后期的真实需求的完成没有太大的作用,反而有时候会让给自己埋下很多坑。
这是一个公说公有理婆说婆有理的事情,我暂且不讨论谁对谁错。从根本上来说这是给项目推进自己挖坑,后面自己好跳下去,这是对项目的推进极为不利的。一直到目前为止我仍然认为自己的想法没有错,在多次的实施过程中客户关心的是你所有的东西完成没有,你画了很多仿制的界面对于整个项目来说仍然没有完成,不仅浪费了时间而且给自己挖了一个很大的坑。当然也不是说同事的想法错了,这个只是出发点的问题。
(1) 从公司的角度来出发我们要考虑表的问题,这个时候我们可以对客户做适当的事实隐瞒,因为这是一种策略,当然你有足够的能力就不需要这些。
(2) 项目已经开始实施,还是暴露所有的问题比较好,这个问题暴露可以不让客户知道,但是自己一定要明白这个问题的存在性和严重性。
(3) 个人觉得不要让客户产生我们快完成了的这种错觉,最好是实事求是,千万不要打肿脸充胖子,欠的总是要还的。
(4) 暂时搁浅问题下次解决,问题也是逐步积累出来的,到了一定程度就会集中爆发。这是大部分人都会犯的错,这个问题小问题下次再解决,往往到了后面就忘记了这个问题,又为自己埋下了一颗地雷。
五. 计划性
我们在发开软件的时候有这样一个功能,做生产排产计划,做过相关工作的人应该都知道:工厂在加工某个产品的时候,会先做一个排产计划,比如这周要排产什么产品,排产数量是多少,所需要领料是多少,产品的先后顺序是什么。 做排产计划的目的是为了让工作更加有序的进行,在规定的期限达到相应的目的,软件开发这个功能方面我们都非常擅长。但是你真的会做计划吗?
任何事情都要有计划,这样才能保证自己的事情按照既定的目标和轨迹推进,虽然不能完全一致,但是至少让你有一个目标感!在开发和项目实施的过程中,我们往往缺少这样的计划任务,事情想到哪里做到哪里,导致所做的的事情毫无章法头绪。先做这个发现问题做不下去然后又走另外一个,最终一个都没有做成。个人做计划应该达到如下几个要求:
(1) 针对目的: 做这个计划是针对什么,也就是我们的目标,我们要达到什么目标
(2) 明确任务: 这个计划是要做具体什么事情,甚至包括具体的实施推进步骤
(3) 时间限制: 做计划一定要有时间限制,这个计划实施要在什么时间范围内完成
以上是自己总结的几点,可能做计划还有更多的方式,每个人都可以根据自己的工作方式和习惯来制定目标计划,很多时候我们任务不能如期完成也是因为没有计划性,我们不明确自己的目标,不知道如何去实施和补救,没有时间概念。
个人比较自豪的是在多年的工作中养成了做计划的习惯,不说自己是百分之百按照此计划来执行的,也不是所有的目标都达到了,但是让自己每个时间段有一个明确的目标,比如:
1. 工作日每天6:30起床,争取八点到达公司,做每天的工作计划,当然我外出的情况较多会做好每天的行程安排
2. 今天要解决客户现场机器问题,使用**方式来解决,备用方案是真么处理
3. 和客户当面确认某个需求问题,找**人,并且让其做出明确的回复,如果不能处理也给出相应的反馈
4. 写一篇技术博客,总结最近的工作问题
5. 。。。。。。。
在做计划的时候最好使用笔记本记录下来,而不是使用电子档来记录,在用笔记录的时候可以思考这个事情的深层问题,并且有一种庄重的感觉,会让你非常的重视你做的计划,而对于在电脑上做计划觉得有那种可看可不看的感觉。
从学做计划开始我就使用笔来记录,而且已经记录了多个笔记本,而且后来发现做这个事情的重要性,个人最近一年每天工作计划和安排目前都应该可以查询到相关的记录。这是保证自己要做的事情稳步推进的一个重要过程。
六. 技术方案
这里单独说技术问题,是因为自己也做过技术开发,自己以前是一个非常专技术研究的人,虽然现在还有点改不了这个习惯,但是不得不说从不同的角度来看这个技术问题。这里也讲一个真实的案例:
之前接到过一个项目,项目是一个在线报考系统(非考试系统),就是能够申请报考,并且可以查看相应的成绩等,属于一个非常简单的项目,时间期限一个月。我将此项目外包给了一个技术非常厉害的朋友来做,因为我绝对的相信他的技术能力。然而最后做的东西我非常失望,先不理会项目的具体问题,最终就是一个月东西没有完成,只完成了一个非常简单的功能,核心部分都没有做。那个时候我就开始真正思考这个技术问题,一个技术牛人为什么会出现这个差错?
(1) 在做用户系统的时候他用了单独的数据库,登录功能就涉及了好几个存储过程
(2) 登录验证超级复杂,使用啥啥技术
(3) 数据库结构也超级复杂,而且表,字段名都是非常长的名字(也无所谓)
.........
这是属于典型的过度架构,我不得不承认他这种写能够充分展示其技术能力,因为我当时还没有办法很明确的知道其具体运行流程,一个登录注册就如此的复杂,一个月过去了就完成这些东西,可能是其他的原因导致的不能完成。但是客户只是需要一个简单的登录,用户注册就可以了,单表完全可以搞定,完全满足客户的要求,一个月时间绰绰有余完成这个项目。
(1) 根据具体的项目选择合适的技术: 这是一个非常典型的技术使用不当的问题,简单的项目为什么一定要用那么复杂的技术,炫技还是虚荣心!你炫我炫就看谁亮瞎对方的眼睛。
(2) 明确项目真实目的: 项目最重要的就是完成客户的需求,而不是要使用多高深的技术,技术和需求本末倒置了。
(3) 时间概念优先级:一个月完成项目是目的,这个项目核心是考试系统,及时不能完成全部最起码核心部分要能够有所实质上的突破而不是完全没有做。
这里不是去贬低技术的不重要性,只是要让大家明确做事情的目的是什么,技术的作用又是什么,对于技术的专研是一件好事情,但是也不能只能专注于技术的发展,否则就成为了井底之蛙。
技术是为了更好的解决项目问题
七. 团队问题
很多时候都在说团队,只有团队才能干好一件事,这是毋庸置疑的。一个项目不可能一人完成,一个人的能力往往是有限的。很多人在谈到团队的时候只能想到技术的团队,个人觉得企业就是一个团队,这个团队中有不同的角色,每个角色都很重要。在上面提到了项目过程中的几种角色,我不认为这是最好的团队组合,也不一定是最优秀的团队组合,但目前是最适合我们的一种团队组合。
在我们之间也会有矛盾,但是所有的事情我们都只针对问题的本质,我们所处的角度不一样,看待的问题也不一样,但共同的目的就是将这件事做好。而一个项目进度缓慢的最核心问题就源于团队是否默契配合,如果技术人员和销售人员对着干,实施和技术之间爱理不理,诸如此类的问题项目如何推进实施,如何能够快速完成的项目。
(1) 团队不是指技术人员,也不是只销售人员,也不是实施人员,而是这个项目关联的所有人员甚至包括客户,每一个角色都影响着项目的进度
(2) 公司内部小团队之间可以有意见分歧,但是对外必须是一致的
(3) 不同角色的人员之间要加强沟通问题,反馈响应问题必须及时
(4) 团队的成员要达到高度一致的目标,无论工作有多少矛盾和冲突,完成项目是共同的目标
(5) 不同角色工种之间要能够相互理解和包容对方的工作
当然影响项目实施推进的因素还有很多,这是我在作为一个项目实施人员过程中所思考的一些问题,可能不一定正确,每个团队都有自己的问题和不足,每个人也有自己的解决问题方式,从一个单纯的技术人员向另外一个方面的转化中会遇到很多的问题,但是也会学到很多新的东西,你会知道站在不同的角度去思考一些问题。
最近最有感触的事情还是周末去15公里穿越的事情,在路途中遇到很多的困难,但是无论多么困难我们都得坚持,只有坚持我们才能到达目的地!
以上是本人自己的观点,如有不足请各位斧正,如果您对本文比较满意,请点"推荐"