张鑫旭-鑫空间-鑫生活
it's my whole life!备份内容浏览
前端开发负责人修炼指北
清风迅来
大家好,我叫XX,江湖人称吃土小2叉,目前担任公司的前端负责人半年多了,一路上摸爬滚打,历经团队人员变动,近日颇有感触,于是结合自己近半年的前端负责人实践经验,权当作一个学习记录,整理归纳一下前端负责人的修炼要点(大部分只是记录了关键词,没有详细展开),以及自己的实践记录。 跪求各位老司机多开车指点一番.
定位
要求
知识面广 (前端、后端、数据分析、产品、交互)
基础扎实
学习能力强
服务意识
产品思维
心态良好
善于总结
沟通能力
职责
营造存在感、归属感、成就感
把控技术方向
新人引导
促进团队提升、培养团队
与其他部门衔接和沟通
创造希望 (eg: 画大饼、某种意义上的程序员精神鼓励师)
关键词
团队建设、技术选型、人员安排
团队建设
技术氛围
人文氛围
技术选型
产品需求
稳定性
兼容性
开发效率
招人难易度
留人难易度
转型成本(时间成本、学习成本)
舍弃用户成本(转化率:兼容性; 访问量:SEO)
人员安排
让优秀的人变得更优秀 (技术栈:最前沿的技术; 老带新)
让普通的人加速提升 (技术栈:最成熟的技术)
淘汰余下的人
常见问题分析
面试时经常遇到一些人的离职原因就是以下一些……
1. 没有提升
什么是提升?
更快解决问题 7
更优解决问题 8
解决以前不能解决的问题 9
编程能力提升 (编码、设计、架构) 9
掌握新技术、新语言、新工具 5
工资提升 6
知名度 7
注: 数值为XX认为的较为合理的权重值,满分10,个人意见,仅供参考
如何提升?
缺一不可
时间
方向
坚持
实践
加分项
聪明 (XX注:可遇不可求)
有老司机指点 (XX注:可遇不可求)
好奇心
自我驱动力/主观能动性
专注
注: 除去 聪明、 有老司机指点, 这两个是可遇不可求的; 其余都是可以后天培养的。
为什么没有提升?
工作只使用旧框架、旧技术 【应聘人经常提及】
基础薄弱,学新技术难,求带,抱大腿
光看不练
没有时间
前端要学的太多太杂,学了这个忘了那个
新框架一个又一个, 来不及学
负责人能做的
保证产品稳定性,满足产品兼容性需求的情况下,尽量让团队使用最前沿的技术
推动团队技术学习、分享氛围,必要时给予物质奖励
为成员腾出一定自由时间
让自己成为队员的大腿、答疑解惑
完善技术文档
写优秀的代码
造轮子、改进项目基础设施
挡需求、砍需求、改需求、加需求
负责人不能做的/很难做的/不应该做的
不应该回答what的问题、 减少回答how的问题,而是更多回答why的问题
不应该每天催着队员去学习、去分享,而是要激发队员的自我驱动力、主观能动性
不应该安排超负荷任务,而是分配合理的任务总量
不应该花费大量时间(80%)开发业务需求,而应该花一半时间(50%)思考和设计如何改进现有开发模式
2. 没有成就感
如何获得
回报 >= 付出 (精神、物质)
对产品的认可
对技术栈的认可
对自己付出的认可
对他人付出的认可
助人且助人的反馈是积极的
个人发展、晋升
概况: 回报 >= 付出 (精神、物质)
3. 加班太多 没有时间 到家后太累了
首先明确一点,业务需求是永远做不完的
我们能做的,只是每周根据已有的开发资源,开发相对最重要最紧急的业务
另一方面,也要注意: 程序员自我提升 的重要度也是极高的
队员层面
合理评估工期
不断提升自己,不断提高效率
量力而为,保重身体
负责人层面 【主要背锅人】
合理审核工期
合理安排任务 【重要】
技术选型是否合理、是否高效
新人的引导是否到位
4. 技术分享参与度不高
如何改善
负责人牵头分享
奖励机制
避免布置过饱和任务量
应聘人的期望
(以下回答来自XX面试过的应聘人)
我比较期待能有一个经常相互讨论最新技术的环境
技术氛围好点,可以互相交流的,然后加班不要太多,有意义的加班可以接受
希望有挑战性和持续成长空间,同事之间比较容易沟通的,当然做的产品有趣就更好了
希望有大牛带
……
XX实践
团队建设
技术氛围
技术分享考评制度(鼓励竞争 、 与培训机会、年终考核挂钩)
定期 code review (2周1次) 优先级: 高
不定期 小分享 (不限次~2周1次) 优先级: 高
定期 大分享 (2个月1次)
鼓励参与翻译英文技术文章
整理、维护、更新前端知识库 wiki (涵盖: 代码规范、工具教程、开发流程、组件 Demo、语言教程等)
前端每周一题 , 以经典案例题形式传授实际价值较高的知识点
LeetCode 刷题活动 (算法题为主)
每周周会只探讨各自遇到的难题1~2个,思考更优解
开源项目 【构思中】
新技术交流、研讨会 【构思中】
以上各种分享,负责人带头进行
考核制度 DKP
v0.1 版本 考察两个维度: 分享贡献度、业绩贡献度; 每个月设置合格线,低于合格线进入考察期
试行了1个月,实际效果一般,参与度不高,仅一人达成分享贡献度合格;
不同产品线业绩难以量化衡量;
较反感惩罚制度
v0.2 版本 仅考察 分享贡献度。不设合格线,分值仅作为奖励评定标准
团队氛围
(需加强)
多关心队员真实诉求,阶段性一对一对话
设定阶段性目标(例如:官网重构计划),达成后一同庆祝
定期组织 TeamBuilding
技术选型
数据驱动 + 业务驱动 + 人才驱动
产品需求
稳定性
兼容性
性能
开发效率
技术价值 (对程序员自我提升产生的价值)
招人难易度
留人难易度
转型成本(时间成本、学习成本)
舍弃用户成本 (数据驱动)
舍弃兼容性带来转化率下降的成本: IE8 用户
舍弃SEO造成访问量下降的成本: SEO 流量
人员安排
让优秀的人变得更优秀 (技术栈:最前沿的技术; 老带新)
让普通的人加速提升 (技术栈:最成熟的技术)
淘汰余下的人
技术选型规划
以 PC 官网前端重构计划为例
现状
jQuery + 类 require.js 加载机制 + less + gulp + C# , 传统电商网站
目标浏览器
不低于 5% 访问量的浏览器
目标流量来源
SEM + SEO + 市场活动推广
其中, SEO 目前平均占比约 15% 流量
业务痛点
设计风格不统一、特别大量重复性工作 (各种合作方系统定制化移植官网)、 前后端耦合程度大
人员痛点
技术栈落后、招人难、留人难
重构好处
组件化设计: 提高代码复用性;有助于快速移植组件、促进合作方项目进度同步
技术栈升级: 有利于招人以及留人
前后端分离: 有利于提升开发效率
重构弊端
时间成本: 大量
兼容性成本: 只兼容IE9+
白屏时间: 比起传统服务器端渲染,会存在一定的白屏时间,而短期内不一定会使用 node.js + vue.js SSR
路线图
在后台管理系统中试点 Vue.js 框架,积累 Vue.js 经验 【DONE】
在完成 2~3 个后台管理产品后,渐进式(帮助中心页入手)改造官网前端 【View层 Vue.js框架 ; Action 层 c# .net】 【PLAN】
在确定舍弃 IE8 用户后,官网全站转型 Vue.js 框架
在确定舍弃 SEO 流量 改用 Vue-Router , .net 只提供容器
Vue.js + Node.js 服务器端渲染有一定积累后,官网前后端完全分离
近期实践
时间 | 分类 | 内容 |
---|---|---|
2017.4.8 | 讲座 | 前端小组集体参加中第二届国前端开发者大会…… 公司报销 |
2017.4.14 | 大分享 | XX: 自动埋点工具介绍(很low……) ATM https://github.com/xunge0613/ATM |
2017.4.21 | 小分享 | XX: 掘金翻译计划参与体会 + GitHub Review 功能 |
2017.4.23 | 技术研讨 | 官网 PC 前端重构规划 |
任务安排
2 - 8 原则
如何做
数值仅供参考,具体情况具体分析
每周任务安排 4 天工作量
每天花 0.2 天 , 约 1.5 ~ 2 小时,自我提升
目的
为了提升队员开发效率
定期安排技术型任务
督促技术提升
考核方式
按需分配需求
一般业务需求无非考验以下两点
业务熟悉度
技术熟练度
理想情况下,对于业务不熟悉的队员,优先分配需要熟悉业务的需求;反之亦然
结语
知易行难
贵在坚持
题外话: XX的前端奇妙历险
3年弯路
13 年 4 月实习加入一家初创公司,工作不到半年,原先前端 leader 转岗做运营,只剩下我一个前端,持续了半年左右。由于人少,写前端的同时还要写 C# 代码,偶尔研究 SEO,兼职半个网管,还负责了每天晚上给加班童鞋点晚餐外卖…… 这个状态差不多从进入公司开始持续了 2 年。所以虽然自己工作了也有将近 4 年了,但精力比较分散,走了很多弯路,做了许多重复性劳动;同时又与外界其他前端的交流很少,唯一和外界的交流机会几乎就是当面试官与应聘人交流;且当时很长一段时间疲于业务开发,经常 9、12+、6 ,自己学习主动性下降了许多,业余一有休息时间自己几乎也是“荒废”了,也不再如大学时自学前端那阵子折腾自己的博客站点、折腾各种技术、写博文做小结(单反穷三代、游戏毁一生)。前端技术的沉淀比较欠缺。另一方面,也大约3年左右时间单相思,受困于情感问题耽误了不少时间。简单来说,前 3 年走了很多弯路,几乎是 3 年的工作时间以及 1 年的加班时间,换来了 0.5 年的前端经验,原因是: 精力分散、视野狭窄、缺乏实践、缺乏学习主动性、缺少反省、公司缺人。
决定性时刻
后来,陆陆续续前端团队一点点扩张,但直到去年年中,一共也只有 3 个前端,应付公司 3 个电商类前端产品(PC + M)。也一直没有所谓的前端 leader,都只是各自负责各自的产品线,大家也都很年轻,2~3年经验。当时 CTO 问我,要不要招一个资深的前端来带我们,还是让我们自由竞争,我当时也挺迷茫和纠结,一直以来,都感觉自己对于前端职责的定位以及今后发展方面,缺乏系统和全面的认知,以及也不清楚技术团队的 leader 的职责应该是什么,觉得如果招个老司机,自己能有更明确的目标和规划,同时对公司来多虽然要负担更多的薪资开销,但是想必能有更多可能性,会有更多回报。而自己这几年在前端上基本是靠自己摸索以及参考知乎上的解答。半年来
结果是,去年下半年,我受命担任前端组负责人…… 恰逢自己终于决定放弃 3 年多的单相思。于是打鸡血般花了大量时间接触外界,开阔技术视野,(包括参加了许多前端的知乎 live ,从最早围观的小爝老师、Hax 老师…到近期 vczero 、吕毅以及 justjavac 大神们的 live,以及 姬光、i5ting、小问等大大的 gitchat……以及 vczero 和 前端早读课情封 的小密圈…… 以及加了 豪情大大的前端 js 跳板 QQ 群…… 以及传说中的微信小程序联盟论坛,以及相关的 QQ 群,每天至少回答群里一个小程序的技术问题 ),研究新技术,补习自身基础,研究如何带团队,促进团队提升… (然后也就有了现在这篇文章) 现在前端团队一共 6 人…… 还在招…… 欢迎推荐……Anyway, 最好的学习时间是昨天和现在,即使花了 3 年多走了那么多弯路,至少,现在正了一些,也不错啊。
最后,还是想感谢一下,领导对我的信任 =。= 以及同事们的支持以及各位大神们的指导~
PS: 备份内容仅显示纯文字。