Questions tagged «teamwork»

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

7
初级开发人员应该从他们的高级团队领导那里得到什么?
免责声明:所表达的观点仅是我自己的,并不代表雇主的观点。 我在一家小型公司工作,其中很少有人是开发人员,其他人是质量检查/测试人员,而1人是经理。我1.5年前加入了这家公司。3名资深开发人员拥有8年以上的经验。 这些是我对团队领导所做的观察。(考虑到我是一个新鲜事物,与各个方面相比,他们的经验更少) 他们从不讨论1:1,或者从不考虑初级建议(我同意,由他们决定,是否接受,至少他们应该考虑意见)。 作为高级团队负责人,他们可以尝试使用新技术重构代码库(包括可能推出新技术的因素以及其他开发人员和基础架构也已准备就绪),但是这些团队负责人认为使用新技术的安全性降低了,他们不是最新的。(原因是我告诉他们,他们不知道当前的编程趋势是什么(例如流行的开源项目,如modernizr,bootstrap等)。 在我们的代码库中,重复了10000多行,所以我告诉了他们有关DRY: Don't Repeat yourself。他们的回答是:“这是一篇引人入胜的文章,但在实践中从未奏效”。我只是告诉他们,如果我们不将其设为100%DRY,则至少可以使用接口,但是也没有考虑。*(如果尚未准备好重构,则可以添加新功能的接口,而无需接触以前的代码库) 所有高级开发人员都进行补丁的维护和热修复。其余时间,他们只是在娱乐网站上度过。他们很高兴完成任务。 引进新技术不好吗?*(包括可行性因素在内)。 经理也最不关心我在说什么。 Junior希望他们可以从团队领导中学到很多东西。*(不向他们寻求帮助或高级编码)。 我的问题是: 我是否对提议的更改过于激进? 我对拥有8年以上经验的高级开发主管有什么期望? 我期望从公司学习并获得经验是错误的吗? 更新: 为什么他们觉得DRY是不切实际的:因为他们不想参与OOP概念。他们对重复的任务很满意。 我提出的新技术: CSS,JS,SPrite图片的缩小用法 接口和.net Framework 4,泛型等的用法。 客户端库,例如modernizr,剔除js,用于响应的引导程序,

7
您如何跟踪团队编写的类和职能?
在编写代码时,我遇到了许多与队友一样的挑战,并且编写了一些有用的函数和类,它们也是如此。如果能保持良好的沟通,我会听说有人将一些很棒的东西组合在一起,六个月后,当我需要它时,我可能会记住它并调用该函数,从而节省了时间。如果我不记得它,或者从不知道它,我可能会重新发明轮子。 是否有记录此类事情的特殊实践?您如何使它们容易找到? 如果您的团队没有这样的文档,您如何查找车轮是否已经存在? 编辑: 到目前为止,除了一个答案以外,所有答案都与理想情况有关。因此,让我总结一下这些解决方案:文档和通讯;这些都是很棒的事情,但是它们依赖于程序员有时间(和技能)来编写文档,参加会议,做笔记并记住一切。 到目前为止,最流行的答案(Caleb答案)是程序员无法使用的唯一答案,它没有文档和会议的能力,并且只做一件事:编程。编程是程序员的工作,是的,一个优秀的程序员可以编写文档,进行单元测试等,但是让我们面对现实吧-我们大多数人都喜欢编程而不是文档。他的解决方案是程序员识别可重用的代码并将其拉到其自己的类或存储库等中,并且由于它是孤立的,因此变得可查找并简化了使用它的学习曲线。这是通过编程来完成的。 从某种角度来说,我是这样看的:我刚刚编写了三个函数,我想到其他人应该也了解它们。我可以记录它们,编写它们,在会议上宣布它们,等等。-我可以做,但是这不是我的强项-或....我可以将它们提取到一个类中,命名好,使它们像一个黑盒子,然后将其粘贴到其他类文件所在的位置。然后,一封简短的电子邮件宣布它很容易。其他开发人员可以扫描代码并更好地理解代码,而不是使用他们无法完全理解的代码中使用的隔离功能-删除上下文。 我之所以喜欢它,是因为这意味着拥有一组具有良好名称的类文件以及具有良好名称的方法,是一个很好的解决方案,可以通过良好的编程来实现。它不需要开会,并且可以减轻对详细文档的需求。 在这种情况下,还有其他想法吗……针对孤立的且时间紧迫的开发人员?

3
如何为当今(复杂的)Web环境培训初级程序员?
目前,我们公司主要在Ruby on Rails Web服务器和大量不同的REST客户端中开发应用程序,从Java的信息亭系统到C / C ++的嵌入式设备(标准Web浏览器的接口除外)。我们需要扩展我们的团队,但由于未能找到优秀的高级程序员,我们决定付出一些努力来培训与公司一起成长的初级程序员。 我们已经给了他们一些Ruby和Rails书籍,并要求他们构建一些玩具程序,但是我现在意识到对于Web编程当前状态的学习曲线有多陡峭。 15年前,当我开始编程时,我仅使用Delphi和Source Safe,并且能够从一开始就生产可用的软件。它们都是简单的工具,很容易探究环境的内部运作。慢慢地,我开始使用第三方框架,切换到CVS,SVN,最后是Git,学习了构成当今Web的内容,例如HTTP,JavaScript,CSS,REST等。今天,即使经过多年的经验,我也不知道关于Ruby on Rails的内部工作原理与过去有关Delphi的工作一样重要,对我而言,这很重要,因此我可以将基本的学习模块与所使用的工具连接起来。 在我看来,我正在招聘的程序员将需要很长时间才能与团队整合并产生有用的东西,因为要使用单一框架(Rails)需要学习很多东西:Ruby,HTML,CSS,JavaScript, REST,测试用例,数据库访问(在框架内神奇地构建了SQL!),MVC,三种不同的程序包管理器(适用于Ubuntu,gem和bundler用于Ruby),ssh,git,Apache和Phusion Passenger进行部署等。 因为这是我第一次直接与初级程序员打交道,所以我感到迷茫。如果选择太多,什么是培训初级程序员采用当今Web开发最佳实践的最佳方法?

9
在什么时候对代码进行“建设性”批评会变得毫无用处?
我最近开始是一名初级开发人员。作为团队中经验最少的人之一,我也是一名女性,在男性主导的环境中工作时会遇到各种挑战。我最近遇到了麻烦,因为我觉得自己的工作受到了太多不必要的学问批评。让我给你举一个最近发生的事的例子。 团队负责人太忙了,无法推动我开设的某些分支机构,因此他直到周末才加入他们。我检查了我的邮件,但实际上并没有做任何工作的意思,发现我的两个分支已根据变量名被拒绝,使错误消息更具描述性,并将一些值移至配置文件。 我不认为在此基础上拒绝我的分支是没有用的。周末有很多人在工作,我从未说过我会工作。实际上,有些人可能因为我没有时间进行更改并重新提交而被阻止。我们正在开发一个对时间非常敏感的项目,在我看来,完全基于对客户透明的事物完全拒绝代码是没有帮助的。我可能是错的,但似乎我有时间时应在补丁类型提交中处理这类事情。 现在,我可以看到在某些环境中这是正常的。但是,批评似乎分布不均,这就是导致我遇到下一个问题的原因。这些问题中大多数的基础是由于我处于别人编写的代码库中并且试图做到微创的事实。我在模仿文件中其他地方使用的变量名。当我这样说时,我直言不讳地告诉我:“不要模仿别人,做对的事。” 这也许是我本该被告知的最没有用的东西。如果已经签入的代码是不可接受的,那么我该如何判断对与错呢?如果混淆的基础来自底层代码,我认为不是 在这种情况下,我感到非常单调和沮丧。我对遵循预期的标准有了更好的了解,例如,当我将一段代码重构为以前缺少的ADD错误检查时,我感到沮丧,我只是被告知我没有使错误足够详细(并且在此基础上分支被拒绝)。如果我从未添加过该怎么办?如果它是如此错误,它是如何进入代码的呢?这就是为什么我这么单调的原因:我经常遇到这个现有的有问题的代码,以至于我要么模仿要么重构。当我模仿它时,这是“错误的”,并且如果我重构它,我会因为没有做足够的事情而受到指责(如果我一直走下去,引入错误,等等)。再说一次,如果这是一个问题,我不明白任何代码如何进入代码库, 无论如何,我该如何处理?请记住,我在最上面说的是我是女人,并且我确定这些人在查看其他人的代码时通常不必担心礼节,但是老实说这对我不起作用,这使我的工作效率降低。我担心如果我和经理谈这件事,他会认为我无法处理环境等。

8
轮换开发人员是一个好主意还是坏主意?
我正在一个小型团队中工作,该团队将开始与另一个小型团队一起进行一个新的大型项目。另一个团队目前正在研究他们已经使用了多年的遗留系统。 经理已决定,我们团队中的开发人员将每隔几个月轮换一次,以替换在旧系统上工作的开发人员。这样,其他团队将有机会从事新项目并更好地理解新系统。 我想知道每2-3个月从项目中轮换开发人员的利弊(如果有)。 我知道这与“轮换首席开发人员是个好主意还是坏主意?”类似的问题。,但是这个问题集中在主要开发人员上。这个问题是关于整个团队轮流上线和下线的(新项目的技术负责人可能会也可能不会轮换-我还不知道)。

5
您如何解除牛仔编码器的武装?[关闭]
我发现了一个问题(团队中的牛仔代码),但它与“忍者编码器”的关系更大,而与我遇到的问题有关。 我有一个团队成员,他是“ 牛仔编码器 ”的真实代表。我确实知道不能改变人,但是是一种使他像“牛仔编码器”一样停止行为的方法吗? 他拒绝听取团队的意见,并且他最近停止了代码审查,单元测试,共享实施细节等。 是的,他可以快速“编码”,但是他的代码只是一个错误生成器。我和其他团队成员都处于“错误修复阶段”,其中80%的错误来自他的代码。我不想修复他的错误。管理层是盲目的,或者不想看到这一点,或者他们喜欢他的“速度”。 我(作为他年龄较小的同事,而不是老板)可以采取任何措施吗? 我该如何解除牛仔编码器的武装? 我觉得我是最后一个真正关心这个项目的人。

7
如何使新员工的生活舒适?[关闭]
作为一个软件团队的高级成员,不幸的是,由于遗留原因,该团队的文档很少,要使新员工感到满意,该怎么办? 我一直在计划与人员进行有关特定缺陷/功能要求的调试会议,以使他/她熟悉代码库。但是,代码库确实很大,我只能以这种方式向人们公开其固定数量的代码。 当新员工是应届毕业生或经验丰富的专业人员时,我都在寻找建议。

7
频繁的复杂合并冲突是问题的征兆吗?
在我们的团队中,我们使用Git作为源代码控制。我们有几个几乎独立的代码区域,但是有一些重叠。最近,我们一直在讨论使用源代码管理的工作流程和方法。当我使用功能分支工作流进行升级时,出现的一个抱怨是人们经常遇到复杂的合并冲突,而他们无法正确解决。复杂地说,我的意思是“解决方法不明显”。鉴于此,正在更加积极地使用其他工作流程,例如基于“拉底”的工作流程。 作为功​​能分支方法的倡导者,我并没有真正抱怨过。是的,您必须保持本地要素从master或任何地方分支最新,但这是我所看到的唯一真正的问题。我在想,如果您的合并总是很复杂并且可能会产生辅助影响,那么这更多是团队合作问题,而不是Git问题。 我认为正确吗?复杂的合并冲突是好事还是坏事的征兆?

11
对于威胁要一直离开并且很难与之合作的团队成员该怎么办?[关闭]
我在一个由3名开发人员组成的小型开发小组中工作。我们管理松散,没有团队架构。没有指定的团队负责人,而经理则相当放任。这位高级开发人员已经在公司工作了4年,在那时,他在建立系统和保持系统运行方面发挥了巨大的作用。他不是一个很好的开发人员,但是一位出色的牛仔程序员,并且以我从未有过的方式了解网络。他曾担任“首席开发人员”和“系统架构师”,因为他有资历,并认为他的工作比我们其他人更好。 我的问题是他威胁要一直退出。昨天他告诉我,他将在6周内提高401k归属计划的另一个级别,并计划在此之后离开。当我问他为什么时,他说这是因为我们的经理(一个人)和团队(这个团队就是我)正在“给他除毛”。他认为,根据他的资历,他“当之无愧”被任命为开发经理。他不喜欢我,因为我一直在努力寻找错误/问题跟踪软件,并且因为我擅长工作。 上次他威胁要辞职时,我认真对待他,并开始计划我要离开他的工作。然后他改变了主意,告诉我,我正在做的工作是他的责任。他对我发脾气,而且紧张情绪持续了一阵子。 以下是我处理这种情况的一些不同方式: 按照他的要求去做:这可以减轻紧张感,但是什么也做不了,用户就会不高兴。 掌控一切,让用户满意:但是这会使用户感到高兴,但随后他对我生气并关闭,他不会与我交谈或与我合作完成只有他自己知道的事情。他不会让我自己进入需要进入的系统。 与高层管理人员更紧密地合作:他不尊重高层管理人员,他们不希望他离开公司,所以他们抚养他。 我还没有前进的一个选择就是离开公司:我还没来一年,也不喜欢离开的想法。总体而言,该职位符合我的大多数要求。 有想法吗?有什么建议吗?对话?我没有考虑过的选择? 2012年5月11日更新: 我终于决定离开。这是一个很好的决定。从最初的职位到现在,他变得更好了,但我认为它仍然不是一个好的开发人员,更不用说好的管理材料了。我尊重他的知识,但很高兴我不再需要与他合作。

12
在持续集成对我们有效之前有多少开发人员?
与持续集成相关的开销包括设置,重新培训,意识活动,停止修复最终导致数据问题的“错误”,强制分离关注点编程样式等。 持续集成在什么时候可以收回成本? 编辑:这些是我的发现 设置是带有Nant的CruiseControl.Net,从VSS或TFS读取。 以下是失败的一些原因,这些原因与设置无关: 调查成本:调查红灯是否是由于代码,数据质量或诸如基础结构问题(例如,网络问题,从源代码管理,第三方服务器读取的超时)之类的其他来源上的真正逻辑不一致所花费的时间掉了,等等,等等) 基础设施方面的政治成本:我考虑过在测试运行中对每种方法执行“基础设施”检查。除了更换构建服务器之外,我没有解决超时的方法。繁文tape节阻碍了系统,没有更换服务器。 修复单元测试的成本:数据质量问题引起的红灯可能表明单元测试写得不好。因此,重写了与数据相关的单元测试,以减少由于不良数据而导致出现红灯的可能性。在许多情况下,必要的数据被插入到测试环境中,以便能够准确地运行其单元测试。可以说,通过使数据更加健壮,然后依赖于该数据的测试就变得更加健壮。当然,这很好! 覆盖成本,即为现有代码编写单元测试:存在单元测试覆盖率的问题。有成千上万种没有单元测试的方法。因此,将需要大量的工作日来创建这些工作日。由于这很难提供业务案例,因此决定将单元测试用于以后的任何新公共方法。那些没有进行单元测试的人被称为“潜在的红外线”。此处的一个令人感兴趣的观点是,静态方法是如何唯一确定特定静态方法如何失败的争议点。 定制发布的成本:仅Nant脚本到目前为止。例如,它们对于EPiServer,CMS或任何面向UI的数据库部署的CMS依赖版本不是很有用。 这些是每小时进行一次测试运行和过夜进行QA生成时在生成服务器上发生的问题的类型。我认为这些是不必要的,因为构建大师可以在发布时手动执行这些任务,尤其是一个人的团队和一个小的构建。因此,以我的经验,单步构建并不能证明使用CI是合理的。那么更复杂的多步骤构建又如何呢?这些可能很难构建,尤其是在没有Nant脚本的情况下。因此,即使创建了一个,也不再成功。解决红灯问题的成本超过了收益。最终,开发人员失去了兴趣并质疑红灯的有效性。 经过一番尝试,我相信CI的成本很高,并且有很多工作要做,而不仅仅是完成工作。雇用经验丰富的开发人员,而不是搞乱大型项目,比引入和维护警报系统更具成本效益。 即使这些开发人员离开也是如此。优秀的开发人员是否离开并不重要,因为他遵循的流程将确保他编写需求规范,设计规范,遵守编码准则并注释其代码以使其可读。所有这一切都进行了审查。如果这没有发生,那么他的团队负责人就没有做好他的工作,这应该由他的经理接任,依此类推。 要使CI正常工作,仅编写单元测试,尝试保持完整的覆盖范围并确保可运行的系统的基础架构还不够。 最重要的是:人们可能会质疑,从业务角度来看,是否甚至需要在发布之前修复尽可能多的错误。CI涉及许多工作,以捕获少量错误,客户可以在UAT中识别出这些错误,或者无论如何在保修期到期时,作为客户服务协议的一部分,公司都可以获得酬劳。

