团队课程作业的方法

发布于 2024-10-03 14:35:38 字数 1431 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

玩物 2024-10-10 14:35:38

虽然不是一个编程项目,但我目前的处境与您类似 - 在 5 人小组作业中当选小组组长。我们将提前两周完成,所以我想说这个小组是成功的。作为小组领导,我做了一些事情来确保这种情况发生(我还借鉴了在“现实世界”情况下管理项目的经验,因此也许有更多优势):

  • 从偏移量中制定基本规则。确保每个人都知道对他们的期望:会议出席率、工作截止日期、如果他们遇到困难该怎么办。我们大学有一个系统,如果人们不“尽力而为”,他们就可以被从团体中除名。如果您的大学有类似的事情,还应该概述您启动该程序所采取的步骤。例如,错过两次会议,您将被“出黄牌”。再错过一次,那就是一张“红牌”。
  • 将作业分成可管理的小块,然后决定时间线。如果您已经知道每周应该做什么,那么每周分配任务就会容易得多。或者,当然,无论您决定什么时间范围。
  • 会议。应该有一个初步会议,决定上述所有内容,可能是一个相当长的会议(我们的第一次会议花了 90 分钟)。在那次会议上,列出下次会议之前要完成的任务。然后,在随后的每次会议中,验证每个人所做的工作,确保其完整且正确。然后,当然,将要完成的任务委托给下次会议。依此类推……
  • 每个人、每个人或任何其他人都应该离开并独立完成工作。因为会议时间很短(就像我们的会议时间一样),所以会议的目的应该是确保一切都完成,制定计划并委派任务。
  • 沟通。我为我的小组成员建立了一个论坛,以交流他们正在做的工作并上传完成的材料。我还有一个专门的子论坛,人们可以在其中发布他们可能遇到的任何问题 - 规则是他们应该在下次会议后的充足时间内这样做 - 以便其他人可以提供帮助,或者可以重新分配任务。每次会议都有记录并为下一次会议制定议程,这一点很重要。我将这些内容上传到论坛,这样任何错过会议的人就不会被蒙在鼓里,并且确切地知道他们需要做什么。

因为您的项目是一个编程项目,所以以下内容很可能有助于团队保持组织性和凝聚力:

  • 早期 - 最好是在第一次会议上 - 将您的程序分解为“模块”或类/过程/任何内容;基本上,要编写的可管理的、独立的代码块。然后可以每周将这些分配给某人。为了确保以后不会浪费时间不必要地更改代码,请确定您的全局变量(如果有)。在任何编码开始之前决定每个类的方法和属性可能是一个好主意。
  • 正如 sgolodetz 所建议的,您可能还想使用版本控制来跟踪正在编写的代码。再次强调,如果您这样做,请确保制定了更新时间/频率的规则/指南。
  • 也许可以安排从事相关任务的人员在会议之间见面,以确保他们的代码能够很好地集成。这样,他们就可以一起工作,以确保每个人的代码与另一个人的代码“协作”。

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

至少在大学里,我认为保持一定程度的冷酷很重要——记住,如果人们不尽自己的力量,它也会影响你的成绩。可能只是我个人的问题,但规则一旦制定,就应该始终遵守并打破它们(即:不完成工作或不让人们知道你正在挣扎,不参加会议等) 结果是“卡”系统——正如一开始就商定的那样。这是你的未来,所以不要让那些不在乎的人危及你的未来。

