1. 团队建设与项目管理

注解

  • 创建时间:2020-1-1
  • 更新时间:2022-07-31
  • 开发与项目管理是不可分家的(自我定位要准),对于个人也是同样的。虽然你我可能还处于所谓的“码农”阶段,但也要有big picture!,了解团队协作、项目从立项到实施再到交付、维护全流程等,这样才能在工作中多角度思考所遇到的问题,同时也有利于协作能力的提升。
  • 本章就会集中记录下我在日常工作的思考、学习、实践的心得和经验。

1.1. 项目管理(Project Management)

注解

  • 几个名词:PM、项目管理办公室(Project Management Office,PMO)
  • 技术思考
    • 对于小团队,应该仅最大可能使用现有成熟的技术和工具,快速工程化产品,面向客户,快速迭代!
    • 如何提高工程效率。在实际开发中注重工具的打造是很有必要的!去快速标准化、流程化一些开发过程进而思考开发一些小工具去提升团队的开发效率,压缩开发周期能达到事半功倍的效果,另一方面也可让开发人员将注意力更多集中于解决真正的业务问题。
  • 项目开发文档
    • 项目过程各种文档,都应在项目各个阶段进行及时的总结管理,避免后期因文档工作影响项目整体进度等。
  • 闭环思路(有始有终)。
  • 善用管理工具,如看板,可以很直观追踪项目的进展。
  • 一切任务安排都要让团队成员知道DDL及目标,并在执行过程中让成员积极反馈,保证任务有效执行,达到预期结果。

1.1.1. 经验

  1. 确定任务完成的标准
  2. 任务分解:交付物、责任人、完成效果评价
  3. 确定效能指标。
  4. Product Market Fit,PMF。产品和市场达到最佳的契合点。

1.1.1.1. 项目经理

注解

具备服务意识、清晰的逻辑思考、总结、表达能力。 2020年7月1日,来公司1周年啦,也是正式职业(之前在高校实验室)生涯1周年,按照公司安排,我开始尝试完整执行一个项目!下面总结下实践经验和所思所想。 目标:具备计划、跟踪、总结的完整能力。

  1. 基本素质:
    • 理解业务的能力,分解需求及安排优先级,不懂的及时沟通确认。
    • 能够积极跟踪,以天、周、月或季度进行项目执行的跟进。
    • 预判项目风险,积极调整优先级,确保项目能如期交付。
    • 里程碑意识,利用里程碑来掌控阶段性目标完成情况。
    • 组内日报、项目周报、月报的编写。
    • 多思考、总结、优化管理的方式和工作流模式,极大提升组内、项目的的执行效率。
    • 负责任的态度、善于倾听和引导、总协调能力、写(各种文档、PPT等)、时间管理能力、清晰的目标和强有力的执行能力。
  2. 核心职责:协调项目资源、梳理项目组织架构, 整合项目计划;全生命周期监控管理整个项目, 重点不是管人,是管项目。
  3. 注意各种文档的归档、做好会议记录,留底溯源、设定明确的任务目标、任务分解及执行时间计划。
  4. 合理评估项目工作量,做好相关预案。
  5. 项目问题分解成一个个小问题,做好和甲方的沟通和同步工作,让对方了解团队及项目的执行情况,有哪些风险点等等。
  6. 对于超越合同的需求(一般刚开始定需求时,可能因为考虑不周,一些隐性需求没有提出),一定要做好评估,并和甲方沟通确认是否进行需求变更等方式。以免因沟通不到位,造成项目整体时间紧张。

1.2. 团队协作

  1. 借助功能智能化管理和协作(钉钉、腾讯会议等)
  2. 清晰的目标和快速执行力、问题定位能力要强。
  3. 定期组会和必要的代码评审。
  4. 技术交流会,分享开发中的经验。
  5. 和团队成员同步项目的背景信息,这样有助于团队成员理解日常工作,也有利于日常工作的推进,因为组员有时不明白为何要这样做,就会造成效率比较低或达不到预期的目标。
  6. 适度向组员传导压力,不用过多阻塞在项目经理或执行经理这里。

1.3. 敏捷(Agile)开发

1.3.1. 背景

从2022年4月开始,公司产品研发迭代基于敏捷开发进行,每个迭代周期基本持续4周,每个周期的工作包含了需求梳理,设计,编码,测试,发布,验收。 在这个过程中我以teamleader的角色全程参与,也是初次完整实践敏捷开发流程,下文主要将敏捷开发的基本动作和个人的实践做一总结。 在Scrum团队我担任的角色是Scrum Master。

  1. 看板。小组内的迭代目标及每个人的任务进度,未完成,进行中,已完成。
  2. 每日站会。每天固定时间花费在15分钟内同步下任务完成情况,昨天的任务完成情况,今天的计划,遇到的问题,需要哪些配合等。
  3. 迭代完成后的总结,复盘。

1.3.2. 什么是敏捷开发?

  • 作用:

    应对开发中的不确定性,周期性,增量式交付成果,最终交互按时,保质的产品。

  • 方法:

    1. scrum
    2. 极限编程(Extreme programming, xp)

1.3.3. Scrum

scrum是敏捷开发的一种框架,流程化具体做法。涉及到一些名词概念:

  1. sprint。冲刺,也可在scrum中译为迭代。
  2. backlog。 任务池,还未开始做的工作。
  3. Daily Scrum Meeting。每日站会。

Scrum涉及到的三个角色:

  1. SScrum Master。 敏捷专家,简称SM
  2. Product Owner。产品负责人,简称PO
  3. Development Team。开发团队

1.3.4. 实践中的真实情况

  1. 沟通是关键,面对面的沟通尤为重要,因为它更有效。
  2. 任务分解和跟踪是保证。

1.3.5. 实践总结及建议

  1. 产品的总体规划和系统总体设计尤为重要,这会为后续的迭代提供最根本的遵循,以团队防止迷失方向。