9
等待审核时该怎么办?
在提出问题之前,我必须说明情况。 我在一家公司工作,担任初级软件工程师。当我完成了自己的发展并想要投入时,其中一位年长者总是阻止我。 他总是希望我等待他对其进行审查。可以,因为通常他会发现一些错误并进行一些优化。 但是,我必须在截止日期之前提交我的代码。完成后,我打电话给他,说结束了。他通常迟到。所以我的代码也迟到了。 我的问题是,我该怎么办?我应该等他复习吗? 编辑:除了问题。我很好奇另一个问题。 编码时我想自由。我如何获得对发展自由的信任? 一些解释: 我已经和他谈过了。但这没有帮助。我们已经使用了问题跟踪器,但是没有任何审查任务。只有开发和测试任务。

14
何时面对一个好的项目负责人或老板
我们的项目负责人是一位天才的软件架构师,总体上是一个温柔体贴的人,天生怪胎,声音细腻。但是,有时,我们(我和我的队友)对我们的领导者有不同的看法,尤其是在软件体系结构问题,系统设计问题,UI问题等方面。 我们应何时,如何(如有)表达意见分歧?
31 teamwork 

11
哪些因素应该影响我如何确定何时与朋友一起放弃一个小项目?[关闭]
最近我发现自己处在困境中。现在已经与一个编程伙伴一起玩了将近8个月的游戏。我们都是从去年8月左右开始学习编程的新手,他是CS的二年级学生,我是一名IT贸易技术支持人员,并且是一位自学成才的程序员,拥有大量的书籍和在线订阅。 我一直看到的问题是,当我们写出一段代码时,它常常会被黑在一起,会有很多失败,如果这对我们中的一个人来说是一个全新的概念,那就是天真的解决方案。很好,我们正在学习,我希望我们的两个代码在第一遍或第二遍都被一起破解。当涉及到实际修复和重构那些被黑在一起的行为时,就会出现问题。 我的伴侣将坚持自己刚凑齐的行为,公然拒绝看到任何错误,因为它开始起作用。即使从结构上声称接近完美,即使它具有注释以及适当命名的方法和字段,我什至都无法尝试使用。无论我多么努力,我都无法让他看到明显的明显缺陷,这些缺陷将阻止行为的任何进一步更改或扩展,而又不会完全破坏行为,而与行为如此紧密耦合的所有事物也可能属于同一类。被黑客入侵的解决方案将永远保持被黑客入侵,深思熟虑的设计会像最初构思和测试时那样保持原样。 我花了很多时间来照顾新代码,就像我自己编写代码一样,我不知道该怎么做。我的伴侣今晚输了它,并明确表示,无论是什么,基准,常规做法,无可辩驳的证明,他的代码都将保持其最初的用法。即使已经写了整本关于您为什么要避免做某事的书,他也会拒绝承认其有效性,声称这只是别人的意见。 我对我们的项目有既得利益,但是我不确定是否可以继续与我的合作伙伴一起工作。我似乎有三个选择。 不再关心编译后的代码库功能,而只是尝试维护和解析几乎没有发展的行为。希望一旦事情开始严重破裂,他将看到并尝试做更多的事情,而不是仅仅对根本存在缺陷的设计施加创可贴。 继续对十年前其他能力更强的人提出的问题进行无休止的争论。 停止对该项目进行编程,放弃我的代码将近10,000行,并花费大量的时间进行设计工作,然后尝试自己寻找一个新项目。 我可以采取哪种方法来确定是否值得与这个人继续进行此项目?还是哪些因素会影响我的决定?我们已经编写了很多代码,除非有必要,否则我不想放弃。

