Questions tagged «teamwork»

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

7
程序员处理代码审查的最佳方法是什么?
我对代码审查非常陌生,但是在博士学位期间我已经编码多年了-这并不总是使您成为一名优秀的程序员! 如果审阅者更改了您的代码并逐行处理代码,如果您不同意该怎么办?有时,您做出了选择X,而审阅者将其更改为Y,您的脑海中就想到了Y,但由于不利因素而决定不这样做,但是审阅者断言那些不利因素并不重要。您应该说出您的分歧,还是只是不听对方的意见? 如果您不善于接受批评,并且审稿人是组织中的高级人员,那么这将很困难。防守太大可能是不好的。

8
什么是常见的代码审查过程,什么被认为是不好的?
我的公司最近开始进行正式的代码审查。流程是这样的:您提交到github中,请求拉取请求,代码将由大约三个人审阅,然后,如果全部通过,则代码会进入。 这个过程看起来很公平,但是进行代码审查的三个人似乎并不公平。我注意到,当我将代码放入代码中进行审查时,我得到的注释介于100-200之间。对我来说,最高的一次是300条评论。当然,您会认为这是很大的更改,但是对于少于50行的代码(包括单元测试),这也可能是非常小的更改。所有评论都被认为是“必须做的”,并且没有争议。 考虑到这一点,我的主要问题是,这似乎有点过头了。我与该小组进行了交谈,他们基本上告诉我,仅仅因为我在php中拥有多年的开发经验并不意味着我是“开发人员”。当然,这似乎比没有伤害更大。我还注意到,在小组中,他们似乎没有产生太多评论,大多数时候,他们忽略或以其他方式忽略了其他评论或建议,即使有什么问题也很少接受它为有效。 所以我的问题是,这是否公平?还是普通的?

3
仅使用代码注释的代码审查是一个好主意吗?
前提条件 团队使用DVCS IDE支持注释解析(例如TODO等) 诸如CodeCollaborator之类的工具预算昂贵 诸如gerrit之类​​的工具过于复杂,无法安装或无法使用 工作流程 作者在中央回购功能分支上的某个位置发布 审阅者获取它并开始审阅 如果有任何问题/评论,请创建带有特殊标签的评论,例如“ REV”。此类标签不得在生产代码中-仅在审核阶段: $somevar = 123; // REV Why do echo this here? echo $somevar; 当审阅者完成评论后,它只会发送愚蠢的消息“ comments”并向后推送 作者将功能分支拉回并以类似方式回答评论或改进代码并将其推回 当“ REV”评论消失时,我们可以认为,该评论已成功完成。 作者以交互方式为功能分支重新设置基础,挤压功能分支以删除那些“注释”提交,现在可以合并功能以开发或进行任何成功的内部检查后通常可以采取的操作 IDE支持 我知道,自定义注释标签可以在Eclipse和Netbeans中使用。当然,它也应该属于blablaStorm家族。 问题 您认为这种方法可行吗? 你知道类似的东西吗? 有什么可以改进的吗?

