我们在今年的 SegmentFault D-Day 技术沙龙里加入了别具一格的「圆桌讨论」环节,圆桌偏重的是技术热点、成长历程以及创业路上的经验交流,和主体的严肃议题分享形成互补,就是为了做出更加 SegmentFault 式的沙龙体验,让技术与实际经验结合,让普通开发者与大牛更深入地交流。
圆桌产生了很多非常有趣的对话,下面摘录部分以供阅读。
南京站圆桌讨论
南京站的圆桌由 @binaryTree 主持,嘉宾分别是 Teambition 前端工程师寸志、UPYUN 系统开发工程师张聪、扇贝网产品和技术负责人吴焱、暴走漫画技术总监丁彦。
从左至右:丁彦、吴焱红、张聪、寸志
最近大家都在讨论工程师和产品经理之间的故事,你们每个人都分享一下自己和产品经理之间的故事吧。
寸志:我一开始是工程师,后来负责推广产品,有可能我的工作和产品经理、项目经理的工作是重叠的,产品经理是比较好相处的,比较难相处的是产品总监,我们的产品总监是 CEO,他会有各种奇怪的想法。有时候我在说这个,他突然说那个,说我说的东西应该很简单。我觉得产品经理和工程师思维是不一样的,工程师是从开发角度出发的,而不是以用户角度出发,产品经理是从用户的角度考虑问题。很多时候我觉得我们在技术上被产品经理、或者被 CEO 推动着把不可能变成了可能,还是需要产品经理这个角色让开发超水平发挥的。
张聪:我们 UPYUN 是一家自主性强的公司,所以我们技术主导的余地比较大一些。和产品经理相处,我们分应用和技术部门,应用的内部系统和产品经理更密切一些,他们合作过程中也会有一些问题,和产品经理的问题是在需求上。如果需求不够明白,技术做很多东西都不知道用户的需求是什么。现在应用和产品经理的相处是会在整个需求阶段跟的比较紧一点,让两边的交流更多一点,产品经理经常跑在开发部门,这样最终做出来的东西会好一点。我这边和产品经理接触比较少。
吴焱红:我是寸志说的比较难搞的人,因为我在公司负责产品和技术,我是产品和技术负责人,掌控这两块,扇贝所有的产品都是从我手里出去的。我们用一个东西衡量产品的好坏有一个非常简单的指标,我们要把问题在早期阶段解决好最好,比如我们给产品十个小时的时间,如果漏洞没有在产品这边截住,到开发可能就是五十个小时,甚至更长时间,如果这个问题继续遗留下去,到达我们的用户手上浪费的时间就会更长,所以这个量级的过程是非常大的,所以所有问题越早截留住越好。
有的人说产品经理是负责需求的,在扇贝没有这样,每个人对自己做的东西负责,当我们想一个需求出来的时候,我们要想它是怎么实现的,它到用户那里给用户造成什么样的体验,所以我们发布一个新产品之前,在扇贝是经过很多酝酿,产品是反复的思考,思考你的需求给后面人带来什么影响,要用公司哪些资源,需要有多少设计,设计那边要花多少时间,这个东西好不好设计,这个东西要多少个平台等等。产品在做这些事情的时候都回去思考,当我们把问题想清楚的时候,再和工程师沟通就比较好沟通的,所以在我们这边不存在障碍。我们也在逐渐的培养产品经理,扇贝已经这么长时间了,我们一直没有产品经理这个角色,一直是由程序员兼任的,但是我们还是能够把这两者衔接起来。
丁彦:我们有产品经理,暴漫只有一个产品经理,是让人非常头疼的人,前面三位结合产品的角度讲的,这个问题我最有发言权,因为我不是产品经理,我是搞技术的,在我们公司和产品经理沟通是非常头疼的事情。
王尼玛是一个非常有激情的人,他的想法特别多,经常半夜两三点告诉我他有非常好的想法,让我明天帮他搞出来。我觉得在我们公司和产品经理打交道要有几条原则,要守住底线,他讲什么东西你说这个想法很好,明天我跟同事们再讨论一下,过了这个热情点他明天自己也会想一想,到明天可能是另外一个说法了,也许就不提了。如果当时你就接着他的,你熬夜把这个东西做出来了,他第二天可能会觉得这个东西没有用,那你就是白干了,所以第一要守住底线。
第二是一定要跟他多保持沟通,从程序员的角度想产品我觉得也是有用的,不是说一定从用户的角度考虑产品是唯一的,因为还要考虑产品的实现,也许未来的实现一个用户需求影响到了其他用户需求,这就得不偿失了。这个时候如果你考虑下来,你觉得有商榷的地方一定要和他沟通,首先要肯定对方,觉得对方的想法是很牛的,程序员情商一定要高一点,一定要把自己的理由说的很清楚,而且不要理由一次性说完,因为他只会听头两条,后面的基本上不会听,你要分阶段的给他讲。
从一个普通的技术开发,到稍有知名度的开发者,你们觉得最艰难的时段是哪个时段?
丁彦:有两个时期最重要,首先是入门阶段,刚开始肯定会受打击,所以要端正心态。自己要看到自己的成长,碰到问题不要气馁,相信自己的智商。我一开始做的东西国内做的人很少,所以当时发展的很快,但是当你自己觉得自己很牛的时候接下来有一个坎儿,这个坎儿就是怎么样才能更牛,这个时候每个人做的选择不一样,有很多路,没有哪一条是对的,要选择一条最合适你的。
张聪:我从一开始是做后端的,后端会偏系统,特别是微博服务器,它比较枯燥,不会涉及到产品方面的东西,我们每天时间都在保障线上的稳定性,它和产品线上的东西不一样,产品上的东西可能会有意思,自己做出来的东西很看到。对我来说一方面是兴趣,我觉得这方面能给我带来很多的兴趣,所以遇到问题即使我解决了,但是我也想把它弄明白,弄明白的过程中我会发现之前做的不够好,还有很大的提升,可以用新的方案去做。我一开始做这些东西的时候,包括系统要做设计的时候,我们的第一个方案,或者被用户追赶出来的方案是非常差的,但是那个时候没有经验,不知道好的系统怎么设计,那时候是拼凑成能用的就上去了,上去之后在不断的经历打补丁式的过程,回头你去重构它,重构它的时候才会感受到更好的设计,如果你一直不去重构它就会被业务拖走。比如我们很多系统病发量非常大,如果我们不去重构它,不需持续的优化它,我们的系统就撑不住,这个代价是非常大的。
对于刚毕业的同学,我的建议是大家可以多了解一些各方面的知识,因为我在面试刚毕业同学的过程中发现很多同学基础都挺好,但是各方面的东西都没有了解过,问到什么都不知道,还是停留在学校里面,我觉得不断前端还是后端,各个社区多关注一些,多接触一些东西,才能发现你更感兴趣和更适合你的。
寸志:我在读大学的时候会订阅一些技术博客,一直到现在还在读这些博客,现在我全都过滤掉了,基本上是前端的这些东西,看完之后想精读的话会收藏一下。你要有一个学习的心态,要不停的去了解新的东西,要不断更新你现在的知识。你在职业生涯中经历的项目,你要处理的问题也很重要,你每天做的项目都很简单,或者都是用你已有的知识能处理掉的,不会有一些更新,没有太大的要求是不行的,项目也会造就你的能力提升。假如你每天在做同样的项目,对自己没有什么要求的话是不会有成长的。
吴焱红:像之前说的一样,学习的过程就是成长,特别是一行程序都不会写的时候,抄别人的,不懂什么的,各种各样的问题。如果真的成长为一个比较好的程序员,你出现问题的时候可以到网上去查,如果身边有一个可以帮助你的人,找他问一下,可能成长的速度更快一些,也会更加有信心一些,就是你可以找一个能够解决你问题的人。
第二个是你自己要不断的发现问题,如果都不去尝试着把它做起来,不让这个东西有更多人使用,或者你能不断的深入到代码里面去,而是都在浅层不东的话不会有一个很快的进步,我那个时候开始做扇贝的时候什么都不会,抄别人的网页慢慢的学,当时我不断的问扇贝的 CEO,不断的向他学习。
我们做 CDN,图片有一些缓存所以有一些压力,不知道暴漫有没有。我们图片有一些加密的机制,不知道你们有没有类似的经验分享一下,还有一个问题,因为我们现在有私有的云盘,你们会把私有的东西放到公共的存储空间吗?
丁彦:要用云存储服务商的云存储,这个能解决你的很多问题,但是有时候会发现太贵了,流量太大,每个月要给他们很多钱,多花钱多赚钱。大家在用云服务的时候有一个基本的信任,我知道好多互联网公司都不会自己去买服务系统,都是买云服务系统,包括自己的服务系统,也是基于一些共有云上面的私有云方案,比如在阿里云上搭一个内网服务器,也不是自己去买服务器。对于这样的话可以用一些你值得信赖的空间存储你的私密图片,特别私密的图片就存在自己的电脑上加密。
张聪:我们的云存储和 CDN 默认是搭配在一起的,你也可以关掉其中一个,所有的文件操作都通过一个。CDN 是把资源都缓存在前端,CDN 不做用户交流,我们是做过滤云服务。