作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
每个人都是项目经理. 无论你是在管理一个新应用程序的开发,还是在发展你的创业公司, 致力于一个新的十亿美元的企业项目, 或者只是想用一些DIY的景观美化来活跃你的院子, 你总是在管理一个项目.
你的项目的成功取决于很多因素, 但项目失败的最常见原因之一是缺乏管理或彻底失败 bad 项目管理. 不管你的团队有多小, 或者你的需求文档有多清晰, 如果你没有管理好你的团队, 你的计划注定要失败.
敏捷项目管理是一种被广泛接受的处理现代软件开发项目的方法. 但是什么 Agile 真正的意思?
要更深入地了解敏捷原则,我建议阅读我们的 敏捷项目终极指南 管理.
在这篇文章中,我们将用看板解释敏捷项目管理的基础.
即使你是一位经验丰富的项目经理,对敏捷原则了如指掌, 你应该刷新你的记忆,提醒你自己的核心概念. 创新周期 软件开发 是否在不断加速,使得项目管理在每次迭代中变得更加复杂. 回到基本原则并巩固敏捷的核心原则总是很重要的. 毕竟,重复是一切知识之母.
看板是管理任何敏捷软件开发项目最简单的方法之一. 您可以轻松地处理来自同一办公室或分布团队的本地开发团队, 分散在几个时区.
看板不是一个过程. 这是一种管理任何流程的方法,对团队已建立的操作活动进行最小的更改.
为了将看板原则应用到你的工作中,你必须应用两个简单的规则:
数据可视化是一种快速, 简单的方式以一种普遍和容易理解的方式传达信息. 在看图片的时候,人类的大脑可以同时处理几条信息. 一些研究表明,这可能比阅读文本快6万倍.
最流行的可视化过程的方法是看板. 看板板是一个垂直分为几列的板, 每一列表示流程中的一个状态.
让我们来看看一个简单的软件开发板是什么样子的. 首先,我们需要为我们的开发特性定义状态:
基于此,您的电路板应该具有以下布局:
可视化单个任务就像制作一张简单的卡片(很像便利贴)一样简单,它代表了需要完成的工作. 您可以为任务命名, 添加分配的开发人员的名称, 到期日期, 以及这张卡上的其他相关信息.
当你把这张卡片添加到看板板的一栏时, 你已经想象过了, 例如, 特定的开发人员正在处理一个特定的任务,该任务将在某个日期到期,并且目前正在开发中.
人类一心多用是一种错觉. 而不是同时关注一两件事, 我们的大脑在它们之间快速切换.
这在软件开发中比在其他任何地方都更加明显. 开发人员一次只能处理一段代码, 切换到另一个功能会造成延迟,影响他们的注意力和表现.
这并不意味着您必须一次将赋值的数量限制为一个. 发展是一项复杂而富有创造性的工作, 有些任务需要更多的时间,而另一些则需要更少的时间来完成, 当开发者在等待某事或某人时,总是会有延迟. 重要的是将分配的任务限制在一个合理的数量,不会造成混乱(通常一次分配三到五个任务)。.
假设您的开发团队由两名开发人员和一名QA工程师组成, 您的板可能有以下在制品限制:
这是你的工作, 作为项目经理, 以确保待办事项列表的优先级正确, 并且任务分配给开发人员的时间不会比需要的早.
一个管理得当的看板会让你一眼就能清楚地看到项目的状态. 您可以看到您的开发人员有足够的工作, 你已经准备好了新的任务,他们可以在任务完成后接手, 你的QA工程师正在等待新任务的审查.
Trello 是一个基于网络的看板项目 管理应用程序. 它使团队成员之间,甚至多个团队和项目之间的协作变得简单、实时.
要在Trello中创建板,单击“创建新板…”菜单项,并为您的板设置标题.
你将从一个空的棋盘开始. 使用“添加列表…”框为看板卡创建列.
通过点击列表底部的“添加卡片”,你可以很容易地创建一个任务. 您创建的每张卡片都应该代表一个将由团队成员执行的任务.
Trello中的卡片可以通过多种方式进行定制:
可视化是看板的一切,下面是一张卡片在板上的样子:
只看卡片,不打开详细视图,你可以看到:
如果不了解完成某项任务所需的努力和时间,计划和管理项目是不可能的. 然而, 软件开发中最困难的事情之一是确定交付新软件产品或功能需要多长时间.
Scrum, 这是最流行的敏捷原则之一, 很大程度上依赖于估计, 无论它们是基于时间还是“复杂性点”.”
团队应该花大量的时间来确定任务的范围.
这是因为Scrum是基于时间间隔的, 当某一组任务被期望完成时. 为了计划交付,你需要充分了解在那个时间框内计划的所有工作.
看板不依赖于有时间限制的交付,如果你愿意,你可以计划每天的交付. 它依赖于优化流程, 这意味着团队的重点是尽快完成并清空在制品栏.
团队不会花时间提前评估工作. A developer will pick up the next item from To-Do; complete it as soon as possible; and pick up another task.
这并不意味着团队不应该估计他们的工作量.
您可以使用每周或每天的电话来更新和验证到期日期.
然而, 对于一个小团队来说, 更重要的是要确保开发人员在任何给定时刻都在处理最高优先级的任务,并且没有瓶颈, 迫使开发人员暂停他们的工作.
最终, 您的项目将会增长,您将需要开始更详细地估计开发工作量. 当你遇到这种情况时,花点时间阅读我们的指南 敏捷项目管理中的软件成本估算.
到目前为止, 您已经了解了可视化流程和限制在制品的重要性, 以及如何使用Trello管理您的项目.
一个软件项目不能只用卡片和栏来管理. 因此,实现敏捷最佳实践也很重要:
组织一次定期的团队会议.
至少每周回顾一下已经完成的工作,如果需要的话,对待办事项(待办事项列表)进行细化和优先排序. 通过这种方式,整个团队将同时获得更新,并且可以分享想法. 在这些会议上, 有一个项目干系人(客户)是很重要的, 公司首席技术官, 或者是产品团队中可以做出决定并回答问题的人,最终提供非技术反馈.
确保与团队成员的持续沟通.
这将使每个人的日常工作更容易. 保持这些会议或同步非常简短,只需在您最喜欢的聊天程序中快速更新即可. 每天检查是很有用的, 比如你每天和团队开15分钟的会议. 在这次会议上,每个团队成员都要发言几秒钟:
在通话过程中做笔记,注意发现可能存在的问题(障碍), 错误地关注任务, 意想不到的技术挑战), 和团队一起努力.
而每个软件开发项目都是不同的, 你会发现几乎所有人都有一些特定的任务. 以下是开始软件开发项目时应该计划的一些任务:
设置代码版本控制和存储库.
跟踪更改和监视代码非常重要, 特别是在多个人员将更新相同代码的项目中进行协作时.
最流行的代码版本控制服务之一是 GitHub. GitHub是一个基于web的Git或版本控制存储库,它提供了Git的所有分布式版本控制和源代码管理(SCM)功能.
它提供访问控制和一些协作特性, 比如bug跟踪, 特性请求, 任务管理, 每个项目都有wiki.
定义数据库备份策略.
使用像GitHub这样的服务可以确保你的代码定期备份.
数据库是, 通常, 不是版本控制系统的一部分, 您还应该经常设置数据库备份.
开发过程容易出错, 在开发过程中很容易出现错误并更新错误的数据. 如果出现这样的问题,有一个备份可以帮你省去麻烦.
设置协作工具和文件共享.
项目文档, 功能规范, 设计文件, 在项目开发过程中使用的任何其他文档和文件都应不断更新,并应分发给您的团队.
您可以使用许多不同的服务来共享这些文件. 谷歌为这个问题提供了一个简单且经济有效的解决方案. 使用谷歌驱动器, 谷歌文档, 谷歌表, 和其他b谷歌应用程序来共享和协作文件.
设置独立的开发和测试服务器.
开发过程必须一直持续下去.
开发人员不应该等待应用程序测试的结果, 并且他们应该在质量保证审查完成的功能时继续完成他们的任务.
同时, 客户端应该能够在任何时候检查应用程序的当前状态, 无需等待开发团队. 拥有一个定期更新的专用测试服务器将消除这个过程中的所有瓶颈,并确保您的团队不间断地运行.
为每周的团队通话和每天的团队座谈设定固定的时间.
让你所有的团队成员都在日程表上安排好打电话和开会的时间. 这给你的团队一个稳定的时间表,没有工作中断.
项目管理是一项复杂的,而且常常是压力很大的活动. 向它添加结构,并使项目状态在任何时候都是可见和准确的,这大大减轻了这种压力. 采用看板方法和敏捷原则, 结合适当的工具, 会节省你很多时间吗.
话虽如此, 没有任何工具或方法可以补偿您所花费的时间, 作为项目经理, 必须致力于管理项目.
仅仅因为一个项目很小,并不意味着它需要更少的时间. 这种心态是一种很好的解决问题的方法.
这里有一个简单的清单来帮助你验证你的项目是否得到了适当的管理:
Keep in mind this list is far from definite and done; it’s just the beginning.
请留下你的评论, 并与项目经理分享您的技巧和实践,他们刚刚开始授权软件开发团队的永无止境的旅程.
世界级的文章,每周发一次.
世界级的文章,每周发一次.