2015-09-24 19 views
0

我刚刚在工作中完成了两天的敏捷/ Scrum教练,这非常棒。我是专业编程的新手,所以我需要它。但是,我在垂直切片的概念上非常挣扎。特别是我看不到如何从几个开发人员跨所有开发层(前中间和后端)开发数据库模式?一次性设计数据库模式被称为水平分割,它被认为是否定的。我很熟悉对象关系映射 - 从与Grails这样的框架合作过来。但是,我仍然首先设计了架构并从那里开始工作。在Scrum中,垂直切片如何与数据库情景配合使用?

要清楚的是,我不是在反对敏捷/混乱/垂直切片的情况下争论,而是在问如何可能? - 特别是当数据库模式映射对象时,这怎么可能由几个开发人员共同完成,而不是从头开始?

我真的很喜欢这篇文章似乎 - 如果我正确地阅读它 - 建议数据库架构应该在任何用户故事实施之前的春季规划阶段设计。 http://www.vertabelo.com/blog/notes-from-the-lab/data-modeling-in-agile-development-one-data-modelers-experience

+3

我投票结束这个问题作为题外话,因为[项目管理现在在堆栈溢出主题](//meta.stackoverflow.com/questions/343829/is-stack-overflow-an-适当的 - 网站对问,关于项目管理,问题/ 343841#343841)。请在[SoftwareEngineering.SE](// softwareengineering.stackexchange.com/)和[ProjectManagement.SE](// pm.stackexchange.com/)上提出这些问题。 (您也可以举出主持人干预以迁移此问题。) – robinCTS

回答

1

这篇文章解释了它相当不错:http://blogs.adobe.com/agile/2013/09/27/splitting-stories-into-small-vertical-slices/

你不一定要有不同的人对每一块垂直切片的工作。更重要的是将每个部分分成更小的部分以获得增量结果。

从上面的文章:

每片由需要在架构层,以及可能需要做,使其准备发布任何测试和集成做任何工作。

+0

我实际上阅读了该文章,但它没有帮助我。将事情分解成更小的问题听起来不错,但我看不出任何方式来分解数据模式,并让几个人把它们放在一起,每个人都独立工作。 – COOLBEANS

+0

看到这篇文章:http://www.vertabelo。com/blog/notes-from-the-lab/database-modeling-in-scrum-teams,它给出了一个更好的解释。正如我所说的,在任何时候都不止一个开发人员在做一件事。 – lief480

+0

这样好多了。这句话的意思是:“在任务规划过程中,客户应该被告知创建功能涉及到数据库设计。此外,将设计作为用户故事的一个独立组件是一个不错的主意。”他是否说过架构不应该成为用户故事的一部分,它应该水平完成? – COOLBEANS

2

垂直切片的想法是,您需要提供一些功能所需的最小量。

现在可能是您为第一个故事需要做的最少数量的数据库设计就是完整的模式。但我认为这不太可能。

例如,要获得功能的第一个功能,您需要与认证相关的表吗?那么做审计的表呢?也许模式的某些部分与某些功能无关。假设您有购物篮应用程序,架构的一个方面与客户保存他们喜欢的外观有关。该模式的那部分可以留到相应的故事开始?

如果你有几个开发者遵循这种方法,那么它将需要大量的对话和协调。数据库模式的持续集成确实可以提供帮助。因此,当开发人员对模式进行更改时,会进行测试,以确保它不会干扰其他开发人员的工作。

+0

有趣。我明白你的意思。但也有人认为,那些依靠ORM而不是实体数据建模的程序员最终会遇到问题。我认为冲刺计划阶段的一个基本模式会给每个人一些基本的指导。你怎么看? https://www.reddit.com/r/programming/comments/3ikhn2/martin_fowler_on_orm_hate/ – COOLBEANS

+0

敏捷方法是一种折中。它是在说我们想要适应变化,但作为回报,我们愿意不把自己束缚在一个特定的方向上。给定不变的要求,你的方法可能是更好的方法。但是,如果您希望尽早提供工作软件的灵活性,您可能需要妥协。 –