2015-09-24 11 views
0

Я только что закончил два дня гибкого/scrum коучинга на работе, что было здорово. Я начинаю профессиональное программирование, поэтому мне это нужно. Тем не менее, я очень сильно борюсь с понятием вертикальной резки. В частности, я не вижу, как схема базы данных может появиться у нескольких разработчиков, работающих отдельно по всем уровням развития (спереди и сзади)? Проектирование схемы базы данных всего за один раз называется горизонтальной нарезкой, и считается не-нет. Я знаком с реляционным отображением объектов - немного - от работы с такими фреймворками, как Grails. Но опять же, я все еще разработал схему и работал оттуда.В Scrum, как вертикальные срезы работают с базой данных scemas?

Чтобы быть ясным, я не спорю против дела для гибкой/схватки/вертикальной резки, скорее я спрашиваю, как это возможно? - в частности, когда приходит отображение объектов в схему базы данных, как это может быть сделано несколькими разработчиками в тандеме, а не с самого начала?

Эта статья, которая мне действительно нравится, - если я прочитал ее правильно - предположим, что схема базы данных должна быть разработана на этапе весеннего планирования до того, как будут выполнены какие-либо истории пользователей. 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-appro -website к спросить-о-управления проектами-вопросы/343841 # 343841). Задайте эти вопросы на [SoftwareEngineering.SE] (// softwareengineering.stackexchange.com/) и [ProjectManagement.SE] (// pm.stackexchange.com/). (Вы также можете отметить вмешательство модератора, чтобы этот вопрос мигрировал.) – robinCTS

+0

Я думаю, что никто не понимал этот вопрос. Мы можем перефразировать его так, чтобы он действительно соответствовал SO. Вам нужен инструмент, который не позволяет вам одновременно обновлять базу данных. Например: https://dbup.github.io/ –

ответ

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

Проворный подход - это компромисс. Говорят, что мы хотим приспособиться к изменениям, но взамен мы готовы не слишком привязываться к одному конкретному направлению. Учитывая неизменные требования, ваш подход, вероятно, будет лучшим. Но если вам нужна гибкость для предоставления рабочего программного обеспечения при первой возможности, вам может потребоваться скомпрометировать этот подход. –