前言
相信这几天在微博上,有被手淘的关于双十一的技术所刷屏,当然早读君必须也要参与刷屏的队伍中。今天先来前奏~~
正文从这开始~
15年双11刚落下帷幕。今年众所周知,是全面“无线化”的一年。数据上我就不说了,可以公开的数据我相信大家多多少少也从各方都了解到了。
在整个阿里体系内,无论技术还是业务,都会把每年的双11当作一个战场,同时也是一个“炼金石”。不管是技术还是业务,不经过双11的检验,似乎就没有资格真正的在阿里站得住脚。
此文作为今年双11手淘前端技术巡演的前言,注定会是一篇技术干货含金量偏少的一个引子。笔者也就着第一次作为双11手淘前端的PM的角色,聊一聊在今年双11,在我们所谓“前端”这个职能上,我看到的一些事情和感想。也为接下来即将“扑面而来”的一篇篇各个技术方向的含金量极高的总结和干货做个“抛砖引玉”的作用。
“前端”造的出P1以上的故障么?
或许很多同学会有些奇怪,为什么笔者第一个话题会说这个。
没错,笔者在码这些字的时候,想起了在双11备战期的某天晚饭时,笔者跟自己的老板-大家熟知的
寒冬winter无意闲聊,大致的话题是说当今“前端”这个职能在阿里体系内,在如今全面“无线化”,“App化”的时代,到底有多大的价值?没错,前端圈子的确风风火火,各种热闹,各种走在技术变革的最前沿。但是你看,至少在阿里,在手淘App内,我们一没承载主交易链路,二是双11压力最大的流量,服务,QPS抗压也通常不是前端这个“职能”干的。
没错,成熟的Hybrid体系下Web的开发模式的确是研发最快,成本最小的一种方式,今年双11里面大家从手淘手猫各种App访问到的90%以上的会场,活动,小游戏,也确实都是“前端”同学们做出来的。但是,就凭着这些“上层建筑”,就能完全判定前端的价值么?
然后,
Winter笑嘻嘻的说,是呀,你可以去看看,历年来在双11的故障单里面,有没有“前端”造出来的P1以上的故障。问题继续下去似乎没有什么意义,我想说的是,有时候“你能出多大的漏子,可能也意味这你有多大的价值”。
当然,大家可以有心的说,我一个前端bug可以把淘宝首页搞挂,我一个js错误可以把整个搜索搞挂,这样是不是也是巨大价值的体现?反过来说,如果在双11这样的完整的测试流程和发布流程里面,出这样的前端故障丝毫不能体现你的重要,只能暴露你就是个bug。
所以,在以往意义上的前端,不出故障仅仅只是一个60分,甚至不到的标准。更谈不上能出大故障是价值的体现。然而在今年双11这个节点上,终于可以很冠冕堂皇,很自豪的说,“前端”这个职能完全可以承担起一个差错就可能引起P1以上故障的巨大价值体现。
先卖个关子,详细待后面
勾三股四、阿里子之给大家详述。双11前端团队的PM角色是什么样的体验?
我们按知乎的常用提问模式来说这个话题。双11前端团队的PM这个角色,笔者今年第一次做,TA更偏向于资源和风险的管理,而不是项目的管理,我们单个的项目有对应的单项的技术PM,单个项目的PM可以来源于任何技术职能团队。而在这前端个团队资源PM的角色里,TA的主要的职责有以下几个:
1)前端资源池的全局管理和分配,横向对接双11每个单项项目组
2)应对双11随时可能突发的新的需求和紧急项目
3)风险的把控,团队内资源的阶段性调配
4)在资源调配和风控之外,还需要对于部分项目的技术方案进行讨论和决策
就以上几个职责,有几个关键性的事情,
1)首先需要全局的了解双11相关的所有和前端团队相关的需求和项目,双11的业务基线在哪?需求层面,来源于产品,营销,互动,技术基础的项目各自有哪些?分别的工作量大概是怎么样?是否依赖客户端的双11新增功能或者版本?想要了解这些问题,意味着在双11需求搜集阶段,可能就会很忙碌,几乎要尽可能参加所有和前端资源相关的需求评审和方案确定。因为你必须要知道有多少事情之后,才有可能知道在这些事情下,在团队这么多资源的情况下,怎么去合理的分配。在资源极其紧张的情况下,前期漏掉一个都可能在后面的研发阶段引起极大的风险。
2)在有了全局的项目和需求梳理之后,一定还必须对团队的同学们的能力和擅长的方向有明确的认知和把握。因地制宜,合适的同学放到合适的位置。有同学适合做互动类的小游戏,有同学适合模块化的分工,做会场,也有同学适合做技术基础铺垫,横向的推动。对于同学们的技能点了解不算是难事,但是不是合适的人刚刚好就能完全对应上所有的事情的。互动和会场每年一定是需求量和工作量最大的两件事,如果匹配的资源不够,人的调配将会是一个头疼的问题。
3)当你好不容易紧紧巴巴把人挨个排到了对应的事情之后,一定记得回过头来看看,整个资源池子里,还有buffer和backup么…在双11这样的事情上面,永远没有所谓的“意外”这一说。哪怕到了中后期,老板或者集团层面的一个决策随时可能催发新的重要的项目。如果没有提前把这件事情考虑进去,当问题来临的时候,才不至于束手无策。你自己也可以是一个buffer,但是一定不能仅仅是你自己一个。
4)以上还是前端团队内部的资源协调,对于手淘,手猫的版本控制,功能集成,发版规划是什么样的同样需要有明确的了解和认知。必须得知道在什么时间会发布什么版本,集成什么功能,有没有依赖这个功能上线的项目。强依赖Native新集成功能的项目和H5独立能承载的项目需要分为两个类别的来考虑,这跟项目时间上的优先级有直接关系,这种分阶段的调配对于一个同学需要支持多个项目的时候尤为重要。
5)当前期一切安排部署妥当之后,按部就班走到研发阶段的时候,PM的职责会略微转变,更多要从一个“班长”的角色变为一个“生活委员”和“劳动委员”。尤其是当你自己没有进入具体项目研发的时候,这个阶段你的精力会稍微多一些,服务好辛苦的,各种加班的同学,会是研发期间非常非常重要的事情。你必须要让大家知道大家的辛苦都是被你看在眼里的,同时在服务大家的时候,也能更好的监察各个项目的进度,发掘项目里优秀和大压力的同学。“适时和合理的激励”非常重要。
6)当整个研发阶段进入到中后期,你要着重