项目交付为什么失败?-记我在某个项目中的迷思

上个项目接近尾声,我以developer的身份加入了现在的项目,姑且叫做项目A吧。说实话A项目蛮神奇的,干了一年多了只有一次release,8月初要进行第二次release了,但是测试环境还未搭建好。

该项目是个分布式团队,分布在成都和澳洲两个地方。由于成都这边团队都是清一色的developer,没有qa,严重阻碍了交付的进度。所以我跑到澳洲出差1个月来了解一下整个项目的context,并争取能找出一种解决方案来实现让成都团队中有人能够担任QA职责。目前已经在项目中呆了3周了,2周在成都,1周在澳洲。通过这三周的观察,我总结出了项目中目前存在的一些问题。

  1. 此项目是一个一个遗留系统,里面使用到的各种技术很多,有些技术很冷、很偏,维护起来较难。
  2. 此项目相关的依赖也比较严重,大大小小有将近10个依赖项目。
  3. 集成及系统测试环境搭建太晚,严重缺乏及时的端到端测试,导致大量卡被堆积在ready for test中,却没有足够的测试人员来测试。
  4. 由于data security的原因,成都团队无法触及集成测试环境及系统测试环境。(公司是一个保险公司,不允许客户数据被在澳洲以外的人看到)
  5. 成都团队对业务了解不深入(至少在客户这边看来),每张故事卡做完都需要澳洲团队review代码。
  6. 每个人看似都在认真工作,但交付完全跑偏,压力堆积在team leader, Iteration manager等人身上。

虽然我们称为敏捷团队,但这个团队怎么看也不像是敏捷团队。为什么会导致这么多的问题那?我分析了一下,觉得大致有两方面的原因。

  1. 由于特殊的data security问题,导致了项目不能满足敏捷团队中起码的开放原则。在一个敏捷项目中,首要的就是开放。无论是程序中的每一行代码,还是数据库中的每条数据,都不能是某人或某些人的私有财产,团队中的每个人都能有所触及,这样才不会引起项目中的盲点,导致一个对团队大多数人来说的黑区。而成都团队无法触及项目中的真实客户数据,直接导致了成都团队无法做真正的端到端测试,即使开发者也难对自己开发出的功能进行验证,只能mock掉大部分的集成点。
  2. 团队中的成员没有完全做到以交付为目标。敏捷项目中的最终目标就是以交付产品为目的。如果BA只管给墙上添加story,developer只顾埋头开发story,虽然每个人都在尽力做自己的本职工作,但story并没有很好的进入done column。这是因为由于多种原因,测试环境并没有尽早的搭建起来,大量story堆积到了测试环节,使得一个敏捷项目愣是变成了瀑布型。在这种情况的早期阶段大家就应该要有所觉察,developer应该停止开发story,而是协助QA尽早建立起测试环境,协助QA一起来做测试。大家应该一起关心当前项目的delivery的状况,找出其中的block并商讨出一定的解决方案。

既然存在这么多的问题,接下来应该怎么做那?我想应该从以下几个方面着手。

  1. 尽快建立起集成测试及系统测试环境,准备好测试数据,保证测试的正常进行。
  2. 和团队人员讨论出一种测试策略,比如采用给集成环境灌输fake data的方式使成都团队能避免或部分避免data security的干扰,能够开展测试。
  3. 基于上面几点,建立起端到端的自动化测试,使得QA脱离手工测试的苦海,完善我们的质量保护网。

希望自己能在剩余的3周onshore中能够有所进展。其实我比较鼓励大家在做自己手头工作的同时能够多多思考,不能将自己局限在某一个角色之中,这样子才不会日复一日重复昨天的工作,而是在工作中能够有所提高,提升自己的专业能力和职业素养。这些都是日后前进的宝贵财富。

时间: 2024-09-18 18:08:27

项目交付为什么失败?-记我在某个项目中的迷思的相关文章

《人件(原书第3版)》—— 01 此时此刻,一个项目正在走向失败

