一个好的产品就是一个公司的方向,一个公司的未来。我根据我参与过的产品,谈谈一个程序员眼中产品开发的历程和体会。
开始初期阶段就是有公司的高层制定产品的方向,宗旨就是以用户为基础,以获得盈利为目的。当方向有了之后,有一天一个产品总监就会带着一份设计的原型和需求找设计师和程序员开会讨论。之后便发生了群雄争辩。当看到这个原型之后,在程序员眼中,这个页面功能太多,实现复杂,通俗的讲就是这个页面逻辑太多,要写太多代码,不过偶尔会觉得原型中这个创意不错;设计师看到这个原型后,就会在想我该用什么样的形式去表现这个页面,该用什么样的动画去体现这个功能。在我这个程序员看来,设计师就是想法设法怎么折磨我们。一次次的会议讨论,在方向不变的情况下,不断完善和修改产品设计。最后以原型为基础,以良好的用户体验为目的,会制定出一个合适产品。不过有时候考虑到开发周期,有些功能会放到后期优化。
当一个产品初期尘埃落定时,接下来就是开发周期的指定,这时候有个技术总监会出场,他会带领程序员们分析产品中的技术,根据实际的情况制定开发周期。这个时候程序员一定会多争取一些时间,因为开发中不确实因素太多了,bug不容轻视。然后就是各个开发小组制定详细的计划,搭建框架。我觉得一个良好的框架是项目成功的一半。接下来就是每个人的分工,根据每个人的技术特点和技术水平的差异,分配对应的工作。看似一切顺利发展,杀机隐藏其中。
一切就绪,进入开发阶段,这是整个环节的关节,做过的开发的人,心里都清楚,开发过程中想砍死产品经理和UI设计师的心都有。心里天天念叨“ you canyou up , no can no bb”。为啥这么多抱怨呢,因为产品经理的需求会有变化,设计师的设计图会不断修改。你好不容易写完一个页面的程序了,他们觉得这个页面体验不太好,或者样式有点low,然后他们就回去修改了。哎……,一个新的设计修改完毕后,我们就需要程序修改一下程序了。就这样不断重复这个过程。不过开发中也有很多有意义的事,比如就是因为产品经理变态的需求,你不得不去研究一些技术,然后从中获得经验。还有就是他们的不断修改,你不得不考虑一下如何把程序封装的更好,当修改时更容易一些。当然还有就是一个又一个的成果展现在眼前时的那种成就感。开发过程中还有一件还重要的事,就是如何做到和同事的协作,一个协作良好的团队做起事来事半功倍,我觉得一个开发团队一条心很重要。我最近开发的一个产品,就是因为团队中的每一个人有一个共同的目,就是做好这个产品,虽然公司不鼓励加班,可是为了尽快完成目标,完成项目,熬几个通宵也就无所谓了,尤其是到了攻坚阶段,加班还是很正常的。我觉得大家一起拼搏的日子是幸福的。
随着开发的结束,看似一个产品就要完工了。可是还需要过测试这一关,他们是程序员的克星,他们就是给我们挑刺的。他们挑的问题有理有据,我们反驳不了。当我们的测试项目交给他们之后,慢慢的等待吧。经过一两天的休息和缓和,接下来面对暴风雨吧。当你再次踏进公司时,一页又一页的bug表就会放在你的工位上,瞬间就头大了。没办法,谁让他们是测试呢,白盒测还是黑盒测,问题一个接一个。一个产品不可能没有bug,不过第一个测试包肯定过不了他们这一关。接下来的几天就是和测试们战斗,我喜欢的模式是改bug之前不太懂得让他们复现一下,更容易精确定位到问题的位置。改完几个后,如果方便可以让他们测试一下,以防你改的bug不是他提的bug。就这样一个bug一个bug的改,一轮接一轮的测试进行,不断完善产品。等最后通过测试这一关后,旧版产品放到公网上,接受部分用户群体的检验。得到反馈结果之后,进行一次稍微修改,确保稳定之后,把一个完整的产品发布,等待用户的体验和反馈。
看着自己精心培育的一个产品终于发布了,心中的喜悦无法言表,就像看着自己的一个孩子出世一样,等待着他在环境中的茁壮成长。发布之后,程序员还会忙碌一两天,主要是防止产品出现异常,或者重大bug。等一切安定后,会看到一些用户评论,有赞美、有吐槽。比如说,有的用户会说产品挺好,终于等到了这样一款产品,赞赞赞。有的人或说真垃圾,一点都不好用。只要看到由用户用自己的做的产品,心中就挺高兴。最后运营会根据用户的反馈,给产品提出相应的需求和问题,然后产品就会再次找我们修改,优化。总之,一个产品就是在不断的优化和修改中满足用户,获得好评,给公司带来利益,给员工带来福利。这就是我这个程序员的在产品开发中的苦逼吐槽和体会。