我应该首先改进公司的哪个工作流程?

2022-09-03 14:22:59

我剛剛開始在一個新的地方工作,我看到他們做了幾件我覺得非常可怕的事情,我想知道他們是否真的錯了,或者我只是太嚴格了。请让我知道我的批评是否到位,以及您对哪个问题是最糟糕的,应该首先解决的意见。开发全部使用Java。

  1. 不使用 svnignore。这意味着不能使用svn stat,开发人员忘记添加文件并破坏构建。

  2. 生成的文件将转到与提交文件相同的文件夹。不能用简单的maven清洁,必须一个接一个地找到它们。Maven clean不会删除所有这些。

  3. 未修复 IDE 分析警告。分析代码返回大约 5,000 个警告,涉及许多不同的类型。

  4. 不遵循惯例:春豆名称有时以大写字母开头,有时不以大写字母开头,蚂蚁属性有时以下划线开头,有时以点分隔符开头,等等。

  5. 增量构建需要 6 分钟,即使没有任何更改也是如此。

  6. 开发人员只使用远程调试,不知道如何从IDE内部运行Tomcat服务器。

  7. 开发人员始终在每次编译后重新启动服务器,而不是动态地重新加载类并保存服务器的状态。他们至少需要10分钟才能开始检查代码中的任何更改。

  8. 开发人员只能从命令行编译。当出现编译错误时,他们手动打开文件并转到有问题的行。

  9. 项目依赖项中完全混乱。超过200个开源被依赖,没有人知道确实需要什么以及为什么。他们确实知道并非所有依赖项都是必需的。

  10. 混合Maven和Ant的方式使两者都无法发挥其优势。在一种情况下,甚至依赖关系检查也不是由Maven完成的。

  11. 未正确使用泛型。

  12. 开发人员不使用 Subversion 集成与 IDE(Eclipse、Intellij Idea)。

你觉得怎么样?我应该从哪里开始?我提到的任何事情都不是真正的问题吗?


答案 1

我会这样看:

  • 任何影响生产力的事情都应该首先解决
  • 影响盈利能力的事情排在第二位(大多数生产力修复也是盈利能力修复)
  • 挑剔的东西最后

因此,您应该拥有以下内容(按我的意见排序):

  1. 7 - 编译后重新启动服务器
  2. 5 - 增量构建速度
  3. 6 - 仅远程调试
  4. 8 - 从命令行编译
  5. 12 - 颠覆整合(与上述5.在同一联盟中)
  6. 2 - 生成的文件
  7. 11 - 未正确使用泛型

然后

  1. 1 - svnignore
  2. 9 - 项目依赖关系(我相信这将花费大量时间)
  3. 10 - 混合专家 + 蚂蚁
  4. 3 - IDE 警告
  5. 4 - 约定

从这个意义上说,我之所以有排序,是因为时间与收益。如果用户需要16分钟来编译和检查他们的代码,那么说实话,这是血腥的疯狂。假设开发人员每天编译5次,我们大约需要80分钟,什么都不做。

之后是生产力。如果您加快开发人员完成工作的速度,则已完成工作的营业额将大幅增加。(Profitability++)

在这之后是“挑剔”的东西。我这么说并不是为了推断它们不重要,但事实是,从外观上看,你有更大的鱼要炸,所以在纠正代码中的大小写之前,先完成这些工作。


答案 2

我不是一个熟练的用户,我不能对上面的一些发表评论,但你列表中的大多数东西看起来都是需要改进的好地方。我认为我能给出的最好的建议是:

  • 慢慢来。他们可能多年来一直以这种方式这样做,并可能抵制改变。
  • 让团队(可能还有经理)参与更改。召开一次会议,讨论您看到的改进(保持简单,只是几个),他们对它们的看法,以及他们是否认为实施这些改进是明智的。然后,如果同意,请与某人配对以使改进到位。
  • 提供有关易于更改的工作实践的演示文稿。例如,在调试会话期间,在实时设置中向它们显示动态类加载的差异。
  • 优先考虑上面的列表,并一次专注于几个。
  • 要温柔。改变是很难的!一次做很多事情可能会疏远或脱离人们。
  • 从快速获胜开始,这将对团队中的开发人员产生直接和积极的影响。这将建立他们接受更困难变化的信心。

祝你好运...


推荐