敏捷软件开发中的精神食粮

一个良好的团队是软件开发成功的重要保障。良好的团队不仅仅是技术精湛(属于佛学中的五明之学声明、因明、医方明、工巧明、内明),基本技能强的团队。更重要的是一个和谐包容团结奋斗的统一整体。(呵呵,有点北京精神的味道)

心量问题

佛教说要破‘我执’,‘我执’简单的说就是指人执着这个‘我’,这个身体是我的,这个利益是我的,这个名誉是我的等等。处处以‘我’为出发点思考问题,这样会思想观念狭隘,或说比较自私,超不出个人利益的格局,甚至互挖墙脚,在团队中起破坏作用。一个团队由很多‘我执’过重的人组合在一起一定会出各种问题的。

沟通问题

敏捷团队里面是我们这些凡夫俗子,人和人的知识背景,成长环境,对问题的理解能力,思维方式,经验等等各个不同,这也是事实。心量虽然在破‘我执’的过程中变大了,沟通的问题其实依然存在。软件开发过程中(软件需求的获取,需求的变更,开发测试等等),软件项目能否成功的最重要的一个因素就是团队或说利益相关者是否进行了有效的沟通包括团队内部的沟通及与客户之间的沟通。

佛教讲成佛是般若智慧的成就,《金刚经》中说般若是成佛之母。般若,乃大智慧。这种智慧和我们通常的世智辩聪是不同的,但这种智慧又是人人本具的。佛经中说的真心,真如,法身,佛性,如来藏,如来等都指的这个。若‘得到了’般若智慧,宇宙人生则无所不知,一切智成就。(当然说到这个‘得’字《心经》中有“以无所得故,菩提萨埵”。其义理甚深,这里给读者留个悬念了。)人人本具这种大智慧,那为什么不显呢,或不完全显呢,或说显了我们不知道呢。呵呵,因为无明盖覆了。无明就是不明白,没有智慧。佛经上说一念不觉与妄心交道,知见立知了(本来是无知无不知的,现在知见立知,头上按头了),摩尼宝珠的光芒就不显了。妄心就是我们这颗的烦恼的心,分别的心,执着的心。人生活在无欲六尘中,家庭, 会里诸多不如意的事情,十之八九。特别是现在是末法时期(距离佛陀讲法已经两千五百多年了),不管是有钱的、无钱的,有官的、无官的,管理层的经理还是我们这些程序员,人人的烦恼都很重,很难拥有一刻清净心。

要想解决上面我们提到的沟通问题,除了必要的沟通技巧外。根本的解决之道,是团队成员人人都有一颗清净的心。平常我们的经验是,当我们专注一件事情的时候,不要三心二意的,那么工作效率就非常高,是事半功倍的。如果是心猿意马,想东想西的胡思乱想的做事情,就很容易出差头,即使是在不需要过多思考的工作场景。佛经说清净心生智慧,此言不虚也。

良好沟通相互包容和谐的团队,人人都有颗清净的心。最起码烦恼别太重,如果烦恼太重,团队要考虑让其休假解决引起烦恼的事情,不管是个人的,家庭的,还是其他。心安才能做好事情。

发心问题

古语“好男儿,志在四方”。简单说,就是讲人人都应该有志向,从小就要树立远大的理想。志向就是一个发心的问题。敏捷团队中的发心问题同样重要,做有意义的事情,总是鼓舞人心,激发人斗志的。

佛教对发心问题看的特别重要,有句话说“初发心即成无上正等正觉”。佛教的发心是发无上的菩提心。含义之深,我辈亦不能把握。浅浅说来,菩提心是直心,深心,大悲心。直心是至诚之心,是觉悟的心,是平常心(禅宗南泉禅师对参访的赵州和尚说,平常心即是道。可见其义理之深。有平常心就有不平常心,什么是不平常心我是非种种相对法么!);深心极具般若智慧;大悲心是,无缘大慈,同体大悲。地狱不空,誓不成佛的悲愿之心。菩提心发起来了,决定必成无上正等正觉,梵文是–阿耨多罗三藐三菩提。正觉呢,声闻罗汉,好比我们大学毕业生;正等正觉,行菩萨道使有情觉悟的菩萨,好比我们硕士研究生;无上正等正觉呢,就是佛果了,好比是博士研究生了。

那么敏捷团队如何借鉴,如何发心呢当高远,发心为公。比如我们开发的产品是IBMDocs,成员的发心不应该局限在如何把制定的目标实现,完成己任而已吧。要真诚的发心把产品做到最好,服务我们的客户,解决他们的问题,让他们满意。这就是成就客户!正所谓菩萨所在之处令一切众生生欢喜心。力的作用是相互的,成就别人也就是成就了自己。

这一节我们谈了三个问题,心量问题、沟通问题和发心问题。吸取了这些精神食粮的敏捷开发团队一定是最棒的团队。以上说了些敏捷团队的建设,下面来看开发过程。

走大乘菩萨道的人是依佛陀所教之六度万行来修行的。六度指的是“布施、持戒、忍辱、精进、禅定和般若”。同样,这六度也可以用来指导我们的软件开发,虽然说起来有点像用精确制导导弹打蚊子,大材小用了。

开发人员的布施

布施,简单的说来有三种布施。一是财布施,布施钱财给需要的人。中国历史上的陶朱公范蠡,弃政从商,从白手起家到家财万贯,然后全部布施给穷人。再白手起家从头再来,然后又到万贯家财,如斯者三。每一次所赚都倍加优厚。求财就要布施,有舍才有得。天道昭彰,实不虚也!二是法布施,布施真理给需要的人。法布施尤为殊胜。大家如果读过《金刚经》就会知道受持读诵《金刚经》中的四句偈(比如“一切有为法,如梦幻泡影。如露亦如电,应作如是观”就是四句偈)说法给人听,所得功德之大,非是用金银珠宝财布施所及也。(你说喜马拉雅山高大,这个是有相的东西,我说地球更大呢。有相东西的大小是相对的,无相就难以限量了)三是无畏布施, 上有 道,一个亿万富翁为了救一个工人淹死了。他这个就是无畏布施。这里的因缘果 暂且不论。这种施无畏的精神值得弘扬。如果更具体的谈布施,你对人的一个微笑就是布施,布施了你的欢乐给别人。你把你的身心精力投入到开发过程中,甚至周末加班,这个就是给予、布施。

佛教讲布施要‘三轮体空’。没有布施的“我”,没有接受布施的“人”,也没有布施的“东西”。要如是关照。一有求回 的心,那功德利益很小了。如是看开发人员的布施,不要去思维你要获得的利益,认真负责的去做就是了。想着自己如此投入,将来一定能升职加薪,打自己的小算盘,妄念纷飞,这样离道就远了。所谓君子乐得为君子,小人冤枉为小人。

软件过程中的持戒

佛教的戒律规范修行人的穿衣吃饭,言行举止,起心动念。根据四众弟子的实际情况,佛陀制戒。有五戒、八戒、比丘戒、比丘尼戒和菩萨戒等。(有人说,佛家的律宗相当于儒家的思想。)换句话说是,无规矩不成方圆。软件过程也需要科学的规划,指导。敏捷开发过程有其成熟的模型,需求如何获取,需求变更如何管理,如何避免过度设计,如何又是结对编程,极限开发等等。都是实践出真知,总结出来的一套适合敏捷软件开发过程的‘戒律’。遵循之,则项目成功。违反之,则有失败之虞。佛陀的弟子是要诵戒的,敏捷团队的开发人员是否对敏捷开发过程中的‘戒律’耳熟能详呢/span>

需求变更中的忍辱

敏捷开发是拥抱需求变更的。它把需求的变更当做一种必然进而管理之。已经摈弃了其他软件过程中被动消极接受需求变更的事实。然而这里仍然需要佛家的忍辱智慧。在《金刚经》中说“一切法得成于忍”,忍辱波罗蜜最高最上最第一。很多大德开示“忍辱要从空性中下手”。正所谓“因缘所生法,我说既是空。亦名为假名,亦明中道义”。这里的忍辱可不是忍气吞声,窝窝囊囊的表现,是一种智慧的成就。拿软件需求变更来说,软件开发人员不愿意看到这个事情发生。好不容易经过设计、开发和测试写好的程序,转瞬间就驴唇不对马嘴了,甚至子虚乌有了。团队的时间搭了进去,心力精力搭了进去。难免会使得人灰心丧气,甚至气急败坏。敏捷开发则提倡有勇气去重构、甚至推到了重来。敏捷开发这块就是忍辱波罗蜜的智慧表现。事已至此,不若欣然接受‘无常’的现实,敏捷团队就应该是以变制变。从技术角度来讲,可扩展的,可复用的,模块化的程序设计就是以变制变的法宝。

开发过程中的精进

修行人的精进,毋庸多说。古德难行能行,难忍能忍。像近代虚云老和尚,传记中记述他为了 答父母养育之恩(母亲难产而死,父亲也是因他郁郁而终),从浙江普陀山起香,三步一拜前往山西五台山。历经三年,风雨无阻,一路九死一生,终于夙愿达成。此举当时震动了整个大清国,乃光绪年间的事情。

开发过程中的精进,相对就简单多了,只要按时、保质完成软件产品的开发就行了。按时,需要项目科学的规划、管理。保质,需要开发人员扎扎实实的技术基本功了。世间的技术学问,只要肯下功夫,人又不傻,没有学不会的。世上无难事,只怕有心人。只要功夫深,铁杵磨成针,呵呵。

Scrum/Sprint中的禅定

敏捷开发是有迭代周期的。比如基于Scrum的敏捷过程,一个迭代周期叫Sprint,一般是2~4个星期为一个迭代周期。在一个迭代周期中的每一天,一般都有例会。时间不长15~30分钟,大体讨论三件事情:昨天做了什么事情,今天要做什么事情,明天计划做什么,都遇到了那些问题,技术的非技术的。团队成员则一个接一个的轮流发言。那么这里有禅定么/span>

什么是禅定呢么是禅呢么又是定呢禅八定来禅师禅统统解决这些问题,请聆听大德们说法,呵呵。这里简单的说,外不取于相曰禅,内心如如不动曰定。外不被境界所转,内心常起觉照,般若智慧升起,照见诸法实相。诸法缘起性空,真空而妙有读者会问,你说什么呢呵,其实Sprint例会中的禅定,可以理解为一心专注。不被周围的环境所干扰,内心专注,就是一种定的境界。古语说“制心一处,无事不办”,定能开慧。抛出问题,解决问题,在讨论技术问题之时,思想火花碰撞之处,偶来一念,可能就是一项发明,一项专利。这一念怎么来的能说清楚么!正所谓“大智发于心,于心无所寻。成就一切义,无古亦无今。”

项目的般若成就

成佛是证到如来果地上的境界,得到了佛果。项目的成功上线,交付给客户使用,自然是丰收的成果。是项目团队集体智慧的结晶。我说是般若的成就,当之无愧。佛家的“般若”义甚深。法身无痴即是般若。大德说:“无上佛道,不属知,不属不知,无知而无不知。知是妄觉,不知是无记。若真达不疑之道,则心包太虚,岂可强是非也!”这块读者用思维、理解是不通的,方向就错了。非比量,乃现量。请直下悟去!

以上我们从佛教的六度来审视敏捷软件的开发,很多都是形而上的说法。然而无论我们做什么,都需起心动念。不从这儿下手,糊里糊涂的,被这颗妄心支配着,生气愤怒自己受,短暂的“快乐”自己受,技术问题来了自己解决不了生烦恼自己受,受则受了,莫名其妙,岂不冤枉。

写到这块,大略要发挥一下了。

佛教讲学佛可分四个阶段“信,解,行,证”。佛法大海,信为能入,智为能度。然后则解,理解其义理。深入经藏,智慧如海。进行由信解,去践行。或说从文字般若上升到关照般若,关照什么小孩子学走路要关照好路况,关照好自己的落脚。修行要关照好自己的心行,所谓“众善奉行,诸恶莫作,自净其意”。好的念头留下,恶的念头则断除。处一切所,不随妄转,于其妄念,亦不消灭,内心清净无染。进而就是证入实相般若了,悟道了。也就是禅宗讲的明心见性,净宗说的一心不乱,密宗的三密相应了。那么究竟悟了个什么道呢文字相,离言说相,离心缘相。就是说文字描绘不出来,语言也不能及,浑身是口不能说出来。思维也不能达到,想啊想,呵呵,思量即不中用。就是《心经》所说的,不生不灭,不垢不净,不增不减。也可以说,悟道了,就在人的生死苦海中悟到了不生不死,悟见了宇宙人生的真相。

不管一个敏捷团队做过了多少项目,经历了多少变化。团队从无到有,从有到无。项目也有自己的生命周期,人事变化更是频繁。这些无不是因缘所生的法,就是各种条件因缘的组合而有的东东。团队的成员应该有这样的“悟道”不可执着,亦不可无所谓,应显中道义。努力的去做一件事情,做的时候全身心的投入,做过了就做过了,如雁过长空,不留一丝痕迹。(总结经验当然可以,多用一分智慧,少系一分情执)《金刚经》上说“过去心不可得,现在心不可得,未来心不可得”。过去起来的念头已经过去了,现在生起来的已不是过去的那个了。未来的心念还没到来。当下无住。我们的当下,心念则刹那生灭。

享受项目成功的快乐当然很快乐,但这快乐是相对项目失败来说的。如果你在日常工作中“悟道”了,你无时无刻不清净欢喜快乐。 法喜盈盈,时时刻刻都在禅悦中。

五引用

[1]净空法师,慧律法师,传喜法师,元音老人等大德对佛法的开示

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年2月4日
下一篇 2013年2月4日

相关推荐