问题
平时除了工作和娱乐,还会花大量时间去思考和总结一些事情。比如,作为一个 Tech Lead,在一个新项目开始时,你需要知道什么和需要做什么事呢?如果你可以把规则处理好,把人管理好,个人见多识广,学识渊博,经验足,阅历厚,那肯定意味着你可能就是一个优秀的 Tech Lead。
如何处理一个新项目
- 基础设施
- 生产环境是什么?
- 开发环境是什么?
- 怎么上线?
- 负载均衡怎么做?
- 需要防火墙吗?
- 需要证书吗?
- 内网使用还是外网使用?
- CICD怎么做?
- 怎么处理复杂模型的上线?
- 怎么优化算法?
- 怎么加速计算?
- 怎么合理设计?
- 第三方
- 集成?
- 如果各个集成环境间是超出能控制的混乱状态,怎么保障各个集成环境是组织良好有序、顺畅、自动化、边界规划合理的?
- 找出有号召力的人
- 首先要具有责任心?
- 再者需要准时而有分寸?
- 最后可以说“No”的、能够砍预算、能够对任何人说“你干得很棒”的人?
- 架构师?
- 项目管理?
- 对数据保护有控制权的人?
- 找到任何关于团队的工作文档,阅读并理解它
- 部署文档?
- 测试文档?
- 用户使用文档?
- 接口文档?
- 架构文档?
- UML设计文档?
- 预算和价值定位
- 是否清楚和控制预算?
- 为什么要做这个项目?
- 怎么定义项目价值?
- 怎么定义项目中各个模块的角色?
- 试着跟每个团队成员进行一对一的面谈
- 试着去了解成员各自的目标、特别是在这个项目中的目标,同时将自己的目标传达给他们?
- 什么是他们的主要痛点和障碍?
- 不懂也要多问?
- 和项目经理做朋友,并明白他们是怎样管理项目进度的
- 互相建立信任关系?
- 不要尝试做一个财务细节上的专家,只要懂得财务的基础知识就可以了?
- 如果有多个团队,找到并结识其他团队的 Tech Lead
- 认识更多的人力资本肯定没坏事?
- Backlog
- 确保边界清晰?
- 是否需要使用 story trees 和 backlog hierarchies?
- 需不需要从高处俯视正在建立的东西?
- 代码
- 确保有代码的读写权限?
- 保持和代码的联系?
- 定期找开发做一次介绍?
- 需要对整个代码库和架构等有个完整的印象?
- 主要痛点和障碍
- 分析项目痛点和障碍?
- 分析第三方痛点和障碍?
- 分析其他痛点和障碍?比如财务预算?
- 作为 Tech Lead,这个项目中最害怕的事有哪些?
- 未知的事物都是最害怕的?
- 存在一些比较大的风险?
以上仅适合于大型的企业项目中,小项目小团队在项目开始时很多都不会考虑这么清楚的。
如何提高专业水平
- 多看相关书籍?
- 多与经验丰富的人交流或者请教?
- 多写总结?多写心得体会?
- 做一些专业知识的 PPT,多和同事同学们分享?
- …