2015-03-31 49 views
-2

我公司坚持将SCRUM作为维护和扩展代码库的开发过程。SCRUM和传统/高度耦合代码

我们的代码库没有文档,用各种技术和高度耦合(各地的全局变量,在后端有大约800个Oracle PL-SQL存储过程的程序性JavaScript代码,没有对象,隐藏的假设等)编写。当然没有单元测试。而且,开发团队是新的,对现有代码没有经验,并且绝对不是跨功能的,因为他们每个人都具有特定的技术知识(例如JavaScript,但没有PL-SQL)。

当我们第一次试图引进SCRUM几个月前,我们悲惨地失败了,因为

  • 没有想给估计,因为他们没有任何的代码,因为变化
  • 编写单元测试是不可能的知识添加单元测试需要,给出的代码库需要重构
  • 建立一个适当的测试环境也对自己 (收集测试数据等),一个巨大的努力
  • 没有想尝试到c个月属于“外国”技术的手机代码(例如一个接触php部分的SQL人)。

另一方面,用户故事确实以可用的形式出现,我们有一个相当不错的流程来记录和解释开发团队的需求。

鉴于上述情况,我认为SCRUM可能不是最好的前进方向。不过,我想看看有没有人有计划提出如何在这样的环境中接近SCRUM。

+0

如何使用SCRUM特别是遗留代码库的问题?问题与您选择的项目管理理念有何关系? – Matthew 2015-03-31 19:23:55

+0

我的理解是SCRUM需要在sprint结束时测试用户故事的实现。鉴于代码库不支持单元测试(这就是我称之为遗留代码的原因),问题是我们是否可以采用SCRUM。我们应该花费太多时间重构要进行单元测试的代码,或者提供未经过单元测试的用户故事。 – user2465039 2015-03-31 19:30:52

+1

还有其他类型的测试可以在不易于单元测试的系统上完成。有很多可用的集成测试框架。迈克尔羽毛的“与遗产代码有效地合作”也许是一本好书。 – Matthew 2015-03-31 19:56:46

回答

1

Scrum是一种产品开发框架/方法。代码的好坏无关紧要。或者即使有这个问题的代码。你可以使用scrum方法来写一本书(this book实际上是使用scrum创建的)。

上次失败的原因是scrum没有正确执行。通常在引入scrum时,它不会100%实现。

Scrum是一个框架,所以人们无法真正地挑选并按照自己喜欢的方式进行改变。这就好像你在下国际象棋,但改变了一些规则,使游戏更容易。它不这样工作。

从技术上讲,估计,单元测试和用户故事不是scrum的一部分。但是它们通常与Scrum一起使用,因为它们是有用的工具。 Scrum的核心描述为here并概括为herehere

为了成功实施,您的公司需要至少派一个人参加认证的ScrumMaster®课程或雇佣Scrum教练。

如果实施正确,但scrum可能潜在地提高您的产品质量。 Scrum是现代产品开发(尤其是软件开发)框架。我们不能保证Scrum能够解决您的问题,但是majority of organisations使用scrum进行软件开发是有原因的。

0

认证是证明你跟着当然,不是说你擅长你做什么 好笑:)
的Scrum解决方案:
步骤1.建立多职能团队,每队作为尽可能多样化的专业。引入'结对编程',让人们互相学习......
第2步。将您的'代码库'视为一个新的MEGA项目!你的Scrum团队开始用模块来处理它:当时一片。
第3步。组织每个模块以包含来自'代码库'的一个应用程序并处理它:初始评估,冲刺计划,产品积压等。 - Scrum!
您的XP解决方案:
第1步。带上XP教练来培训您的员工!几天的强化训练可以让你从头开始(用右侧的教练)。您将拥有跨职能团队,配对编程,连续迭代等。
第2步。将您的“代码库”视为一个新的MEGA项目!你的XP团队开始在模块中处理它:当时一片。 (敏捷,我爱你!)
第3步。保持教练方便前三个月...你需要他!
享受!

+0

我真的很感谢答案。不过,我认为你重新执行了我最初的想法。具体来说,我认为SCRUM不能应用,因为:步骤1不能执行(团队不是多功能的,正如我所说的),步骤3不能执行(高度耦合的代码不允许组织模块包含我们的一个应用程序代码库)。我错过了什么吗? – user2465039 2015-04-02 17:29:41

+0

不知道您的工作环境和项目的最贴心的细节我不能确定任何的Scrum或XP或RUP或DSDM或任何其他敏捷或瀑布方法可以在您的情况下取得成功。我所说的是我的答案中给出的步骤是在AGILE环境中的合理步骤!如果你(不管是公司还是技术团队)不愿意,或者你不能接受这些,那只不过是你掌握的。 – 2015-04-02 23:07:12

+0

敏捷使您能够随着公司和个人而变得灵活 - 如果您的公司和团队的最佳利益是学习更多语言,而不是敏捷实践者,那么您只需要为此付出努力。配对编程存在的主要原因之一是技能交流(除了沟通和双重焦点 - 一个人在代码上,另一个人在正在进行的工作的整体形象上......)。 – 2015-04-02 23:10:40