团队课程的方法论

时间:2010-11-21 14:03:38

标签: project-management project-planning methodology

我需要一种方法来组织我的团队完成大学任务。

我是一名大学生,已经有一些编程经验。我在一个相对较大的项目中由超过2人组成的团队工作的经验是,由于计划,组织和沟通问题,在上周左右通常会很快完成所有事情。在1月份,我将不得不在一个6人团队中完成一个(对我的技能非常具有挑战性)编程项目(Oracle上的Java应用程序)。我已经了解我的团队成员并被选为项目负责人。期望人们在任何有意义的大小时间内聚在一起是不现实的 - 每个人在不同的时间都是自由的,而且每周1小时的会议也许是现实的。人们努力工作并致力于成功,但每个人都有自己的情况。大部分分发的工作都是可行的方法。

我看过XP,Scrum,但他们都需要坐在一起(不太可能),旨在全面开发项目(人们有其他任务和兼职工作)和客户参与(我们将有书面规格,根据经验,来自导师的电子邮件最多可在2-3天内回复。

有关如何组织人员和分工的任何建议吗?我认真研究这个话题,因为以后会有更多的这类作品。

任何帮助表示感谢。

4 个答案:

答案 0 :(得分:5)

虽然不是一个编程项目,但我目前处于类似于你的位置 - 在一个5人小组任务中当选的组长。我们将提前两周完成,所以我会说该小组取得了成功。作为小组组长,我做了一些事情来确保这种情况发生(我也在利用“真实世界”情况下管理项目的经验,所以可能会有更多的优势):

  • 从偏移量设置基本规则。确保每个人都知道对他们的期望:会议出席,工作截止日期,如果他们正在努力应该怎么做。我们的大学有一个系统,如果他们没有“减轻体重”,就可以将他们从团体中移除。如果您的uni有类似的事情,那么您还应该概述为您启动该过程所采取的步骤。例如,错过两次会议,你将被“黄色梳理”。想念另一个,那就是'红牌'。
  • 将分配分解为可管理的块,然后决定时间线。如果您已经知道每周应该做什么,那么每周分配任务会容易得多。或者,当然,无论你决定什么时间框架。
  • 会议。应该有一个初步会议,决定上面的所有事情,可能是一个相当长的会议(我们的第一次会议花了90分钟)。在那次会议中,列出要在下次会议之前完成的任务。然后,在每个后续会议中,验证每个人已完成的工作,确保其完整和正确。然后,当然,委派要完成下一次会议的任务。等等......
  • 每个人,一对或任何其他人,应该独立离开并自己完成工作。因为会议时间太短(和我们一样),所以应该确保一切都完成,制定计划并委派任务。
  • 通信。我为我的小组成员建立了一个论坛,以沟通他们正在做的工作并上传完成的材料。我还有一个特定的子论坛,人们可以发布他们可能遇到的任何问题 - 他们应该在下次会议的大量时间内这样做 - 以便其他人可以提供帮助,或者可以重新分配任务。重要的是每次会议都要有会议记录,并为下次会议制定议程。我将这些内容上传到论坛,这样任何错过会议的人都不会被遗忘,并确切地知道他们需要做什么。

由于您的项目是一个编程项目,以下内容可能有助于该团队保持井井有条和凝聚力:

  • 早期 - 最好是在第一次会议中 - 将您的计划分解为“模块”或类/程序/等等;基本上,可管理的,独立的代码块。然后可以每周将这些分配给某人。为确保不会在以后不必要地更改代码时浪费时间,请确定您的全局变量(如果有)。在任何编码开始之前,也可以决定每个类的方法和属性。
  • 正如sgolodetz建议的那样,您可能还希望使用版本控制来跟踪正在编写的代码。同样,如果您这样做,请确保规则/指南适用于更新的时间/频率。
  • 也许安排在相关任务上工作的人在会议之间见面,以确保他们的代码很好地集成。通过这种方式,他们可以共同努力确保每个人的代码与其他人的代码“合作”。

我认为这里的关键是组织起来。有一个严格,详细的计划,并尽可能坚持下去。

在大学里,至少,我认为有一定程度的无情是很重要的 - 请记住,如果人们不减肥,它也会影响你的成绩。它可能只是我,但一旦规则确定,他们应该遵守并打破它们(即:没有完成工作或不让人们知道你正在努力,没有出席会议等)应该总是导致'卡'系统 - 正如在开始时所同意的那样。这是你的未来,所以不要让那些不在乎的人危及这一点。

答案 1 :(得分:4)

去年大学时,我是一个团队项目(6人)的领导者之一。根据我的经验,我有几点要点。

虽然论坛,在线聊天,电子邮件,SVN提交消息等都是非常好的沟通机制(我建议他们),但没有什么比每周会议更重要了。这些应该包括委派/讨论/监控任务,讨论一般问题和更大的图景,做出小组决策,以及简单地使用您的应用程序并将其作为一个小组确定问题。通过这样做,人们可以立即明白他们的任务,他们可能会感到困惑,以及他们是否理解需要做什么。这是至关重要的,因为感到“迷失”并且不知道从哪里开始往往是取得进步的最大障碍,而不是懒惰。此外,团队决策最好是亲自制作,你可以互相反对意见......这一切都有助于建立共享所有权的感觉。

没有一种最好的方法来制定,委派和监督任务。但重要的是,您可以将工作负载(尽可能多地)划分并并行化为合理规模的任务,并确定它们之间的依赖关系。我们的小组在我们的存储库中维护了一个TODO文件,其中包含一系列任务,日期和错误。我们根据诸如强制性要求或可选细节(想想MoSCoW),是否处于关键路径,多少风险/不确定性等因素来确定任务的优先级。我们为大多数任务分配了一两个人关于他们的优势以及他们是否真的想要完成这项任务,但我们也向任何想要他们的人留下了一些任务(这也有潜在危险)。我们这些强大的程序员也扮演“浮动角色”,这意味着我们可以帮助解决任何问题。关键点在于任务描述应包含会议中讨论的任何内容......作为kickstart的内容,原因以及一些“如何”的句子(即“要完成此任务,您可能需要阅读blablabla” )......任何让你的队友轻松轻松的任何事情。

答案 2 :(得分:3)

一些想法:

  • 沟通 - 也许使用IRC或维基
  • 将人员分配给任务 - 您需要弄清楚人们的优势和劣势所在,将项目分解为块并相应地分配它们
  • 监控 - 人们远程工作的项目的一个大问题是,他们可能无法按时完成工作;你需要考虑如何保持这一点(例如使用版本控制,并查看签到) - 为了使这项工作,每个人都需要预先购买
  • 战略储备 - 可能值得让一个人(也许是你,如果你是最强大的程序员)在整个项目中承担其他人发现很难阻止人们陷入困境的任务

答案 3 :(得分:1)

首先,为项目设置版本控制系统。这样做的目的是所有团队都可以使用已经签入的代码,如果有人破坏了某些内容,你可以恢复到早期版本,并且所有体面的专业商店都使用源代码控制,所以这是一项工作技巧习惯使用。

现在您可以检查进度了。如果乔没有扯过任何东西,你知道他没有做这项工作。如果Sally在中期退出,你就会记录她已经做过的一切。

您想要的另一件事是代码审查。每个人的代码都会被一个或多个其他人审核。你们都将从中学到很多东西,这也是专业开发人员必备的技能。

计划必须以什么顺序完成的工作。确保人们开发其他所有东西所依赖的东西是团队中最可靠的开发者,他们将满足他们的早期截止日期,或者没有其他人能够完成他们的部分。

每周一次的进步会议,不要害怕因为不履行自己的责任而打电话给某人。你越早发现一个人没有减轻体重,你就能越早解决问题。