Tech Lead 实践

项目结束,休一个长假,从忙碌中停下来才发现,身体的困乏无法掩饰思想的空洞,所以半夜爬起来(估计是下午茶喝多了,人还是不能太安逸)。

上个项目是我这次换工作的第一个项目,我的角色是Tech Lead,这个项目依旧保持了90%项目的特点,时间紧,任务重,新建团队。幸好这个项目比较大,有两个scrum team, 所以有两个Tech Lead,我们根据各自的特长进行分工。这次是我第一次以Tech Lead的角色进入项目,所以有很多做的不足,希望通过这次总结能对Tech Lead有新的认识。

Tech Lead的职责:

Scrum 团队在Tech Lead的选择上一般会选择经验丰富,技术熟练的开发人员来担任,只从字面来看,Tech=技术上有所长,Lead=管理上有建树

目前我整理了Tech Lead的三个主要职责:1.技术决策,2.流程管控,3.连接。

技术决策

根据我们在上一个项目的经验来看, Tech Lead要负责项目开发生命周期中所有技术相关的问题,1.架构;2.根据项目人员技术栈决定项目技术栈及开发工具;3.提前规划项目在集成,测试,部署阶段的工作;4.提前对项目中的关键技术安排人员进行验证(注:别人解决不了的问题,自己上);5.代码审查;6.story point 估算。

建议:

1.多和架构师针对项目架构进行沟通,深刻理解需求

2.对代码质量进行定义,代码审查时注意bad smell,大类,大方法,考虑性能,考虑IO操作及数据库等资源的释放。

3.安排团队对代码进行讨论并重构.

4.建议对项目所有story进行整理,然后使用德尔菲法对项目进行初步估算,避免扑克牌估算的效率低下,如果时间紧急,可以在德尔菲法技术上使用PERT。

5.关键点安排结对编程。

6.非功能性需求往往占用项目40%的时间。

7.早起建立需求理解的计划,帮助团队成员理解需求。

流程管控

严格要求项目按组织要求进行开发,在软件开发生命周期中,组织对过程又严格的定义,比如DevOps,TDD,BDD等。Tech Lead了解软件开发过程中的所有环节,所以能够对流程进行管控,这里强调组织要求及组织文化,避免自伤。

建议:

1.使用持续集成-->坚持使用持续集成,如果不能提交构建,至少每日构建。

2.建议TDD而非Unit,TDD或者Unit一定要有,如果可能,请加把劲跑起来BDD。

2.对代码release标准进行定义,在项目初期定义release的程序并在后期不断维护。代码覆盖率标准,代码缺陷严重等级定义及修复时间

3.QA及开发的沟通方式定义。

4.性能测试。

连接

有项目就有沟通,有出资人,有受益人,有用户,有开发人员,还有运维人员等等,Tech Lead连接了BA,SA,DEV多个角色,是技术团队与外界的桥梁,在开发过程中取得团队内部各个角色的支持,创建良好的沟通环境是基础。

Tech Lead与BA:Tech Lead是需求接收者,是需求到技术语言的转化者

Tech Lead与PA:Tech Lead是团队节奏的实际操控者,是业务功能的交付代表

Tech Lead与SA:Tech Lead是项目架构的实践者

Tech Lead与DEV:Tech Lead是导师更是战友

建议:

1.每个月安排与各个角色至少进行一次one one沟通。提前准备好沟通的大纲,没有准备的沟通都是耍流氓。

2.对干系人进行登记并分析。

3.对外部干扰进行管控,保证开发人员的开发时间。


完~

你可能感兴趣的:(Tech Lead 实践)