作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
Demir Selmanovic的头像

Demir Selmanovic

Demir是一名开发人员和项目经理,在广泛的软件开发角色方面拥有超过15年的专业经验.

专业知识

工作经验

24

Share

每个人都是项目经理. 无论你是在管理一个新应用程序的开发,还是在发展你的创业公司, 致力于一个新的十亿美元的企业项目, 或者只是想用一些DIY的景观美化来活跃你的院子, 你总是在管理一个项目.

你的项目的成功取决于很多因素, 但项目失败的最常见原因之一是缺乏管理或彻底失败 bad 项目管理. 不管你的团队有多小, 或者你的需求文档有多清晰, 如果你没有管理好你的团队, 你的计划注定要失败.

你花在管理项目上的每一分钟都是值得花的时间. 它会让你离成功完成你的项目更近一步.

敏捷项目管理是一种被广泛接受的处理现代软件开发项目的方法. 但是什么 Agile 真正的意思?

敏捷项目接受范围和需求的频繁变化,将其作为过程的一个组成部分.

要更深入地了解敏捷原则,我建议阅读我们的 敏捷项目终极指南 管理.

在这篇文章中,我们将用看板解释敏捷项目管理的基础.

即使你是一位经验丰富的项目经理,对敏捷原则了如指掌, 你应该刷新你的记忆,提醒你自己的核心概念. 创新周期 软件开发 是否在不断加速,使得项目管理在每次迭代中变得更加复杂. 回到基本原则并巩固敏捷的核心原则总是很重要的. 毕竟,重复是一切知识之母.

看板是管理任何敏捷软件开发项目最简单的方法之一. 您可以轻松地处理来自同一办公室或分布团队的本地开发团队, 分散在几个时区.

看板不是一个过程. 这是一种管理任何流程的方法,对团队已建立的操作活动进行最小的更改.

为了将看板原则应用到你的工作中,你必须应用两个简单的规则:

  1. 可视化你的过程.
  2. 限制正在进行的工作.

可视化你的过程

数据可视化是一种快速, 简单的方式以一种普遍和容易理解的方式传达信息. 在看图片的时候,人类的大脑可以同时处理几条信息. 一些研究表明,这可能比阅读文本快6万倍.

负责视觉感知的大脑神经元 30% 大脑的灰质.

最流行的可视化过程的方法是看板. 看板板是一个垂直分为几列的板, 每一列表示流程中的一个状态.

让我们来看看一个简单的软件开发板是什么样子的. 首先,我们需要为我们的开发特性定义状态:

  1. To-Do -功能还在开发中
  2. 发展 -功能被分配给一个开发人员,他/她正在开发它
  3. 质量保证 特性正在审查中
  4. 部署 -功能被接受并包含在应用程序发布中

基于此,您的电路板应该具有以下布局:

一个包含四列的Trello板:待办事项、开发、质量保证和部署.

可视化单个任务就像制作一张简单的卡片(很像便利贴)一样简单,它代表了需要完成的工作. 您可以为任务命名, 添加分配的开发人员的名称, 到期日期, 以及这张卡上的其他相关信息.

当你把这张卡片添加到看板板的一栏时, 你已经想象过了, 例如, 特定的开发人员正在处理一个特定的任务,该任务将在某个日期到期,并且目前正在开发中.

一张Trello卡片的特写, 用标签突出显示其任务颜色标签, 任务名称, 任务截止日期, 任务说明状态指示灯, 评论计数器, 附件计数器, 检查表项目已完成的总比例, 分配人员指标.

限制在制品(WIP)

人类一心多用是一种错觉. 而不是同时关注一两件事, 我们的大脑在它们之间快速切换.

这在软件开发中比在其他任何地方都更加明显. 开发人员一次只能处理一段代码, 切换到另一个功能会造成延迟,影响他们的注意力和表现.

这并不意味着您必须一次将赋值的数量限制为一个. 发展是一项复杂而富有创造性的工作, 有些任务需要更多的时间,而另一些则需要更少的时间来完成, 当开发者在等待某事或某人时,总是会有延迟. 重要的是将分配的任务限制在一个合理的数量,不会造成混乱(通常一次分配三到五个任务)。.

假设您的开发团队由两名开发人员和一名QA工程师组成, 您的板可能有以下在制品限制:

  • 待办事项-无限
  • 开发-六张牌限制(两名开发人员每人最多只能完成三个任务)
  • 质量保证-三张卡限制(一名QA工程师最多三张卡)
  • 部署-无限
不要指望开发人员是明智的,并限制他们自己的在制品. 如果你把所有待办事项都交给开发人员, 这就像给孩子太多玩具一样. 他们不是玩一个玩具,而是把它们扔来扔去, 在你整洁的家里制造混乱, 而且还, 他们不会高兴,你可以预料到他们会发脾气.

这是你的工作, 作为项目经理, 以确保待办事项列表的优先级正确, 并且任务分配给开发人员的时间不会比需要的早.

一个类似于第一个的Trello板, 第二列是在制品, 在第三张卡片下面画一条叫做“在制品限量”的红线.

一个管理得当的看板会让你一眼就能清楚地看到项目的状态. 您可以看到您的开发人员有足够的工作, 你已经准备好了新的任务,他们可以在任务完成后接手, 你的QA工程师正在等待新任务的审查.

使用Trello来管理看板

Trello 是一个基于网络的看板项目 管理应用程序. 它使团队成员之间,甚至多个团队和项目之间的协作变得简单、实时.

要在Trello中创建板,单击“创建新板…”菜单项,并为您的板设置标题.

在Trello中创建板的截图.  有一个字段用于board title.

你将从一个空的棋盘开始. 使用“添加列表…”框为看板卡创建列.

在Trello中添加任务列的截图. 新列的标题是可编辑的,标题下面有Save和X按钮.

通过点击列表底部的“添加卡片”,你可以很容易地创建一个任务. 您创建的每张卡片都应该代表一个将由团队成员执行的任务.

Trello中的卡片可以通过多种方式进行定制:

  • 分配负责执行任务的团队成员
  • 根据您想要添加的特定分组对它们进行颜色编码
  • 设定截止日期
  • 添加附件
  • 添加自定义字段,例如检查表,您可以在其中跟踪组成任务的较小元素的进度
  • 团队成员可以在卡片上发表评论,并且每个人都会被通知所做的任何更改.

Trello卡详细信息视图的截图, 显示标题, 检查清单部分, 评论, 以及活动历史, 以及在侧边栏中可能的卡片级操作.

可视化是看板的一切,下面是一张卡片在板上的样子:

在Trello板级别查看前一张卡的屏幕截图, 使用前面描述的相同元素, 但与最近那张卡的信息相符.

只看卡片,不打开详细视图,你可以看到:

  1. 设置GitHub代码库的任务在待办事项列表中等待执行.
  2. 任务截止日期为1月27日.
  3. 任务有一个描述.
  4. 对这项任务有一个评论.
  5. 有两个项目的清单,这些项目目前都没有完成.
  6. 任务被分配给用户DS,他将接起任务.
  7. 任务属于一组绿色卡片, 这意味着在项目开始之前需要它.

估计开发工作的时间和复杂性

如果不了解完成某项任务所需的努力和时间,计划和管理项目是不可能的. However, 软件开发中最困难的事情之一是确定交付新软件产品或功能需要多长时间.

Scrum, 这是最流行的敏捷原则之一, 很大程度上依赖于估计, 无论它们是基于时间还是“复杂性点”.”

团队应该花大量的时间来确定任务的范围.

这是因为Scrum是基于时间间隔的, 当某一组任务被期望完成时. 为了计划交付,你需要充分了解在那个时间框内计划的所有工作.

看板不依赖于有时间限制的交付,如果你愿意,你可以计划每天的交付. 它依赖于优化流程, 这意味着团队的重点是尽快完成并清空在制品栏.

团队不会花时间提前评估工作. A developer will pick up the next item from To-Do; complete it as soon as possible; and pick up another task.

这并不意味着团队不应该估计他们的工作量.

您可以使用每周或每天的电话来更新和验证到期日期.

However, 对于一个小团队来说, 更重要的是要确保开发人员在任何给定时刻都在处理最高优先级的任务,并且没有瓶颈, 迫使开发人员暂停他们的工作.

最终, 您的项目将会增长,您将需要开始更详细地估计开发工作量. 当你遇到这种情况时,花点时间阅读我们的指南 敏捷项目管理中的软件成本估算.

必备的管理实践

So far, 您已经了解了可视化流程和限制在制品的重要性, 以及如何使用Trello管理您的项目.

