在软体工程和专案管理中,「神物模式」是一种常见的反模式,它回应了许多反覆出现的问题,但通常会产生无效和有害的后果。这个概念最早是由电脑程式设计师安德鲁·科尼克在1995年提出,灵感来自于《设计模式》一书,这本书描述了一些被认为是有效且可靠的软体开发设计模式。随后,1998年的著作《反模式》进一步扩展了这一概念,包括软体架构和专案管理的领域。在这篇文章中,我们将深入探讨「神物模式」的定义、应用,以及在软体工程中的具体例子。
根据设计模式的作者,反模式有两个关键要素,这使其与坏习惯或坏行为区别开来:
反模式是一种常用的过程、结构或行为模式,尽管最初看起来是一种合适且有效的问题回应,但其坏结果却多于好结果。
针对反模式所希望解决的问题,存在其他已被文件化、可重复和经过验证的有效解决方案。
根据「三次规则」,要成为反模式,该模式必须至少被观察到三次。
记录反模式可以用来有效地分析问题空间并捕捉专家的知识。好的反模式文档不仅记录了该模式的不利后果,还提供了替代解决方案或改善的方法。
在软体工程中,常见的反模式包括:无设计的乱球(big ball of mud),神物(god object),魔法数字(magic numbers)和幽灵(poltergeists)。
无设计的乱球指的是缺乏可感知架构的软体系统。虽然从软体工程的角度来看是不可取的,但这类系统在商业压力、开发人员流动和程式码退化的情况下却很常见。布莱恩·弗特和约瑟夫·约德在1997年所发表的论文中对这一概念进行了深入的定义:
一个无设计的乱球是一种随意结构、庞大、混乱的「意大利面条程式码丛林」。这些系统显示出明显的不受控制的增长和不断的临时修补。
专案管理中的反模式包括:夸大会议(Blowhard Jamboree),分析瘫痪(analysis paralysis),视觉工程(Viewgraph Engineering)过度规划(Death by Planning),以及对成功的恐惧(Fear of Success)等。
这些反模式通常由于管理不善或不当的沟通方式所引发,导致专案进度缓慢和团队士气低落。
在面对软体设计和专案管理的挑战时,了解和识别这些反模式至关重要。透过避免「神物模式」的常见陷阱,团队能够设计出更加稳定且有效的解决方案,进而促进成功的专案完成。那么,您是否也有可能在不知不觉中被这些反模式所影响呢?