Как Ведущее устройство Толпы “управляет” неконтролируемым Владельцем продукта? [закрытый]

Вы можете взять массив для нужных групп и связанных ключей и использовать итеративный и рекурсивный подход.

var data = [{ _id: "5c407834953d7f420d56f866", allocated_to: "FIELD", zone: "NORTH", state: "DELHI", location: "NEW DELHI", customer_name: "REET INFOTECH", bank_name_of_customer: "YES BANK", cl_contract_id: "LAI-00016881", lk_loan_account_id: "LK0000015094", front_end_manager_name: "SONAL", area_collection_manager: "ASHIS JENA", installment_date: "", collection_manager: "" }, { _id: "5c407834953d7f420d56f867", allocated_to: "FIELD", zone: "NORTH", state: "DELHI", location: "Sree Nagar", customer_name: "REET", bank_name_of_customer: "Corporate BANK", cl_contract_id: "LAI-00016881", lk_loan_account_id: "LK0000015094", front_end_manager_name: "SONAL", area_collection_manager: "ASHIS JENA", installment_date: "", collection_manager: "" }, { _id: "5c407834953d7f420d56f868", allocated_to: "FIELD", zone: "EAST", state: "Odisha", location: "Bhubaneswar", customer_name: "REET", bank_name_of_customer: "PNB BANK", cl_contract_id: "LAI-00016881", lk_loan_account_id: "LK0000015094", front_end_manager_name: "SONAL", area_collection_manager: "ASHIS JENA", installment_date: "", collection_manager: "" }, { _id: "5c407834953d7f420d56f890", allocated_to: "FIELD", zone: "EAST", state: "Assam", location: "Gawhati", customer_name: "REET", bank_name_of_customer: "SBI BANK", cl_contract_id: "LAI-00016881", lk_loan_account_id: "LK0000015094", front_end_manager_name: "SONAL", area_collection_manager: "ASHIS JENA", installment_date: "", collection_manager: "" }],
    groups = [
        ['zone_list', 'zone'],
        ['state_list', 'state'],
        ['location_list', 'location'],
        ['task_list', '_id', 'front_end_manager_name', 'area_collection_manager', 'collection_manager'],
        ['loan_accounts_assigned', 'lk_loan_account_id', 'allocated_to', 'cl_contract_id', 'customer_name', 'bank_name_of_customer']
    ],
    result = data.reduce((r, o) => {
        groups.reduce((t, [group, ...keys]) => {
            var temp = (t[group] = t[group] || []).find(p => o[keys[0]] === p[keys[0]]);
            if (!temp) {
                temp = Object.assign({}, ...keys.map(k => ({ [k]: o[k] })));
                t[group].push(temp);
            }
            return temp;
        }, r);
        return r;
    }, {});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

5
задан David Robbins 21 November 2008 в 12:00
поделиться

7 ответов

"должно быть руководство относительно того, какое количество времени должно быть потрачено на модель данных и т.д.".

Правильно. Это - то, о чем установление приоритетов - все. Вы определяете работу, Вы располагаете по приоритетам. Вы работаете согласно приоритетам.

Что может выйти из-под контроля?

  1. Переопределение работы, прежде чем что-нибудь будет сделано?

  2. При переопределении приоритетов, прежде чем сделана работа?

Решением является то же. Повредите работу в мелкие кусочки, таким образом, что-то сделано, прежде чем будет возможность внести изменение.

Если у Вас есть короткие (2-недельные) спринты, не возможно не контролироваться. Если Вы идете для немного более практических 4-недельных спринтов, то у Вас есть маленький шанс попадения в беду.

3
ответ дан 18 December 2019 в 08:32
поделиться

Обязанности очень ясно определяются в Толпе - Владелец продукта определяет неудовлетворенные объекты и располагает по приоритетам их, разработчики фиксируют на том, сколько они могут сделать в Sprint.

Так, у Владельца продукта просто нет полномочий вообще для установки оценок. Конечно, он может все еще сказать, что ему нужно что-то к отдельному моменту вовремя - который просто происходит. Но это - все еще разработчики, которые скажут, может ли это быть сделано. И если это не может, они должны удаться вместе о том, как изменить объем или независимо от того, что может быть сделано для получения потребностей ПО, выполненной максимально лучше всего.

Теперь, как точно СМ должен действовать в ситуации, где это не работает, гладко во многом зависит от определенной ситуации. Я видел бы, что он упрощает хорошую культуру отношений и коммуникации между ПО и командой, чем сделал, чтобы он экранировал команду от ПО, все же.

5
ответ дан 18 December 2019 в 08:32
поделиться

Владелец продукта, как предполагается, является тем, который экранирует Вас от неоднозначных или переменных клиентских требований.

