Questions tagged «teamwork»

有关与同事或团队合作的问题。(关于工作建议或教育,团队合作的问题有被“搁置为脱题”的风险。)

8
重现错误的责任
我正在使用另一个程序员(他在同一家公司工作)制作的库来开发程序。最近,我在库中发现了一个泄漏,该泄漏在某些网络条件下运行了几个小时后才发生。我提交了一个错误,并附有导致此泄漏发生的条件说明。该开发人员回答说,“这还不够”,“重现错误不是他的责任”,我必须创建单元测试来重现此错误,否则他什么也不做。 是吗 在这种情况下我能做什么?创建单元测试是不可能的,因为它取决于一些随机的网络时间。

7
当构建几乎总是被破坏时如何保持效率
我在一个中型团队中工作,该团队共享相同的源代码,并且有持续的集成,但是由于我们所有人都必须在同一个分支中工作,因此构建几乎总是被破坏。 我们还有一条规则,该规则最近被引入以减轻损坏的构建,该规则指出在构建为红色时不允许任何人签入。 话虽这么说,一天中每个人都只有几个10-15分钟的窗口,我们可以在那里办理登机手续。 并且随着团队的成长,签到机会的窗口会进一步缩小。这迫使开发人员在本地积累他们的更改,从而导致更大的更改集,这甚至更加难以确保更改不会破坏任何内容。您可以看到恶性循环。 您能推荐什么使我在这样的环境中保持有效的工作。另外,请记住,我是开发人员,而不是经理,并且不能改变流程或其他人的行为。

12
如何查看您不理解的代码?
我被赋予改善公司发展的作用。我想开始的第一件事是代码审查,因为以前从未在这里进行过代码审查。 我们公司有3位程序员。我是一名网络程序员,我的已知语言主要是PHP,ActionScript和JavaScript。另外2个开发人员在VB.net中编写内部应用程序 我们已经进行了几周的代码审查。我发现很难理解VB代码。因此,当他们说出自己的所作所为时,在大多数情况下,我只需要信守诺言。 如果确实发现有问题,请解释我的意见,并说明我将如何使用我所知道的一种语言解决该问题。 有时我的建议会受到欢迎,但是很多时候我会被告知诸如“这是使用这种语言的最佳方式”或“不适用于该语言”之类的事情。 这可能是正确的,但我不知道该用哪种语言,我不确定如何确认或反驳这些主张。 我知道一种可能的解决方案是学习vb,这样我可以进行更好的代码审查。我对学习vb确实没有兴趣(特别是因为我有一系列我正在尝试为自己的项目学习的技术),并且希望保留此作为最后的选择,但这是一个选择。 我想到的另一个想法是,他们俩都对C#感兴趣,我也对C#感兴趣。它相对于他们是因为它的.net和相对于我来说是因为它与我所知道的语言更相似。但这对我们所有人来说都是新的。我想到了我们所有人在一个宠物C#.net项目上进行协作并从中互相检查代码的好处。 我想也有可能聘请顾问来给我们做一些代码审查。 在这种情况下,您会建议我做什么。

9
给其团队将在不久的将来扩展的独占程序员的建议[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 四年来,我一直是一家小型公司的独立开发人员。我们在利基行业中拥有一些完善的产品。我们将很快雇用1-2名开发人员,这很可能会改变这里的运作方式。 虽然我没有“真正的”头衔,但我将“负责”这支球队。我要做的是为我的公司建立一个组织严密且富有成效的编程部门。我刚从大学毕业就获得了这份单独工作,因此,尽管我已经精通该行业的程序员,但我却缺乏很多团队编程经验。我觉得从右脚开始将是关键。 现在只有我,几台计算机和一台SVN服务器。我正在寻找有关从头开始建立团队的任何一般指导。

4
如何在请求请求中处理TODO?
该问题是从软件质量保证和测试堆栈交换迁移而来的,因为可以在软件工程堆栈交换中回答。 去年迁移 。 当我查看请求请求中的更改时,有时会偶然发现带有“ TODO”注释的注释,该注释可能有不同的原因,在我们的情况下,主要是因为: 用于解决问题的解决方案可以改进,但需要大量的时间投入。作者选择了一种更快的解决方案,但评论说可能有更好的选择 有一个临时代码可以解决现有的错误,应尽快修复 知道TODOs通常会在代码库的整个生命周期内停留在代码库中,那么我应该如何在请求请求中对它们做出反应?我如何礼貌地避免使用它,或者如果它确实是合理的,我如何确保PR的作者在以后的晚些时候进行跟进?

8
在代码审查期间编写测试是否有益?
我的一个同事提出了一个我发现很有趣的想法。 假设我们不做TDD,那么由进行审核的人员在代码审阅期间编写测试是否有益? 对于这个问题,假定这是一个纯粹的学术项目,因此没有生命危险。而且该团队是4个人。每个人都知道该语言,并且熟悉所使用的所有工具/库/框架,并且可以编写测试。因此,基本上不是高级全职首席忍者工程师,而是体面的编码人员的人。 我发现的优点: 鼓励在审阅期间对代码有更深入的了解,以编写有意义的测试。 然后,您可以添加由正在测试的代码的作者进行的那些测试的代码审查。 我发现的缺点: 代码编写和测试之间的反馈循环不断增长。 编辑:我知道它不能在“正常”的Web应用程序上正常工作。我想到的是一个极端的案例,在该案例中,您需要实施复杂,科学的算法,这些算法都需要注意细节。让我们假设实现自己的图形库,NLP等。我想知道我们正在编写的代码是否与数据库隔离,并且这样很难理解却不会增加控制级别,而另一个需要了解源代码的人代码并进行有意义的测试,从而使整个过程不太容易受到那些不太明显的bug的影响,这些bug不会使应用程序崩溃,但最终会使您的结果混乱?

10
如何向团队添加新开发人员
我经营一家只有2个开发人员的小公司。我们正在为我们的一位客户构建非常大的应用程序。这个项目的开发已经进行了1.5年。 现在,该客户已获得了重要的赞助,他们正在组织与此项目有关的活动。所以现在我们有两个月的截止日期,我们不能错过。 我们正在考虑向团队中添加新的开发人员,我想知道我们能做些什么来帮助他整合。 这种情况: 我们正在接近布鲁克斯法则的门槛-添加新的开发人员将适得其反。 该应用程序的设计相对较好,但是在某些方面(尤其是较旧的代码)的实现是混乱的。 仅对最新代码进行单元测试。这个项目开始时,我们没有定期进行测试。 文档和注释不完整。 该应用程序既大又复杂。 客户以一种非常清晰且“程序员友好”的方式写下了有关其项目的几乎所有细节。 现在添加一个人是个好主意吗?如果是这样,我们应该怎么做才能帮助新开发人员融入团队? 编辑: 赞助商将在明年春季组织基于互联网的体育赛事。它必须在一年中的特定日期开始。我们无法更改。 我们的开发人员(我是两者之一)需要做的是: 完成现有的应用程序(大约需要完成的工作的25%)。 创建一个新模块,对于组织此次活动至关重要(大约需要完成的工作的75%)。如果不了解主程序的API,就无法开发此新模块。 我无法准确估算时间,但我们处于危险境地。

9
我的同事是一个好人,但他的表现不及标准。我要告诉老板吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 大约三个月前,我被安排在一个项目上,该项目直到那时才由一个新雇用的开发人员进行开发,因为它落后了。公平地讲,该项目是医疗设备的接口,具有很多细微之处,并且相对复杂,因此从管理的角度来看,让一个没有公司经验的人加入该项目可能是一个错误的决定。 无论如何,一旦我开始研究它,我就意识到……好吧,它根本没有用。UI看起来不错,但是实际上并没有执行任何操作,它所做的只是做错了。再次,公平地讲,这很大程度上是由于该开发人员没有适当准备为我们的设备编写接口的事实。但是,我也很快意识到所使用的代码很脆弱,并且很难维护。 现在,我不声称自己是世界上最好的程序员。我与很多非常聪明的人一起工作,他们比我更好。开发人员但是我非常努力地编写尽可能简单且健壮的代码。我测试我的签到。如果我发现我的代码变得凌乱并且难以在早期使用,则可以对其进行更改。我与同事进行了几次交谈,以帮助他编写更好的代码。这有点棘手,因为a)他在该领域有20多年的经验,而我只有5年,b)他被聘为所谓的“ UX专家”,而其他人则将他视为经验丰富的人。 就是说,我只是看不到。他是一个非常好人,并且很理性,但是他一次又一次地检查脆弱的代码,仅在最乐观的情况下才能工作,并且十分之九的错误导致我修复了他的工作中的错误。他的代码似乎只是业余的,显然他没有他被录用时所拥有的经验水平。到现在,我花费大量的时间重构他的代码并修复他的错误使我付出了代价。我的看法有两种选择: 不执行任何操作,破坏我的屁股,以确保该产品按时推出且坚固耐用,并等待他将来失败(在初始发行后,我将不再与他合作进行此项目)。 告诉我老板他的表现。我的老板是个有理智的人,但是我只是觉得尴尬。我不喜欢抨击我的同事(因为缺乏更好的称呼),我也不知道他会怎么接受。 就是这样。我试图通过解释为什么他的实现无法正常工作或如何使他的代码更易于维护来与同事合作,以解决这个问题,但他仍然犯同样的错误。我非常想知道其他人如何处理类似的情况,尤其是目前在管理人员。预先感谢您可以提供给我的任何建议。

13
团队中的每个成员都应该使用相同的IDE吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 您认为强制团队的每个成员必须使用相同的IDE是否有意义? 例如,团队中所有已经使用过IDE的工程师。两位新工程师来了,他们想使用IDE Y,因为这是他们几年来一直在使用的东西。 您有“混合IDE”团队的经验吗?如果是这样,那是什么?
23 ide  teamwork 

8
如何在团队中促进使用Builder模式?
我们的代码库是新老程序员,像我自己一样,为了统一起见,他们很快就学会了按照做事的方式来做。考虑到我们必须从某个地方开始,我自己决定重构一个数据持有者类,如下所示: 删除了setter方法,并设置了所有字段final(我final理所当然地认为“ 好”)。事实证明,该二传手仅在构造函数中使用,因此没有副作用。 引入了一个Builder类 Builder类是必需的,因为构造函数(首先是提示重构的原因)跨越大约3行代码。它有很多参数。 幸运的是,我的一个团队的成员正在另一个模块上工作,并且碰巧需要设置者,因为他需要的值在流程的不同点可用。因此,代码如下所示: public void foo(Bar bar){ //do stuff bar.setA(stuff); //do more stuff bar.setB(moreStuff); } 我认为他应该改用构建器,因为摆脱设置器可以使字段保持不变(他们之前听说过关于不变性的内容),并且还因为构建器允许对象创建是事务性的。我草绘了以下伪代码: public void foo(Bar bar){ try{ bar.setA(a); //enter exception-throwing stuff bar.setB(b); }catch(){} } 如果引发该异常,bar将有损坏的数据,而使用构建器可以避免: public Bar foo(){ Builder builder=new Builder(); try{ builder.setA(a); //dangerous stuff; builder.setB(b); //more dangerous stuff builder.setC(c); return builder.build(); }catch(){} …

6
领导一个不太好的团队
如果您被分配了一个由5名不称职的程序员组成的5人小组并被要求领导,您将如何管理?显然,您不能为4个人编码(您可以,但这不是个好主意。至少我为此感到精疲力尽)。您是否遇到过这种情况? 编辑:我认为通过选择一个错误的单词(不称职)来解决我的问题听起来很粗鲁。换一个问题,您如何处理未完成分配任务的人员(无论出于何种原因(从无能到“我不在乎”之类的东西))?

4
“过于面向对象”
我具有强大的OO背景,并且我最近开始在一个组织中工作,尽管该代码是用Java编写的,但与过去相比,我对良好的OO设计的重视程度要低得多。有人告诉我,我引入了“太多的抽象”,而我应该以一直采用的方式编写代码,这是Java中的一种过程样式。 TDD在这里也不太常用,但是我想拥有可测试的代码。在大型“神类”(这似乎是该团队的常态)中以静态私有方法掩埋业务逻辑不是很可测试的。 我很难向同事清楚地传达自己的动力。有谁对我如何说服我的同事使用OO和TDD导致更容易维护的代码有任何建议? 这个问题有关技术债务是关系到我的问题。但是,我试图避免首先产生债务,而不是在另一个问题所涵盖的事实之后偿还债务。

6
在工作量和帮助新员工之间取得平衡
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 我已经在第一份工作中工作了大约2个月,而且我开始注意到工作量和帮助新员工之间存在微妙的平衡。由于管理层在解决错误和解决尽可能多的客户问题方面承受着巨大的压力,因此团队中的每个人似乎都非常专注于他们的积压工作,而不是帮助新员工加快工作速度。新员工可以提出问题,有时我们会邀请开发人员坐下来为我们提供帮助,但通常我们会得到一个晦涩的答案,只有产品的资深人士才能理解,因为他们太忙于他们的任务。 我了解新员工还必须保持平衡。有时候,新手需要花3天的时间来调查和修复老兵本可以在20分钟内完成的工作。新员工需要努力学习产品和代码库。 在不仅仅减少退伍军人的工作量的情况下,如何在帮助新员工和继续以合理的速度处理积压之间取得平衡?

4
如何建立“品质崇拜” [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 DeMarco和Lister(Peopleware)建议您在编程团队中创建“质量崇拜”。令人沮丧的是,他们没有建议您如何去做! 有人对如何实现这一目标有任何想法吗?

6
在一家小公司中进行编程/协作配对
我在一家小型开发公司工作,担任首席开发人员。我们还有另外两个开发人员,还有我的老板,他是一名开发人员,但实际上并没有做太多实际的编码。 我要克服的问题是多方面的。我们之间的趋势是所有人之间都没有太多合作就可以从事我们自己的项目。事实上,我(作为最高级的开发人员)比其他人更愿意寻求他人的意见/帮助,因为我重视外在的想法。 我想加强我们的合作,并向他们表达了这一点。在很大程度上,因为我想向他们展示一些有关如何成为更好的开发人员和遵循更好的做法的事情。但是考虑到我们其他开发人员的个性类型,我认为他们一个人工作更自在。 我一直在阅读关于结对编程的知识,并且我已经(在某些论坛中)读到,当您拥有一个开发人员比其他开发人员更先进时(我是),它不能很好地工作。但是,我觉得我们必须开始合作,以使我们的工作不会如此分散。 我的问题是,是否有人曾经遇到过类似情况,什么对他们有用? 我意识到这不是万能的,但我愿意尝试多种方法。 我们所有人都在一个公共区域工作,开发人员没有单独的办公室/隔间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.