黑客和敏捷开发
前段时间读了一下Paul Graham的《黑客与画家》(Hackers and Painters: Big Ideas from the Computer Age),虽说这书已经出版良久了,但是读书往往是不讲究时间的,有收获就好。这本书是文集,相对内容比较散,针对的也并非是业内人士,所以不同人在不同角度可以把这本书看出千滋百味。但不管怎么说,我觉得绝大多数人,都可以从这本书中收获良多。本人是IT行业人士,仅从IT创业者角度谈谈自己的理解。
”如果观察那些做出伟大作品的人,你会发现他们的共同点就是工作的非常艰苦。如果你工作的不艰苦,你可能正在浪费时间。 并非所有的痛苦都是有益的。世界上有有益的痛苦,也有无益的痛苦。你需要的是咬牙向前冲刺的痛苦,而不是脚背钉子扎破的痛苦。解决难题的痛苦对设计师有好处,但是对付挑剔的客户的痛苦或者对付质量低劣的建材的痛苦就是另一回事了。“
创业的辛苦是必然,但是绝不是随随便便的辛苦就能成功的。辛苦要用在往目标冲刺当中,与对手博弈之中,而不是无谓的的消费。而这也跟Hacker们所一贯追求的相符(本文中的Hacker与书中的Hacker所指一致,均是指有追求的Geekers)。对于创业过程来说,在搭好了开展事业所需要的基本的条件之后,就专心致志于自己的主业吧。而在主业中,也需要集中在一两个点重点突破,而不要总被别的事情所分散。
那么具体到这一个过程,又有哪些可以注意的地方呢?
首先,我们需要明白,"创业一直有一个潜规则: 一旦创业了,很多事情是不由你的。创业前, 你只想努力2-3倍,从而得到相应的回报。 但真正创业后,你的竞争对手决定了你到底要有多辛苦。 而他们做出的决定都是一样的: 你能吃多少苦,我们就能吃多少苦,所以创业者才会很苦逼。这种情况下,你应该超越出来,从层次上高于你所在的环境。否则你势必将做得异常累。"那么,我们需要做的,就是要用超出对手的层次与境界与对手竞争。而这个竞争过程又分为战略和战术两个层次,两者相互配合,缺一不可。战略上要从产品本身,定位,核心功能等方面入手,要站的比对手高,看的比对手远。而要做到这点,有两个方面需要注意:一是确立好需要解决问题的初衷而不是为了Show技术,二是不要盲目的认为自己就是比别人想的远,而是要通过大量的验证来调整,而为了支持不断大量的调整,敏捷思想必不可少。在战术上,就要考虑到每一个细节的实现是否得当。而具体到IT创业的话,这个战术跟写程式就密不可分了。而写程式的相关内容,我们下面再说。
第二,我们还需要明白,“人们真正注意到你的时候,不是第一眼看到你站在那里,而是发现过了这么久你居然还在那里。” 有的时候不是你不美,而是你的美丽没有绽放太久就中道崩殂了。坚持的重要性无需多言,但是把握好坚持与变通的临界,这是一门艺术活。
第三,在创业这个问题上,“致富的最好办法是创造财富(而不是掠夺)”。只要能够创造财富,就能获得财富。而掠夺财富的话,财富的持久性是值得怀疑的。“要更好的创造财富,你做的事情需要两点保证:可测量性,可放大性。硅谷的诀窍,可测量性来自小团队,可放大性来自开发新技术。”而针对小团队的测量创造财富的能力,和开发新技术来真正创造财富,无疑是小团队们的核心竞争力。
现在再回到创业战术的问题上来,针对IT创业的话,具体的战术跟写程式十分密切。而为了能在战术上比对手快速而高效,选择非常敏捷的语言是个好主意。在书中为了能高效的写程式,作者对Lisp十分推崇。对此,我持部分赞同意见。对于Lisp语言的思想,无疑是现在程序设计语言的典范。但是针对具体的开发过程,直接使用Lisp未必真能非常高效。 第一,目前已经掌握Lisp语言的程序员相对小众,如果你本来没有掌握Lisp,为了Lisp而Lisp,没有几年的积累,很可能成为“只有宝剑而没有对应剑术”,所以是否使用Lisp得视情况而定。第二,不可否认,目前Lisp的库相对不够丰富,但是对此也有解决方法,就是使用支持Java类库Clojure。这也是我认为Clojure优于Common Lisp和Scheme的重要原因。第三点就是由于Lisp程序员由于太小众了,确实在想扩张的时候容易捉襟见肘。即使是Clojure在国内也丰富不到哪去,对此我的观点是,为什么不试试Ruby呢?当然本文并非语言之争,上述观点也只是鄙人浅见,是鄙人针对目前情况的看法而已,如果读者不认同,还请批评指正。
应该来说,《黑客与画家》还是非常值得一读之书,相信你读了之后,也会有新的理解和体会。最后,我想用《黑客与画家》中的一句话结束文章:“画作永远没有完工的一天,你只是不再画下去而已。 ” 我们的生命,就是作画。