雅各布决定去漂流,然后去了一家旅行社。他问的第一个问题是:“漂流之旅多少钱?”当雅各布听到游览的价格,包括漂流教练服务和船只租赁时,他想知道:“如果我节省几块钱,呃......我会筏子怎么办?没有教练。我为什么要失败?它不是那么复杂“。
现在,想象一下Jakob是一家软件开发公司的客户,需要开发一种产品。但他不知道项目经理的职责,他拒绝项目经理(PM)的帮助来省钱。你认为的项目会成功运行吗?项目经理在软件开发中的真正作用是什么?仔细阅读我们的评论,你会发现。
有时,在定制软件开发方面,客户要求与开发人员进行交互,直接认为它不会损害整个过程。好的,让我们从项目团队中删除项目经理的角色。看看我们得到了什么。
如果它是一个小项目,并且只有一名工程师参与软件开发,那么理论上客户将解决任何问题。虽然项目很复杂,但可以有超过5个团队成员 - 业务分析师,UI / UX设计人员,前端和后端开发人员以及QA工程师。客户端必须与每个人交互,分配任务并管理开发过程。更重要的是,企业所有者需要深入了解项目的堆栈和技术细节,找出前端部分的位置以及后端的位置。这需要一整个工作日,而客户将弄清楚为什么React比Angular更好地实现所需的功能。
有时,只有项目已经开始时,客户才能理解项目经理在软件开发中的作用。例如,我们正在研究CRM系统对于银行而言,我们的开发团队由两名后端开发人员和一名前端工程师组成。一开始,客户想要在没有项目经理的情况下管理项目,但我们说服他尝试一个月的项目经理服务。从那时起,PM每天花费6个小时来处理客户信任他做的“微小”任务:分析需求,举行团队会议以确定优先级,测试产品组件。最后,客户同意项目经理的职责对于软件开发项目至关重要。现在我们继续为该客户实施CRM系统,我们的PM成为常规团队成员。
PM必须在他们的时区需要时与客户交谈。此外,项目经理的作用是选择并向客户解释哪种软件开发方法对项目更有利。
在财神科技软件公司中,项目经理定义后续项目迭代并评估每个项目所需的小时数。在这种情况下,你永远不会回到完成阶段。最终产品仅在整个软件开发周期结束时才可用。使用瀑布原理,我们为SDEK构建了应用程序:我们逐步开发了移动功能,首先是Android,然后是iOS。
在项目中,有项目冲刺,短期内必须完成一些任务并准备好进行审查。当sprint结束时,PM可以向客户显示产品的版本。我们经常在移动项目中使用Scrum。我们美食家的移动应用程序相关,我们与客户一起选择了Scrum方法来创建MVP。每个sprint都需要两周的时间,我们的PM可以轻松设置任务要求并计划下一期的工作。
此外,PM负责通过特殊程序(如Confluence)记录流程,使用Redmine,Asana,Jira等任务跟踪器管理任务。项目经理对于开发团队非常重要,同时对于客户来说非常重要,因为他是一个单一的联系点。他知道如何无损地管理软件开发,掌握项目的脉搏,并明确双方的优先事项。
客户经常会问,“为什么我们需要项目经理来确定项目的范围?”这是一个简单的例子。我们假设有125个工作小时,其中100个小时用于开发,25个用于管理。如果没有PM,这两项任务都会成为开发人员头痛的问题。当问题出现时,开发人员会延迟编写代码的任务,相反,他必须致电产品所有者并询问详细信息。那么你在终点线上得到了什么?该项目耗时125小时。如果一开始会有一个项目经理,如果每个人都完成了他们的目标,项目将需要100个小时,包括25个小时的项目管理职责,与软件开发同时进行。
当我们为不同的课程制作多功能应用程序Unleesh时,我们完成了测试,客户决定重新设计应用程序并添加一些新功能。我们的PM只是轻松一点:他全天候与客户保持联系,获取详细信息,当时间不多了,他以我们加快步伐的方式分散工作量,同时构建iOS和Android应用程序。我们最终在三个月后才发布了这个网络应用程序。
PM计划工作并控制软件开发项目中出现的每个变化。只有优秀的项目经理通过在开发人员编写代码时管理所有问题,为您的企业提供不间断的开发流程。
最后但并非最不重要的是,项目经理在软件开发项目中的作用是密切关注产品质量。PM必须管理所有流程,以确保QA工程师尽快测试构建 - 准备好的代码部分。它可以帮助按时捕获所有错误,而不是在发布前几个小时捕获。此外,项目经理检查软件产品是否符合技术要求,并启动代码审查以检查代码是否存在错误。如果有必要,PM可以要求UX设计者验证设计,这意味着测试菜单,控件,小部件和其他元素是否与设计概念一致。
软件开发项目管理并不像看起来那么容易。为了控制产品质量,项目经理会尽力而为:定期审查技术规范,提供改善结果的功能,管理项目团队,如果有人面临挑战,重新调整优先级。