Naresh Jain谈印度敏捷
Naresh Jain是 印度敏捷软件社区的创始人,也是即将来临的 敏捷印度大会的主席。我们联系了Naresh,讨论了印度公司敏捷方法的应用现状以及前路几何。
InfoQ:你觉得敏捷在印度的应用现状是什么样子的?
Naresh Jain:很疯狂!就像印度的交通系统——控制下的混乱!人们需要有欣赏者的眼光才能发现它的美!
在过去的7年之中,我已经看过了很多公司逐渐地试水敏捷,并开始嬉水。绝大多数在印度的机构,无论是大型IT企业、小型公司,抑或庞大的离岸研发中心,他们已经100%地受到敏捷方法的影响。
就像在世界(即使在亚洲)其他的地方一样,产品公司的敏捷实施都更加严肃和严格(但不一定更成功)。
如果你访问不同的公司,并且真正 去与不同层次的人去交谈,他们会告诉你迄今为止他们的疯狂行径。埋怨外包工作的性质、缺乏对这些方法的了解、层级式的社会或者在某些情况下就是简单地无法 胜任。[以下为嘲讽]只有我们参加了为期3天地Scrum Master培训,世界才会是一个更为宜居的地方。[嘲讽结束]真相是事实是,旅程才刚刚开始,真正有趣的部分尚未来到呢!
InfoQ:您是否认为敏捷仅仅在创业公司和小型软件作坊里面实施得很到位,或者它正在进入大型公司?
Naresh Jain:关于星星之火的事实之一是,在传播的时候,它会向各个方向传播。今天,我 看到95%的印度软件公司都是在耍敏捷。现在的流行趋势是说我们在正确地实施敏捷?当我看到公司迈向敏捷时,在某些情况下是由于绝望,在某些情况下是由于 客户或现场压力,而在某些情况下,则仅仅是一个营销噱头。有时候感觉它似曾相识。难道我们在十年前的CMM身上没有看过类似的事情吗?
不过,我很幸运地与几家真正相信敏捷精神的公司合作。他们了解它不是在“做”敏捷,而是在“变得”敏捷。一个说起来非常禅意的东西!
InfoQ:印度当前最丰厚的利润行业之一是IT行业。大型外包项目通常必须包括大量的前期工作以决定项目范围,并在整个项目周期里面仔细地控制。敏捷是否可以应用于外包项目?
Naresh Jain:我们人类建立“东西(stuff)”的心理模型,并尝试将我们周围的世界适配到这种模式。
几年前,软件开发的心理模型是“装配线”。这个心智模型的展开如下:
第1步:计划和制定策略(在这里和那里加一些幻想)
第2步:记录每一个小细节
第3步:定义一个严谨的过程,让你如何像齿轮啮合一样严丝合缝地对待人
第4步:寻找廉价劳动力
第5步:将工作交给他们,定义非常严格的“做什么”和“不做什么”的合同
第6步:定义最佳实践来管理执行
第7步:迭代...
第8步:直到获取美妙的结果
不幸的是极少数项目的存活能超出第7步。大多数人在野生求生存。
除了许多其他的缺陷,这种模式下低估了信任、共识、集体所有权、自豪感以及适应性的重要性。
无论外包与否,这些项目都是注定要失败的。[以下为嘲讽]当然,离岸外包给你最好的炸药包。[嘲讽结束]
事实证明(至少对我来说),分布式开发是非常困难的。离岸更是困难,外包和离岸则是最难的。然而,正如我们所看到的,离岸外包模式对于某些业务和管理仍然合理(但不适用于所有的项目)。
鉴于不得不妥协的现实,我见过敏捷和精益思想对于如下情况相当有帮助,例如:
恕我直言,敏捷和精益思想已经把大量的注意力吸引到了外包开发模式的一些非常重要,但往往被忽视的方面。并且还大大减少了流程中的一些痛苦。我们仍然有很长的路要走。
- 我们很难预先明确地计划太多。敏捷方法给你一个基本的模型来管理这种不确定性
- 我曾帮助组织实现一个轻量级的RFP流程。作为对RFP的回应,我们实际上提交了MVP(最小可行的产品),虽然价格3倍于其他人
- 越来越多的客户要求更短的发布周期和更多的参与
- 更好的双方透明度和伙伴关系在一些外包公司是共通之处
InfoQ:外包项目的合同细节是怎么样的?客户的执行官都希望知道针对预算/时间线,她能得到什么,那你是如何与他们就合同进行谈判的?
Naresh Jain:往往,在信任度很低(首次合作)的情况下,客户想知道他们将得到什么,以及他们将何时获得X金额。在某些情况下,我认为这些要求很公平。
但真正的问题是,模糊的东西很难估算。在项目的开始阶段,我们掌握的知识量最少。
为了解决这个问题,我通常鼓励企业从 产品识别研讨会(PDW,product discovery workshop)开始。一般长约1-2周。我们最初与客户签订主服务协议(MSA,Master Services Agreement)。根据MSA,第一份工作合同(SoW)往往是针对产品识别研讨会。它有一个明确的开始时间、结束时间以及交付物列表。
在产品识别研讨会的结束阶段,我们会有一份高层次的发布路线图。从这个路线图,我们选择第一部分,做一些初步的研究(spike)和涉及工作量的估算(guestimate)。根据MSA,第二份SoW是针对路线图的第一部分。固定价格,固定日期。
这样,我们就将大型的产品路线图分解到小的SoW合同,并执行该项目。有时在PDW之后,我们可以为整个发布路线图签署一份单一的SoW。一切都取决于双方的信心程度。
这是我经验中的规划固定价格外包合同的敏捷方式。
InfoQ:敏捷社区有大量的方法/框架,如精益、Scrum、看板,您认为哪些在印度公司里面应用得更多?
Naresh Jain:Scrum看上去是最容易开始的。与所有其他的方法/框架相比,Scrum似乎对(中级)管理层的威胁最少。毕竟,在大多数的情况下,他们满握着金钱和决策的权力。与认证一结合,你就得到了一个杀手锏。 (一个真正的敏捷杀手!)
因此,毫无疑问,在亚洲和世界各地,Scrum似乎是采用(至少尝试采用)最广泛的敏捷方法。
但这究竟意味着什么?从现在开始,项目经理应该被称为Scrum master。团队应该将需求称为用户故事,而不是用例或任何他们曾经称呼需求的名字。每天晚上(以确保现场团队成员是“演习”的一部分)都有30-45 分钟的“演习”。一组新的精巧(昂贵)的工具。每个团队成员都是用新的所谓燃尽图的度量标准进行衡量。更频繁的后半夜和周末。(传统)测试人员的噩梦。每 隔30天左右,该团队就要展示他们在过去60天里一直试图构建的东西。而最好的部分是,“客户”可以随时更改自己的想法。
如果你问我哪个是最有效的方法之一,这问题极为有趣。
InfoQ:您认为哪些敏捷方法在印度的效果更为优秀?
Naresh Jain:空流程——如果公司停止追逐过程和方法,就好像它们能够真实地解决软件开发中的困难问题似的。空流程鼓励企业忘记流程,专注于自己的业务以及业务背后的人。
在敏捷孟买(Agile Mumbai)2010年会议上面,Sandeep和我举行了一个名为“ Monkey See Monkey Do”的研讨会,鼓励企业忘记并远离流程思维。
InfoQ:有些印度大学的课程表上已经出现了有关敏捷软件开发的课程,您能跟我们分享更多的一些信息吗?
Naresh Jain:在过去的7年中, 印度敏捷软件社区(ASCI)曾与在印度的很多高校一起合作,往教育系统中引入了敏捷概念。我们已经在印度的一流大学里面 举办过多次会议,以吸引更多的学者参与。我们已经给来自印度各地的教师组织了进修课程。
关于高校,果阿大学(Goa University)是一所脱颖而出的大学。他们试图使整个教育体系更加敏捷。此外,他们已经开始在他们的课堂项目上使用极限编程和Scrum方法。事实上,在即将召开的 敏捷印度2012年大会上,我们有两个来自于他们的演讲—— 高等教育中的敏捷实践:案例研究和 在软件工程课程项目上使用Scrum。
与之类似,其他高校,如PES工程学院(PES College of Engineering)、雅典卫城技术研究所(Acropolis Institute of Technology)、共生电脑学研究所和研究(Symbiosis Institute of Computer Studies and Research),安娜大学(Anna University)和巴黎圣日尔曼技术学院(PSG College of Technology)也都已在各自的编程课程中引入了各种极限编程的实践。
查看英文原文: Naresh Jain On Agile In India
译者 金明 是ThoughtWorks咨询师,SCJP,系统分析师。关注敏捷方法学,特别是敏捷实施和项目管理的实践。