访谈 | 荔枝FM CTO丁宁:CTO要扮演好技术领袖与精神领袖
丁宁:荔枝FM是一款手机的轻电台应用,可以在手机上开设自己的电台和录制节目。主要是集录制、编辑、上传、存储、收听、下载于一体,然后又融入了大量的社交元素的这么一款电台类应用,它可以满足各类需求的人群,因为在电台的收听人群中,年龄段的跨度会比较大,所以我们融入这些元素也是为了解决各种需求的人群吧。
丁宁:荔枝FM的业务特点还是比较明显的,会有大量并发的页面刷新,还有音频数据的请求,这是最重要的两个方面。
这两个特点,一般技术人看到后,首先就会想到HTTP传输,还有CDN的加速,但是荔枝并没有完全采用这样的方案,因为HTTP虽然好处明显,但耗电量大、流量大、可控精度粗、产品体验受到制约等劣势也很明显。最后,我们在这两个方案的基础上研发了更适合这类业务的解决方案,我们决定采用TCP,然后在TCP的模式上做一些补充。
当然之前也有过HTTP和TCP共用的做法,但这样的多通道会带来状态一致性的问题。针对这个问题,我们又研发了一套单通道多路复用的技术。这个技术使用之后,对上层开发人员来说就和HTTP一样简单,但它在底层只保持了一个TCP的连接,就能防止多通道导致客户端网卡的拥塞。
最后在荔枝FM,不仅信令通道会使用这条链路,后期甚至在上传音频节目这一业务上,我们走的也是这条链路,真正做到单通道多路复用,这样的话,既保持了HTTP的易用性,又最大限度的利用了TCP的灵活性。
丁宁:其实并不会,这个东西在最底层是混到一起去上传了,但我们把它放到应用层上去处理了,会把整个上传的数据分片去传输,我们做了大量的测试,会根据网络的状况和用户的操作实时调整分片的大小。
另外在服务端,为了应对大量的并发请求,我们采用了一些微架构的调整,不同的业务请求会转到相应的业务处理架构上去执行,而且每一个抽象的架构层之间,都会通过SDK的调用来解耦,这样就算某一个业务单元崩溃,不会导致整个架构的崩溃。
但这么做也有利有弊,弊端就是最初的开发速度会慢一些,因为你需要团队全部了解这个架构的组成,以及你设计的思想。而且从顶端设计开始,都是由高级架构师一起讨论然后定案,什么业务能拆、什么业务不能拆、怎么个拆法、拆了之后、分布了之后可能会发生什么样的问题、如果发生问题该采取什么样的应对措施等,这些在前期的时候要进行充分的讨论,会花很多时间在这上面。
丁宁:其实荔枝FM真正核心的技术还是集中在音频方面。现在荔枝有两个音频团队,分别负责语音处理和语音识别。
在语音处理方面,荔枝FM现在有一整套的降噪、回声抑制、润音还有面向小音腔设备录音播放的解决方案。同时,现在我们已经研发出可带有音乐的、全时段剪辑的解决方案,这个目前还是荔枝独有的,这个技术我们也申请了专利。
在语音识别方面,我们现在的精力主要放在提高语义识别的精度上,这个是我们觉得是未来非常重要的一点,也是现在互联网上很多团队在做的事情。对于我们这类应用,难点就是找到用户感兴趣的点,并给他推荐他所感兴趣的内容,所以我们对所有的音频资源进行定位和标签,再进行精准匹配,也就需要我们在语音识别上下更多的功夫。而且语音识别未来的想象空间会很大,真正识别之后就可以去做更多的事情。
丁宁:其实团队管理中,最大的难题并不是技术本身,也不是你带什么团队,语音团队也好、开发团队也好,其实所有的团队带法都差不多,碰到的挑战也都是一致的。我觉得,对于技术团队来说,挑战最大的其实还是找人,找有管理能力的人,所以很多的技术管理者,他很多时候都是在做招聘。
然后过了招聘这个层面,主要就是项目管理了。因为,创业这个阶段,你要干得事情非常杂,从上到下每个细节你都需要去关注、去做。
我从08年开始做项目管理,到现在这么几年,觉得项目管理这件事儿对创业公司来说还是挺难的。因为首先,人员是快速招聘的,都是从四面八方来的,他们在之前形成的一些习惯可能并不一致;另外,人员的水平参差不齐,因为你不可能在创业初期就找到很多的牛人和高手,这并不现实。那你怎样才能让这些人高效的朝着一个目标去运作,这对于技术管理的难度和挑战非常大的。
我们目前采用的是Scrum这种管理方式,它本身的方式是很好的,像每天的例会、冲刺前的沟通、冲刺结束后的总结等。但在实际在真正运作的过程中,会产生很多问题,最后很可能就慢慢流于形式了,你会发现团队越做越慢,质量也无法保证,这是很严重的一个问题,也是很多做技术管理的人都需要非常关注的一点。
丁宁:对创业公司来说,CTO这个角色要兼任两个方向的领袖,第一是技术领袖,第二是精神领袖。
因为首先成为技术领袖,你才能团结大家,让大家围绕在你身边,认为跟着你这事儿能做成,跟着你这技术不会走歪,不会走到最后可能要返工。另外,身为技术领袖还需要很早就预见一些后期的坑,或者中间的问题,帮助大家避开,这是技术领袖给大家的一种感觉。而要成为技术领袖,对技术的敏感性以及实际解决问题等能力,都是不可或缺的,当然最重要的,还需要见多识广。
精神领袖,更多的时候,需要和大家冲在一线,鼓舞士气。精神领袖带来的好处就是,你能够让团队士气高涨,认为这事儿能做成、是有前途的。因为技术人本身其实是很单纯的,所以你需要把这两个角色演好,让整个团队既信任你,然后又愿意跟着你向着目标努力。
丁宁:这对很多能力,尤其是沟通能力的要求是很高的。你需要有把一个复杂的问题简单化的能力,才能有效的鼓舞大家,另外管理能力不好的话,肯定也是不行的,这些都是需要技术人去锻炼的。
所以技术人,到了一定阶段后,一定要去锻炼沟通能力,这是非常重要的。把一个复杂的问题清晰的理解之后,简单化,再用简单的语言向技术之外的人去沟通,尤其是产品、市场、运营等。因为技术人可能经常站在技术角度说一些问题,产品和运营可能会听不懂,彼此之间就可能产生一些误解,所以要尽量用一些大家都能听懂的语言沟通,这对整个团队也是非常有好处的。
丁宁:这两年,因为从技术转到技术管理,其实也想了很多。我觉得技术其实只是一种能力,但要做成一件事情,需要多种能力的综合,比如技术管理、沟通能力、社交能力、对目标的认识等,方方面面都是挑战。
之前一直觉得做一个技术大牛是一个多么牛的事情,别人都来问我问题,也没有我解决不了的问题。但到最后你会发现,技术只是一种手段,主要的还是目标的完成。特别是如果你去创业,想把一个事情做成的时候,仅仅是技术并不能帮助你解决所有的问题、达成既定的目标,其他的影响因素会非常多。
所以,当技术到一定层面之后,技术人一定要提升自己技术之外的能力,要去扩展你的社交、沟通等能力,这是所有技术人需要关注的。当然,当你到那个层面之后,也会逼着你一定要那么做,然后慢慢在实践中领悟。
丁宁: EGO这个事情真的做得挺好的,通过EGO我其实能认识很多人,能够学到很多东西,这个平台真的是很好,有点儿相见恨晚的感觉。期望的话,还是想认识更多的人,然后希望有一些人才推荐的环节、技术管理的培训等,可以让我们的团队去学习、提高。
版权所有 转载请注明: