角色:
tech lead=leader+developer+architectleader:balance priorities,communicate clear goals,make apt decisions(做出适当的决定);supervise team members(管理团队成员),delegate tasks, issue feedback, evaluate risks, and resolve conflicts.developer(开发专家):apply programming tools,utilize design patterns、erform automated testing、refactor codearchitect:perform technical assessments, oversee development lifecycles, direct release management, and adhere to federal regulations.
协作工作对象:
essential members of the software development team include: Product Owner: leads product development to fulfill client’s requirements (BA)Team Lead/ Engineering Manager: guides team through development processProject Manager: oversees the development, organization, and delivery of a productSoftware Developer: designs and develops software to fit the users’ needsQuality Assurance Engineer: confirms developed solution fits specificationsSoftware Tester: executes tests to ensure solutions fit performance and security demandsUX/UI Designer: designs features to enhance customer experience and interactionsoftware architect/EA
能力构成:
Tech Lead这个角色赋予了四种能力:Expert:是这个项目和产品的核心专家,必须保证有足够的业务知识和技术知识,能把握项目上的一些关键问题。Manager:能拆分任务,将活分给其他同事做,并且管理项目的进展。Coach:具有发展他人、团队的能力,能给其他团队成员提供指导和帮助。Leader:知道如何用正确的方式达成目标,激励人,知道团队的业务和技术目标。团队管理: supervise team members(管理团队成员),delegate tasks, issue feedback, evaluate risks, and resolve conflicts.领导力:Communication and leadership、project and crisis management(敏捷scrum框架)Software architecture and systems testing、Quality assurance、Problem solving and innovation、Ownership and vision技术能力:聚焦软件技术开发&软件工程&软件架构
责任
指派任务、监控阶段开发进度、评估团队专业技能&工程能力&交付客户满意的产品
1.Establishing project specifications and technical direction2.Creating a framework of technical standards and procedures3.Overseeing software quality and system modifications4.Guiding team members with troubleshooting technical issues Analyzing existing operations to identify risks and redundancies5.Conducting comprehensive assessments to develop solutions
技能要求
1.技术选型和决策能根据业务需求做出合理的技术选型技术选型能满足未来一段时间的业务和架构演进目标技术选型需要考虑成本技术选型需要考虑团队人员素质和背景2.软件架构和搭架子服务设计和领域划分数据库设计分层架构和包结构的设计错误码规范和定义API 规划一些常见操作的例子供开发人员参考日志和监控设计3.需求评审需求是否合理,业务逻辑上是否自洽交互设计的性价比。设计的一致性,和项目现有的逻辑是否一致是否会影响安全是否会造成性能的大幅度降低4.基础设施和运维把控DevOps &cloud&基础设施,例如流水线、制品库、跳板机等建立运维手册,例如定期拨测和数据备份定期防灾演练定期检查系统健康状态,密匙、证书、域名有效期制定上线流程和规范Oncall 和线上轮值计划5.非功能性需求关注需求的性能指标关注兼容性需求关注容量和弹性伸缩的需求6.代码质量配置静态代码扫描,例如 checkstyle、find bugs设计团队代码规范进行代码评审7.安全安全规范,例如密匙的要求安全建模定期的安全扫描工具异常处理预防技术方案中的潜在安全问题,比如数据和隐私泄露8.团队制定团队协作策略,例如分支策略制定版本策略制定团队契约,例如 CodeReview 时间和主持人、技术例会对团队新人进行 Onboarding 和维护团队Onboarding文档人员梯队建设、管理人员流动的任务交接团队矛盾和冲突处理9.知识共享制定团队技术分享机制制定文档存放契约更新系统架构图、部署图和数据库模型等项目架构材料10.项目管理工时估算和迭代计划技术债的评估和分析项目风险评估跟踪第三方依赖的时间点收集项目反馈11.建立团队愿景技术&心智成长,为团队成员规划未来构建团队荣誉a.鼓励团队中的亮点,经常整理、发掘团队中好的实践、技术亮点,发表文章或者组织团队成员在外部分享,构建影响力b.制定一些礼品或请大家吃下午茶或coffe,当完成某个节点后或取得某些成就后分发c.以团队名义参与公司组织的比赛、培训项目、meetup、share meeting