某某茶叶有限公司欢迎您!
金沙棋牌在线 > 操作系统 > 程序员的工作环境是怎样的?

程序员的工作环境是怎样的?

时间:2019-12-29 06:39

很赞同《Joel on Software》中Bionic Office一文所说,办公环境需要比大部分员工的家中环境更舒适。否则老板只能招聘哪些还住在简陋公寓的员工,他们才有可能下班后情愿留在办公室继续工作。我认为程序员的办公环境的几个条件:

问题:是不是像图中这样的工作环境?

1

周末两天在办公室加班,效率非常高,两天内按计划完成的报告。但是今天没有去办公室,只是在家里工作,效率却很低,甚至还出现了走神的情况。

1. 弹性上班制

程序员群体是一群怀有Geek情结的家伙,追求相对的精神自由,在自己的时间安排上也喜欢自由自在、无拘无束。灵感来时,可以废寝忘食、疯狂Coding;思维乏术时,则可能漫不经心、无所事事,这时不如早点结束工作,放松心情,触发下一次的灵感。

常规企业的朝九晚五上班制度,说实话并不适合程序员一族,因为这种制度一定程度上扼杀了这个最需要差异性的群体的差异性,把程序员的Coding灵感等同于工厂流水线上机械手臂,希望按钮一按下,灵感发动,按钮再一按下,灵感结束。这是一种一厢情愿的想法。

所以对于高层次的程序员群体,请不要在作息时间上严格限制他们,因为他们不是装配工,有着独一无二的个体差异性,有着不同的思维G点,他们需要差异性的时间作息来调整自己的最佳状态,从而迸发激情和灵感。

上班时间的弹性有多大,比如早上8点——10点上班,下午4点——6点下班。只是一个相对的参考,因为个体的差异性有时候的确不容易完全包容,作为一个企业的运作,还是需要一定的时间规范,只不过尽可能地考虑到程序员群体的独特性思维。

1、足够大的桌面空间
程序员的办公桌最好可以并排坐下2人,以便结对编程或者code review。在不离开座位的情况下,有足够空间用白板或者纸面展开讨论问题。协作的同事不必站在身后费力的越过肩膀来看屏幕上的内容。桌面可以放下2个显示器并可以随手拿到常用的参考资料及书籍,有合适的文件柜或壁柜存放归档的资料,避免桌面上堆满了各种打印的资料。

回答:

2 为什么工作环境不同,效率差距就那么大?

今天反思了一下。

首先考虑是不是自己意志力,决心出现了动摇。
由于昨天消耗了大量的精力,导致自己意志力减弱,这是主观因素。

考虑是工作环境对效率的影响。

工作环境到底会产生什么样的影响?

有人说应该从自身内心找原因,环境什么等都是借口。
但是实际上我发现,有些工具确实能够帮助自己更好的提升效率。

例如在办公室工作时我带上了铁三角的m50耳机。有延长线,静音效果也不错,开了一首相对安静的音乐循环播放。其实这里的重点三个,

  • 第一个是静音,隔绝了外界的噪音干扰;
  • 第二个是延长线不像蓝牙无线耳机可以方便走动,有线耳机限制了不能够来回走动。
  • 第三个是办公室还有更多加班的人,大家都在工作,因此有一种榜样的力量,或者说受到别人一种正向的激励或者约束。

还有一个原因可能是目标驱动制。

周末加班有较明确的工作目标,因此效率相对高,今天在家里做的是一项相对重要,但不是很紧急的工作,因此目标不是很明确,所以效率不是很高。

2. 宽松的工作氛围

程序员群体讨厌管理,任何自上而下的所谓管理都容易引起程序员们的心理抵触,特别是那种死板的、指令式的管理模式,尤其让程序员们作呕。

程序员们希望自己做的事情是出于内心的意愿,那样他们就会干劲十足,而不是来自于经理计划文档中那条冷冰冰的文字,那怕是他们心里意愿的和经理的计划本是同一件事。所以对于程序员群体的管理需要技巧,要化管理于无形,让他们感觉不到管理的痕迹,让他们感觉着做这些事情就是出自于他们自己的意愿。