While not a programming project, I am currently in a position similar to you - elected group leader in a 5-person group assignment. We will be finished two weeks early, so I would say that the group has been a success. A few things that I did, as group leader, to ensure that this happened (I am also drawing on experience of managing projects in a 'real world' situation, so perhaps have a little more advantage):

  • Set ground rules from the offset. Make sure that everyone knows what is expected of them: Meeting attendance, work deadlines, what to do if they are struggling. We have a system at our university where people can be removed from groups if they are not 'pulling their weight.' If your uni has a similar thing, the steps taken for you to initiate that procedure should also be outlined. For example, miss two meetings and you will be 'yellow carded'. Miss another, then it's a 'red card'.
  • Break the assignment into manageable chunks and then decide on a time line. If you already know what should be done each week, it will be much easier to assign tasks each week. Or, of course, whatever time frame you decide on.
  • Meetings. There should be an initial meeting where everything above is decided on, probably a rather long meeting (our first meeting took 90 minutes). In that meeting, set out tasks to be completed before the next meeting. Then, in each subsequent meeting, validate the work that has been done by each person, ensuring it is both complete and correct. And then, of course, delegate tasks to be completed for the next meeting. And so on...
  • Each person, pair, or whatever, should go away and do the work themselves, independently. Because meeting times are so short (as were ours), they should be about making sure everything is completed, plans are made and tasks are delegated.
  • Communication. I set up a forum for the members of my group to communicate about the work they are doing and to upload completed material. I also have a specific sub-forum where people can post up any problems they might have - with a rule that they should do so within plenty of time of the next meeting - so that others can help, or tasks can be re-assigned. It's important that each meeting has minutes taken and an agenda set for the next meeting. I get these uploaded to the forum so that anyone who did miss a meeting isn't left in the dark and know exactly what they need to do.

Because your project is a programming project, the following may well help the group stay organised and cohesive:

  • Early on - preferably in the first meeting - break your program into 'modules' or classes/procedures/whatever; basically, manageable, stand-alone chunks of code to be written. These can then be assigned to someone each week. To make sure that time won't be wasted on changing code needlessly later on, decide on your global variables, if any. It might be a good idea to also decide on the methods and properties of each class before any coding starts.
  • As sgolodetz suggested, you might also want to use version control to keep track of code as it's being written. Again, if you do this, make sure that rules/guidelines are in place for when/how often to update.
  • Perhaps arrange that people working on related tasks meet up between meetings to make sure their code integrates well. This way, they can work together to make sure each person's code 'cooperates' with the other's.

I think the key here is to be organised. Have a strict, detailed plan and stick to it as much as possible.

In university, at least, I think it's important to have a certain amount of ruthlessness - remember that if people don't pull their weight it will affect your grade as well. It might just be me, but once the rules are set, they should be abided by and breaking them (ie: Not completing work or not letting people know you're struggling, not turning up for meetings, etc) should always result in the 'card' system - as would have been agreed at the start. It's your future on the line, so don't let people who don't care jeopardise that.

风和你 2024-10-10 14:35:38

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

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

没有一种最好的方法来制定、委派和监控任务。但重要的是,您可以将工作负载(尽可能多地)划分并并行化为大小合理的任务,并确定它们之间的依赖关系。我们小组在存储库中维护了一个 TODO 文件,其中包含任务、日期和错误列表。我们根据各种因素对任务进行优先级排序,例如它们是强制性要求还是可选细节(想想莫斯科)、它们是否在关键路径上、它们所附加的风险/不确定性有多大等。我们根据情况为大多数任务分配了一两个人取决于他们的优势以及他们是否真的想要完成这项任务,但我们也将一些任务留给任何想要的人(这也有潜在的危险)。我们几个更强大的程序员也扮演“浮动角色”,这意味着我们可以帮助完成任何任务。关键点是任务描述应包含会议中讨论的任何内容……内容、原因和几个“如何”句子作为启动(即“要完成此任务,您可能需要阅读 blablabla”) )...任何能让你的队友轻松陷入任务的东西。

I was one of the leaders of a team project (6 people) last year at university. Based on my experience, I have a couple of key points.

While forums, online chat, email, SVN commit messages etc. are all very good communication mechanisms (and I do recommend them), nothing is more important than weekly meetings. These should involve delegating/discussing/monitoring tasks, talking about general issues and the bigger picture, making group decisions, and simply using your app and identifying issues with it as a group. By doing this, it becomes instantly obvious where people are at with their tasks, where they might be confused, and whether they understand what needs to be done. This is crucial because the feeling of being 'lost' and having no idea where to start is often the biggest obstacle to making progress, rather than laziness. And besides, group decisions are best made in person where you can bounce ideas off each other... and this all helps to establish a sense of shared ownership.

