成长不是顿悟,而是练习 - 朱赟。
“事事顺心的时候,勇气来得也容易;但是当生活变得艰难,勇气就弥足珍贵了。“ 电影 《清洁》
比如郭德纲每次介绍于谦基本都有这个:“单丝不成线,独木不成林,人浑身是铁能捻几根钉”。意思就是一个人力量有限,要靠别人的帮助才能成功,人多才能力量大。
一个技术管理者的成功并不在于自己写的代码多好、能力多强,他的成功一定是建立在团队成功的基础上。只有团队成员的不断成长,这个团队才可以完成更大的挑战,技术管理者才可以在团队基础上,站的更高,看的更远。
管人->团队目标,成长(包括业务和技术),协作
管项目->项目需求,流程,进度,质量
管自己->全局把握,清障碍,了解DB、算法、架构设计、测试软件和软件质量、监控和告警,建立对系统进行监控的习惯。
包容性领导的6个特征
1、坚定的承诺
2、谦卑的勇气
3、正确的认知
4、开放的心态
5、高情商
6、合作的意愿
Accountability 不是自发的,而是通过交涉、讨论、约定,决定最准由谁来负责,并要求责任人同意负责这件事。
Responsibility 是责任心和责任感,是一种更强烈的自发的责任,员工从内心深处觉得自己对某件事、某种集体利益和荣誉具有不可推卸的责任。
Bug 引发了事故,只是去修复bug,bug是怎么产生的,造成了什么影响,后续改如何预防?
项目延期了,只想延期后项目完成的时间点,项目为什么会延期?如何赶上进度?是外部资源支持问题还是内部问题?
如何激活团队人员的责任心呢?
1、明确责任制(授权某人独立做一件事)
2、有效的责任制
3、归属感的建立
一个技术管理者的三个工作
1、团队成员成长, 授权 VS 亲力亲为,指导、反馈、监督、交流
2、明确的分解和布置任务,包括界定需求边界、计划、工作授权
3、有效的沟通合作,上级、下属和相关部门(沟通能力-会议,邮件,一对一面谈;拒绝不合理需求;有三(七)分话不说五(十)分话)
帮助团队成员成长中,
是否用静态的思维去对待团队成员的成长?
管理和被管理中期望值差异如何避免?信任,沟通。
你不能每次都给答案,试着用引导的方式让对方学会自己找答案,看别人的程序和别人交流。
团队目标是优先于个人目标的,浑身是铁能捻几根钉?那怕自己做事再快,24h不休息,也不能亲力亲为全部完成。
一个技术管理者的成功并不在于自己写的代码多好、能力多强,其成功一定是建立在团队成功的基础上。只有团队成员不断成长,这个团队才可以完成更大的挑战,技术管理者才可以在团队的基础上,站的更高、看的更远。
如何保证项目进度?
1、建立一定的流程,计划制定流程,计划跟进流程。
2、需求要有明确的优先级
3、有一个共享的项目状态表,设置合理的时间线,里程碑事件
4、不要漏掉任何一个人
5、建立有效的反馈渠道
如果项目延期了,那么一定要和上级沟通,了解为什么延期,做了那些努力,还需要那些资源或者做出什么样的调整才有可能赶上预计期限。
建立流程、划分优先级、同步进度、实时反馈。
工作中是如何分配任务的?
1、建立参考基线,结合简历、做过的项目、产品,来判断他的能力。
2、问对问题比给出正确答案更重要
3、工期合理的估算(预留20%的自由缓冲时间),设置合理的时间线
4、执行力
5、后期维护
我们在分配任务给别人的时候,别人也在分配任务给我们。我们在别人身上找某种品质的时候,别人也在我们身上找寻类似的东西。
如果你希望承担更重要的任务,成为有担当的人,一方面需要提高自身的能力,发挥自己的特长,另一方面就是要成为一个有态度有人。拿到一项任务,并全力以赴把事做到最好。这不仅会决定一个项目的成败,还可以打磨我们的自己的心性,让我们在别人眼中成为一个可以托付重任的人。
你想要一个证明自己的项目,那么在你承担重任之前,可能需要完成另外一些不那么重要的项目,甚至是脏活累活来证明自己。双方建立信任的“契约”。
合理的分工(细分重组,类似俄罗斯方块),授权与监督,反馈与跟踪
快----->错误多------>快速迭代
慢------>细活-------->线上产品的改动
慢------->错误多----->需要找原因
管理者要对大的项目进行细分重组,“打包装箱”之后再分配下去;其次在工期估算方面,管理者要和任务的负责人达成一致,时间估算方面要预留缓冲时间。
管理者要避免踏入静态思维,微观管理模式,不能过度关注和掌握过多细节,也不能简单的给了目标就放任自流。也要因人,因事制定不同的计划,再者确定跟进的颗粒度。
不要变成一个微观管理者,也不要成为一个纯粹的规则执行者,否则对于促进团队人员的责任感、上进信和积极性等,都是有害无益的。
对于工程师来说,尤其是职场新人,能够加入一家增长的公司其实是最好的选择和机会 。
一线技术管理者定义,工作,基本素养
一线技术管理者:可以带5-20甚至更多的技术团队,直接管理工程师,或者每天都要和工程师交流和沟通的那些技术领导者。
需要做的:
1、利用自己能了解的有限情况做出最正确的决定
2、利用组里有限的工程师资源高质量完成最关键有项目
全局掌控(项目边界和进度把控)、识别风险、清理障碍
技术实践
数据埋点和采集是AB测试的关键。一般前端埋点可以采集实时数据,后端埋点可以采集实时事件,也可能是一些聚合数据。
什么是幂等?一个操作如果多次任意执行所产生的影响均与一次执行的影响相同。
白板理论,婴儿是一块白板,可以通过后天的学习和训练来提高智力。
《算法导论》
如果一个公司的数据库从来不出问题,那一定是没有业务量或者是没有流量。
支付最基本最关键的是保证事务的一致性、正确性、可审计性。
事务要注意的地方:
1、事务中封装的代码逻辑太长复杂,甚至调用了别的函数。
2、事务中封装了与数据库改动无关的逻辑
3、事务中有不可逆的操作
4、事务中包含了不同数据库中的事务
5、事务嵌套问题
系统业务拆分:效率和复杂度。调式测试、日志搜集、报错捕获、超时设置,监控报警。
API设计的经典原则:要考虑末来的场景,在设计时留有余地,永远只实现当前产品真正要用的功能 。对一些重要的API参数类型进行强制类型检查和断言(断言就是用于在代码中捕捉这些假设)。
工匠精神:每个工程师都应该在他已有的水平上尽力追求完美。软件质量最基本的保证应该来自程序员的素养。
代码审核,可能是目前保证代码质量最重要的环节之一了。
设计文档从来就不是写出来的,而是一遍遍改过来的。描述阶段,记录阶段,讲解阶段。
BUG产生的条件:
1、程序员自身的清洁情况
2、工作强度
3、工作环境中防虫措施的有效程度
小团队中BUG可以有效遏止
大团队中可以通过奖励、代码评审来遏止
BUG有了该如何处理?
1、追究责任,而非惩罚
2、对事不对人
3、为什么会出现这个BUG,因果图查找
4、加强沟通,协调
员工一对一沟通谈话有哪些内容?如何开始一场有效有谈话。
避免产生“一个方向上的信息流大于另一个方向上的信息流”。
《Airbnb支付平台如何进行异常检测》
欲登高而穷目,勿筑台于浮沙,先把自己手头的事做好。做成一件事,然后再做成另一件事,让优秀成为习惯,让自己成为稀缺资源,自然会有优秀的人找你一起做事。
成长最好方式是什么?做出一款完整的产品,完成一项有价值的任务,并且得到用户和工作伙伴的认可。
在错误中成长?敢于创新,在错误中成长。
1、伸展错误(主动尝试引起的错误)
2、无知错误(不知道或者忘记)
3、粗心错误
4、高风险错误(有可能多次犯错)
”踮起脚尖阅读“
人在青年时期,思维如火山般活跃,激情如大雨滂沱,没有成见的束缚,没有物质的负担,没有世俗的压力,想不怀疑人生,批判社会、自己给自己找别扭都难。在这么好的年龄,就应该读一些脚尖才够得着的书。
Rumination 反刍的危害,走出思维的误区。贬义词。
日拱一卒,不期速成。
以下如何选人和留人??
种子公司招人
百人团队保留10人
保持学习是一个生活态度,而不是一个短期的计划。