SCRUM和传统/高度耦合的代码

时间:2015-03-31 19:09:21

标签: scrum legacy coupling

我公司坚持将SCRUM作为维护和扩展代码库的开发流程。

我们的代码库是未记录的,用各种技术编写并高度耦合(全局变量无处不在,程序javascript php代码在后端有大约800个Oracle PL-SQL存储过程,没有对象,隐藏的假设等)。当然没有单元测试。

此外,开发团队是新手,对现有代码缺乏经验,并且绝对不具备跨职能性,因为他们每个人都具有特定的技术知识(例如javascript但没有PL-SQL)。

当我们几个月前第一次尝试引入SCRUM时,我们失败了,因为

  • 没有人想要估算,因为他们不知道代码
  • 编写单元测试是不可能的,因为添加单元测试需要进行更改,因为代码库需要数月的重构
  • 建立一个合适的测试环境也是一项巨大的努力 (收集测试数据等)
  • 没有人想要尝试更改属于“外国”技术的代码(例如,触摸php部分的SQL人员)。

另一方面,用户故事确实以可用的形式出现,我们有一个相当好的流程来向开发团队写下并解释需求。

鉴于上述情况,我认为SCRUM可能不是最好的前进方式。但是,我想看看是否有人计划在这样的环境中如何处理SCRUM。

2 个答案:

答案 0 :(得分:1)

Scrum是一种产品开发框架/方法。如果您的代码好或坏,这并不重要。或者即使有相关的代码。您可以使用Scrum方法编写一本书(this book实际上是使用scrum编写的)。

您上次失败的原因是scrum未正确实施。通常在引入Scrum时,它不是100%实现的。

Scrum是一个框架,因此人们无法按照自己喜欢的方式进行选择和更改。这就好像你在下棋,但改变了一些规则,让你自己更容易玩游戏。它不起作用。

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

为了成功实施,您的公司需要至少派一名人员参加CertifiedScrumMaster®课程或聘请Scrum教练。

如果正确实施,scrum可能会提高您的产品质量。 Scrum是现代产品开发(尤其是软件开发)框架。无法保证scrum可以解决您的问题,但是majority of organisations使用scrum进行软件开发这一事实背后的原因。

答案 1 :(得分:0)

证明表明您遵循了课程,而不是您擅长做什么 funny:)
您的 Scrum 解决方案:
步骤1.建立多功能团队,每个团队尽可能具有不同的专业。介绍'结对编程'让人们相互学习......
第2步。将您的“代码库”视为一个新的MEGA项目!你的Scrum团队开始在模块中处理它:当时只有一个片段 步骤3.组织每个模块以包含来自“代码库”的一个应用程序并处理它:初始评估,冲刺计划,产品积压等。 - Scrum!
您的 XP 解决方案:
步骤1.带一个XP教练来训练你的人!通过几天的强化训练可以让你开始(与RIGHT教练一起)。您将拥有跨职能团队,结对编程,连续迭代等 第2步。将您的“代码库”视为一个新的MEGA项目!你的XP团队开始在模块中处理它:当时只有一个片段。 (敏捷,我爱你!)
第3步。前三个月保持教练方便......你需要他! 享受!