最近做iOS app的时候,发现自己的实现非常不优雅,产品不停地「优化」,导致很多if-else判断,而且bug改起来很费劲儿,维护不方便。一开始我把原因归于产品,因为没有见过app的效果图(产品一口咬定给过触屏版的效果图,并且承认app和触屏版不一样),没有见过一个整体的产品文档(产品说给过触屏版的文档,app参考触屏版),然后就做,最后出来肯定有很多问题。本以为这个demo应该OK了吧。现在咱们可以考虑出app的产品文档和效果图了吧。但是产品说,现在咱们的app已经上线了,我们要开始优化了。于是开始发优化包,包里面很多「参考京东」,「参考淘宝」。

我一开始非常生气,因为我想这应该不是一个正常的流程了吧。于是找产品说,现在app设计的不好,咱们是否可以这样:

  1. 维护线上的版本,因为嵌套了很多h5页面,所以修改起来大量工作都在前端,app很快就能改好。
  2. 重新起一个版本。把产品文档和效果图给我,确认后,开始做。

跟一个产品沟通了一上午,最后产品只记住一句话:「app设计的有问题,优化起来很费劲」。并把这种观点传给了产品的老大陈老板。

然后我们老大田老板来上海和boss开会,当然陈老板等各路大佬都在。然后产品把上面的结论跟老板说了,田老板估计挨批了。虽然我们有资格参加这么高规格的会议,但是我还记得田老板回来以后很生气,把我叫出去说了一顿。

然后今天陈老板又叫我还有田老板等相关同事开会,过了一遍产品发的excel文件,确定哪些功能好不好做,需要多少天。

事情应该就会这样结束了。

首先陈老板对我不满意,因为我开发水平有限,设计的app「架构」有问题(我和产品沟通的时候提到的,产品也是这样转给陈老板的)。其次,田老板对我不满意,因为我不应该和产品说话,有问题应该找他,所谓家丑不可外扬。

我这次推进工作以彻底失败告终,总结一下,可以记住这些东西:

#不承认,开发人员永远不要承认自己的架构有问题。

田老板告诫我,如果你出去承认自己的架构有问题,那你就玩完了。真的有问题,自己加班搞定,业务人员根本就不知道。自己的问题,自己解决,千万不要告诉别人(尤其是业务人员)。

#不找事,不要把自己的问题抛给别人

既然我发现有问题,要自己解决。不要指责说是别人的问题,即使真的是,也要自己解决。我这次的错误在于把问题抛给了老大,而且还是在他不知情的情况下。正确的做法应该是,自己在不耽误整体进度的情况下,按照自己的想法做一个,然后让老大们自己去选择。一般情况下,如果我没有做好(完)解决方案,直接跟老大要个解决方案,很难。所以不要让老大做填空题,让他做选择题。

#不赌气

毕竟我和公司只是雇用关系,我以前经常想,老子不干了!然后去别的公司,发现还是这样的。工作出色被挖走和被辞退可能都是一个比较好的跳槽理由,但是工作不顺利跳槽,肯定不是!如果因为工作不顺利就不干了,我感觉到了别的公司也是这样。作为一个打工者,能做的,只能是把工作尽快做好。

#存在即合理

以前我常说,我们公司这种流程有问题,结果这次事情闹得这么大,一点也没改变!我前段时间抱怨公司申请个东西都很慢,抱怨又有什么用呢?即使我去找他们,他们现在还是这副模样。既然选择了做螺丝钉,就不要试图改变这些流程的东西。只需要做领导安排让做的即可。在没有十足把握的情况下,不要试图改变既有的流程,除非能一击致命。