12
如果大三学生没有采纳您的建议,该怎么办?[关闭]
我正在领导一个由3-4个初级开发人员组成的团队。除编写代码外,我的工作是为大三学生提供监督和指导。 但是,我完全理解有多少开发人员会珍惜他们的工作自主权,并且我不想通过用我的思想和算法来喂他们来破坏他们的内在动力。我希望他们以自己的方式探索问题,自己思考,只有在他们真正面临无法解决的问题时才来找我。 当他们来找我时,有时我不得不提出一种完全不同的算法来解决该问题,因为他们的算法不够健壮(请记住,我是大四学生,而且看到的不止于此)。当然,我会以一种很好的方式来解释这一点,以免伤害他们的感受,并且我会轻轻地概述一下我的解决方案比他们的解决方案优越得多,没有屈尊的语气或谴责的词语。 但是,尽管如此,他们有时还是不愿意接受我的建议,部分是因为他们在自己的算法上投入了很多,或者部分是因为担心使用新方法会花费更多的学习时间,并使他们看起来像是在管理层无处可去。但是我内心深处非常清楚,我的算法比他们的算法好得多,他们应该采用它。 如果他们不采纳我的建议该怎么办?我应该只是要求他们按照我的方式走,还是应该让他们的头撞在墙上很多次,等他们回来?前者会使我成为独裁者,而后者则会花费我们宝贵的开发时间,并导致错误修复成本。我真的在两难中。

