加拿大程序员加班吗?
在加拿大,工作时间和强度的问题比较常见的一个讨论是,为什么美国人工作时间那么长但是工资并不高(相对于生活成本),而且经常看到关于各种超时工作带来的健康问题的报道;而加拿大的工作时间则相对短很多,同样的工作通常有比美国更高的薪水,没有过劳死的情况出现。 这个问题可以从两个方面来探讨,一是对于同一项工作的定义和评价标准不同,二是对同一样工作在不同文化背景下的执行方式的不同。 对于同一个公司、同一个项目,由于老板或者不同部门的领导有不同的风格,他们给的工作定义和评价标准可能也会不太样,这就直接导致员工们最后的工作量和工作时间上会有差异了。
以软件开发为例好了。我曾经供职过的两个美国公司的软件部门的工作风格就有相当大的区别——一个开发部门的主要负责人就整天嚷嚷着要用“精益”的方法做项目,所以整个团队都非常注意项目的每一个步骤是不是经过充分论证的才去做,因此整体上的速度会非常慢,但每一个小里程碑都能达到质量保证的要求;另一个开发团队的领导者就是典型的美式管理思路,认为只要能在规定的时间之内完成既定的功能就可以了,至于这些功能的实现过程有没有漏洞啊什么的都可以在上线之后慢慢再补,这样虽然最终的项目周期会短一些,但实际上风险很大。这也就导致了这两个团队在同样规格的一个软件项目上的工作量和时间上的明显差别。
第二个方面的原因就比较有意思了,其实如果抛开一些文化和价值观的因素不说的话,美国和加拿大的开发人员实际上在具体的工作方法上并没有什么本质的区别,都是在需求分析的基础上进行设计、编码、测试以及部署等等流程。那造成这种文化差异的根本原因到底是什么呢? 我认为最根本的还是经济模式的不同导致的,因为美国的经济发展模式更偏向于以利润为核心导向的企业竞争模式,在这种模式下企业的所有行为都是为了能尽快地获利,包括员工的付出也要尽可能地压榨到极限,所以在实际的工作中就会更多地强调加班加点地赶工来完成工作任务,而在加班的过程中又没有很好的保障措施去保障员工的权益和健康,从而导致了一系列的社会问题。反观加拿大这边,经济的基础则是建立在稳定的社会环境和健全的商业法规之上,企业作为社会的一部分要承担一定的社会责任,员工也有更多的权利来保护自己不被过度剥削。于是在这里的开发人员就可以按照正常的节奏来进行工作,该休息的时候休息,该回家的时候就回家了。