|
许多软件开发组织正在他们的项目上利用外包开发资源。随着企业开始采用敏捷方法和精益方法来开发程序,经常出现的问题是,外包适合敏捷环境吗?答案是 – 这是有可能的,但是需要深谋远虑和谨慎的执行来确保成功。在这个由两部分组成的系列文章中,Tony Grout 将分享他的经验,介绍敏捷外包在哪些地方可能是有效的,以及为了达到最佳效果,必须将那些关键要素准备就绪。www.mypm.net
一般而言,在敏捷外包中最有效的组织,是那些在文化和组织方面已经飞跃到敏捷,并且在制度上已经有一些敏捷经验的组织。但是,如果您不具备这样的技能,并需要外包那些关键应用程序(面向客户并且真正运作业务的应用程序),以下技巧可以帮助您获得更大成功。项目管理者联盟
技巧 1:展示非功能性要求项目管理者联盟
一开始就在项目中尽可能早地展示一些非功能性要求,并以您将要使用的实际开发环境作为这些要求的根据。例如,我前面介绍的网上警队项目,他们可以制作一个用户故事(即,一组与特定利益相关的需求)说明警务人员如何能够在不到两秒钟内在屏幕上显示凶徒的详细信息。为了做到这一点,他们必须演示基础架构上的所有应用程序如何互相连接,以及它们如何处理安全问题,等等。bbs.mypm.net
顺便说一下,如果您不熟悉 “用户故事” 这个敏捷概念,我先简单介绍一下:用户故事是以其最简单的形式,根据用户使用系统的方式,描述用户如何从系统获取一部分价值。采用警察的例子,假设我要检索特定凶徒的详细信息,以便可以了解他们是否我所调查的这个罪案的疑犯。这本身就是用户故事;软件开发团队的工作是通过正在开发的软件的某些方面,提供这一块功能。项目管理者联盟
在这个例子中,“价值” 体现为能够从警察系统获得信息并显示在屏幕上。然而,某些故事将比其他用户故事有更多架构性或非功能性的意义。用户故事本身并不一定要专注于纯技术问题或非功能性问题的描述。用户故事可以是功能性或以业务为重点的(即,非功能性,就软件在与用户交互中的实际工作而言,这被称为 “用例”)。重要的是,用户故事与技术风险一直平行存在。项目管理者联盟
当您与合作伙伴进行外包和谈判时,您必须确保在尽早提供最大业务价值的故事与消除或减少最大技术风险的故事之间取得平衡。www.mypm.net
技巧 2:选择一个(或两个)合适的供应商training.mypm.net
事实是,开始时您并不知道自己是否选择了合适的外包合作伙伴,除非您 a) 在之前的组织中曾与他们合作,或 b) 有关系非常密切、信得过的人在其他组织中曾与他们合作,或在您的组织中曾与他们合作。项目管理者联盟
大多数外包系统集成商都有可用的交付实践。您需要首先寻找那些拥有最好的敏捷经验,经常做这项工作的人。您可能无法保证使用最好的资源,但您应该总是首先询问,是否可以使用最好的资源。如果您使用 规范敏捷交付 方法,我认为毫无疑问,这将比传统的外包合同更有效。项目管理者联盟
如果您的外包合作伙伴准备构建软件,假设,他们每个月都可以为您构建一点,他们应该能够生成自动的构建记录。根据您的托管位置或他们是否能够访问您的环境,他们应该能够将代码发送给您,并部署到您的环境中。他们应该经常或定期这样做,以便您可以查看实际的工作进展,而不是一直等到结束。项目管理者联盟
使用敏捷的优点是,它让您能够看到,您首选的合作伙伴将根据该协议在其第一次迭代的最后期限前交付。如果您有一个关键项目需要正确且快速地完成,与两个不同的供应商并行配合,可以帮助您快速评估哪一个会交付最好的结果,并在继续之前为您提供更多信心。这使您能够在发现他们都没有交付时更早换一家,或通过自己的力量更快速将他们组织起来,并要求他们重新分配敏捷资源给您的项目,替换那些他们已分配给您却显然无法交付的人员。这将供应商的选择紧密联系到敏捷核心原则之一,即经常交付可用的软件。service.mypm.net
技巧 3:根据敏捷交付方法调整合同项目管理者联盟
确保您手上的合同,允许您通过迭代而不是按整个项目来选择外包供应商;这使您可以在该过程中更早地按需要灵活地换供应商。合同必须允许将付款和交付的例外条件与迭代或迭代次数关联起来,让您可以管理因需求变更而涉及的风险。PgMp.mypm.net
确保您的服务水平协议 (SLA) 符合您所采取的敏捷方法。因此,要考虑的事情之一是,该协议的终止条款。如果您设置了质量关卡,那么请使用这些关卡来管理您的关系,特别是在您需要能够撤销已签署合同时,需要这样做。项目管理者联盟
技巧 4:需要工具实现真正的协作、可见性和可追溯性项目管理者联盟
从纯粹敏捷的角度来看,我们的目标是尽可能快地向业务提供业务价值。但是,我们也需要加强我们自己作为 IT 组织和作为一个企业的知识。毕竟,敏捷来自能够迅速了解情况,然后是能够制定决策。良好的工具使您能够快速找到信息,并根据这些信息制定决策。我不会在此刻谈论商业智能,我会讨论能够找到记录所有元素如何互联的架构资产,即,它们是如何连接在一起,应用服务器中的编码要做什么修改,才使这些东西工作得更好或更快,或者如何链接到第三方系统。项目管理者联盟
敏捷方法代表了软件开发的一种根本性的协作、全团队模式。该协作方面极其重要,它本质上是有效的沟通能力。正如 Walker Royce 所说,软件开发更像是拍一部电影,而不是建一座桥。这是一个协作的智力运动,并不总是要小心地遵循脚本。它是创造性的,您必须能够与实现这一点的人进行沟通。项目管理者联盟
工具为什么重要?那么多的时间浪费在差劲的移交上,并且缺乏找到文档并端到端跟踪这些文档的能力,不像这些构件本身具有的那种端到端跟踪的能力。好的工具让我们能够开始标记资产,使您在软件交付项目的过程中可以确定谁拥有什么,谁负责什么。项目管理者联盟
经常会使用开源社区中的工具,但这些工具并没有很好地针对特定专业领域。例如,一个开源工具可以在小型同站环境中为您提供令人满意的代码管理。然而,一旦您开始将代码块链接到测试用例,您就可能会发现,开源工具难以实现跨组织边界的协作。您希望连接尽可能容易,使团队花费更多的时间解决问题,而不是试图找到特定构件在哪里、已修改的是什么、有关特定资产的注释在哪里。项目管理者联盟
端到端的可追溯性始终是重要的,当您采用外包时可能甚至更重要。对某个想法能够从业务层面一直跟踪到正在运行的代码,甚至跟踪到在磁盘上某个位置上旋转的数据,基于一系列原因,这是极其重要的。例如,如果合同规定了一个固定的价格,并且有基于工具的项目变更控制,您将获得可追溯性链接,将不断变化的需求映射到相应的代码。项目管理论坛
这是在业务层面和合同层面的可追溯性。一旦您开始扩大,必须处理许多问题(如跨组织边界与合同、付款、时间表),可追溯性就变得更加重要。如果您正在构建的资产预计将有一定长度的寿命,则尤其如此。如果房间里有六个人,您正在创建下一个搜索引擎,您可能不会考虑重用。您明年就会扔掉这个算法,然后再做一个更好的。但如果您在一个组织中与 300 个人合作,就会考虑具有 60 年潜在寿命的核心银行系统。项目管理者联盟
因此,无论它是代码可追溯性的传统要求,还是通过人与系统的更高层次的可追溯性,敏捷实现的重点就是使它尽可能顺利并在适当的层面处理它,而不只是为了实现而实现。这是真正的敏捷性,能够快速制定决策,而可追溯性则为您提供了这种速度。项目管理者联盟
技巧 5:需要可见性和可追溯性支持信心项目管理者联盟
从本质上讲,为了成功地外包一个敏捷项目,您必须相信报告、管理信息和关于工作进度的商业智能。我们讨论了可追溯性的重要性,这是项目成功的关键,但您还需要拥有对真实工作情况的可见性。blog.mypm.net
|