为什么美国程序员工作比中国程序员工作轻松、加班少？
先说结论：跟国外公司比，国内公司最大的问题就是管理者素质不高，对问题的边界定义不清楚。提需求的人没有成本，无止境地提不靠谱的需求。码农自己开发时也追求快糙猛，提高了系统的风险。总的来说，经理很忙，产品很忙，码农很忙，测试很忙，运维也受不了。。就是这样的结局。  我在血汗工厂，大亚麻。整个大部门有80号码工。想知道大家工作有多轻松。。。我先上图为敬。 这位是最忙的。。这Commit记录你们看着办。。。 我们部门是前两年重组出来的，做了七八个全新的项目，按血汗工厂的风格，SDE是要full stack的，还要讲政治，写个类都要摆出个设计文档。跟自己组，隔壁组过完设计，大家blibli一通留言，然后针对几个service的API划分和命名再掰扯个一周。最后谁都说服不了谁，摆出一句”求赐名“这时高级经理或者SDE会猥琐地从希腊神话里找一个神的名字出来命名service，再随机指定几个比较顺眼的命名，会议就结束了。  除了内部Tech的会议，偶尔也会参与业务方的会议。在这里也是要讲政治的，你参会了就必须要多说，无论说什么，一定要存在感巨强。当小透明是行不通的，为什么，小透明就说明你这个人没想法，能力不行啊。某种意义上，声音大就是impact，就是能力！！有没有！！  接着说对SDE full stack的要求。你以为我们有前端，有测试，有运维？想多了，新开的service，如果涉及前端页面。是要自己写的。。。。没错，别管你是前端工程师还是后端工程师还是算法工程师，首先你得是个工程师，工程师就没有解决不了的问题。。。我们做前端时也要开很多会啊，跟业务方沟通进展和Demo时，业务方可以提意见，一旦提了意见是要sign off的。不是随意说说那么简单。这样有个好处，很多东西定下来了就不随意改变。提需求的人是面临很大的成本，你老提了需求又改，又sign off，不出两月大家就觉得你这人不靠谱，会给你很差的反馈。  谈完了前端，该到开发阶段了吧，开发时50%的时间在也业务代码，50%的时间在写测试代码。如果没有测试代码，code review是说啥也过不去的。写完代码之后，内部有很完整的自动部署工具，把你的单元测试，集成测试都跑完，然后部署测试环境，gamma环境等等。包括日志监控，都是要自己上手的，也是前文反复说的full stack的概念。SDE真的是Someone Does Everything啊。。。  这么一说确实挺忙的，实际上50%的时间都在会议，20%时间写代码，20%时间写测试代码，10%时间捣鼓一下配置，监控。但从来没有人加班，整天在家办公，这公司怎么还没黄。。怎么还没凉。  我来总结一下，会议是生产力。讨论得越清楚，返工就越少。比如系统设计，几个组的人一起讨论清楚系统的边界，上下游系统的关系，你的问题边界和需求是很清晰的。码工自己啰啰嗦嗦地对全流程服务。测试，运维等看似工作量繁重，实际上有效地降低了风险，极大地提高了软件的质量。  跟国外公司比，国内公司最大的问题就是管理者素质不高，对问题的边界定义不清楚。提需求的人没有成本，无止境地提不靠谱的需求。码农自己开发时也追求快糙猛，提高了系统的风险。总的来说，经理很忙，产品很忙，码农很忙，测试很忙，运维也受不了。。就是这样的结局。  我说得这么清楚，应该大家都了解了吧。求赞。。比心。。 最后 