技术开发 频道

自适应软件开发

   “革新、创造性和突发结果在混乱的边缘地带应运而生”!

    对于人的个人发展,难道不也是这样的吗?对于一个在“混乱边缘”的民族(如日本和韩国)不是更有创造力吗?不是“乱世出英雄”吗?真正的稳定,是让自己适应变化,而不是呆在温暖的大棚下面。而是要出去接收新的空气,那怕波涛汹涌。真正的稳定是当变化来临时,自已照样屹立不倒。

    当然,最最关键的是做到“边缘”,让稳定和混乱保持一种平衡,这是非常难的,但我们别无选择。就个人而言,我的对个人发展的信条是——“永远从事有挑战的事,但不要太有挑战,最好从事70%是熟练的,而30%却是从来没有接触过的事”,包括把自己放在一个高速成展的公司,而不是形成规模稳健的公司,也是给自己一个“混乱的边缘”。就软件工程而言,就是要让目标有那么一点不确定,而让团队自身调整。

    那么,我们是不是要抛弃软件工程原有的东西,抛弃CMM?不!答案是否定的。我们需要他们,只不是过,原有的那些教条不再成为束缚我们思想创造力的枷锁,而变成控制这种平衡的工具。控制稳定和混乱的平衡,这才是其中的关键。

    “混乱边缘的繁荣”,这是本书最根本的思想,书中所有的章节都是充斥着这种思想。

    领导—协作

    我们生活的这个世界是一个强制秩序的年代,为了保持稳定,我们的领导人以发布命令的方式指使着我们,并对我们的日常活动进行控制。正规软件工程中的项目经理,也正如我们的大多数中小学老师,还有我们的政府。他们把他们的思想强行灌输给我们,而不管我们的个性和自由。于是,我们的思想,我们的创造力,我们的相像力,全部被扼杀了。我们就像一具没有思想的尸体,被别人搬来弄去,过着毫无意义的人生。

    这是“命令—控制”时代所带来的恶果。“自适应”就是要让我们脱离这种恶劣的环境。我们要采取“领导—协作”的方法。命令者知道目标,而领导者把握方向;命令者发布命令,领导者施加影响;控制者发出要求,协作者使之发展;控制者进行微观管理,协作者实施鼓励。领导是引领团队,他并不压制新的思想,只是引导。协作是一种共同进步,是一种对别人的帮助,是一种思想的统一。真正的领袖从不命令,只是营造一个好的协作氛围,并指引领着团队走向正确的方向。

    “不幸的是,大多数的软件开发是被“管理”的,而不是被“领导”的”。

    真正的“领导—协作”是每个人都有责任,每个人不但对自己的工作负责,也对整个项目负责,每个人都是领导,大家在一种包容于别人思想的环境中,相互作用,相互帮助,相互尊重,相互交流,其不仅对自己的工作进行负责,进行领导,并且也统一思想做一个共同的决定。

    这里,项目经理不是实施权力,而是要营造这种环境,一人团队只有在维持了共性和个性的张力时,才会是有创造性的。而专制则意味着放弃一些东西,而毫无所得,其更本不管一些项目中产生的各种信息,而强制决定,强行按照流程规定执行。对于个人来说,对于商业活动来说,对于管理来说,对于社会制度来说,这都是适用的,这难道不是一个进步的思想吗?

    “领导—协作”是自适应管理的根本思想,也是一个团队的文化氛围。

    预测—协作—学习

    这是自适应的模型的。“预测—协作—学习”不断迭代,从而让团队不断进化,不断适应多变的环境。

    [预测]——就是对目标做一个分析,给出一个大的方向,但不要太具体,但是大方向一定要对。这不仅是提供给团队目标,还有就是让团队中的每个人会因为这个目标而兴奋,而产生激情。在这个过程中,项目组中要定期的散焦,在一个过程开始时不要太关注于细节实现,而过程进行时要从散焦变成聚焦,逐步协商合作,统一每个人的思想,逼近正确目标,以为后续的工作提供可靠的保证。

    [协作]——第一个障碍是强权管理,第二个障碍是个人主义。相互信任、相互尊重、相互参与、相互承诺是创造双赢的核心。无论是和客户也好,还是人与人之间也好,还是公司与公司也好,协作绝对是一个人,一个团队,一个公司最具竞争力的核心。能不能在内部和外部出现协作,是能否自动适应各种环境的重要因素。协作需要的是努力得整合自己和别人观点的分歧。

    [学习]——学习是一种态度。自我批评、反馈、信息共享是其核心。我们一定要不停地问自己至少下面三个问题:和客户讨论时,我们要反复地问,“我们在做正确的事吗?”,在设计编码测试时,我们要反复地问,“我们用正确的手段做这件事吗?”,在事后分析时,我们也要反复地问,“还能有更好的方法做这件事吗?”,在项目过程中要给予这种时间进行反馈、自我批评、并交流个人的心得体会。于是,我们就在一种高速—慢速—再高速—再慢速—超高速的发展。

    对于个人发展,对于团队,对于管理,对于营销……,不都是这样的吗?

    边角料

    《自适应软件开发》是一本很晦涩的书,简直是很难读,我很同情翻译人员的痛苦,我相信即使是英文版的,也是难懂,对于书中的许多地方,我也是揣摩猜测。可能会和书中的内容大相径庭,这点可能类似于爱因斯坦的《相对论》这类思想高深的书,很难让人明白。不过当你忍着痛苦,细细得揣摩书中的思想和方法,并读完整本书后,你会发现这似乎不是一本软件工程的书,这好像是一本哲学书,并会为之有一种激动不已的感觉。并写下这篇文章,希望和大家共享,并希望和大家交流学习。

    《自适应软件开发》它并不否定传统的软件工程,只是把原有的结构重新组织了一下。所谓戏法人人都会变,只是玩法不同。下棋的规则就那么多,可是几百年来在棋术上的创新却从来没有停止过。本书还讲了团队中的人际关系、团队的激情、和客户的关系、商业营销、管理、企业文化等多方面的内容。也让人收益不少。

    《自适应软件开发》从我的感觉上来说,他让我得到的并不是软件工程方法那么简单的内容,其中的思想,对我们个人也好,团队或是这个社会制度也好,在各个人类活动的方面都会有很大的收获。书中对对软件工程的有细节方面的论述,我就不多说了,我更喜欢的是其中的哲学思想。

    与此类似的还有一本书《人件》(PeopleWare),正在期待中译版的出版。

0
相关文章