面对一个新项目,
程序员甲说:“阿弥陀佛”
程序员乙说:“阿门”
程序员丙说:“真主保佑”
这是程序员们的信仰,在软件开发界,也流行着各种信仰,从结构式开发,到面向对象,再到TDD,MDD等等,就像现实世界中的宗教派别一样,五花八门,层出不穷。那么,到底是信奉“阿弥陀佛”的人多呢还是信奉“阿门”的人多?本周CodeProject的调查就是看看程序员们到底信奉何种软件开发哲学。
What software development philosophies do you use?
Survey period: 15 Sep 2008 to 22 Sep 2008
I tend to use the 'Get it Done' method but that's just me...(suggested by Pete)
| Agile Development | 320 | 28.14 |  |
| Agile/Rational Unified Process | 71 | 6.24 |  |
| Extreme Programming | 171 | 15.04 |  |
| Iterative and Incremental Development | 487 | 42.83 |  |
| Quick-and-Dirty | 368 | 32.37 |  |
| Scrum | 133 | 11.70 |  |
| Test Driven Development | 253 | 22.25 |  |
| Waterfall | 192 | 16.89 |  |
| None of the above | 99 | 8.71 |  |
| This is a multiple choice question. Totals may not add up to 100 |
从调查结果来看,“持续集成开发”(Iterative and Incremental Development)拥有接近半数的追随者,以42.83%占据首位。居于第二位的是“Quick-and-Dirty”(这是什么东西?),紧随其后的是敏捷开发(Agile Development)和测试驱动开发(Test Driven Development)。传统的瀑布式开发则差不多快被抛弃,处在垫尾的位置,名落孙山了。
现在,我可以说:“持续集成开发”。(这选哲学信仰,就跟下饭馆,哪家人多我去哪家)
补充一下:维基百科上关于Quick-and-Dirty的解释
Quick-and-dirty is a term used in reference to anything that is an easy way to implement a kludge. Its usage is popular among programmers, who use it to describe a crude solution or programming implementation that is imperfect, inelegant, or otherwise inadequate, but which solves or masks the problem at hand, and is generally faster and easier to put in place than a proper solution.
Quick-and-dirty solutions often attend to a specific instance of a problem rather than fixing the cause of the more general problem. As such, they are sometimes used to keep an item of software or hardware working temporarily until a proper fix can be made.
The phrase is also frequently used in describing any document or tutorial that gives a brief overview about how to do something, without going into too much detail about why or how it works.
Microsoft's first operating system, MS-DOS, was originally called Quick and Dirty Operating System (QDOS)[1], prior to its purchase from Seattle Computer Products.
用中文来概括,那就是“实用主义”,管它黑猫白猫,抓到老鼠才是好猫。这有些类似敏捷开发的一个原则”持续交付可使用的产品“,而不太注重文档的完备,系统结构的优雅,使用技术的高级等等。


