返回目录:理财投资
4月14日,在“TGO特训营”活动中,还呗技术负责人马霖以《技术选型过程中的一些思考》为题,从十多年金融行业实战经验出发,结合初创团队与成熟团队的不同考虑,分享了个人对技术选型决策的思考和观点。
【以下内容节选自马霖的分享】
技术选型本身具有复杂性和多样性,不只涉及技术,还要考虑业务特点、团队组成、技术与业务的匹配度等多种因素。一次选型决策,如果对技术要达成的目标了解不够透彻,考虑不够周到,可能导致后续出现各种各样的问题,甚至引发多米诺骨牌效应。
一、坚持两大原则,可以克服技术选型中的选择困难症
第一,KISS原则。Keep It Simple and Stupid. 所谓大道至简,抛开业务影响因素,技术工作本身归纳下来涉及到研发和运行两个闭环,其中研发工作的闭环主要解决可维护性问题,即让研发工作能够不断迭代、持续循环推进下去;而在运行闭环中,需要解决的三个根本问题是,系统的可靠性、可扩展性、低延迟性。
第二个原则是,所选技术的生命周期一定要显著超过项目的生命周期,这样做有三大优势:
• 这个技术肯定相对稳定,bug相对比较少;
• 这个技术生命周期比较长的话,一般来讲社区比较活跃;
• 当这个技术生命周期长的时候,市场上面的人才比较多,能够招到合适的人才。
然而在实际操作中,最常遇到的问题是:选型的目标不够明确,导致事倍功半。
很多时候选型不是一个纯技术选型,而是选一个业务解决方案。比如在考虑还呗业务的账务清算系统选型时,首先考虑的不是用什么语言,框架是什么,跑批做还是实时做,而是业务解决方案到底能不能对整个业务流程,业务模式带来提升。
事实上,80%的选型都不是技术问题,而是业务问题。但技术最终要为业务服务,不能推进业务发展,技术就是宋江的军师——无用。
技术选型中还涉及技术栈问题,虽然技术没有高下之分,但是技术一定有趋势和方向。当新技术的压路机向你碾压过来时,如果你不能成为压路机的一部分,那么你就只能成为路的一部分。一个团队,一个公司要发展,就一定要把握这种技术潮流和方向,要成为压路机,往前走。
二、初创团队:问题驱动,效率优先,快是第一要义
初创团队,顾名思义,人少,而且职能少,每个人都是多面手。
因此,在技术团队搭建的早期,最核心的是要选对人:
要找经验丰富,踩过很多坑,接触过方方面面的东西,综合判断的意识、知觉感强的人。如果经验不够丰富,就选基本功最好的,对底层原理、数据结构、网络结构等知识原理了解比较清楚的人,来做技术选型相对更靠谱。
回过头来,初创团队在技术选型方面 “时间就是金钱,效率就是生命”快速跑起来是终极追求,给出5个建议:
1. 选最熟悉的技术。所谓熟能生巧,称手的工具才是最好的,可以通过快速试错出结果;
2. 做狭义的技术选型。此时,业务量比较小,不需要在每个业务链条中关注所有方面的问题,解决问题是王道;
3. 选择开发效率优先的技术;
4. 问题驱动来做选型。创业早期,谈不上规划,一没时间二没必要,核心是找到业务问题的痛点来解决,然后再解决下一个痛点;
5. 选择简单的技术。多个技术可选时,选最简单的。因为够简单才能足够快,这时候不适合炫技。
三、成熟团队:规划驱动,运营优先,扩展性为第一要义
以往在大公司工作的近10年中,我最大的感受是,很多决策做得相对比较慢,而一旦决策定下来,做出来的事情质量特别高,基本上不会有大的失误,特别是在做“还呗”的时候。这就要求一个成熟的技术团队,不再单纯追求快,而是追求扩展性的增强。
相比于初创团队,一个成熟团队所处的环境发生了变化:
在此条件下,成熟团队的技术选型要考虑如下问题:
选型基本上是业务本身的解决方案,既要考虑新方案的可靠性,更要考虑老系统的兼容性;
团队追求的目标不再是快,而是扩展性强,可以支持后面很长时间的业务发展。这时候如果快决策,但支持很短的业务线,就需要不停地做选择,反而变慢了;
选择运行效率优先的技术。有一些技术在开发阶段花费时间长,难度大,但是在运行阶段效率更高,这个时候解决生产环境中的运行效率更为优先;
像“还呗”这样,主营业务成规模之后,相对稳定,早期依靠用户反馈调整业务的方式,有了局限性。这个阶段产品或业务一定要有顶层设计,没有顶层设计的产品走不远。在技术方面,就是以规划为主做技术选型,服务于顶层设计;
技术选型更多是广义的选型。一辆车由车灯、车轮、引擎等组成,一个零件需要换,就要考虑与其他系统的兼容问题,这成为选型过程中最伤脑筋,最复杂的节点,牵一发而动全身。
在成熟团队中,慎重则必成,轻发则多败,要运用好“慢思维”,有助于解决那些疑难问题、复杂课题。