Thursday, March 17, 2016

小公司开发进度缓慢的思考 一名开发者的感悟

    我是一名做Android 开发的程序员,下面是针对向我们一样的小公司的思考!下面所写的仅仅是站在一个程序员的角度思考问题。
     “老大,想尽快的发布产品,
       产品,想尽量的减少改动,
       设计,最傲娇的人,如果在公司待过,你会懂得,最难的事情就是跟设计打交道,因为,她们是公司的宝贝,因为,大部分的设计都是学习设计的过来的,以女孩子居多,而且长得还不错的女孩子!
       程序员,不会产品的设计,不是一个好的程序员,程序员就是神一般的存在,什么都要懂一点,还他妈的要自己写的东西,自己测!这点,很多人在写完之后根本就不愿意在去看他!因为,心里面很烦,很多程序员看自己做的东西,总感觉很垃圾,很难看,但是有没有什么话语权。”
      测试,貌似很多的小公司根本就没有这个职位。

     为什么,小公司的开的发进度非常缓慢,而且让你感觉,开发就像是在跟各种人 撕逼! 在产品撕逼,跟交互设计撕逼,跟设计撕逼,跟后台撕逼。到最后,不得不再上线之前加班,给我记忆印象最深的一次,是我的一个哥们,加班了一晚上都在极度紧张的节奏中进行的,结果零点的时候,急火攻心流鼻血了,他的身体素质还是非常不错的。结果呢?虽然交付了产品,还是一堆的Bug。那一次是外包,个人对于定制软件是很排斥的。现在,仔细的思考起来,其实是公司制度本身的问题,公司的流程的问题!

   为什么感觉产品开发的进度会这么慢?让人感到难受呢?从我的角度出发的话:
   比如我们这次做的产品:
    一开始,老大要求重做,然我们很开心,终于撇开以前的垃圾的代码。我们几个技术开始讨论,怎么实现代码的重写,很多人都知道,重写比重构简单的多。但是,当我们听到,老大说,两周内完成的时候,而且其他的大佬的催的特别的紧的时候,你特别想抽自己两巴掌,重写?扯淡呢!两周的时间,根本不能完成的。然后,我们只能又在以前的代码之上修改着,哎,我的痛苦,只有程序员会懂得,“Writing the Fucking Code”.
    然后,老大说,给产品经理“两天”的时间把产品原型,做出来,我听到直接震惊了?两天的时间做出产品原型? 就是粘贴复制,两天也够呛呀,产品经理是很费脑子的活计。产品这个东西,似乎不是可以用时间来衡量的,在整个开的过程中,最累的就是产品经理,因为,他就是我们的枢纽,他负责所有的事情,他负责整个产品.  如果,产品失败了,他需要担当所有的责任。产品成功了,当然,他应该获得比我们多,因为,产品尽力付出的 不仅仅是时间,如果,一个只想得过且过的人适当不好产品经理的!
   两天之后,当我看到,画出来的产品原型的图,我们(程序员)都震惊了!这个,产品原型图基本上没有改变,而且产品原型使用的pdf 图片,观赏性很差的。可以肯定的是,两天时间画出的产品图,肯定是有缺陷的。我们开了一次临时的会议 讨论了一下,是的,你没有听错,是我们程序员跟产品经理讨论产品奥,这个没有错,其实是在讨论技术的可行性。讨论完之后,我感觉,如果,产品这么做肯定没问题了,做起来很简单的,于是,我又再次充满了信心。
    第三天,我们又再次拿到产品的最新的产品文档。好了,我们想开发了,但是,移动端有一个很大的问题!正如以前打仗一样的,打仗之前,粮草先行。所以,开发之前,数据先行,我们的后台又开始调数据接口。产品的商讨和设计,花了一周的时间,接下来,我们又要等后台的数据接口,这样我们又过了一周的时间。本来三周的开发时间,我真正开发的时间,仅仅只有一周!

   后台说,接口可以了。我天真的相信的,千万不要相信你的耳朵听到的话。只有真的用的时候,你才会发现各种问题。其实不仅仅是接口的问题,在对着产品原型做的时候,你会发现,很多细节的东西,比如,有些细节的点是没有必要的,这个时候,你需要及时的跟产品进行交互,跟他们讨论,你没有听错,在开发的时候跟产品经理讨论产品,这个时候我们的设计和产品基本无事可做了,产品有的时候会测一下我们的开发的功能。各种蛋疼的东西,随着时间的推移,我一边写自己的代码,一边纠正后台的错误,这个是没有办法避免的,因为,接口写不好,我们开发的新功能,根本没有办法测试,这就我们的瓶颈,其实,前端开发的地位很低的,而且没有话语权。前期很闲,后期忙的要死,明天就要交付了,还有一两个功能没有完成呢?怎么办呢?加班!效率会更低的。匆匆忙忙的加了一个通宵,然后交付一个半成品的产品,交付了! 后期,在不断地维护。这就是我的现状!


这样做法,肯定不行的!个人的一些建议,关于小公司的开发:

1  产品先行
   好的产品经理是可遇不可求的!
    一个产品的好坏,完全取决于好的产品经理。如果,没有一个好的产品经理,全都是扯淡。
    产品经理的必备技能 ----- 撕逼!如果产品经理不会跟Boss 撕逼,苦的使我们底层的开发人员。撕逼是一门学问。
    好的产品原型,我建议使用Axure.
    “产品先行”,产品经理,要未雨绸缪。产品经理,最重要的职责,就是画出产品原型。这个产品原型,并不是当前开发的产品原型。比如,我们在开发1.0 版本的时候,产品经理,应该在构思 1.1 或者是1.2 的版本了。产品经理应该学习这种增量的模式,不要我们在开发的时候,只是在测试,不要等到开发之前,用两天的时间,交给我们一个不完善的产品。个人感觉,产品经理应该领先开发两个版本以上。
   所以产品经理的时间管理,必须要学会,二八法则。
   所有的事情,尽量用简短的话语说完。
   会议不要超过10分钟,除非重大的会议。
   产品经理,产品原型一旦完成,就不要修改了。产品原型切忌修改,修改的代价是很到的,就算是老大,除非必加不可的需求,根本没有商量余地的需求。 一般,都要放到下一个版本进行。
   在定产品原型之前,要跟技术先讨论 技术的可行性。

   如果,你拥有一个好的产品经理,是你的幸运。我认识一个 范冰,个人感觉很牛逼的产品经理!
   
2  设计切图

3  后台接口开发
    后台的开发要领先,前段一个版本。有人开发新的版本,还要有人对接移动开发的出现的问题。 跟人建议,阶梯配置,如果两个人开发,一个人负责一个版本,当我们移动端在开发的时候,有个人跟我们调试接口,另一个哥们开始下一个版本!
    
4  移动端开发 跟后台交互
    后台开发的接口,很多的时候是不能用的,因为PHP 是若类型语言,所以,很多的时候不是缺少字段,就是返回的类型不对,这个时候,你需要耐心的教导他们返回什么样的字段。
   如果,你的后台,没有返回 数字索引,你就感觉万幸吧。昨天,一哥们说他们的后台的返回的数据,key 值是 中文。我当时就骂人了,卧槽,这货傻逼吧。返回的中文?四级没过吧?
这个时候的我,会立马甩屁股走人吗?

5  专门的测试  (或者是懂业务流程的人)
产品经理一个人测试,太累了!这个问题,应该产品经理解决,解决的方案,培养自己的 特约客户,或者找测试,现在的趋势是程序员开发兼职测试。


   人员配置,至少一个位置两个人。因为,一旦,一个哥们离职了,另外一个哥们会立马接手,不会让项目停滞不前!








No comments:

Post a Comment