Code Complete 是 Microsoft 合集中的一本书。它包含提倡同行评审和将单元测试作为一个概念进行梳理的建议。它并没有对单元测试进行太多详细介绍,但它可能会使他对这个想法产生兴趣,并且您可以从那里进一步探索该主题。
最终,您需要一个直接参与自动化测试的程序员......我的意思是,这就是定义。
Unit tests are most effectively written by the people who are most familiar with the subsystems they are written for, when someone else is chosen to write unit tests it takes them time to ramp up, and they may miss intention not documented or clear in the code这可能导致更差的覆盖范围。另一方面,子系统的所有者也可能对某些缺陷视而不见(但这就是同行代码审查的目的!)
其余的实际上只是关于道德的闲谈,但重要的是要考虑。
当管理层做出愚蠢的决定时,有些人喜欢尝试“潜入”构建。这让我不仅不安,而且对那些程序员有点警惕。我理解动机,我想我们都去过那里,但最终你应该教育而不是参与诡计。
管理层在日程安排中发挥着重要作用,他们依靠您进行准确的估算和对正在完成的工作的总体了解。如果你垫你的估计,扫除地毯下的额外工作,这真的是一件好事吗?一个简单的谎言变成了这个精心设计的骗局,你在直接参与帮助你的职业发展的人身上。
合法工作的流程和评估问题现在已成为一个棘手的道德问题。
我强烈建议您按照计划的方法来说服您的经理通过理性、逻辑来理解您的观点,并吸引他对 Microsoft 的热爱。;)
从长远来看,如果您发现自己在有关编程过程的决策上经常与管理层抗争(这确实不是他们的工作来做出决策),那么最好完善简历并找到一份更好的工作。
程序员工作的一部分是教育那些缺乏专业知识的人。向你的经理解释这可能有助于打破他在这个问题上的一些智力障碍,并软化他接受你对此事的建议。