敏捷建模何时是有(没有)意义的?
何时合适AM运作?
但这不是我的情形...
何时不合适AM运作?
何时敏捷建模是适合你的?
敏捷建模不是万能的,它并不适合于每一个人、每一种情况。即使是你的条件非常适合于AM,也不能保证它就能良好的运行——你在组织内实施AM时还是有可能犯下错误。我的经验是,在以下条件满足时,AM极有可能发挥其效力:
软件开发采用了敏捷方法。AM不是一门完整的方法学,它只是某个软件开发流程中的一部分应用。要成功应用AM,你所采用的开发流程的观念必须要与AM的观念相匹配(译注:XP与AM匹配,而CMM与AM就不匹配)。否则,你只是在片面的运用AM中的几项技术,而不是真正的配置了AM。
采用迭代式、递增式的开发方式。做为AM的两项实践,有效的沟通(communication)和反馈(feedback)要求软件开发采用迭代和渐增的方法。
需求不确定或不稳定。Martin Fowler在他的新方法学中指出,如果你的项目就像是自然探险(大多数项目都如此),那最佳的选择就是采用敏捷方法来开发软件。当需求不明或易变时,你就应该采用一种能够适应这种情况的开发方式。AM拥抱变化,它采用递增的开发方式,寻求快速的反馈,并且一贯坚持Project Stakeholder的积极参与,这就是AM对付需求变化的法子。使用AM,你就能够迅速而有效地发觉客户的需求。
开发软件是你的主要目标。这是AM的核心原则之一,但对很多项目来说,这并不是他们的目标。例如,有时候一个项目团队的主要目标是从客户那里圈钱(在外部采购中时有发生),或是简单的制定系统规范,因为系统要交付给另一个团队去实现。更糟的是,一些项目仅仅是出于政治上的考虑,它的目的就是让别人感到他们正在做这件事,至于要做出来什么东西却根本没有考虑。软件开发的目标应该是生产出满足客户需求的有效的软件系统-如果你的目标不是这样,AM就不适合你。
你需要有stakeholder的积极支持和参与。Fowler同样认为,敏捷软件开发工作要想成功,需要有project stakeholder的积极支持和参与。Project Stakeholder是那些受软件项目的开发和/或部署潜在的影响的人。包括直接用户,非直接用户,经理,高级经理,操作人员,支持人员,测试者,和这个系统有关(整合或交互)的其它系统的开发人员,以及维护人员。AM要想成功,你需要了解你的Project Stakeholder是谁,你还要能够和Stakeholder保持日常的接触,Stakeholder能够及时的为你提供信息、做出决策。此外,还应该要有管理层的大力支持。
开发团队能够自我决策。敏捷软件开发,特别是敏捷建模,对大多数的组织来讲都是新生事物。接受敏捷方法对大多数的组织来讲都是一件很难的事,因为它对大多数人来说都是一种新的工作方式。想要成功,我的经验是,不管成功还是失败,要根据项目团队的优点,给他们机会。鼓励他们尝试新技术,给他们资源(包括时间),让他们开始学习。应该尽量杜绝玩弄权术的现象,这就意味着组织中的管理层和一些部门要改掉原来的做法。
要有真正的AM斗士。不论何时,接受新的事物总会面临着挑战。人们不愿意改变,他们喜欢、他们也习惯了以前那种繁琐的慢节奏的工作方式。他们和你看事情的角度不同,你希望引入敏捷方法来解决问题,而他们不认为那是问题。也许他们会改进自己喜爱的开发方法,但这些方法和AM格格不入。也许,AM威胁到他们在组织内的权力分配。即使不考虑这些情况,也还是会有人抗拒变化。要想成功的改变,必须要有真正的AM斗士。他们支持AM,为AM奋斗,他们愿意去收集Project Stakeholder的支持,他们愿意进行AM思想的宣传和培育,让AM能够在组织内生根发芽。改变需要时间,这些斗士就是在争取时间。
你需要负责、主动的开发人员。Fowler指出敏捷软件开发强调开发人员的纪律性,要求开发人员能够协同工作,开发高质量的软件。这意味着你需要一个健康的团队环境,人们能够相互信任,相互帮助,共同迈向成功。和那些敏捷开发方法的诋毁者告诉你的完全相反,你需要的人并不是一个个都要求能上天入地。根据我的经验,你的要求很简单:愿意完成工作,有合作精神,能够有效工作。
你需要有足够的资源。你现在知道了敏捷建模需要人们的紧密合作。就是说你需要“协同开发的空间”,例如能够使人专注于工作的建模室,一堵能够演示模型的公用墙,最好还能给每对开发人员配置一台共享工作站。除此之外,你还需要有足够的建模工具,例如白板、索引卡片、标记、和其它必须的CASE工具。我就曾经看过由于基本资源(像样的椅子,桌子,食物,饮料,和高端工作站)的缺乏,使软件开发工作的进展受到阻碍。如果你的项目团队因为这些锱铢之事导致失败,那我倒是想问问你这项目对你的组织是不是真的那么重要。如果不是,那就cancel它,把你的精力投入到其它更有价值的项目中去吧。
但这不是我的情况....
那么,当其上的一个或某些条件和你目前的情况有出入的时候,你该怎么办?试着去改变你目前的情况。缺乏AM的拥护者吗?那你自己就可以成为一个拥护者。不允许以迭代式和递增的方式工作,和你的老板们谈谈,让他们相信这是一种更好的工作方式,要求他们给你一个机会去证明。没有足够的资源?和你的头儿说明它们的重要性。如果你已经尽力改变了所有的情况,但是仍然还有一些条件是你无能为力的,你可以试试以下的选择:
文章来源于领测软件测试网 https://www.ltesting.net/