一个软件项目不能只用卡片和栏来管理. 因此,实现敏捷最佳实践也很重要:

  • 组织一次定期的团队会议.
    至少每周回顾一下已经完成的工作,如果需要的话,对待办事项(待办事项列表)进行细化和优先排序. 通过这种方式,整个团队将同时获得更新,并且可以分享想法. 在这些会议上, 有一个项目干系人(客户)是很重要的, 公司首席技术官, 或者是产品团队中可以做出决定并回答问题的人,最终提供非技术反馈.

  • 确保与团队成员的持续沟通.
    这将使每个人的日常工作更容易. 保持这些会议或同步非常简短,只需在您最喜欢的聊天程序中快速更新即可. 每天检查是很有用的, 比如你每天和团队开15分钟的会议. 在这次会议上,每个团队成员都要发言几秒钟:

  • 他们昨天干了什么.
  • 他们今天打算做什么.
  • 他们面临着什么样的挑战或瓶颈.


在通话过程中做笔记,注意发现可能存在的问题(障碍), 错误地关注任务, 意想不到的技术挑战), 和团队一起努力.

引导你的软件开发项目

而每个软件开发项目都是不同的, 你会发现几乎所有人都有一些特定的任务. 以下是开始软件开发项目时应该计划的一些任务:

  • 设置代码版本控制和存储库.
    跟踪更改和监视代码非常重要, 特别是在多个人员将更新相同代码的项目中进行协作时.

    最流行的代码版本控制服务之一是 GitHub. GitHub是一个基于web的Git或版本控制存储库,它提供了Git的所有分布式版本控制和源代码管理(SCM)功能.

    它提供访问控制和一些协作特性, 比如bug跟踪, 特性请求, 任务管理, 每个项目都有wiki.

  • 定义数据库备份策略.
    使用像GitHub这样的服务可以确保你的代码定期备份.

    数据库是, usually, 不是版本控制系统的一部分, 您还应该经常设置数据库备份.

    开发过程容易出错, 在开发过程中很容易出现错误并更新错误的数据. 如果出现这样的问题,有一个备份可以帮你省去麻烦.

  • 设置协作工具和文件共享.
    项目文档, 功能规范, 设计文件, 在项目开发过程中使用的任何其他文档和文件都应不断更新,并应分发给您的团队.

    您可以使用许多不同的服务来共享这些文件. 谷歌为这个问题提供了一个简单且经济有效的解决方案. 使用Google Drive, 谷歌文档, 谷歌表, 和其他谷歌应用程序共享和协作文件.

  • 设置独立的开发和测试服务器.
    开发过程必须一直持续下去.

    开发人员不应该等待应用程序测试的结果, 并且他们应该在质量保证审查完成的功能时继续完成他们的任务.

    同时, 客户端应该能够在任何时候检查应用程序的当前状态, 无需等待开发团队. 拥有一个定期更新的专用测试服务器将消除这个过程中的所有瓶颈,并确保您的团队不间断地运行.

  • 为每周的团队通话和每天的团队座谈设定固定的时间.
    让你所有的团队成员都在日程表上安排好打电话和开会的时间. 这给你的团队一个稳定的时间表,没有工作中断.

外卖

项目管理是一项复杂的,而且常常是压力很大的活动. 向它添加结构,并使项目状态在任何时候都是可见和准确的,这大大减轻了这种压力. 采用看板方法和敏捷原则, 结合适当的工具, 会节省你很多时间吗.

话虽如此, 没有任何工具或方法可以补偿您所花费的时间, 作为项目经理, 必须致力于管理项目.

仅仅因为一个项目很小,并不意味着它需要更少的时间. 这种心态是一种很好的解决问题的方法.

这里有一个简单的清单来帮助你验证你的项目是否得到了适当的管理:

  1. 你的过程是否恰当地可视化了?
  2. 每个团队成员的在制品是否有限制和最小化?
  3. 你的团队是否有固定的会议安排——无论是每周还是每天?
  4. 你的看板是否定期更新?
  5. 您是否有适当的代码存储库?
  6. 是否安排了数据库备份?
  7. 你是否建立了团队沟通和协作工具?
  8. 您的开发环境是否与测试、验收和生产分离?

Keep in mind this list is far from definite and done; it’s just the beginning.

请留下你的评论, 并与项目经理分享您的技巧和实践,他们刚刚开始授权软件开发团队的永无止境的旅程.

聘请Toptal这方面的专家.
现在雇佣
Demir Selmanovic的头像
Demir Selmanovic

位于 萨拉热窝,波斯尼亚-黑塞哥维那联邦,波斯尼亚-黑塞哥维那

成员自 2014年7月8日

作者简介

Demir是一名开发人员和项目经理,在广泛的软件开发角色方面拥有超过15年的专业经验.

Toptal作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.

专业知识

工作经验

24

世界级的文章,每周发一次.

订阅意味着同意我们的 隐私政策

世界级的文章,每周发一次.

订阅意味着同意我们的 隐私政策

Toptal开发者

加入总冠军® 社区.