10
如何向管理人员证明我的生产力?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 7年前关闭。 我的大学有一个真正的客户用于软件开发的模块。我的一些团队成员一直在计算机实验室工作,这是一个非常嘈杂的环境,有很多干扰和干扰。大约有30个人经常聊天。人们除了进行“工作”外,还经常在Facebook,YouTube上或互相开玩笑。我的一些团队成员每天在这种环境下工作3个小时。 我参加每周的团队会议,并广泛使用我们的在线项目管理系统。我处理所有电子邮件,并有一个忙碌的聊天客户端,但是我确实收到消息。解决问题时,我经常使用在线资源。但是,在团队会议和结对编程会议之外,我的大部分工作都是在一个安静的环境中进行的,我可以集中精力和精力,并且排除所有外部和内部干扰。我100%专注于我的任务。我发现这种方式的生产率比实验室要高出10倍,而且我可以完成很多工作。 问题是我们的导师或“管理人员”看不到我在实验室里干活。因此,我似乎没有为他们工作。因此他们认为我没有团队合作精神。我如何说服他们从事团队合作,因为我与团队进行了很多交流,但同时我也喜欢独自工作?我想证明一下,仅仅因为我独自工作很多,不一定要在实验室里完成所有工作,我仍然是团队中富有成效的成员。 UPDATE Management告诉我,问题在于我花了60%的时间在团队中工作,而我独自花了40%的时间。他们告诉我,我应该将99%的时间都花在与实验室团队(也就是办公室)面对面的工作上。 一些答案的一些相关评论,有些可能会遗漏: “问题是我真的不需要问团队任何问题,因为我宁愿自己在Google上搜索。出于某种原因,我对Google的信任程度要高于我的主管或团队成员。因此,我经常不同意他们。我不是做团队合作,因为本质上我是在做“网络”工作。” “我比主管或队友的专业知识更信任在网上(即SE)找到的信息。” 更新2 我不再在家里做任何认真的工作,我现在就呆在实验室里,与我的团队玩得开心,同时也偶尔做一些工作。正如公认的答案所示,这不是关于我要有生产力,而是要实现我的经理和队友的期望。如果我和我的经理对如何进行软件开发抱有不同的信念,那么重要的是经理,因为他们有能力使我失败/解雇。我认为面对面的会议不如在线对话有效,在嘈杂的实验室中工作并不像在相当环境中工作那样高效。我认为在我正在执行任务时,队友不应该在任何时候打扰我。我认为一个人至少需要50%的时间独自完成生产工作,并需要50%的时间与团队进行同步。无论如何,


6
如何推广和鼓励高质量代码?
我在一个由4人组成的小型外包公司中担任iOS开发人员。在我和另外两名开发人员加入该公司之前,我们正在进行的项目开始了几年。在此之前,该项目主要由一个人完成。 当我开始从事该项目时,那真是一团糟。有很多代码重复。我看到相同的500个代码处理了20个不同的文件,但有微小的变化。此外,它的组织方式也不是很好:所有UI创建代码都与逻辑一起混合在视图控制器中。 我尽力在这里和那里进行重构,消除多余的代码,改善项目的文件结构,等等。感觉就像以前的开发人员并不真正在乎所有这些事情,或者没有经验。曾经有一段时间,我一个人从事大型功能几个月。由于此功能的性质,我不得不在整个应用程序中触摸很多代码,因此我确实尝试进行一些改进。 当其他开发人员加入该项目时,我注意到他们使用不同的编码样式(有时是完全不同的样式),并且通常不使用诸如属性访问器之类的现代语言功能(这在Objective-C中相对较新)。有时他们会发明自己的自行车,而不是使用框架的类似功能,或者将他们学到的其他编程语言或模式的概念转移到我们的代码库中。通常,由于英语不正确(Objective-C是您使用长名称的语言),它们有时无法正确命名方法或变量。 有时候,我认为如果不是针对IDE,我认为他们会编写所有代码而没有缩进或格式化。 基本上,我讨厌他们编写的代码。它的格式/组织不好,有时与项目的其余部分完全不同。当他们将意大利面加到我的艺术品中时,我会感到非常沮丧,这会影响我的工作心情和工作效率。 感觉越来越像他们不被学习或不在乎的困扰:他们只是按照他们的要求去回家。有机会时,我尝试给他们一些提示(例如,评论他们的PR或在GitHub上提交)。我曾经很好地要求遵循大多数现有代码的编码风格和格式(很遗憾,我们没有正式的编码风格文档)。但这没用... 我如何解决这种情况而不仅仅是关注“糟糕的公司文化”,“没有经验的毕业生”等,而是开始改善这种情况。

1
团队工作(在OO项目中)如何工作?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我自己用非常面向对象的风格用Java编程。从来没有机会与其他程序员合作(至少我还不是专业人士)。 出于好奇,我想问:与团队一起进行项目工作如何工作,尤其是在进行OO项目时? 拆分任务如何工作?您如何开发可以与其他程序员开发的产品一起成功使用的产品? 程序员如何以及何时进行交流? 谢谢

