当前位置: 首页 > 后端技术 > PHP

如何高效管理敏捷开发

时间:2023-03-29 15:05:49 PHP

敏捷开发其实是企业的一种管理文化。目前软件行业敏捷开发管理最大的问题是过于注重具体形式,而忽视了敏捷的本意。很多公司聘请了几个敏捷教练建立流程,把会议室的椅子全部搬走,宣布从现在开始大家站着开会,用敏捷管理工具建立迭代、创建需求、划分任务,但这真的意味着敏捷吗?因为敏捷,老大要求明天上线这个功能。我不关心如何实现它。毕竟,应对变化高于遵循计划。因为敏捷,我们希望每天至少发布一个版本,没办法,敏捷要求我们快速交付可工作的软件。由于敏捷,虽然我们还没有弄清楚需求,但这个版本必须在本周内推出。敏捷宣言说得好,我们必须随时面对需求的变化。由于敏捷性,我们没有项目的单个文档。毕竟,可工作的软件高于详细的文档。....我们不禁要问,这真的是敏捷吗?敏捷的初衷是团队成员可以更加紧密的合作来完成工作。敏捷开发强调拥抱变化,但并不意味着需求可以任意变化。敏捷开发的本质是利用迭代增量软件开发,防止长期闭门开发严重偏离客户需求,达到快速响应市场变化的目的。下面分享一下我们公司在近百人的开发团队中,在同时开发十几个项目的过程中,是如何使用CORNERSTONE管理平台进行敏捷项目管理的。1、角色划分JeffSutherland将SCRUM团队中的角色分为三类:开发团队成员,负责具体的开发工作;Scrum主管,协助开发团队把事情做得更好;产品负责人,谁来决定应该做什么工作,应该制定做什么清单。我们根据自己开发中的实际情况,将体系中的角色分为以下四种:项目经理:相当于Scrum主管,负责协调团队内部协作,召集常务会议,控制项目整体进度项目。需要明确的是,项目经理不是传统意义上的团队领导。用更通俗的话说,项目经理更像是仆人式领导。项目经理不应对团队成员大吼大叫或告诉开发人员该做什么以及如何开发产品,而应专注于帮助开发人员消除他们前进道路上的障碍。产品经理:相当于产品负责人,负责决定应该做什么工作,拟定待办清单的内容,确定每一项的优先级。事实上,与许多人的理解相反,确定项目的优先级几乎是敏捷中最重要的工作。为什么?在软件开发领域,有一个根据几十年的研究工作总结出来的原则,就是在任何一款软件中,80%的价值都来自于20%的功能。人们总喜欢说每一个需求都很重要,但是产品经理需要扪心自问,哪些需求能够为整个项目带来最大的价值?而这些能够带来最大价值的需求,必须首先被满足。开发人员:开发人员是项目开发任务的具体实施者。他们负责完成开发任务,并及时反馈开发进度。测试人员:测试人员是项目测试任务的具体实施者。他们负责制定测试计划、编写测试用例、创建和回归缺陷。在CORNERSTONE中,我们可以根据项目成员的具体职能设置不同的角色和权限。2、收集需求(用户故事)项目开始前,产品经理要根据用户或市场的需求,即CORNERSTONE中的需求,编写用户故事。一个好的需求(用户故事)一般应该满足INVEST准则:(1)独立性(Independent)——尽可能让一个需求独立于其他需求。需求之间的依赖性使得规划、优先级排序和工作量评估变得困难。通常,我们可以通过组合需求和分解需求来减少依赖。(2)可协商(Negotiable)——如果要求的内容可以协商,则该要求不是合同。(3)有价值——每个需求都必须对客户有价值。(4)Estimable——开发团队需要对需求进行衡量,以确定优先级和工作量,便于工作计划的安排。(5)小(Small)——一个好的需求应该尽可能小,至少要保证在一个迭代周期内能够完成。需求越大,在调度、工作量评估等方面的风险就越大。(6)可测试的(Testable)——一个需求可以被测试以确定它是否可以被完成。如果无法测试需求,那么您就无法知道它何时会完成。基于以上原则,CORNERSTONE支持在创建需求时关联其他需求(这样我们就可以组合需求来控制单个需求的粒度!),关联测试用例(确认需求可以测试!),关联迭代(确保需求可以在一次迭代中完成!),设置优先级和开始截止日期。3.SprintPlanningMeeting(冲刺计划会议)在每次迭代开发正式开始之前,我们都会召开一次计划会议。产品负责人将解释需求,所有团队成员将负责将需求分解为具体的开发任务。开发任务的粒度最好足够细,以保证开发者能够在一个迭代周期内完成开发。sprint计划会议的产品一般是:(1)分配给每个开发人员的任务列表;(2)会议纪要,CORNERSTONE提供WIKI功能,可以在系统中保存每次会议的会议纪要;4.每日站会开始后,我们团队通常每天早上都会固定15分钟左右的时间进行内部沟通。我们一般打开CORNERSTONE任务的看板视图:每个组员只需要用三到五句话说明以下三个问题:我昨天做了什么,完成了我的任务;我今天要做什么来完成我的任务;是否有任何可能的阻碍因素会阻止我按时完成任务。一般来说,项目负责人需要专注于帮助团队成员解决障碍,以帮助所有任务按时完成。5、随时关注团队的进度。在迭代开发过程中,项目经理需要时刻关注项目的进展情况。我们的项目经理一般通过CORNERSTONE提供的项目仪表板查看项目的整体完成情况;通过燃尽图了解任务完成情况;通过缺陷分布和缺陷累积了解迭代完成的质量。系统自带的甘特图可以随时查看迭代的具体进度和每个项目成员的任务分工,做到分配合理。除了上述统计之外,还有一个专供管理员使用的“报告”功能。报表功能包括迭代燃尽图、代码提交统计、状态分布统计、每日新增曲线、每日完成曲线、累计数量曲线、员工工时列表等统计信息。6.评估总结在每次迭代结束前,我们的研发团队成员会聚在一起召开评估会议,向产品负责人展示本阶段取得的成果,并接受评估意见。研发团队成员会评估完成了多少列表上的任务,是否在这个冲刺阶段认领了太多的任务而没有完成,或者认领的任务太少。CORNERSTONE还为此类会议上的演示文稿提供摘要视图。最后总结一下,敏捷其实是一种管理方法。敏捷不会告诉我们每个项目怎么做。杰夫·萨瑟兰有句名言,不要猜测、计划、执行、检查和行动。我认为这句话道出了敏捷的精髓。