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

sho*_*ren 15 java development-environment

我刚刚开始在一个新的地方工作,我看到他们做的一些事情我觉得非常糟糕,我想知道他们是不是真的错了,或者我太严格了.如果我的批评到位,请告诉我,以及您对哪个问题最严重的看法,应该先修复.开发全部都是Java.

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

  2. 生成的文件与提交的文件一起转到相同的文件夹.不能使用简单的maven清洁,必须逐一找到它们.Maven clean并没有删除所有这些.

  3. 没有修复IDE分析警告.分析代码返回大约5,000个警告,有许多不同类型.

  4. 不遵循惯例:spring bean名称有时以大写开头,有时不是,ant属性有时带下划线,有时带点分隔符等.

  5. 增量构建需要6分钟,即使没有任何改变.

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

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

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

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

  10. 以一种无法兼顾两者优势的方式混合使用Maven和Ant.在一种情况下,甚至依赖性检查也不是由Maven完成的.

  11. 不正确使用泛型.

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

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

Kyl*_*ndo 6

我会这样看:

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

因此,您应该具有以下内容(按照我的意见):

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

然后

  1. 1 - svnignore
  2. 9 - 项目依赖项(这将花费大量时间我确定)
  3. 10 - 混合Maven + Ant
  4. 3 - IDE警告
  5. 4 - 公约

我在这个意义上订购的原因是时间与利益.如果用户需要16分钟来编译和检查他们的代码,说实话它真是太疯狂了.假设开发人员每天编译5次,我们需要大约80分钟,什么都不做.

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

在此之后是"挑剔"的事情.我说这不是为了推断它们并不重要,但事实是从你有更大鱼的东西的外观到油炸,所以在修改代码中的套管之前先完成这些.


Chr*_*ght 6

不是maven用户,我不能评论上面的一些内容,但是列表中的大多数内容看起来都是好的改进方面.我认为我能给出的最好建议是:

  • 慢慢来.他们可能已经这么做了多年,可能会抵制变化.
  • 让团队(可能还有经理)参与变革.举行会议讨论你看到的改进(保持简单,只是少数几个),他们对他们的看法,以及他们认为实施的合理性.然后,如果同意,与某人配对以获得改进.
  • 提供易于更改的工作实践演示.例如,在实时设置中显示调试会话期间动态类加载的差异.
  • 优先考虑上面的列表,并一次关注几个.
  • 要温柔.改变很难!很快就会疏远或脱离民众.
  • 从快速获胜开始,这将对团队中的开发人员产生直接和积极的影响.这将建立他们接受更困难的变化的信心.

祝你好运......