为什么很多产品总不能按时上线,为什么计划1月份上线的总要推到2月份,为什么上线后出现这么多bug和问题,为什么技术团队总是在上线的时候说好多功能还没有测试好没有调通?要不就是问题一堆不能如期完成。
其实系统上线跟装修房子比较相像,装修房子的时候也会发现原来1个月的工期拖了2-3个月,这中间的很多原因值得回味。产品不能按时上线,到底什么原因?
首先,我们分析过大量用户案例,发现大量的产品不能按时上线很大一部分原因在于我们的需求发生变化,最初的需求是这样定的,做的过程中不停的发生变化,这样技术开发中就得不停的调整。就像装修房子,今天想灯装在客厅,明天又移到卧室,这要涉及到水电、线路的改造。改造就好比技术架构的改造,就会所有的相关东西返工,可能看起来并不是那么简单。但是我们从产品的角度来看是非常简单的一件事,这样就会造成很多问题,这是一个非常重要的原因。要保证我们的产品能按时上线,创业者一定要知道要减法做取舍,有些功能是锦上添花,有些功能是雪中送炭,一定要做那个必须要的功能,非主要功能可以在后期来迭代。当我们的产品不完备、不完整的时候,如果解决了一个特别刚需的问题,用户一定会用我们的产品,就像滴滴打车、摩拜、OFO那样,这些App在上线的时候出现了很多的问题,都在逐步解决的。所以说上线的目标要明确,一定要明确,我们不可能一步做一个特别完美的产品,但我我们第一步上线一个有瑕疵可以运行起来的产品。
其次,我们在整个开发过程中的管理是否真的到位,是否处于失控状态。我们都会遇到这样的场景,确定好了一个产品的开发,技术团队要做3个月,那么我们管理者怎么去监控这样的过程。会发现2周后一份进度报告说完成了20%,过些时间再问说完成了30%。我想知道你到底看没看到那30%,到最后上线总会发现好多问题没有解决掉。所以项目管理的过程中跟进的状态一定要紧密,还拿装修来说,如果我们一周去一两次现场你会发现进度是可以控制的,而且有问题会现场问你。我们技术开发过程可能会出现这样的问题,只要启动了开发了,我们就不管了,等结果出来就好。这样就属于失控状态,开发过程中大家可能需求的理解和产品的开发存在问题,没有及时沟通,明明想做一张桌子结果出来个椅子。所以我们觉得对项目的监控和管理要及时,那怎么去解决呢?最简单的办法就是定期开会,每周开一次review会议,对项目的进度看一看,目前完成的功能的展现一下,尽管功能不完备,但能看到实质性的东西。可能技术团队会说系统开发到这一阶段没法展现,因为功能没有走全,其实没有关系,你总能说的出都做了什么,做到什么程度,没有完成的程度,各阶段的开发都是可以展现的,至少可以看到页面,可以看到部分的功能、代码和团队的状况,而且还可以了解团队在开发的过程中有没有问题的出现,避免黑盒开发。
第三点,产品上线还有一个很大的问题就是,想做的功能是这样的,最后出来的是那样的,和想象中的出现偏差。为何UI设计是这样,做出来的UI有很大的区别?怎么功能差很大,而且效果也不好?这是怎么回事?其实技术开发是个连续的过程,UI设计的时候可能并没有考虑技术能不能实现,做了一个特别好的效果,结果开发中技术说做不了,结果换成另一种形式。还有产品经理做功能的时候也做的很清楚,但开发并没有完全理解,而把方向给做偏了。这是什么原因呢?系统开发由需求到产品原型,到UI、UE,再到开发,整个是个系统化的工程。那么产品团队和设计团队在做工作的时候一定要与开发团队要做技术方案的沟通和确定,而不是做设计的时候跟技术一点关系也没有,技术人员要参与进来了解我们的业务、熟悉我们的业务,知道哪个是我们的重点,哪个是我们的难点,要做好技术突破。如果我们的UI对技术的要求比较高的话,那就用前端更好的技术把UI实现。如果我们的业务逻辑比较复杂的话,后端一定要把业务逻辑做的很精细。所以在做产品和UI设计的时候一定要把开发人员带进来,不仅是到时给产品文档就能做的好,不然会导致开发的结果没有达到预期的效果。
这三点是影响产品上线至关重要的原因,除此之外我们也发现开发中大家也加班了,最后还是完不成,是不是技术真的有问题。我们得反思一下开发之前有没有做技术风险评估,要找出哪一块会影响技术上线。比如说第三方接口联调可能会存在不确定因素,那就要提前做好准备。或者那块业务逻辑比较复杂,做开发的时候测试周期要很长,这些一定要提前告知,所以说技术风险一定要提前提出来,而且每个系统都有一定的技术风险。
综合所述,需求要明确,管控要紧密,团队的协调要置前,风险要评估,如果做到这几点,那么产品的按时上线将不是问题,甚至是提前。当然不要一味的去压技术团队的进度,只需要适当的给紧迫感。
原文地址:https://blog.51cto.com/14392291/2412908