10
谁应该培训新程序员?初级还是高级程序员?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为话题成为软件工程堆栈交换。 4年前关闭。 在我的团队中,我们经常需要最高级的程序员来培训/指导全新的初级程序员。但是,这些高级程序员是从事大量真正重要工作的人。 我试图与我的经理争辩说,让才华横溢的初级程序员将新的程序员置于自己的领导之下是很有意义的。首先,它将使高级开发人员有更多的时间从事更重要的计划(并不是说指导并不重要)。接下来,它将使初级程序员对其工作感到有些自豪,因为他们会被要求承担这种责任,并且他们可能会在教学中学到一些东西。最终,这将为公司节省资金,因为高级开发人员的成本比初级开发人员高得多。 我的老板一直未能被说服,因为显然这是自从一开始就对这支球队工作的方式。假设已经决定必须进行某种形式的培训/指导,那么谁能为我提供更好的论据或告诉我为什么我做错了?您的团队做什么? **我们都可以同意,资历不一定表示能力,所以假设“高级程序员”是指“顶级程序员”。

12
团队中的代码牛仔
您如何处理比您高年级且经常跳入他人项目并在晚上或周末完成的团队成员?无论是否有紧急情况,她似乎每周工作80个小时,因此很难预测她下一步将要去的待办事项清单。有时,您的工作时间浪费了,因为在星期一早上,您会发现一个签到完成了您在前一周大部分时间里一直在进行的项目。 对于要求质量的人们:通常它是相当不错的,但是:还涉及很多代码重构,包括其他团队成员“拥有”的代码,而不考虑测试范围,并且结果明显。

11
帮助初级程序员克服缺点?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 您对加入您的团队的初级开发人员有哪些共同的见解,或者您必须与谁一起工作?显然,他们是没有经验的,所以您不能期望他们了解所有知识,但是通常会莫名其妙地缺少哪些技能-尤其是我们如何帮助他们建立这些缺失的技能? 我的意思不是像“听建议”这样的人际交往能力,而是(如适用)技术性问题: “您从未做过SQL吗?” “您从未写过单元测试吗?” “您不知道如何使用Unix命令行?” 您确实期待的事情-我想听听您的观察和技巧,这些知识和技巧可以教给新的程序员克服这些特定的缺点。

8
一个团队中的前辈太多?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 一个团队中过多的高级程序员会变成一件坏事吗? 就像说的那样,一个6-7人的团队中有4-5个高级程序员。在这种情况下的最佳数量/比率是多少? 这会导致过多的哲学和观念争论吗? 有没有人能与我分享这样的经历?
15 team  teamwork 

10
分布式办公室,可行吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我一直在思考如何建立自己的梦想公司,以及如何使它对优秀的程序员具有高度吸引力。如果可以雇用一些“超级巨星”程序员,而不是许多“优秀”程序员。 我个人会喜欢的一件事是自由工作,无论何时我想。因此,如果我愿意的话,我可以在不同的城市旅行并远程工作,或者在紧缩模式下我可以坐在家里。但是,以我的经验,您确实希望与同事建立某种办公室,在这里可以讨论事情并拥有公司的“文化”。 所以说您想雇用一群可能来自不同国家和城市的顶尖人才程序员。如何设置它以与校园竞争?拥有一家完全没有办公室的公司似乎有些欠佳,您可能想要一些人们可以见面并选择工作的办公空间。 我想人们可以做的是在不同国家/地区设有小型办公室,让人们在他们选择的办公室中工作。程序员可以在需要时以“紧急模式”起飞,但也可以在需要团队合作和面对面的情况下在本地工作。 另一种模式是在其他程序员工作的办公室中而不是让您自己租用办公室。这样一来,即使您所在的城市只有一两个员工,如果您觉得远程工作“孤单”,您仍然可以找到一些公司。 另一个想法是,就像每隔一个月有一个星期一样,您将整个团队带到同一地点。可能不是办公室,而可能只是一些有趣的城市或吸引力胜地,然后从那里一起工作。但是有配偶的人可能会遇到类似的问题。 您可能还会在不同城市(可容纳2-3人)拥有公司公寓网络,在您拥有办公室的地方以及在其他一些地方,以便程序员或团队或程序员可以随意漫游并“聚在一起”。 如果这是合法的(我不确定每个国家之间有什么不同),您甚至可以一口气扑灭两只苍蝇,并在不同城市合并办公室/公寓。“黑客垫:伦敦”“黑客垫:柏林”等 a)我想我的问题是,这样的设置可行吗?一个人如何改善这个概念? b)您会发现一家公司给您这种自由的魅力吗?还是您希望拥有一家每天都有大公司的公司? 因此,从根本上说,是什么让“超级明星”程序员选择了使用像这样的公司机构,而不是在Google,Facebook或Microsoft校园工作,在那里您会得到很多有才华的人的乐趣和公司。

