您可能会想要获得一个开发服务器,并且最好是一个暂存环境。除了自己的个人网站,任何人都不应从本地推动生产。您的部署过程应仅支持dev-> staging-> prod。您可能希望有人负责签署新版本-根据组织的不同,这可以是项目负责人,专门的质量检查人员或每周轮换的职责(有形的提醒,例如,只有那个星期拥有蓬松玩具的人才能推)。但是,请先与您的团队讨论以取得支持(请参阅下文)。
我希望以某种方式惩罚这种行为,或使其尽可能不愉快。
您可以让您的测试套件(您有其中一个,对吗?)包括一张支票,该支票确定您是否在生产服务器上,如果有,则向办公室中的每个人发送一封电子邮件,说Looks like $username is testing on prod, watch out
。也许公开羞辱您的同事将是不愉快的。或者,您可以创建技术限制,例如禁止IP团队查看产品(您可以取消,但必须证明理由)。
但是,我不建议这样做,您看起来像是问题,而不是对产品进行测试的人,并且您可能会让自己变得不受团队中那些不在乎的人的欢迎。
当然,您真正想要的不是要对这种行为进行惩罚,而是要制止这种行为?
我强迫他们/我们使用[...]
您一直在倡导改进工作流程,这很好,但是听起来您要么不怎么想您的同事和/或您没有他们的全力支持。这可能会导致同事与工作流程进行半热的交互,进行使代码投入生产所需的最少工作,而不是真正遵循工作流程的精神,这意味着要花费更多的时间进行清理。而且,当您花费越来越多的时间来清理与工作流交互不足的结果时(因为没人关心,对吗?),其他所有人都会质疑工作流本身。
因此,从对话开始。
找出原因(您的同事的机器不适合测试吗?您的同事不确定功能分支还是卡在提交和推送相同的svn心态中?),解释一下为什么未经测试的代码对您来说是一个问题在dev / staging / prod上,看看是否可以做一些改变它发生的原因(如果您只是想更好地在本地进行测试,而不仅仅是指责他们,那么您的同事将更有可能做您想要的事情)。
如果您无法解决它,并且确实导致了意见分歧,请在下一次回顾会议中安排全团队讨论,看看同事的想法。提出您的看法,但听听共识。也许您的团队说不要在本地测试文本修复是可以的,并且您只有一条规则,即未经测试的开发人员不得使用任何重大功能。在会议上写下来,然后读出您共同决定的关于每种环境所允许的内容的内容。在几个月后设定一个日期进行审核,也许是回顾性的。