下面的这个清单是我和一些行业的熟人,在众多大的科技公司里工作后,一起收集汇总出来的一些特征。
我们的工作经历多样而广泛,从财富50强企业到硅谷创业公司,从全新到代码库到30年的老古董。
下面的这些特征,不仅是对我们,我想对广大的软件开发者也都代表了一个非常理想的工作环境。
虽然很多的公司会认为清单上的这些做法是不可能接受的,但如果争取向这种理想的情况靠近,
我们相信很多的程序员,包括我自己,都会希望为你工作。
- 向开源社区捐赠力量
- 允许程序员用自己的电脑开发。
- 无法做到这一点通常意味着一个过度耦合的开发环境…
- 不需要依赖具有专利的通信协议
- 你们的Microsoft Exchange server无法支持 Linux 或 OS X 吗?
- 你们的文档需要使用 Microsoft Office 或 Pages for Mac 吗?
- 允许程序员去选择无薪休假
- 一年中指定的那几天有薪假期真的很有价值吗?
- 具有一个条理整洁的代码库
- 考虑转换成一种面向服务的架构,会对你有帮助
- 优先分配时间来重构/偿还技术债务或其它不能直接产生经济效益的事情
- 如果有技术债务,应该在文档上记录,并尽可能的消除。
- 不使用一个“自己定制的框架”或不正确的实现的开源框架
- 用Stack Overflow应该能够解决大部分的代码相关的问题。
- 不是一个“市场驱动型”公司
- 不武断的设定最后期限
- “周二前我们必须做出这个功能,届时我们要群发邮件通知!”
- 抛弃Minimum Viable Product
- 相信我,那是有问题的,丢掉它后你会更快乐。
- 不要求员工必须待在办公室里,例如,可以在咖啡馆或在家办公
- 应该按功行赏,而不是按工时或工龄
- 在涉及会严重影响程序员的决策时首先考虑程序员的意见。
- 根据程序员的喜好分配工作任务