我为什么喜欢独自编程

  我已经在加利福尼亚科学院工作有5个月了。我正在开发一个由国家科学基金会支持的蚂蚁分类学网站:antcat.org。

  这是我25年的程序员工作中最好的一个。

  有好些理由:我工作在一个博物馆里,每天我可以四处走走观赏奇异的鱼,蜥蜴,和蝴蝶。这是一个用栅栏围住的绿区,老板聪明和善,用户都是科学家。博物馆就在金门海峡公园,距我居住的地方只有10分钟的路程。我的年薪“只有”1百万,比我好些年前的薪水都少。但他们给我医疗保险,每周我还可以去几次tidepool展览会。

  但这最重要的原因是我喜欢独自编程。

  我并没有觉得独自编程有什么特别好的。其实我喜欢工作在一个有活力和创新精神的团队里—甚至结对编程。但我没有选择这样。

  原因非常的简单,现在的工作我可以按我想要的方式进行。也就是95%的测试驱动开发。也就是敏捷开发—用最简单的方式完成工作。也就是我可以按照我自己的意愿在项目里使用Solr。也就是我可以真正的开始学习Javascript。也就是我可以把这些年在这个领域里积累下来的知识和经验完全应用到工程里。同时也就是我做这些事情时不需要和别争论这些事情。

  也许是我一直不太走运,在lean开发,敏捷开发,OOP,数据库设计,或甚至结构化编程上,我从没有遇到与我有共同思想的人。我的观念都学自于阅读Martin Fowler 和 Kent Beck等人的文章。很显然,有些理论都是这些人想当然出来的,例如避免过度优化,或遵循单一责任原则。

  所以在跟我的同事的接触中总是为这些事情争论不休。这么多年来我的脾气已经变得圆滑和礼貌的多了,而且在某些观点上愿意采取一种让步的态度(毕竟,也许我的观点是错误的)。可是慢慢的你会有时候厌倦了做OOP“纯粹主义者”(我不是)。有时候你只是想把事情做“好”。

  现在,我十分的清楚当你一个人工作的时候你失去的是什么。我做的事情常是错误的。其实有很多其它的我应该知道的方法但我一个人无从得知。毫无疑问我写出来很多bug。有时候我弄出的错误的设计浪费了我很多的时间。如果我工作在一个团队中,或者结对编程,这些全都可以避免或减少。谈到结对编程,有一个事实,我现在的工作效率没有我在Pivotal公司里结对编程时的效率高。当时我们的成绩是如此的显著,解决任务是过关斩将。唯一的问题是我不喜欢这种方式。

  我也知道我在赞成一种“牛仔编程者”风格的开发,这种风格的人在团队合作中确实令人头痛。但在没有团队的情况下呢?

  我知道人们从我们这代人中能更多的听到这种声音。这是相对于年轻的伴随着敏捷开发方法长大的年轻一代是这样的。我要说的是我在努力拥抱那些前沿的思想方法——1989年诞生的OOP,2000年诞生的TDD,现在的lean。这也导致了我更多的对这些东西产生了不同的观点。

  当然,归根结底,我深信唯一明智的判断一种行为方式的标准是看它是否能使你快乐。一个人选择去做某种事情的唯一理由是它能使你快乐(从长远的视角看)。

  对于我来说快乐是我的底线。

  [英文出处]:Why I love solo programming (and why I hated working for Pivotal)

it知识库我为什么喜欢独自编程,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。