Agile,敏捷开发被越来越多的开发企业和团队所接受。敏捷恰当,可以显著提高开发效率和产品的开发周期。问题是,“敏捷”方法是否能适用到软件外包行业,这个争论由来已久,各有说辞。最典型的争论就是,作为外包的一个显著特点,用户和开发团队是相对远程,甚至开发团队内部也存在远程的问题。如果一个团队不能身处一室,其中强调的沟通和互动是否能够得到有效的执行,是一个大问题。
这个问题也是Taskcity一直致力于解决的课题。下面是我们的一些理解。
传统的外包商业环境,是客户和服务提供方达成一个长期的合同,基于一个相对较长的阶段,提供稳定的外包服务支持。现在,越来越多的企业客户开始考虑将外包项目划分为小的可执行单位。风险可控,操作灵活。而服务提供方相对也达成了这个共识。其实,这两种情况,如果通过敏捷的开发模式,在一个长期的合作过程中,大家会发现,Agile不仅可行,而且的确能形成一个双赢的局面。一起来看看我们的发现吧。
方法恰到好处
如果我们追求看到一个项目完成的效率和效果,敏捷开发其实优于传统的开发模式,即便对于初次接触这个概念的发包客户亦如此。我们大家都知道,在很多情况下,发包客户和服务提供方在涉足将项目外包出去开发之前,都拥有自己比较熟悉的开发模式和方法。敏捷开发或者说增量开发,可以让双方很轻易的统一到一个接口。传统的开发方法基本上都是基于一个反复推敲的合同,合同中对于功能设计以及权利义务定义原则上都进行了仔细的定义。但是,根本的问题是,很多用户在项目开始前,甚至开始的初期都没有一个明确的,或者说准确的描述。这样,很多时候,客户为了保护自己的利益,会尽可能多的添加功能到这个项目书中。而开发服务提供方考虑的是如何在自己的成本控制内得到尽可能多的盈利。在一开始,其实就为双方日后的纠纷埋下了种子。我们能看到,在传统的开发外包中,相当比例的项目最后,即便完成交付,完成支付,最后双方的心情都是不太好。敏捷开发强调了阶段性交付,增量开发,用户互动。最后的交付物有时和原始的设计已经有了很大的出入,但是客户贯穿了整个开发的周期,了解了所有的变动以及缘由,其满意度甚至超过一个100%吻合的交付结果。用户的满意度和开发完成的代码量不是直接的因果关系。而在软件外包行业中的同行们都知道,一个满意的客户意味着可能的后续项目,而这也是服务提供方最希望看到的结果。
沟通的威力
肖伯纳有一句名言“England and America are two countries divided by a common language。”意思是英国和美国是被一个相同的语言所分隔的两个国家。这里不是指的地理上的分隔,而是文化沟通上的差异,即便他们都说一种语言。英美尚如此,何况作为一个典型东方文化代表的中国和我们的欧美客户呢?不同的时区,不同的文化,不同的工作方法和原则,导致沟通成为了我们进行海外外包的一个瓶颈。敏捷开发既强调了沟通,又为顺畅的沟通提供了方法和指导。其中持续的交付实际是在用实实在在的形式进行了项目的沟通,从而降低了最后的交付风险。想想吧,作为传统开发模式,比如一个瀑布式的开发,六个月后,客户才能第一眼看到自己想要的产品,这里面能产生错愕的概率有多大,大家可以想象一下。
迭代是趋于完美的过程
罗马不是一天建成的。不要尝试对完美的一步到位,除非你的用户愿意牺牲宝贵的进入市场的时机。外包开发不象是一个公司内部的开发团队的管理模式,对于离岸外包而言,双方远隔万里。所以我们的建议就是,只用尽最大可能不断地从客户那里得到进程中的反馈,进而对开发加以修正,才不会出现最终和用户意愿的大偏差。在双方可以接受的情况下,定义一个一个短促有效的迭代过程,第一时间发现问题,放到下一个迭代中去解决。一个典型的迭代包括计划-设计-反馈-执行(PDCA)。
勇于面对改变
需求变更在整个软件开发的生命周期中是一个永恒的话题。也是客户与服务提供方最纠缠不清之所在。改变的导火索可以来自方方面面,既有可能是一觉醒来后的灵光一现,也有可能是来自客户外部商业环境的改变。既然是现实,就接受它吧。当然,处理得当,这种变化可能协助双方得到一个更优秀的软件,也能让客户对你的快速应变产生好感。否则,如果固守原始的设计稿件,或者永远作为一个新功能要求追加资金,有可能得到一个Case,却失去一个用户。另外,我们总是陷在一个自己预设的陷阱里,客户的要求改变永远是对功能的增加。其实,一个过程中的再设计,有可能会降低开发的成本。
质量保证,真的吗?
听起来像是玩笑。敏捷开发这种快速交付,还能保证质量,象是天方夜谭。其实不然。快速交付,让用户能够尽快试用你的功能,尽快发现问题,就整个开发周期而言,整体质量一定会得到提升。在传统开发模式中,我们都会或多或少遇到这样的情况,因为开发时间的拖延(总是会拖延,这不可是玩笑!),测试时间永远是第一个被压缩的阶段。结果可想而知。更多的迭代引入了更多的测试周期和时间。
和Taskcity一起来“敏捷”吧!
当然,在具体执行的技巧中,在外包行业或国际外包项目中引入敏捷的开发思想,还有一些需要注意的地方。但是,远隔重洋的地理分离,如果再加上在开发流程中的用户与开发方的长期“分居”,结果就会是这样 :没有一方会满意。所以在Taskcity(给个链接)平台,我们从一开始就确定了在我们的在线项目管理工具和协同工作工具中引入敏捷的思想和原则。我们的海外Buyer用户到目前在项目的评价中都保持了一个惊人高的满意度,首先是Taskcity平台Provider用户的用心,从我们的反馈看,和我们的在线敏捷项目管理工具也是密不可分的。
原文地址 http://blog.taskcity.com/?p=40
分享到:
相关推荐
### 敏捷项目管理概述及最佳实践 #### 敏捷项目管理的概念 敏捷项目管理是一种以用户需求进化为核心、采用迭代、循序渐进的方法进行项目管理的方式。它强调在整个项目周期内持续地评估和调整策略,以确保最终产品的...
在软件开发项目管理中,敏捷模式的引入是应对复杂性和快速变化的一种有效策略。敏捷模式强调灵活性、迭代开发和持续的客户反馈,旨在提高效率和响应能力。以下将详细阐述敏捷模式在软件开发项目管理中的关键知识点:...
在全球化和信息化快速发展的当下,企业为了提升核心竞争力,实现业务敏捷化和灵活性,越来越多地选择将非核心业务通过外包形式交由专业第三方服务公司来执行。其中,IT外包服务方案作为一种常见的商业模式,已经在...
3. **敏捷开发与DevOps**:在软件开发领域,敏捷方法和DevOps文化的普及促使外包服务更加注重协作、快速迭代和持续交付。这要求外包服务商不仅具备专业技术能力,还要有良好的团队协作和沟通能力。 4. **数据安全与...
3. 国际标准与最佳实践:ISO标准、CMMI模型、敏捷开发方法在外包项目管理中的应用。 4. 文化差异与沟通挑战:如何有效管理和协调跨国团队,处理文化差异带来的问题。 5. 风险管理:识别和应对外包过程中的技术、法律...
徐毅在演讲中分享了他的个人经历,从早期的开发、外包、ERP和CRM测试,到2005年加入Scrum,参与敏捷测试。随后在2006至2007年间经历角色的转变,加入到Scrum Master和敏捷教练的工作中,并在随后几年积累丰富的实践...
- **主要内容**:涵盖了测试工具与技术、测试组织与测试人员概况、外包趋势、从敏捷开发到敏捷交付、云应用部署、行业趋势等内容。 - **行业覆盖**:报告特别关注消费品与零售、分销与物流、金融服务、公共部门、高...
4. **敏捷开发和DevOps**:敏捷开发方法强调快速迭代和客户反馈,而DevOps则强调开发和运维团队的紧密合作。这些新的开发理念和实践推动了外包服务提供商提供更高效、更协同的服务。 5. **人工智能和自动化**:AI...
5. 适应市场变化:外包能帮助企业快速响应市场变化,提高业务敏捷性。 6. 提升服务水平:专业外包服务商通常能提供更高效、专业的服务。 7. 加速业务重构:外包有助于企业快速进入新业务领域,减少重构成本和时间。 ...
在IT行业中,对日软件外包是一项重要的业务领域,它涉及到为日本公司开发和维护软件解决方案。这个主题涵盖了一系列技术和管理层面的知识点,包括但不限于需求工程、项目管理、跨文化交流、软件开发过程、质量保证和...
这意味着随着敏捷实践的普及,对外包服务提供商而言,具备敏捷软件交付能力将成为一种必需而非选择。 综上所述,《第十三次敏捷年度报告》揭示了敏捷方法在全球范围内的广泛应用以及未来发展的趋势。Scrum与SAFe®...
9. 跨国团队和外包团队的敏捷实践:在离岸开发模式下,如何保持团队的敏捷性和沟通的效率成为一项挑战。文档中介绍了跨国团队如何协作以及外包团队在敏捷实践中的经验分享。 10. 技术债务和敏捷实践的挑战:技术...
6. **费用核算**:预估研发成本、外包费用(如果有的话)以及采购成本,为项目预算提供依据。 需求确认书的签署代表了所有关键干系人对项目需求和计划的同意,为后续的敏捷开发过程提供了一个坚实的基础。在整个...
良好的沟通和协调机制能确保外包团队与公司内部团队之间的工作流顺畅。敏捷开发方法,如Scrum或Kanban,可以帮助团队快速迭代,及时响应需求变更,同时保持项目的透明度和可控性。 最后,测试和质量保证不容忽视。...
这种合作模式不仅有助于企业有效地利用外部资源,提高测试效率,还能在控制成本的前提下获得更好的服务质量。科技公司可以通过此协议的实施,进一步巩固自身在市场中的竞争力,保持敏捷和创新的能力。 总而言之,该...
除了上述的测试基础知识外,还需要了解如何在不同的项目环境中协作,如敏捷开发中的测试实践、版本控制的使用、与开发团队的沟通协调等。 5. **英语面试题.txt**:由于华为的国际化背景,英语沟通能力通常是必备的...
在IT行业中,面试是评估求职者技能和知识的关键环节,特别是对于外包人员,这一过程尤为重要。2014年,外包人员面试时,测试类题目是常见的一种考核方式,这通常包括选择题、多选题和判断题等形式,旨在全面考察候选...
- **合同和协议**:合同应包含DevOps相关的条款,明确双方在敏捷开发、自动化测试、持续集成和部署等方面的责任和期望。 - **协作工具**:使用统一的工具平台,如版本控制系统、问题跟踪系统和CI/CD工具,以便于跨...
2. **敏捷开发模式**:越来越多的企业倾向于采用敏捷开发方法,以便更快地适应市场需求变化。 3. **云服务集成**:随着云计算技术的成熟,云服务将成为软件外包项目中的重要组成部分,帮助企业实现资源共享和成本...
3. **2018年初至年末** - 深化DevOps改革,引导合作商转向敏捷和精益转型,推广远程开发和云端调测模式。 4. **现在及未来** - 继续推进DevOps实践,提升效率和质量。 **阶段1:容器化 (All in Containers)** - ...