我在业余时间在一些项目的小团队中工作。我们遇到的问题是,我们似乎已经进入了圈子,并且无法开发我们的产品 - 但这在我的日常工作中不是问题。缺乏面对面的沟通似乎对生产力产生了真正的影响。
开源开发社区使用的任何软件或方法示例都将受到赞赏。
答案 0 :(得分:4)
如果您阅读了大多数开源项目的历史记录,那么从一个人做很多初始工作开始。如果有一个团队,它很小,一个人实际上领导团队。
选择一个例子。在Python社区中,他们将Guido van Rossum称为仁慈的生活独裁者(BDFL)。他的话是(或多或少)最终的。在许多情况下,有些人不同意他 - 但为了Python社区 - 他们似乎默许他的判断。
我认为每个开源项目都有一个(单一的)首席程序员,他们确保做出决策并以一致的方式做出决定。
回到过去,弗雷德布鲁克斯( The Mythical Man Month )描述了“首席程序员团队”。同样的概念。有人负责技术内容。强调一个。如今我们称之为“建筑师”或一些这样的术语。答案 1 :(得分:3)
这里没有真正的方法,但我认为有两件事是重要的:
在开源项目中,唯一真正和最强烈的动机是对产品进行编码的乐趣。关于上面的#2,如果人们被告知要做什么,并且他们不同意,那么动机开始缺乏。当然,在任何其他类型的关系中总会有一些让步。
关于面对面时间,Skype非常适合举行面对面会议,我建议至少每周或每月一次(取决于项目的规模和动力)
答案 2 :(得分:2)
我的猜测是你的私人项目都是由开发人员运行和编码的。众所周知,开发人员......继续发展。根据我的经验,最大的区别在于公司经验丰富的管理人员可以定义什么时候完成。我建议让某人完成定义目标的任务,并决定何时完成任务。
答案 3 :(得分:2)
我参加过一些比开发人员有更多谈话的项目。我倾向于忽略讲话者并听取编码员的意见。即便如此,通常还有一个人负责接受补丁。可能存在政治问题,他们必须轻率地处理,但出于所有意图和目的,他们有最终决定权。
Linus在同样的问题上有一些相当着名的问题。请注意2006年的这一主题:Talk is cheap. Show me the code.
还有一件事。既然你在评论中说你确实有代码,只有很多重写,我强烈建议你阅读Eric Raymond的The Cathedral and the Bazzaar。 Eric实际上有点疯狂,但对于想要运行自由软件项目的人来说,这篇文章是无价的。
答案 4 :(得分:2)
这是一个难以回答的问题,因为“开源项目”是一个非常广泛的项目选择。我认为定义的特征是项目有一个统一的目标(也许是一组相关的目标)。
您是否在任何开源邮件列表中?我订阅了我的favorite distro邮件列表,开发人员每天多次通过电子邮件发送电子邮件。此外,还有其他通信渠道,如IRC / Instant Messenger。
我不是RoR开发者,但我建议浏览Getting Real以获得一些灵感。
答案 5 :(得分:1)
我会考虑你和你的队友在这个项目中的动机和目标。他们是:
a)创建一个很棒的产品
或
b)玩软件,学习一些新东西这两个答案都同样有效,而且我猜它会倾向于倾向于其中一个。
如果更多的是(a)然后看看关于方法论的建议等。甚至可以考虑围绕你的好主意组建一家公司。因为制作这样的东西需要工作......而且你可能在工作中得到足够的东西。
如果它主要是(b)那么你将会有更难的时间制作出令人敬畏的产品,但是更容易的时候你可以原谅自己没有立即到达并遭受多次重写。每当你看到并一起工作时,你们都将学习新的技能,这些技能非常适合你的长期职业生涯。
首先,我建议大家彼此清楚为什么你在那里。然后看看你正在计划做什么,并提前发布并经常发布。如果您的项目由三个组件组成,其中一个是完整的,那么将其作为单独的组件发布并开始构建用户社区。这将得到回报,因为这些用户可能会帮助您完成代码,并为完整产品形成一个坚实的用户核心,让您评估您的早期而不是晚期。
祝你好运。