Владелец продукта не должен давать оценки.

3
ответ дан 18 December 2019 в 08:32
поделиться

Я использовал Гибкий в двух различных магазинах, оба раза это работает хорошо. Я не вижу, как неконтролируемое что-либо может разрушить систему. Перед спринтом Вы планируете все задачи, которые Вы сделаете и приблизительно оцените, сколько времени они возьмут (всегда окружают). Затем можно выяснить приблизительно, сколько работы может быть сделано во время спринта.

Большинство магазинов использует 4-недельные спринты, и 6,5 часов осуществимого времени день. То, когда спринт был установлен, Вы не представляете новые задачи и только незапланированную работу, которая вползает в спринт, исправляет ошибки в опциях, которые Вы добавляете, конечно, который является, предполагают, чтобы быть включенным в Ваше время приблизительной оценки.

Если Вы хотите более определенный ответ, необходимо определить то, что Вы подразумеваете под "неконтролируемым" владельцем продукта.

1
ответ дан 18 December 2019 в 08:32
поделиться

Я соглашаюсь с S. Lott. Короткие спринты лучше. Короткие пользовательские истории могут помочь. Мы пытаемся ограничить наши пользовательские истории 2 - 4 днями максимум.

  1. Удостоверьтесь, что все Ваши пользовательские истории четко определены и что владелец в согласии с ними.

  2. После того как спринт запустился, настаивайте, что новые задачи не могут быть добавлены к текущему спринту, но они могут быть высоким приоритетом в следующем спринте. Более короткие спринты делают это намного легче.

  3. Кроме того, для удаления наложения искусственных крайних сроков Вы действительно не должны освобождать объекты от текущего спринта до начала следующего спринта, если это возможно.

Самая твердая часть о гибкой разработке является дисциплиной. После того как у Вас есть дисциплинированная команда и ведущее устройство толпы, пользователи привыкают к ней и вещи намного более гладкое перемещение. Я не уверен, используете ли Вы какое-либо программное обеспечение для управления проектами, но смотрите на Ралли. Они сделали некоторые основные улучшения за прошлый год или около этого.

1
ответ дан 18 December 2019 в 08:32
поделиться

У меня есть две вещи сказать.

У Вас, вероятно, есть некоторый R&D менеджер (который является не обязательно ведущим устройством толпы), и это не владелец продукта).

Этот парень может и если (я думаю), "защищают" разработчиков. Мы были в ситуации, когда у нас был такой парень, и она работала вполне прилично. Он помог нам с получением нефункционального материала в отставании, например.

Теперь у нас нет этого парня. Наш менеджер является ведущим устройством толпы. И он делает довольно хорошее задание, защищающее нас также. Хотя... проблема здесь состоит в том, что универсальное ведущее устройство толпы не имеет никакой официальной власти, таким образом, он не может сказать, что "Вы не поступаете в печать их это очень", но он, конечно, может и должен говорить, если он видит, что изобилуют, нуждается в помощи.

Сама команда и владелец продукта также развиваются со временем так, чтобы они начали заботиться о больше друг из друга. Владелец продукта понимает, когда команда просто не соглашается на больше или заявляет, что "нам требуется некоторое время для нефункционального материала теперь".

Но затем - снова - хорошо, конечно, если будет отдельный R&D менеджер, основная ответственность которого заботится о разработчиках... затем это будет более сбалансировано, я думаю..

У нас также есть отдел поддержки, который одалживает разработчиков для задач поддержки. Иногда трудно согласовать то, что идет или не будет сделанным для этого или того клиента (потому что поддержка хочет все это). Для этого менеджера по R&D случая - очень хорошая идея также..

Идеально, мне нравится идея, идущая абсолютно минимизированный так, чтобы разработчики не нуждались в менеджере или экранировали..., но я не знаю, ли и как она работает... :)

1
ответ дан 18 December 2019 в 08:32
поделиться

Повторение (Sprint в Толпе) объем не должно быть изменено во время повторения. Вот почему только одно повторение планируется за один раз. Как S. Lott указал, чем короче повторение, тем раньше Владелец продукта сможет запланировать новые вещи.

Ведущая роль Толпы состоит в том, чтобы изолировать Команду от такого давления и должна сказать Владельцу продукта, что новые запросы должны ожидать следующего повторения.

Теперь Владелец продукта, роль состоит в том, чтобы максимизировать значение работы Команда, производит, поэтому если существует новый объект первостепенной важности, который не мог бы ожидать конца текущего повторения, все еще возможно заменить объекты подобной оценкой и которые не были запущены. Это должно быть исключением, не правилом.

1
ответ дан 18 December 2019 в 08:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: