Questions tagged «teamwork»

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

28
我的老板决定在每个错误报告中都添加一个“负责人员”字段。我怎么能说服他这是一个坏主意?
在最新的“ WTF”举措之一中,我的老板决定在我们的错误跟踪模板中添加“ Person To Blame”字段将增加责任感(尽管我们已经可以将错误与功能/故事联系起来)。我认为这会降低士气,增加手指指向性并且不能解释报告为Bug的缺失/误解功能的说法是闻所未闻的。 我还可以使用其他一些反对这种做法的有力论据吗?有什么我可以与团队和老板分享的文章吗?

21
在代码中留下故意的错误以供测试人员查找
我们在公司没有这样做,但是我的一位朋友说他的项目经理要求每个开发人员在产品进行质量检查之前添加故意的错误。它是这样工作的: 在产品进行质量检查之前,开发团队在代码中的随机位置添加了一些故意的错误。他们适当地备份了原始的有效代码,以确保最终产品没有附带这些错误。 测试人员也将被告知这一点。因此,他们将进行艰苦的测试,因为他们知道存在错误,并且未找到它们可能被认为是能力不足的标志。 如果发现错误(故意的或其他),则将报告它们,以供开发团队修复。然后,在产品进入第二级质量保证之前,开发团队会在代码的相关部分中添加另一个故意的错误。项目经理说,测试人员应该像开发人员那样思考,并且他/她应该在进行更改的部分中期待新的错误。 好吧,这是怎么回事。他们说这种方法具有以下优点。 测试人员将始终保持警惕,他们将疯狂地进行测试。这可以帮助他们发现隐藏的(非故意的)错误,以便开发人员可以对其进行修复。 测试人员以错误为食。找不到任何错误会影响他们的士气。因此,给他们一个容易找到的人会帮助他们的士气。 如果您忽略了最终产品附带这些故意错误之一的情况,那么在考虑采用这种方法之前,我们还应考虑哪些其他缺陷? 一些说明: 他们在源代码管理中正确备份了原始代码。 当测试人员发现故意的错误时,开发团队将忽略它。如果测试人员发现了非故意(原始)错误,则开发团队首先检查该错误是否由任何故意的错误引起。也就是说,开发团队首先尝试在原始工作代码上重现该代码,并尝试对其进行修复。 只需忽略质量检查和开发团队之间的关系问题。我是在程序员而不是在工作场所上专门问这个问题的。考虑到质量保证和开发团队之间的融洽关系,他们在下班后聚会。项目经理是一位很好的老绅士,他随时准备支持两个团队(Godsend)。

23
我该如何与不喜欢用代码发表评论的团队成员打交道?
我的团队成员之一一直避免在自己的代码中发表评论。 他的代码不是自记录文档,其他程序员很难理解他的代码。 我已经问过他几次以评论他的代码,但是他只是借口或声称他以后会这样做。他担心的是,添加评论将花费太多时间,并会延迟项目。 我可以向他提出什么论据以说服他正确记录他的代码? 关于这一点,我错在专注于代码注释吗?或者这表明应该解决更大的问题吗?
182 teamwork  team  comments 

13
如果我的团队技能低下,我应该降低代码的技能吗?[关闭]
例如,在JS中有一个通用代码段可以获取默认值: function f(x) { x = x || 'default_value'; } 我的团队的所有成员都不容易理解这种代码片段,因为他们的JS等级很低。 那我不应该使用这个把戏吗?根据任何JS开发人员的说法,它使代码更不易被同级人员读取,但比以下代码更具可读性: function f(x) { if (!x) { x = 'default_value'; } } 当然,如果我使用这个技巧并且同事看到了它,那么他们可以学习一些东西。但是通常情况是,他们认为这是“试图变得聪明”。 那么,如果我的队友的级别低于我,我应该降低代码级别吗?

5
我是否也“聪明”,无法被小开发人员阅读?我的JS中的函数式编程过多?[关闭]
我是一名高级前端开发人员,使用Babel ES6进行编码。我们的应用程序的一部分进行了API调用,根据我们从API调用获得的数据模型,需要填写某些表格。 这些表格存储在一个双向链接的列表中(如果后端说某些数据无效,我们可以通过简单地修改清单。) 无论如何,有很多用于添加页面的函数,我想知道我是否太聪明了。这只是一个基本概述-实际的算法要复杂得多,有大量不同的页面和页面类型,但这将为您提供示例。 我认为,这是新手程序员处理该问题的方式。 export const addPages = (apiData) => { let pagesList = new PagesList(); if(apiData.pages.foo){ pagesList.add('foo', apiData.pages.foo){ } if (apiData.pages.arrayOfBars){ let bars = apiData.pages.arrayOfBars; bars.forEach((bar) => { pagesList.add(bar.name, bar.data); }) } if (apiData.pages.customBazes) { let bazes = apiData.pages.customBazes; bazes.forEach((baz) => { pagesList.add(customBazParser(baz)); }) } return pagesList; } …

16
如何避免出现“您是否危害CODEZ”的情况?
我在工作中遇到一个奇怪的情况,我的一位同事经常要我和其他同事提供工作代码。 我想帮助他,但是对小片段的不断要求打断了我的思想,有时使他难以集中精力。 另外,我的印象是(...)此请求是由于缺乏能力而不是懒惰而产生的。实际上,他经常问自己假装知道答案的事情,因为当我解决问题时,他通常会说“确定”,“是,这就是我的想法”之类的东西,给我的印象是我的答案不值得。 我该如何解决这种尴尬局面? 我应该在其他同事面前更清楚地表明他缺乏知识(通过说“如果可以,请自己做”这样的话)还是继续给他他想要的东西? 我认为他应该将所有问题汇总到一起,以便我可以给他一部分时间,他可以全力以赴地完成自己的工作。 团队中没有等级制度,我必须说我们都有差不多五年的资历。基于同样的原因,我相信我无法向管理层报告,因为琐碎的问题经常被忽略。 我与另外两个成员讨论过,他们也同意我的看法:实际上,他经常问通过同事循环的事情。

11
我的团队应该从哪里开始成为“现代”?[关闭]
我是一个相对较新的开发人员,刚从大学毕业。在上大学时以及随后的求职过程中,我意识到我缺少很多“现代”软件开发方法:单元测试,日志记录,数据库规范化,敏捷开发(相对于通用敏捷概念),编码风格指南,重构,代码审查,没有标准化的文档方法(甚至要求)等。 总体而言,我认为这不是问题。我希望我的第一份工作会包含所有这些想法,并在工作中教给我。然后我在一家大公司获得了第一份工作(全栈Web开发),我意识到我们不做任何事情。实际上,我是团队中经验最少的人,是率先尝试使我的团队掌握“现代”编程技术的人,因为我担心不这样做会导致职业自杀。 首先,我开始使用日志记录软件(log4J),但随后我迅速着手编写自己的样式指南,然后放弃了它,而改用Google样式指南-然后我意识到我们的Java Web开发使用手写的前端控制器,因此我坚持我们对Spring的采用-但后来我意识到我们也没有单元测试,但是我已经在学习Spring ...正如您所看到的,它变得太快了,尤其是与正常的开发工作结合使用时。此外,我很难在这些方法论中变得足够的“专家”来教给其中的任何其他人,而又不花太多的时间去研究其中的一个,更不用说全部了。 在所有这些技术中,我认为在当今的软件开发世界中这些技术都是“预期的”,我如何将它们作为一个新的参与者整合到团队中,而又不让自己和团队感到不知所措? 我如何影响我的团队变得更加敏捷?是相关的,但我不是像这里的问询者那样的敏捷开发人员,并且我正在寻找比敏捷更广泛的方法集。
106 agile  teamwork 

30
西方的程序员如何看待东方的程序员?
问题的另一半:东方的程序员如何看西方的程序员? 世界东部地区(印度/中国/菲律宾)主要向西方世界(美国和欧洲)提供外包服务。 您是否有与离岸团队合作的经验?如果是,情况如何? 您是否对东方的程序员抱有任何一般化的想法或观点(例如,他们是否合作,他们准时交付还是从事高质量的工作?)。这些是基于什么的?
101 teamwork 

13
如何警告其他程序员类的实现
我正在编写“必须以特定方式使用”的类(我想所有类都必须...)。 例如,我创建了一个fooManager类,该类需要调用Initialize(string,string)。而且,为了进一步推动该示例,如果我们不听其ThisHappened行为,则该类将无用。 我的意思是,我正在编写的类需要方法调用。但是,如果您不调用这些方法,它将编译得很好,并且最终将得到一个空的新FooManager。在某些时候,根据类及其作用,它要么不起作用,要么崩溃。实现我的类的程序员显然会在其中查找并意识到“哦,我没有调用Initialize!”,这很好。 但是我不喜欢那样。我理想的情况是,如果不调用该方法,则不编译该代码。我猜这根本不可能。或立即可见清晰的事物。 我发现自己对这里的当前方法感到困扰,具体方法如下: 在类中添加一个私有布尔值,并检查类是否已初始化;如果不是,我将抛出一个异常,说“该类尚未初始化,您确定要调用.Initialize(string,string)吗?”。 我对这种方法还可以,但是它会导致很多代码被编译,最终对于最终用户来说是不必要的。 另外,当有更多方法Initiliaze要调用时,有时甚至会有更多的代码。我试图让我的课程没有太多的公共方法/动作,但这并不能解决问题,只是使其合理。 我在这里寻找的是: 我的方法正确吗? 有更好的吗? 你们做什么/建议? 我是否要解决非问题?同事们告诉我,程序员在尝试使用该类之前应先检查该类。我谨对此表示不同意见,但这是我相信的另一件事。 简而言之,我试图找到一种永远不会忘记在以后重用该类或被其他人重用时实现调用的方法。 澄清说明: 要在此处澄清许多问题: 我绝对不仅在谈论类的初始化部分,而且还涉及整个生命周期。防止同事两次调用一个方法,确保他们在Y之前先调用X,以此类推。任何最终成为强制性的要求和文档中的东西,但我希望在代码中尽可能地简化和缩小。我确实很喜欢Asserts的想法,尽管我很确定我将需要混合其他一些想法,因为Asserts并非总是可能的。 我正在使用C#语言!我怎么没提到呢?我在Xamarin环境中,通常在解决方案中使用大约6到9个项目来构建移动应用程序,包括PCL,iOS,Android和Windows项目。我已经从事开发工作大约一年半(包括学校和工作在内),因此有时我会提出荒谬的陈述\问题。所有这一切可能都无关紧要,但是太多的信息并不总是一件坏事。 由于平台的限制和依赖注入的使用,我不能总是将所有必需的东西都放在构造函数中,因为除了Interfaces之外的其他参数都没有了。也许我的知识不足,这很有可能。在大多数情况下,这不是初始化问题,而是更多 我如何确定他注册了该活动? 我如何确保他不会忘记“在某个时候停止该过程” 在这里,我记得一个广告获取类。只要可见“广告”的视图,该类就会每分钟获取一个新广告。该类在构造时需要一个可以显示广告的视图,该视图显然可以包含在参数中。但是,一旦视图消失,必须调用StopFetching()。否则,该类将继续为甚至不在该视图中的视图获取广告,这很糟糕。 同样,该类具有必须被监听的事件,例如“ AdClicked”。如果不听,一切都会很好,但是如果未注册水龙头,我们将失去对分析的跟踪。不过,该广告仍然可以正常运行,因此用户和开发人员不会发现任何差异,并且分析将仅包含错误的数据。需要避免这种情况,但是我不确定开发人员如何知道他们必须注册到tao事件。虽然这是一个简化的示例,但是这里有一个想法,“确保他使用可用的公共动作”,而且当然在正确的时间!

13
如何处理初级开发人员的“差不多好”的代码?[关闭]
我有一个有关团队管理的问题。现在,我正在与一个初级开发人员打交道,该人员正在编码工厂远程工作。这个家伙很容易受到批评并且乐于学习,但是我有些怀疑我应该投入多少。 现在,当某些事情变得直截了当且显而易见时,就会违反良好做法:例如违反SRP,上帝反对,方法或变量的无意义名称;我指出他必须解决的问题,并尝试解释为什么这是错误的。 我的问题是:何时停止?现在,如果存在一些轻微的违反编码风格的行为,例如变量名使用了错误的语言(以前的团队使用西班牙语和英语混合,并且我试图解决该问题),或者如果我遇到一些结构性的小问题,我可以放手进行修复,如果我有任何空闲时间或碰巧需要修改有问题的课程。我觉得这对团队士气是有好处的,所以我不会不断地向初学者介绍代码,这些细节看起来像是很小的细节,这可能会令人沮丧,但是我也担心过于“软化”会阻止这个家伙从学习如何做一些事情。 我如何在教这个人与不因不断批评而把他烧光之间平衡?对于一个大三学生来说,如果您告诉他重做一些他眼中正在工作的东西,那可能会令人沮丧。

10
如何激励同事编写单元测试?[关闭]
我们正在研究已经生产大约5年的大型产品。该代码库在工作。效果不是很好,但是可以正常工作。新功能投入生产并通过少量质量检查进行了测试。错误已修复,等等。但是除我以外,没有人在编写单元测试。没有人通过编写单元测试来确保所有特殊错误(测试用例)再也不会发生,从而利用“跟踪”错误的能力。 我已经和管理层谈过了。我已经和开发人员谈过了。我已经与整个公司的所有人进行了交谈。每个人都说:“是的,我们必须编写更多的单元测试!” 那是大约一年前。从那时起,我就开始引入预提交代码审查(Gerrit)和持续集成(Jenkins)。 我举行了一些有关单元测试的会议,还展示了编写单元测试的好处。但是似乎没有人对此感兴趣。 问题1:如何激励我的同事编写单元测试? 问题2:如何保持动力以遵循我的个人代码质量标准?(有时真的很令人沮丧!) PS:一些令人沮丧的事实(在1年内达成): 单元测试总数:1693 总“示例单元测试”:大约50 由我完成:1521 编辑:我期望太多了吗?这是我的第一个工作地点,我正在努力做到最好。 编辑2:根据所有答案,我为自己做了一个小清单。我已经与两位开发人员私下交谈过,我们进行了坦诚交谈。 其中一位告诉我,就像Telastyn所说的那样,他对单元测试真的很不满意。他说他想变得“更专业”,但是他需要一个启动。他还说,我们与所有开发人员(9-11岁左右)进行的单元测试会议很好,但是太拥挤了。嗯 一些批评家给我,但我会从中学到东西。(请参阅以下有关tdd kata会议的回答!) 另一位表示他对编写单元测试不感兴趣。他认为自己的工作足以应付他的薪水。他不想付出更多的努力。我非常无语。典型的9-5岁的“工人”。 下周,我将与其他开发人员交谈。 感谢您的出色回答(到目前为止!)和支持。我真的很感激!我学到了很多东西,非常感谢!

19
东方的程序员如何看待西方的程序员?
问题的另一半:西方的程序员如何看待东方的程序员? 我认为看看东方的程序员如何看待西方的程序员同样有趣且重要。 通常认为世界东部(印度/中国/菲律宾)主要为西方世界(美国和欧洲)提供外包服务。 您是否有作为离岸团队一部分工作的经验?如果是,情况如何? 您是否对西方的程序员抱有任何普遍的想法或见解(例如,他们是否合作,按时交付还是从事高质量的工作?)
89 teamwork  culture 

21
如果有人告诉您您的代码一团糟,您将如何反应?
我是一个很好的程序员,或者我以前就这么想过。我一直喜欢编程。我想学习很多有关编程的知识,以使我成为一名更好的程序员。我学习了1年的编程知识,现在我从事程序员工作将近2年。简而言之,我有将近3年的编程经验。 我们的团队由5位程序员组成,其中我们4位是新手,其中1位具有3年以上的经验。我们已经为一个程序工作了将近一年,没有人审查过我的代码,并且给了我一个可以使用的页面。我们从未进行过代码审查,而且我们都是新手,所以我们不知道干净的代码是什么样。我认为程序员可以自己学习? 我们在没有进行全面测试的情况下将程序部署到了程序中。现在已经很严格了,在对代码进行更改之前,我们需要首先获得批准和代码审查。有人第一次审查我的代码,他说这是一团糟。 我感到很难过和受伤。我真的很喜欢编程,让他们说这样的话真的很伤害我。我真的很想提高自己。但似乎我不是电影中的天才程序员。您能给我建议如何做得更好吗?您是否曾经遇到过批评您的代码的事情并且感到非常受伤?你在那些事件上做什么?

16
我该如何应对团队中缓慢而专心的同事?[关闭]
我一直在从事一个新项目。该项目的工作方式如下:最终用户可以使用链接访问Web应用程序,并且可以在其网络上添加多个系统并管理该特定系统的详细信息。我的部分涉及前端和Web服务器,这是通过python完成的。我的python实际上与另一个完全用c&c ++完成的项目通信。c / c ++项目是完成所有功能的主要应用程序。我的python向它发送用户请求,并向它显示响应。 我对我的工作非常熟悉,很快就会完成。由于这没有太多工作。我是一个热爱工作的人。我大部分时间都在办公室里,只有在感到困倦时才回家。 该c / c ++应用程序由另一位具有5年以上工作经验的同事管理,并且可以比我更快地完成工作,但他从未做到。可能是他不喜欢这样做。当我的python与之通信或返回错误值时,他的应用经常崩溃。它充满了错误。由于我的应用程序依赖它,因此我很难构建它。他没有修复错误,而是要求我放慢工作速度。他要我告诉经理我的工作需要很多时间。他要我愚弄经理,甚至强迫我像他一样缓慢地工作。 在项目会议期间,当经理问他有关错误的信息时,他说他已修复所有问题,并且一切正常。由于他是我的同事,所以我什么也没告诉经理。我显然需要与同事建立比与经理更好的关系,因为在大多数情况下,我们将与同事而不是经理保持关系。 我无法告诉经理有关此事的任何信息,因为如果经理问他为什么,那么他可能会认为我向经理抱怨过。他继续躺在会议上。而且由于他修复错误的速度很慢,所以它甚至减慢了我的工作速度。现在我想到了在我的应用程序的前端部分上工作并完成它,以便与此同时他可以使他的项目稳定。现在,他要我告诉经理我的前端部分需要大量工作,而我可能需要越来越多的时间,只是为了使他可以拖下项目。可悲的是,我们的实际经理已经去了美国,所以我们有一个临时经理,这个家伙对这个项目不太了解,所以c,c ++愚弄了他。 谁能建议我该如何处理?我想尽快结束这个项目。即使与他保持良好的关系,我如何使他工作呢? 对评论的回应: 如果他真的有意误导公司,则应向管理层报告。 我是这家公司的新手,而另一个人已经在那里工作了很多年。我才刚开始认识我的同事。如果我直接去投诉他,我不认为这样可以与其他同事建立良好的关系。甚至他也有权误导他们。我并不是说他是坏人,他可以做工作,但他没有做。 贵公司没有任何类型的错误跟踪系统吗? 这里没有实际的错误跟踪系统。该公司试图尽快完成该项目并将其交给质量检查人员。然后修复质量检查报告的错误。 这就是公司应该给员工股票/期权或某种所有权的原因。这样,您就可以直截了当地告诉那个家伙:“您让我付出了金钱的增长……您是否也想赚钱?”。 该公司拥有他们给我2500股的股票期权,大多数情况下,他也会得到更多。 资历确实值得怀疑。您确实需要先与他交谈,然后尝试理解问题。他可能不在乎他的深度,您也许可以帮助他,很容易会有一些您不知道的变量。现在可能很难,但是您可以通过跳枪轻易使情况变得更糟。 我什至做到了,首先他的应用程序一次不处理多个请求,他使用队列来处理我发送给他的请求。我什至向他建议了一些我的想法。他说他已经有了这些想法,并将执行这些想法。他的解释是:“一切都需要一定的时间才能完成,这是一个项目,可能需要两年才能完成,我们被要求在两个月内完成”。由于这个错误,我在最初的几周内很难编码。但是现在他修复了它。但是他正在使用一个队列来处理用户请求,并且由于应用程序一次处理一个请求,因此现在正在减慢该应用程序的速度。 整个过程中,质量检查在做什么?他们为什么不报告/确认项目状态? 经理是决定何时进行质量检查的人。截至目前,尚未进行质量检查。他说我们应该在这个月底前给它。
85 teamwork 

7
当同事在未通知的情况下进行不必要的改进时,如何对我的代码负责?
我的队友之一是我们IT部门所有行业的杰作,我尊重他的见识。 但是,有时他会不加提示地查看我的代码(他是我们团队负责人的第二命令,所以可以预期)。因此有时他会在我完成最终目标并立即进行更改之前查看我的更改,甚至破坏了我的工作一次。 其他时候,他对我的3个月以上的代码进行了不必要的改进。 这让我很烦,原因有几个: 我并非总是有机会改正我的错误 当他感到困惑时,他没有花时间问我要做什么,这可能会影响他的测试或更改 我并不总是认为他的代码可读 截止日期不是问题,他的当前工作量除了查看我的代码更改外,不需要在我的项目中进行任何工作。 无论如何,我过去曾告诉过他,如果他在我的工作中看到一些他想更改的东西,以便我可以拥有我的代码(也许我应该说“缺点”),并且他没有回应,请把我保持在工作状态。 。 当我问他向我解释他的改变时,我担心我可能会变得冒犯别人。 他只是一个沉默寡言的人,坚持不懈,但他的行为仍在继续。我不想阻止他进行代码更改(不是像我能做到的那样),因为我们是一个团队,但是我想尽自己的一份力量来帮助我们的团队。 补充说明: 我们共享1个开发分支。我不会等到所有更改都完成一个任务后再做,因为我可能会失去一些重要的工作-因此,我确保我的更改可以建立并且不会破坏任何内容。 我担心的是,我的队友没有解释其更改背后的原因或目的。我认为他不需要我的祝福,但是如果我们不同意我的做法,我认为最好是在我们都了解发生了什么之后再讨论利弊并做出决定。 我尚未与团队负责人讨论此事,因为除非有必要,否则我宁愿在不让管理层介入的情况下解决个人分歧。由于我的担忧似乎更多是个人问题,而​​不是对我们工作的威胁,因此我选择不打扰团队领导。我正在研究代码审查过程的想法,以帮助促进组织更有组织性的代码审查的好处,而又不至于使我烦恼。

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.