WIFI 万能钥匙万玉权:团队之中要有跨三界之外的“闲人” [转]
在团队规模较小时,很多事情都可以变得特别简单。比如架构的选择,大部分情况下,最初的架构越简单越好,随着业务的演进,架构才不断完善。
连尚网络经历了从几人到上百人的管理过程,其自主创新研发的产品 WiFi 万能钥匙经历了从零到两亿日活的完美蜕变,对于技术团队的管理,他们有哪些值得初创团队学习与借鉴的经验之谈?在 TGO 杭州分会“E 家宴”活动现场,连尚网络副总裁、WiFi 万能钥匙万能接入业务群 CEO、TGO 鲲鹏会上海分会会员万玉权带来了一场关于《技术团队管理与 0-1》的主题演讲。
2013 年加入连尚,负责 WiFi 万能钥匙技术研发。任职期间,完成核心系统架构从 1.0 到 2.0 的改进以及推送系统、数据采集、账户系统、分布式搜索、分布式存储、分布式缓存等系统的设计和研发。从最初的服务端程序员到现在的 EMT 成员,同时分管万能接入事业部。在此之前,曾在银联、Liba、快钱等企业从事技术研发。
以下内容根据当天分享整理,有部分不改变原意的删减:
在我的预见范围之内,我认为 WiFi 万能钥匙会做得比较大。当时只有我一个人做系统的时候,我就做了分布式和微服务。那时候 Dubbo 开源还没有多久,这套东西是第一次尝试做,但既然定下了方向,就要沿着这个方向一直往下走。
在整个团队资源不太能充足的情况下,为什么要做这样的选择?这里有几个故事与大家分享。
一个“逗号”成为最后一根稻草
我是 2013 年进入 WiFi 万能钥匙,WiFi 万能钥匙是 2012 年底才发布的产品,到 2013 年底就有 3000 万的用户量。大家清楚移动端也是客户端,很多东西要在 SB 上做控制,用户行为数据要及时拿到,并且能够实时加以分析,这样才能帮助业务作出更好的决策。当时面临的问题是配置下发各种服务的时候把“逗号”转换错了,导致整个配置服务完成以后全部瘫痪。因为它是 JC 解析,服务端拉下去之后,服务端解析不了。当时整个服务还在私有云上,直接导致了整个云不能用。于是我们做了第一个微服务,配置服务。
第二个微服务是数据搜索引擎,也是基于微服务做的,但我想说另外一件事情。大家知道客户端上增加任何一个新业务就要埋点,埋点就意味着对应的搜索端要做更多的改变。最初,我们选择用 Loback,用于做日志采集,你做采集时要改 Pach,相当不灵活。后来我们对 Loback 做了改变,让它能够支持动态 Pach,就是客户端加对应的配置文件,后台有一个相对应的管理系统改变一下,添加完毕就可以解决这个问题。
基于 Loback 产生的数据是本地的,所以不能实时分析用户行为。再往后我们加了 kafaka 中间消息队列,但是 kafaka 容易出现诈死的情况。所以兜了一圈,我们用了 logstash,还是基于本地文件同步的方式解决这个问题。
第三个微服务是联运平台(支付平台)。当时,大家很疑惑 WIFI 万能钥匙为什么要做支付?而且当时只有一个三、四个人的团队。我们当时想做联运类的业务平台,它下面需要对接各个收单方或者是支付通道,中间加一个收单处理就可以了。我当时跟老板说给我一周的时间,我把 DEMO 做给你看。在第三天晚上,我就把 DEMO 给他,他就回了三个字:“去做吧”。等到项目做完时,正好 WiFi 万能钥匙 iOS 版本出来了,我们做了越狱版,只收取几元的费用。在当时的情况下,每天能够赚一万元。
关于系统的东西,历史过往走过的坑很多,但在那样的阶段下,作为团队负责人一定要表现得特别自我。在整个技术团队里,你一定要有自己的主见和判断力,并且带有一定的预见性,你才能保证这个团队稳定地向前发展。因为在这个时候,只有你能够作出这样的决策。
架构带来自由
软件架构带来的自由不仅仅是技术上的,为后面人员管理的自由、组织架构的自由都提供了很大的帮助。最初,团队人数比较少,而业务模块最高的时候已经达到了 60 个。从 JAVA 软件编程结构来看,对应只有六、七十个 project。也就是说有了这样一套架构,后面随着业务的不断发展、人员的不断增加,或者我想把每块垂直业务不断深化的时候,你就要做垂直隔离,也就是所谓的 BG、BU 的团队就能够出来了。基于这样的架构做这样的组织隔离,就会变得非常简单,也就是说整个团队不管是从组织上还是从项目上、管理上,都会变得非常自由。发生的一切事情,你都可以控制。
以始为终、以终为始
但是作为团队的领导者一定要有很明确的方向,你的判断力会影响整个团队。所以,如果你是一个合格的领导者,一定要有预见性。我做整个组织划分的时候,还有很多系统是没有的,推送系统、广告系统,一般流量达到一定程度就要变现,比如接外面的广告来做流量变现,中间会有一些分成。但是当流量到达一定程度,你不满足于分成,就会选择自己做。
我们当时面临的问题是:我们要等到流量到了一定程度做这件事情,还是一开始就做?还有一个问题是推送系统,在 JAVA 系统里一台服务器的连接数能达到多少很难确定,当我们面临着上亿长链接推送服务时,单纯的链接保持都要花很大的脑筋。所以我当时估计有二、三十个人的团队后,就开始琢磨长链接这件事情,乃至于到现在整个推送团队加在一起,一个产品 + 一个测试 + 技术才 6 个人,我们就维持了整个 WIFI 万能钥匙 Android、iOS 产品所有的长链接和推送服务。我们现在一个单台 32G 内存的服务器,压测下来能够到 500 万的长链接。这个产品,就是在这样一个过程当中打造出来的。
在团队里做到无我
到了现在这个阶段,我对自己的要求是:在团队里面,要能够做到“无我”。“无我”的意思是:我在或不在,这个团队都能正常工作。这个时候对我而言要做的事情不再是自我的阶段,你必须要能够充分授权,要相信大家,相信你招进来的每一个人都是特别棒的。而且每一个人,在你用他的过程当中,一定要用他的长处。本着这样的理念,经过了 2017 年和 2018 年,一个团队的战斗力就慢慢提升起来了。
存在感和归宿感
团队需要存在感和归宿感,什么叫存在感?当你发现一个问题的时候,在大部分人脑子里面自然而然要找谁。换句话说,他在这个团队当中,能够有大家认可的点。只要一个点,就能够影响这个人特别久。归宿感是指,要让他能够感受到他在这个团队里就像在家一样,我认为这一点也非常重要。有了这两个感觉,才能够产生一个结果:信仰。
我们经常听到阿里味,你和阿里的任何一个人沟通的时候,脑子里面想到的是他背后所代表的各种各样的标签,其实每一个团队都应该做到这样。团队形成信仰之后,只要你和这个团队当中的任何一个人聊上几句,你就能知道这个人属于哪个团队。当然,领导者在这个过程当中扮演的角色是什么、价值观正不正、有没有充分授权,在做事过程当中够不够果断、霸气传导够不够都直接影响到团队。所以有一句话叫做臭味相投,要的就是这个味,但这个臭不是真正的臭,是你这个团队的个性。
团队之中要跨三界之外的“闲人”
在团队的组建和打磨过程中一定要有一个闲人,这个闲人不参与到技术复杂的研发过程中,也不在所谓的五行之中,是跨三界之外的人。他不会直接参与到你的团队当中,但是他能够感觉到团队当中任何一个人的任何变化。比如,今天这个人早晨来上班,到了公司第一件事,手机往桌子上一摔,他就知道这个人今天情绪不好,他就要立马找他沟通。因为一个人来到你的公司,到他最后离开,不是说今天发生不愉快的事就离开了,他是日积月累产生的。在它产生过程当中,如果没有一个人疏导,最终的结果肯定是离开,但是离开那一刻肯定要有一个导火索。在这个过程当中,你发现得越早,对你团队影响越小;你发现得越晚,不单单是他一个人变坏,他也会把周围的人变坏。所以这个角色,我认为在团队当中非常重要。这个人可以称之为:政委。
我了解阿里里面政委和员工比例是 1:200,作为一个初创公司,如果你要想时刻掌握团队成员思想变化,你的团队比例要缩小。因为你是一个初创团队,这时候最重要的是文化的传导,思想的统一。等达到像阿里这样的规模,所有的东西都已经标准化和流程化、制度化之后,它所管的东西就是要抓重点:重点团队、重点人员、重点骨干,所以两个不同的阶段对人员的要求还是不太一样的。
这样的目的是:让优秀的人变得更优秀。很多人都说取长补短,什么是长、什么是短,什么时候要发扬长,什么时候要补短?其实在初创公司,大部分情况下我们都是说发扬长处,但大部分情况下你根本不知道这个人的长处是什么。在你用人的时候,或者有一个紧急项目成立 3-5 人团队的时候,你根本不知道要找哪些人,往往找的是经常在你眼前出现的人。
胜则举杯相庆,败则拼死相救
这句话最早出现在华为。很多时候你团队里没有那么多特别牛逼的专家或者是特别牛逼的技术人员,需要的是什么?需要的是这些差不多的人能够在一起,能够像兄弟一样,能够像战士一样,能够把你的后背交给对方。只有这样,团队的凝聚力和战斗力才能体现出来。
善战者,无赫赫之功
“善战者,无赫赫之功”,这是我们老板经常会说的一句话,可能看起来有点矛盾。其实从 WIFI 万能钥匙这几年的发展过程来看,它没有任何一个时刻是惊涛骇浪的场面,都是在默默无闻地发生。也就是说:任何一个将军,他都不可能把自己置于特别危险的境地。如果让你用十万人打对方的一万人,肯定是没问题的。但是在很多时候,你肯定不会在只有一万人的情况下,要干对方的十万人。
我想把这句话送给在座的各位:一个优秀的团队,绝对不是靠一个人、两个人特别牛逼,团队所获得的成绩是大家共同努力的结果,如果这个团队成功了,你一定要相信你的团队是一个真正的团队。谢谢大家!
WIFI 万能钥匙万玉权:团队之中要有跨三界之外的“闲人” [转]的更多相关文章
- Wi-Fi万能钥匙:说是破解,其实有危险(转)
Wi-Fi 万能钥匙如此危险,怎样做才能让这种可能严重侵害公众利益的 app 在中国消失? 这个“钥匙”为什么能够破解 Wi-Fi?它真的是“破解” Wi-Fi 吗?两年前我就有这个疑问了,原谅我对一 ...
- wifi万能钥匙自媒体平台开放注册(付注册流程)
12月13日,有网友爆料,wifi万能钥匙自媒体开放注册,看来自媒体还没有达到饱和阶段,也印证了自媒体时代才刚刚到来.现在这个自媒体的时代,几乎大多互联网企业都开通了自己的自媒体,比较知名的像今日头条 ...
- WiFi万能钥匙4.1.32接口
做Key4WiFi时提取的接口 部分代码来自于 http://zke1ev3n.me/2016/04/06/WiFi%E4%B8%87%E8%83%BD%E9%92%A5%E5%8C%99%E6%8E ...
- WiFi万能钥匙 for Macv1.1.0中文版
wifi万能钥匙 for Mac是一款运行在Mac平台上的免费WiFi热点软件,Mac分享无线流量.管理WiFi连接的必备神器.WiFi万能钥匙Mac版内置千万Wi-Fi热点数据,随时随地轻松接入无线 ...
- PHP破解wifi密码(wifi万能钥匙的接口)
新建wifi.php,复制粘贴 <?php $bssid = $_POST["bssid"] ; $ssid = $_POST["ssid"] ; if ...
- 手机WiFi万能钥匙查看破解的password和手机查询命令收集
手机须要网络利用WiFi万能钥匙破解了WIFI的password.手机就能够上网了,但假设想在电脑上使用手机破解的Wifi热点上网就须要password,此时须要知道手机破解的password,WiF ...
- WIFI万能钥匙协议分析
WIFI万能钥匙协议分析 需求: 上android 市场下载任意一款,wifi万能钥匙 软件,对其进行 协议分析和逆向,达成如下结果:通过对软件的分析,完成自动化爬虫,爬wifi万能钥匙的wifi库, ...
- 第一步:卸载手机上的“WIFI万能钥匙”! 会分享自己家的wifi
http://www.znds.com/tv-164866-1-1.html 楼主今日家中WIFI卡的不行,心想,20M的电信光纤没理由这么卡!于是就在网上查找了许多资料,接下来统一收集整理给大家!第 ...
- 家中WIFI被人用WiFi万能钥匙共享后,我们应该怎么做?
据之前WiFi万能钥匙官方称,其用户总数已经超过了8亿,且日活用户达到2亿,在海量APP中仅次于微信和QQ.可以想象有着数量如此庞大的用户,家里的WiFi是如何的"不保险". 而据 ...
随机推荐
- JAVA设计模式之静态代理
首先看看什么是代理模式. 一 代理模式 使用一个代理对象将对象包装起来,然后用该代理对象来取代该对象,任何对原始对象的调用都要通过代理,代理对象决定是否以及何时调用原始对象的方法 二 静态模式 要求被 ...
- 菜鸟手下的iOS开发笔记(swift)
在阳春4月的一天晨会上,有一个老板和蔼的对他的一个菜鸟手下说:“你既然会Android,那你能不能开发iOS?” 不是说好的要外包的吗?内心跌宕,但是表面淡定的菜鸟手下弱弱的回道:“可以试试”. 第二 ...
- Linux平台 Oracle 18c RAC安装Part2:GI配置
三.GI(Grid Infrastructure)安装 3.1 解压GI的安装包 3.2 安装配置Xmanager软件 3.3 共享存储LUN的赋权 3.4 使用Xmanager图形化界面配置GI 3 ...
- Java 中的E,K,V,T,U,S
Java泛型中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number ...
- 在java中,将String类型字符串s赋值为null后,将字符串与其他字符串拼接后得到结果出现了null字符串与其他字符连接的样式
String s = null; s += "hello"; System.out.println(s); 结果为:nullhello 原因: 先应用String.valueOf ...
- GO数据类型
基本数据类型 Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等. 整形 获取对象的长度的内建len()函数返回的长度 ...
- 一个HttpClient使用Windows认证请求WCF服务的例子
有个项目需要调用第三方SDK,而SDK获取服务器的已安装的特殊打印机列表返回给调用方. 但我不想依赖这个SDK,因为这个SDK是使用.NET Framework编写的,而我的项目是使用.NET Cor ...
- WSDL文档结构图
- 变量和关系符和JAVA基本类型笔记与常考面试题
变量的类型:数值型:整型(byte,short,int,long).浮点型(float,double)非数值型:布尔类型(boolean),字符型(char),字符串类型(String),其他引用型 ...
- 输出JSON
<?php header("Content-type: text/html; charset=utf-8"); $host = '数据库IP'; $dbname = '数据库 ...