离岸开发-进行风险管理

什么时候需要风险的管理?任何时候。

很多人做项目是保持的乐观的状态来作:这个简单,弄一弄就行了;那个不难,找个人做就行了。

有这么一句话:思想上轻视敌人,战术上重视敌人。

没错,我们可以保持乐观的状态来做项目,但是战术上则千万不能乐观。正所谓:生于忧患,死于安乐。

当一个项目开始的时候,除了明确工作内容之外,首先就要去找风险。其实每个项目都有风险,就看你能不能找的到。
找到了,那么风险造成的损失就会降低;找不到,那么在后期,这个风险随时可以造成一个大麻烦。

我们曾经做过一个项目,这个项目的特点是谁都没有掌握业务逻辑。因为我们要在一个既存的系统上做该修开发,而这个既存的系统又是如此复杂,我们没有掌握,onshore也没有掌握,就连有些功能客户也搞不明白。

于是我们就开始开发了。我们做影响分析,做设计,写代码,测试。过程是辛苦的,结果也是痛苦的:最终在产品环境出现了5个bug。

当然onshore不会满意,客户也不会满意。但是我们已经尽力了。

这里面出现的最大问题就是我们没有进行有效的风险管理。

其实offshore也是人,并非一个个都是天才,面对如此复杂的系统,在有限的时间内,完成大规模的改修开发是非常困难的。

我们最初应该就去分析这个风险,如果能识别出来这个风险,那么要报告上去,报告给谁呢?报告给所有负责的人:领导,onshore,甚至是客户。

目前这个风险就是:没有谁真正掌握这个系统。如果以当前的成本,当前的期限,最后难免会有bug。我们最终需要的结论是:

如果客户能接受,那么我们就做。否则,就需要增加成本和时间。

如果客户不能增加成本和时间,但是还要保证质量,那么onshore是否有什么方法避免这个风险,例如找个专家。
如果onshore也没有办法,那么领导是否有办法,如果增加人手,加班,当然最后这个项目利润会降低。
如果领导也没有办法,那我们也没有办法了,总之风险已经共享给所有有责任的人了,大家都了解这个风险,如果风险仍然不能规避,那我们就需要承担这个风险,责任者也就不单单是开发人员了,领导,onshore,客户,都会分担一部分责任。

在之后的项目,我们学会了风险管理。项目一开始,我们就会创建一个管理风险的文件。
后来的一个项目,同样是我们谁都不会的系统,我们只是掌握了皮毛,要进行开发的话,可以参考既存的一些功能。但是内在的实现,是否会有问题就很难把握了。

这个项目一开始,我们就分析到了这个风险,并且及时的把这个风险与onshore共享了。
onshore通常来说不会拒绝这种积极的态度,他们和我们一起想规避风险的办法。最后决定使用用户提供的数据在用户环境测试。如果用户提供的测试数据测试没问题,我们就认为我们的开发没问题。

onshore把这个风险和方案向客户进行了说明,客户也表示理解,同意了这种方式。
当然,这个项目进行的过程中,也有一些其他的风险,我们都及时发现,并且分析规避方法。最终,我们得以顺利的完成这个项目。

不过,风险管理是要修筑一个铜墙铁壁来保护自己的利益吗?

例如有一个项目,offshore考虑到了各种风险,每种风险都与onshore进行了说明。最后的效果就是不管出任何问题,责任都是onshore的。

这种风险意识与自我保护好是好,但是从onshore的角度来看,与offshore的合作太累了,最重要的是offshore体现出的价值太小了。

不要只是把风险管理当成是保护伞,同时思考、提出解决方案才是正确的方式。

风险管理,是一种有效的保护措施,保护了自己,保护了项目,保护了自己团队和onshore之间的信任关系。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
敏捷开发的落地实践可以通过以下几个方面来解决大团队、流程、测试、离岸开发、需求、估算等问题: 1. 大团队:对于大团队的开发场景,可以采用敏捷开发中的Scrum框架或者Kanban方法来进行团队协作和项目管理。这些方法可以帮助团队更好地分解任务、规划工作、跟踪进度,并提供透明度和沟通渠道。 2. 流程:敏捷开发注重快速响应变化和交付价值。因此,可以通过引入持续集成、持续交付的流程来实现快速交付和快速反馈。同时,通过敏捷仪式(如每日站会、迭代评审会、迭代回顾会等)来促进团队协作和沟通。 3. 测试:在敏捷开发中,测试是一个重要的环节。可以采用自动化测试工具来增加测试覆盖率和减少测试时间。另外,可以采用测试驱动开发(TDD)的方法,即先编写测试用例,然后编写代码来满足测试用例的需求,以确保代码的质量和可测试性。 4. 离岸开发:在敏捷开发中,离岸开发可以通过远程协作工具和有效的沟通方式来实现。可以使用视频会议工具、协同编辑工具和项目管理工具来保持团队的沟通和协作。同时,要注重清晰的需求文档和明确的沟通,以减少误解和提高效率。 5. 需求:敏捷开发中,需求是可以随时变化的。可以采用敏捷方法中的用户故事和故事点来管理需求。用户故事描述了用户的需求和期望,故事点用于估算任务的复杂度和工作量。通过优先级排序和迭代规划,可以根据实际情况来进行需求的调整和优化。 6. 估算:敏捷开发中的估算可以采用相对估算的方法,如故事点估算或者计划扑克估算。通过团队的协作和经验,可以对任务的复杂度和工作量进行相对的估算,而不是过于详细和精确的时间估算。这样可以更好地适应需求的变化,并提高开发效率。 总体来说,敏捷开发的落地实践需要团队的协作和灵活性。通过合适的流程、工具和方法,可以有效解决大团队、流程、测试、离岸开发、需求、估算等问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [敏捷开发的落地实践(大团队、流程、测试、离岸开发、需求、估算等问题的解决实践)](https://download.csdn.net/download/agiledo/5086277)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Learun-企业级敏捷开发框架规范](https://blog.csdn.net/congsha2642/article/details/100369028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值