黑客和敏捷开发
前段时间读了一下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程序猿因为太小众了,确实在想扩张的时候easy捉襟见肘。即使是Clojure在国内也丰富不到哪去,对此我的观点是,为什么不试试Ruby呢?当然本文并不是语言之争,上述观点也仅仅是鄙人浅见,是鄙人针对眼下情况的看法而已,假设读者不认同,还请批评指正。
应该来说,《黑客与画家》还是很值得一读之书,相信你读了之后,也会有新的理解和体会。最后,我想用《黑客与画家》中的一句话结束文章:“画作永远没有完工的一天,你仅仅是不再画下去而已。 ” 我们的生命,就是作画。