There is no one best way to formulate, delegate and monitor tasks. But it is important that you can divide and parallelise (as much as possible) the workload into sensibly sized tasks and identify dependencies between them. Our group maintained a TODO file in our repository which consisted of a list of tasks, dates, and bugs. We prioritised tasks according to factors such as whether they were mandatory requirements or optional niceties (think MoSCoW), whether they were on the critical path, how much risk/uncertainty was attached to them etc. We allocated one or two people to most tasks based on their strengths and whether they actually wanted to do the task, but we also left some tasks open to whoever wanted them (this is potentially dangerous too). A couple of us stronger programmers also played 'floating roles' meaning we could help out with any task. A key point is that the task descriptions should contain anything discussed in the meeting... the what, the why and a couple of 'how' sentences as a kickstart (i.e. "to accomplish this, you might want to read up on blablabla")... anything which makes it easy for your teammates to slip into a task.

毁虫ゝ 2024-10-10 14:35:38

一些想法:

  • 沟通 - 也许使用 IRC 或 wiki
  • 将人员分配给任务 - 你需要找出人们的优点和缺点,将项目分解为块并相应地分配他们
  • 监控 - 对于人们正在工作的项目来说这是一个大问题远程是他们可能无法按时完成工作;你需要考虑如何掌握这一点(例如使用版本控制,并查看签入) - 为了使这项工作发挥作用,每个人都需要预先购买它
  • 战略储备 - 可能值得拥有一个在整个项目中承担其他人发现很难防止人们陷入困境的任务的人(也许是你,如果你是最强大的程序员)

A few thoughts:

  • Communication - perhaps use IRC or a wiki
  • Assigning people to tasks - you need to figure out where people's strengths and weaknesses lie, break down the project into chunks and assign them accordingly
  • Monitoring - a big problem with projects where people are working remotely is that they may not do the work on time; you need to think about how to keep on top of this (e.g. use version control, and look at the check-ins) - to make this work, everyone needs to buy into it up-front
  • Strategic reserve - it might be worth having one person (perhaps you if you're the strongest programmer) who takes on tasks across the project that other people are finding difficult to prevent people getting bogged down
友谊不毕业 2024-10-10 14:35:38

首先,为项目建立版本控制系统。这样做的目的是,已签入的代码可供所有团队使用,如果有人破坏了某些东西,您可以恢复到早期版本,并且所有像样的专业商店都使用源代码控制,因此这是一项工作技能,这是很好的在使用习惯中。

现在您可以通过一种方法来检查进度。如果乔没有签收任何东西,你就知道他没有做这项工作。如果莎莉在期中退出,你就会记录她已经做过的一切。

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

计划必须按什么顺序完成什么。确保开发其他一切都依赖的东西的人是团队中最可靠的开发人员,并且他们将在早期截止日期前完成,否则没有其他人能够完成他们的部分。

每周召开进度会议,不要害怕批评某人没有尽到自己的职责。你越早发现某个人没有尽自己的职责,你就能越早解决这个问题。

First, set up a version control system for the project. This serves the purpose of the code that has been checked in is available to all the team, you can revert to earlier versions if someone breaks something, and all decent professional shops use source control, so it is a job skill it is good to be in the habit of using.

Now you have a way to check on progress. If Joe hasn't cheked anything in, you know he is not doing the work. IF Sally quits in mid_term, you have a record of everything she already did.

Another thing you want to so is code review. Everybody's code gets reviewed by one or more other people. You will all learn a lot from this and this too is a necessary skill for the professional developer.

Plan what has to be done in what order. Make sure the people developing the stuff that everything else depends on are the most reliable devs on your team and that they will meet their early deadlines or nobody else will be able to do their parts.

Weekly progress meetings and don't be afraid to call someone out for not doing his or her part. The sooner you identify a person not pulling his weight, the sooner you can address the issue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文