在查看您在数条评论中的回答时,我不知道您是否意识到自己遇到的事情很普遍,尤其是在需要领域专家(让他们称为科学家)的专业领域工作时,结合并定制解决手头问题的算法。
与其抱怨抱怨科学家并期望他们改变,不如说您不应该期望科学家对“代码质量”太在乎。通常很难让其他软件开发人员关心“代码质量”,更不用说主要关注领域而不是编程的人了。
您从何处去很大程度上取决于“科学家”对您理解他们的工作的能力的信任程度。如果他们有信心您可以理解他们的代码,并且在修改内容时不会把代码搞糊涂,那么通常就没有问题了。他们将依靠您的专业知识。
但是,如果科学家不希望您更改他们的代码,那么很可能您还没有“赢得”他们的信任。如果是这样,那么您应该专注于“修复”自己,而不是专注于修复科学家。我的意思是要采取步骤获得他们的信任。可能最简单的方法如下:
作为测试过程的一部分:
- 开始将算法转变为更容易理解的内容(例如图表,PDL,数学符号)
- 学习了解算法。
- 确保确定边缘情况。
- 询问科学家您简化的“替代”表示是否正确
- 最重要的是找出您发现的问题;并且没有听起来“有指责”,而是说“我正在查看算法,发现XYZ应该执行此操作还是应该执行该操作?”。没有什么比这枚子弹更能赢得他们的信任了。
一旦您开始发现错误并且对他们感兴趣的领域表现出了兴趣,那么可能性至少会变得更高,至少它们会让您开始修改代码以使其更“专业”。通常,他们甚至不再觉得需要编写原型了。他们只是用您已经教过的“替代”表示法之一写东西(他们甚至没有意识到),他们会相信您会明白它们的意思。
无论如何,我的第一个尝试是就科学家如何最好地帮助更好地“交流”以提供帮助的建议。但是听起来您已经尝试过了。因此,您掌控的唯一步骤就是您要做的事情。赢得他们的信任,领域专家几乎总会放心地将代码传递给其他人,而不必担心编写代码的所有小细节。他们宁愿专注于改进算法。
有时候,您所能做的就是提供建议,然后再提出。如果您不断对他们已经拒绝的事情或决定他们不想做的事情进行举报,即使您100%正确,您也不会给您的老板或前辈留下深刻的印象。实际上,无论您是推荐人还是被推荐人,这都会破坏关系。只需专注于可以使您的工作更轻松的方法即可。