编程--抽象表现艺术形式?

来源:互联网 发布:mac r语言命令行安装 编辑:程序博客网 时间:2024/04/28 13:34

译:Derry Zhang/2006-03-17

原文见:http://radio.weblogs.com/0103955/categories/stupidHumanProgramming/

    关于软件开发作为一种抽象表现艺术形式所扮演的角色这个问题我跟自己较了好长一段时间的真儿,比起这篇文章来要长得多得多。我们这些开发人员总被别人看作是一些个能写代码的小机器人。但是软件软件可不仅限于此,如果允许的话,我倒是觉得我们应该去创造更多的真正伟大的软件,而不是在那些比特代码中去堆砌更多没有创意的缺陷。

    在西部音乐传统和敏捷法则之间有着有趣的相似之处。

    假设你能够有机会问一下巴赫音乐的目的何在,他将会回答你音乐就是为了赞美上帝。他的观念是中世纪音乐以作为一种基本的精神寄托为目的的延续。

    以次为源,越来越多的比较世俗的非宗教音乐观点逐渐的多了起来。我们可以看到,诸如莫扎特的音乐,即是经典的对个体需求的强调,由此而产生了纯净、和谐而又可以陶冶情操的音乐。

    古典的音乐理想很快发展成为了崇尚个体自我表现的浪漫主义理想。在贝多芬和李斯特的年代,以及20世纪的作曲家中我们可以看出自我表现成为了音乐背后的原始动力。

    巴赫(译者注:连接为译者添加),具备无可否认的创造力,但是他的音乐却并不是自我表现的一种媒介。其复调音乐在很多方面都跟软件工程有着极其相似的地方。错综复杂的赋格舞曲结合自一个强大的“底层结构”。巴赫使“对位法”日臻完善--“是若干独立的小旋律的结合从而形成调和的有节奏的关键联合”。

    事实上,巴赫的音乐风格--“巴洛克音乐”(baroque)最早意为“形状不规则的珍珠”(我和Wabi Sabi都开始关注于此)这个思想给了敏捷世界很多灵感。

    我所看到的相似之处在于敏捷法则将软件开发者带入了以商业价值为驱动价值的客户服务之中。开发人员工作的终极目的不是为了做秀,开发者服务于客户,并且每项活动都应该以提供客户价值来安排部署。

    尽管敏捷宣言(Agile Manifesto )在过程上尊重了人们,然而最终结果却很大程度的失去了人性,就是因为独立的开发者的自我做秀升华给了客户。独立的开发者留下来跟客户开始就每一项他们可以获准的“自由”的程度讨价还价,可到了最后往往都是客户获胜。

     你可能会说,拥有黄金法则的人或者组织是确保一次又一次成功结果的必要条件,但也有很多人将软件仅仅视作对用户的一个终结,而这中观念其实也不应感到稀奇。开发过程同时也是“单枪匹马”的生活的结束--充满了创造力的世界,一种自我表现的核心方法。

    我们已经看到了音乐中的乐曲结构变革以及作曲家实现自我表现的价值理想。我们也看到了由完美和谐结构化的并且蕴涵了个体灵感的音乐所产生的这个伟大世界。同样,对于敏捷世界来说,一场类似的变革更值得我们期待!