2
在哪里推动失败的测试?
我只是更改了GitHub存储库上的分支设置,所以我的[下一个]分支需要通过pull请求传递一个CI构建。 随后与许多团队成员进行了关于测试失败的讨论。 为了上下文... 该仓库有一个[大师]分支,只有PR'd成时,有一个释放,使[大师]包含代码为的最后一个版本,无论它是否是一个重大的,未成年人,修补程序,β,α-/预发行版本。 [next]分支是“默认”分支,我们打算保留“发布就绪”代码;从技术上讲,可以随时将该分支公诸于[master]并发布。 每个fork都有自己的dev分支,并为[next]贡献者PR。 当我审阅不重要的PR时,我会将贡献者的dev分支合并到我的“ review”分支中,如果我发现可以快速修复的问题,则将提交/推送更改以及新的(有时会失败)测试和PR返回贡献者的dev分支;当他们合并我的更改时,使新的失败测试通过,然后推送,它们的PR进行同步,然后将PR合并到[next]中。 但是这个问题不是关于通过测试,而是关于失败的测试。 测试失败记录了需要解决的问题。 已知的bug应该编写测试,以便我们知道什么不起作用。 从技术上讲,GitHub 问题列表(针对错误和/或关键 标签进行了过滤)也可以做到这一点。它是一个很好的做法,也有一堆失败的测试文档的bug? 在[next]上失败的构建意味着我们还没有准备好发布……但是,“准备发布”有点像“准备好”要孩子了-您从没有为此做好充分的准备,并且某些地方(重要性不一)将不可避免地出问题。 因此,我们只是将通过测试推向[next]。那么,将失败的测试推向何处呢?我的意思是,在PR /审查流程之外? 例如,一个用户在问题列表中报告了一个新错误,我想为其编写一个失败的测试套件-以便指定需要执行的操作以及在何处进行操作,这使新贡献者更容易上手最终PR修复。 我应该在哪里推动这些失败的测试?还是将失败的测试推送到任何地方甚至是个好主意?

5
代码审查落后于交付/测试周期
在我们的敏捷过程中,我们有2周的冲刺。每天(每天一次)交付任务,测试团队会在第二天甚至同一天立即完成测试。 我们也有开发人员代码审查,需要一些时间(1-2小时),因此每周安排3次:星期一至星期三至星期五。开发人员聚在一起,建议如何改进/重构代码。 我们的问题是,在代码审查后提出“行动项目”时,大多数任务已经过测试。测试人员不想重新测试已经通过测试的内容。他们不在乎内部开发人员的变更。 我们误解了敏捷过程吗?代码审查是否与每日发布/测试周期不兼容?我们无法每天进行代码审查,因为它们占用了每个人的时间。

2
将编程业务逻辑与非IT人员配对
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 您在编码过程中是否有非IT人员与程序员合作的经验? 这就像结对编程一样,但是一个人是一个非IT人员,对业务有很多了解,也许是一个具有数学背景的流程工程师,他知道事物是如何计算的并且可以理解非惯用的程序代码。 我发现非IT工程师很容易理解某些过程性领域特定语言,例如PL / SQL。这些人最终成为代码的共同作者,并保证公式,因子等的正确性。 我发现这种成对编程非常有效率,这种工程类型的用户认为他们也是代码的“所有者”和“作者”,并有助于最大程度地减少沟通过程中的误解。他们甚至帮助设计测试用例。 这种做法常见吗? 它有名字吗? 您有类似的经历吗?

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.