总结来说就是让他们作为自己的管理者,而团队的管理者所要做就是培养他们这种自管理的能力。

正如K.K在他的大作《失控》中所阐述的思想:有机的活系统,依赖于分布式的自管理的子系统,而各个子系统又依赖于分布式的自管理的个体,没有中枢,没有一个统一的自上而下的管理,每个个体相互联系,相互反馈,相互协作,创造了一个生机勃勃、充满活力的有机活系统。看似杂乱,却有条不紊地运转。

适度的压力可以产生做事的动力,但长时间的持续的压力却是扼杀激情和创造力的罪魁祸首。压力会让程序员焦虑,同时也会造成低劣的设计和代码实现,因为交付的压力会让程序员对匆忙设计出来的方案妥协,而不会持续的优化找到最优方案。而一系列看似微不足道的缺陷设计集合到一起,就会形成让人意想不到的、不可控制的乱象。

正所谓:一张一弛,文武之道也。偶尔的交付压力,可以让程序员执行效率提高,但却不是长久之计。让他们在完成既定目标的同时有自由思考时间,是一个明智的选择,看似拖长了项目研发的进度,所获得的回报却是不容小觑的。因为每个个体表现优异,会叠加到整个集体的表现优异,正向反馈,正向循环,持续优化,达到一种最佳的状态。

所以,“快”不见得是好事,“慢”也不见得是坏事。

2、电脑环境
工作的机器有足够的内存,比如8G,这样并行打开复杂的workspace时候不需要关闭邮件或者浏览器软件,也避免在debug模式时硬盘在拼命swap以腾出空余内存。办公环境有足够的带宽,访问Google的服务没有障碍。内部资源如测试服务器、邮件服务器、SVN访问要非常快。

我目前工作过的两家办公环境都还不错,没有出现还像图片中那样使用电风扇的办公室。我感觉现在最起码都会装有空调吧。

3

总之,工作目标驱动、工作环境,意志力都会影响自己的工作效率,甚至影响目标的实现。所以除了决心,具体的提升效率的方法也不能忽视,他们是个系统,必须全面考虑。

3. 鼓励参与开源项目

开源项目社区的欣欣向荣,是一朵盛开的奇葩,无论怎么赞誉都不为过。

一些著名的开源项目,例如LinuxApahceopenssl等等,数不胜数的优秀设计,给我们带来了多少的惊喜,同时也催生了多少的商业公司。

参与到开源项目中,是一个程序员从初级走向高级、完善技术的最有效途径之一。一些著名的开源项目,架构设计和Coding技巧上都属上乘之作, 浸淫其中,受益匪浅。

人们常说:成功的第一步就是模仿。在软件设计领域也是如此。当一个程序员通过理论学习掌握了一门语言的基本技巧后,要怎么样才能更上一层楼,快速提升自己?实践,实践,再实践!而参与开源项目就是最好的实践之一。一是可以学到很多优秀的设计思想和Coding技巧,而是可以跟很多牛人并肩作战,讨论技术。人生快事,莫过于此!

站在程序员个人角度,参与开源项目的益处显而易见。那么站在公司企业的角度,凭什么要让自己的员工耗费精力参与到开源项目中呢?这样有没有可能影响本职的工作呢?

俗话说:站的高的人才能看的更远!思维的高度决定行动的高度。企业管理者如果能够站的高一点,眼光能够看的远一点,就会领悟到让自己的员工参与到开源项目中对企业本身的益处也是显而易见。

例如下面几点:

  • 公司业务本身使用的技术框架就涉及到开源项目,那么开源项目的发展就跟企业的发展息息相关。
  • 员工本身技术能力的提高会带动自己团队整体技术能力的提高,对公司来说是可能是一件需要花费很大气力要做的事情。
  • 让员工获得成就感,员工就会把这种积极的情绪带给团队和公司,营造一个积极向上的工作氛围。

当然,企业毕竟不是专职做开源项目的,主营的还是自己的业务。那么对员工工作时间上的安排要有一个大体的把握,既然鼓励员工参与到开源项目中,又要提醒他们不要影响到正常的研发工作。这是需要注意的地方。