01 此时此刻,一个项目正在走向失败自计算机被广泛使用以来,编写出了数以万计的应收账款程序(Accounts Receivable Program).当你正在阅读这些文字时,可能又有数十个或者更多的应收账款程序即将完成.然而,此时此刻,一个项目正在走向失败!想象一下!一个没有真正技术创新的项目正在滑向失败的深渊.应收账款程序不过是一个"重复发明的轮子",经验老到的开发人员面对这样的项目总能驾轻就熟.即便如此,有时在项目中付出的努力却南辕北辙,最终将项目推向失败.假设其中一个走向崩溃的项

关于maven远程部署多模块web项目到tomcat失败问题

问题描述 关于maven远程部署多模块web项目到tomcat失败问题 主模块: <?xml version=""1.0"" encoding=""UTF-8""?><project xmlns=""http://maven.apache.org/POM/4.0.0"" xmlns:xsi=""http://www.w3.org/2001/XMLSc

webservice java-java webservice项目遇到连接失败问题

问题描述 java webservice项目遇到连接失败问题 请教各位大神,我们系统抛的问题,一直持续20分钟连接失败,是webservice项目unwinding noworg.apache.cxf.interceptor.Fault: Could not send Message. at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(Messag

VS2015创建ios项目,总是失败

问题描述 VS2015创建ios项目,总是失败,报这样的错误 解决方案

随手记新版项目记账 只需“记一笔”

当我们为了心中的"乌托邦",在都市的丛林里激流勇进时,生活的琐碎时常会让人迷失方向. 在旅途,忙装修,胶着在婚礼的筹备中,出差的路上,盘算着自己小本生意,抑或是算计着如何从工资里攒出首付--碎片化的生活场景里那些纷繁复杂的收支,经常亟待我们决策.唯有记录真实,才能做出更明智的选择. 如果能把串联在不同生活场景的收支,按照项目归类,高效管理,多出的那一份从容自会催动我们思索,让改变发生.随手记项目记账应需而生,它可以帮我们分门别类的高效管理特定时间里的收支账,让我们更从容的面对生活的变化

maven 项目tomcat启动总是报错,而且项目是直接从团队git仓库下的,是我的环境配置问题吗

问题描述 maven 项目tomcat启动总是报错,而且项目是直接从团队git仓库下的,是我的环境配置问题吗 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.github.diamond.client.spring.MessagePropertyPlaceholderConfigurer#0': Invocation of init method failed;

封装dll-如何把一个能够实现完整功能的C语言写的项目封装为DLL,然后在java项目中调用

问题描述 如何把一个能够实现完整功能的C语言写的项目封装为DLL,然后在java项目中调用 前段时间调试了一个C程序的源码,现在要在一个java web的项目中调用它来完成一个功能,求指点! 解决方案 考虑下jni,编译成so后,在java程序中引入即可 static{ System.loadLibrary("AirPos"); } 解决方案二: 但要注意路径问题,载入路径要指定正确,放置调用失败.

Nancy总结(二)记一次Nancy 框架中遇到的坑

记一次Nancy 框架中遇到的坑 前几天,公司一个项目运行很久的Nancy框架的网站,遇到了一个很诡异的问题.Session 对象跳转到另外一个页面的时候,session对象被清空了,导致用户登录不上.搞了两天,终于解决了.于是把它记录下来,以避免其他人也碰到这种情况. 起因 公司一个Nancy 框架 开发的web网站,以前一直都是好的,nancy 框架也用在了很多项目里面,基本上已经很成熟很稳定了,但是在前几天发布某个web网站的时候,竟然出现部分用户登录不上的情况.刚开始以为是人员的权限有问

php-根据甲方提供的关于项目需求的文档,乙方对项目的基本情况有了较为详细的了解

问题描述 根据甲方提供的关于项目需求的文档,乙方对项目的基本情况有了较为详细的了解 1)输入"ask.csdn.net"以CSDN用户身份成功进入问答首页 2)点击[提问]进入[提问题]页 3)输入[正确问题标题]内容 4)输入[正确的问题内容] 5)输入[标签]内容 解决方案 我的问题答案和你的问题差不多一样!你觉得呢!