6
如何解释单元测试的价值
我想向我的同事介绍单元测试(和一般测试)的概念;现在根本没有测试,通过UI实际执行任务以查看期望的结果来测试事物。就像您想象的那样,代码与确切的实现紧密耦合-甚至导致代码应该放在一个类中并在整个系统中重复使用,并且跨方法进行复制和粘贴。 由于需求的变化,我被要求修改我先前编写的模块,该模块相当松散地耦合在一起(虽然不尽如人意,但在无需引入许多其他概念的情况下,我可以做到最好)。我决定在修订后的代码中包含一套单元测试,以“证明”它可以按预期工作,并演示测试的工作方式。我没有遵循真正的TDD,因为已经编写了一些代码,但是我希望遵循一些TDD概念来创建新代码。 现在,我不可避免地会被问到,为什么要花我一两天以上的时间来编写代码,因为我要与之交互的部分已经存在于系统中(尽管没有任何测试并且非常紧密耦合),当我检查其中的代码时,系统将询问我这个“测试”项目是什么。我可以解释测试的基础知识,但是我无法以其他人会理解的方式解释实际好处(因为他们认为测试需要您自己运行应用程序,因为通常实际的UI在确定功能是否“有效”时很重要“ 或不)。他们不理解松散耦合的思想(显然没有松散耦合的事实;在我编写的代码之外甚至没有任何接口),因此尝试将其用作收益可能会给我带来“恩?” 外观,再也不必放松一些现有模块,并可能引入某种IoC容器,这就像浪费时间,而不是“编程”。 有人对我如何指向此代码有任何建议,并说“我们应该开始创建单元测试”而不会屈服于任何一个居高临下的条件(例如,“编写测试会迫使您编写良好的代码。”这可能意味着代码除非是我的坏人),还是没有浪费时间却没有增加任何实际价值?

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.