大家好,我叫XX,江湖人称吃土小2叉,目前担任公司的前端负责人半年多了,一路上摸爬滚打,历经团队人员变动,近日颇有感触,于是结合自己近半年的前端负责人实践经验,权当作一个学习记录,整理归纳一下前端负责人的修炼要点(大部分只是记录了关键词,没有详细展开),以及自己的实践记录。一些观点可能不是很成熟,也可能都是一些政治正确的废话…… 欢迎各位老司机多开车指点指点,交流交流哈~.
[TOC]
- 知识面广 (前端、后端、数据分析、产品、交互)
- 基础扎实
- 学习能力强
- 服务意识
- 产品思维
- 心态良好
- 善于总结
- 沟通能力
- 营造存在感、归属感、成就感
- 把控技术方向
- 新人引导
- 促进团队提升、培养团队
- 权衡公司利益以及 队员利益
- 与其他部门衔接和沟通
- 创造希望 (eg: 画大饼、某种意义上的程序员精神鼓励师)
团队建设、技术选型、人员安排
- 团队建设
- 技术氛围
- 人文氛围
- 技术选型
- 产品需求
- 稳定性
- 兼容性
- 开发效率
- 招人难易度
- 留人难易度
- 转型成本(时间成本、学习成本)
- 舍弃用户成本(转化率:兼容性; 访问量:SEO)
- 人员安排
- 让优秀的人变得更优秀 (技术栈:最前沿的技术; 老带新)
- 让普通的人加速提升 (技术栈:最成熟的技术)
- 淘汰余下的人
面试时经常遇到一些人的离职原因就是以下一些……
- 更快解决问题 7
- 更优解决问题 8
- 解决以前不能解决的问题 9
- 编程能力提升 (编码、设计、架构) 9
- 掌握新技术、新语言、新工具 5
- 工资提升 6
- 知名度 7
**注: ** 数值为XX认为的较为合理的权重值,满分10,个人意见,仅供参考
缺一不可
- 时间
- 方向
- 坚持
- 实践
加分项
- 聪明 (XX注:可遇不可求)
- 有老司机指点 (XX注:可遇不可求)
- 好奇心
- 自我驱动力/主观能动性
- 专注
注: 除去 聪明、 有老司机指点, 这两个是可遇不可求的; 其余都是可以后天培养的。
工作只使用旧框架、旧技术 【应聘人经常提及】 基础薄弱,学新技术难,求带,抱大腿 光看不练 没有时间 前端要学的太多太杂,学了这个忘了那个 新框架一个又一个, 来不及学
- 保证产品稳定性,满足产品兼容性需求的情况下,尽量让团队使用最前沿的技术
- 推动团队技术学习、分享氛围,必要时给予物质奖励
- 为成员腾出一定自由时间
- 让自己成为队员的大腿、答疑解惑
- 完善技术文档
- 写优秀的代码
- 造轮子、改进项目基础设施
- 挡需求、砍需求、改需求、加需求
- 不应该回答what的问题、 减少回答how的问题,而是更多回答why的问题
- 不应该每天催着队员去学习、去分享,而是要激发队员的自我驱动力、主观能动性
- 不应该安排超负荷任务,而是分配合理的任务总量
- 不应该花费大量时间(80%)开发业务需求,而应该花一半时间(50%)思考和设计如何改进现有开发模式
- 回报 >= 付出 (精神、物质)
- 对产品的认可
- 对技术栈的认可
- 对自己付出的认可
- 对他人付出的认可
- 助人且助人的反馈是积极的
- 个人发展、晋升
概况: 回报 >= 付出 (精神、物质)
首先明确一点,业务需求是永远做不完的
我们能做的,只是每周根据已有的开发资源,开发相对最重要最紧急的业务
另一方面,也要注意: 程序员自我提升 的重要度也是极高的
- 合理评估工期
- 不断提升自己,不断提高效率
- 量力而为,保重身体
- 合理审核工期
- 合理安排任务 【重要】
- 技术选型是否合理、是否高效
- 新人的引导是否到位
- 负责人牵头分享
- 奖励机制
- 避免布置过饱和任务量
(以下回答来自XX面试过的应聘人)
- 我比较期待能有一个经常相互讨论最新技术的环境
- 技术氛围好点,可以互相交流的,然后加班不要太多,有意义的加班可以接受
- 希望有挑战性和持续成长空间,同事之间比较容易沟通的,当然做的产品有趣就更好了
- 希望有大牛带
- ……
- 技术分享考评制度(鼓励竞争 、 与培训机会、年终考核挂钩)
- 定期 code review (2周1次) 优先级: 高
- 不定期 小分享 (不限次~2周1次) 优先级: 高
- 定期 大分享 (2个月1次)
- 鼓励参与翻译英文技术文章
- 整理、维护、更新前端知识库 wiki (涵盖: 代码规范、工具教程、开发流程、组件 Demo、语言教程等)
- 前端每周一题 , 以经典案例题形式传授实际价值较高的知识点
- LeetCode 刷题活动 (算法题为主)
- 每周周会只探讨各自遇到的难题1~2个,思考更优解
- 开源项目 【构思中】
- 新技术交流、研讨会 【构思中】
- 以上各种分享,负责人带头进行
v0.1 版本 考察两个维度: 分享贡献度、业绩贡献度; 每个月设置合格线,低于合格线进入考察期
- 试行了1个月,实际效果一般,参与度不高,仅一人达成分享贡献度合格;
- 不同产品线业绩难以量化衡量;
- 较反感惩罚制度
v0.2 版本 仅考察 分享贡献度。不设合格线,分值仅作为奖励评定标准
v0.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 前端重构规划 |
数值仅供参考,具体情况具体分析 每周任务安排 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 年多走了那么多弯路,至少,现在正了一些,也不错啊。
最后,还是想感谢一下,领导对我的信任 =。= 以及同事们的支持以及各位大神们的指导~