Привет.
Наболело, хочу высказаться.
Увы пока не принимаю участия в разработки архитектуры, поэтому приходится время от времени заниматься реализацией откровенно корявых решений которое скидывают сверху.
Вот типичная ситуация. У клиента есть форма на их сайте где пользователи что-то вводят и сопровождают это своими личными данными. На основании этих личных данных мы должны создать объект Contact к которому впоследствии привязать введенную информацию.
Вот тут и кроется свинья. Так как известно мы боремся за чистоту данных то дубликаты контактов недопустимы. Поэтому кто чисто по email, кто по email + lastname просит находить существующие контакты, апдейтить их обновленной инфой и привязывать с этим существующим контактам данные из формы.
Разве это не бред?
К примеру
пришел Вася - ввел свои данные и засабмитил форму.
Создался Контакт.
Пришел Петя после вчерашнего и ввел свои данные, при этом проипался и ввел email Васи.
Контакт Васи проапдейтился Петеными данными.
Кому теперь принадлежит Контакт?
Хорошо. Не будем апдейтить контакт а просто будем прикреплять к нему данные.
Пришел Вася и вводит новые данные о себе (переехал скажем) и вводит свой email.
Данные не проапдейтились и подарок поехал другому Васе в другой город
Ок, пусть будут всегда новые контакты - тоесть появляются дубликаты. Вся учетка идет по пи... Никакой статистики. Ничего.
Нафига вообще такое придумывать и тем более реализовывать? Ну конечно, бабки клиент заплатил.
Нафига на нормальных сайтах есть система регистрации с подтверждением email чтобы четко идентифицировать пользователя и обновлять и привязывать данные куда надо? Может Facebook лохи и достаточно было просто сделать форму ввода сообщения с полем email отправителя????
Привет. Наболело, хочу высказаться. Увы пока не принимаю участия в разработки архитектуры, поэтому приходится время от времени заниматься реализацией откровенно корявых решений которое скидывают сверху. Вот типичная ситуация. У клиента есть форма на их сайте где пользователи что-то вводят и сопровождают это своими личными данными. На основании этих личных данных мы должны создать объект Contact к которому впоследствии привязать введенную информацию. Вот тут и кроется свинья. Так как известно мы боремся за чистоту данных то дубликаты контактов недопустимы. Поэтому кто чисто по email, кто по email + lastname просит находить существующие контакты, апдейтить их обновленной инфой и привязывать с этим существующим контактам данные из формы. Разве это не бред? К примеру пришел Вася - ввел свои данные и засабмитил форму. Создался Контакт. Пришел Петя после вчерашнего и ввел свои данные, при этом проипался и ввел email Васи. Контакт Васи проапдейтился Петеными данными. Кому теперь принадлежит Контакт? Хорошо. Не будем апдейтить контакт а просто будем прикреплять к нему данные. Пришел Вася и вводит новые данные о себе (переехал скажем) и вводит свой email. Данные не проапдейтились и подарок поехал другому Васе в другой город Ок, пусть будут всегда новые контакты - тоесть появляются дубликаты. Вся учетка идет по пи... Никакой статистики. Ничего. Нафига вообще такое придумывать и тем более реализовывать? Ну конечно, бабки клиент заплатил. Нафига на нормальных сайтах есть система регистрации с подтверждением email чтобы четко идентифицировать пользователя и обновлять и привязывать данные куда надо? Может Facebook лохи и достаточно было просто сделать форму ввода сообщения с полем email отправителя????
Или я чего-то не понимаю?
Или я чего-то не понимаю? :D
Я бы, конечно, Contact не создавал, а делал как все - создавал Lead. Но это вопрос поставленных процессов в компании.
То, что ты описал - не вопрос архитектуры, а вопрос поставленных бизнес процессов в компании.
Я бы, конечно, Contact не создавал, а делал как все - создавал Lead. Но это вопрос поставленных процессов в компании. [quote="Dmitry Shnyrev"]Пришел Петя после вчерашнего и ввел свои данные, при этом проипался и ввел email Васи. [/quote]Ну, знаешь ли. Это такой редкий случай. Один на миллион, я бы сказал. То, что ты описал - не вопрос архитектуры, а вопрос поставленных бизнес процессов в компании.
Ну как не архитектуры?
Клиент ожидает видеть результатом работы "правильные" данные на орге.
А если создается возможность для появления "неправильных" данных это проблема!
Я кстати как то давно видел одну архитектуру которая работала с деньгами. И самое интересно что там куча манипуляций и каждая имела случаи при которых данные могли "потеряться". Это для меня вообще нонсенс!!!
Когда я читаю многостраничные доклады по поводу того как просто сделать проводку (списать в одном месте и добавить в другом) и это считается реально проблемой которую люди решают потом и кровью. А тут просто на ровном месте позволяют просто в трех шагах алгоритма или нажатии кнопки на UI потерять важные данные. Я этого не понимаю.
Для меня как программиста прежде всего данные а не бизнес процессы. Если контакт(пользователь) отождествляется с Email. То это надо установить максимально точно! И данные должны быть достоверными и быть привязанными к тому контакту который их ввел.
Вот именно! если появляется такой случай, то это камень в мой огород.
Ну как не архитектуры? Клиент ожидает видеть результатом работы "правильные" данные на орге. А если создается возможность для появления "неправильных" данных это проблема! Я кстати как то давно видел одну архитектуру которая работала с деньгами. И самое интересно что там куча манипуляций и каждая имела случаи при которых данные могли "потеряться". Это для меня вообще нонсенс!!! Когда я читаю многостраничные доклады по поводу того как просто сделать проводку (списать в одном месте и добавить в другом) и это считается реально проблемой которую люди решают потом и кровью. А тут просто на ровном месте позволяют просто в трех шагах алгоритма или нажатии кнопки на UI потерять важные данные. Я этого не понимаю. Для меня как программиста прежде всего данные а не бизнес процессы. Если контакт(пользователь) отождествляется с Email. То это надо установить максимально точно! И данные должны быть достоверными и быть привязанными к тому контакту который их ввел. [quote="Andrii Muzychuk"]Ну, знаешь ли. Это такой редкий случай. Один на миллион, я бы сказал.[/quote] Вот именно! если появляется такой случай, то это камень в мой огород.
Клиент тебе объясняет его понятие "правильные" данные. Именно он для своего бизнеса решает, как должны они должны выглядеть.
Это камень в огород клиента. И вообще, не камень и ни в чей огород.
Итаг.
Если тебе говорят "хочу красиво", то ты делаешь белую страничку с черным квадратом по-средине. Молча ;-)
Если тебе говорят "надо целостность данных", то ты спрашиваешь "Алена Ковалева с алена.ковалева@мыло.ру" и "Алена Петрова с алена.ковалева@мыло.ру" это один и тот же человек, просто сменивший фамилию, или мы создаем нового человека? Все. Дальше программист реализует ту бизнес логику, которую желает клиент.
[quote="Dmitry Shnyrev"]Клиент ожидает видеть результатом работы "правильные" данные на орге. А если создается возможность для появления "неправильных" данных это проблема![/quote] Клиент тебе объясняет его понятие "правильные" данные. Именно он для своего бизнеса решает, как должны они должны выглядеть. [quote="Dmitry Shnyrev"]Andrii Muzychuk Ну, знаешь ли. Это такой редкий случай. Один на миллион, я бы сказал. Вот именно! если появляется такой случай, то это камень в мой огород.[/quote] Это камень в огород клиента. И вообще, не камень и ни в чей огород. Итаг. Если тебе говорят "хочу красиво", то ты делаешь белую страничку с черным квадратом по-средине. Молча ;-) Если тебе говорят "надо целостность данных", то ты спрашиваешь "Алена Ковалева с алена.ковалева@мыло.ру" и "Алена Петрова с алена.ковалева@мыло.ру" это один и тот же человек, просто сменивший фамилию, или мы создаем нового человека? Все. Дальше программист реализует ту бизнес логику, которую желает клиент.
А сколько не спрашивай. Все равно подход в корне не верный.
Все равно ситуации с неправильными данными могут возникать и следовательно данные будут теряться.
Вот как раз переношу сообщение с другой ветки (хз как она туда попала конечно)
--------------
Как вижу это я.
Если хочется собирать данные с формы от анонимных пользователей то я бы делал это просто в отдельный Custom Object (так сказать в RAW формате) без каких либо созданий других объектов (или как ты отметил Андрей - можно использовать Lead).
Посадил бы девочку за специальную страницу чтобы она получала карточки с данными из формы и уже звонила по указанному номеру уточнять данные. Все равно половину из этих форм придут с неполными/недостоверными данными. А возможно нужно будет получить от клиента доп инфу. После этого будут производиться какие либо действия по постобработке этих данных и созданию других объектов.
Если нужно реально автоматизировать. Тогда пусть после сохранения данных в RAW отсылать письмо на мыло с подтверждением последующего процессинга данных. Тогда Петя не сможет переписать данные Васи без разрешения Васи.
Но вот так сразу брать и раскладывать по системе непонятные данные из непроверенных источников?
А если я плохой человек(конкурент). Я могу за пару минут обрушить все красоту просто нахерачив кучу POST запросов под данные из формы. Кто потом будет разгребать тысячи фейковых контактов на орге?
А клиенты не всегда мелкие попадаются.
А сколько не спрашивай. Все равно подход в корне не верный. Все равно ситуации с неправильными данными могут возникать и следовательно данные будут теряться. Вот как раз переношу сообщение с другой ветки (хз как она туда попала конечно) -------------- Как вижу это я. Если хочется собирать данные с формы от анонимных пользователей то я бы делал это просто в отдельный Custom Object (так сказать в RAW формате) без каких либо созданий других объектов (или как ты отметил Андрей - можно использовать Lead). Посадил бы девочку за специальную страницу чтобы она получала карточки с данными из формы и уже звонила по указанному номеру уточнять данные. Все равно половину из этих форм придут с неполными/недостоверными данными. А возможно нужно будет получить от клиента доп инфу. После этого будут производиться какие либо действия по постобработке этих данных и созданию других объектов. Если нужно реально автоматизировать. Тогда пусть после сохранения данных в RAW отсылать письмо на мыло с подтверждением последующего процессинга данных. Тогда Петя не сможет переписать данные Васи без разрешения Васи. Но вот так сразу брать и раскладывать по системе непонятные данные из непроверенных источников? А если я плохой человек(конкурент). Я могу за пару минут обрушить все красоту просто нахерачив кучу POST запросов под данные из формы. Кто потом будет разгребать тысячи фейковых контактов на орге? А клиенты не всегда мелкие попадаются.
Проблема что пока не работаю напрямую с клиентами и задачи уже падают в сформированном виде.
А мне больно видеть что система пилится откровенно кривая и дырявая.
Проблема что пока не работаю напрямую с клиентами и задачи уже падают в сформированном виде. А мне больно видеть что система пилится откровенно кривая и дырявая.
Сегодня данные это золото бизнеса!!!
Сегодня данные это золото бизнеса!!!
[quote="Dmitry Shnyrev"]Посадил бы девочку за специальную страницу чтобы она получала карточки с данными из формы и уже звонила по указанному номеру уточнять данные.[/quote]Дима, так и делается ;-)
А, ну тогда я спокоен за наше будущее
А, ну тогда я спокоен за наше будущее :D
В большинстве случаев Лиду высылается письмо или звонят на телефон, и если он на него отвечает, то с таким Лидом дальше работают и конвертят его в Account/Contact.
Если нет ответа, то и остается он Лидом.
[quote="Dmitry Shnyrev"]Но вот так сразу брать и раскладывать по системе непонятные данные из непроверенных источников?[/quote]Для этого и существует объект Lead. Он никто и звать его никак пока его не конвертнули в Account/Contact. В большинстве случаев Лиду высылается письмо или звонят на телефон, и если он на него отвечает, то с таким Лидом дальше работают и конвертят его в Account/Contact. Если нет ответа, то и остается он Лидом.
Умение донести до самого заказчика твои мысли это величайший дар. И он зачастую может быть правильным и в конечном итоге тебе скажут, да ты был прав, давай переделаем.
Я иногда левачу, помимо основной работы, и задания раздает человек, который совсем не шарит в программировании , но он отлично шарит в администрировании. И последнее время очень часто, когда я ему говорю: так будет быстрее и дешевле, чем потом переделывать, он говорит: я тебе доверяю делай так как считаешь нужным.
И очень жаль, что когда на основном проекте я говорю: ребята ваша идея полное гавно, которое будет тормозить, будет неюзабельным да и вообще лютый треш который решает проблемы всего 1% конечных пользователей, из-за которого мы будем в дерьме рано или поздно и все равно это снесем. Мне в ответ говорят: 1) они хотят за это заплатить, они за это заплатят, поэтому твое мнение никого не волнует. 2) мы наняли крутого спеца с кучей сертификатов, он говорит что так будет нормально, быстро, удобно и не займет 40 часов времени
Поэтому вывод: если ты простой девелопер - твое мнение никому не интересно.
UPD: и это как не печально касается любой конторы, технологий и проектов.
Помню работал с одним очень классным человеком, который любит делать все красиво, у которого был опыт в .net и он пришел с этим опытом в salesforce и хотел все делать по уму, но очень быстро понял, что его громаднейший опыт тут никому не пригодится, потому что основная задача всех контор, в которых больше 5 человек - выкачать бабло, а не сделать красиво.
[quote="Dmitry Shnyrev"]Проблема что пока не работаю напрямую с клиентами и задачи уже падают в сформированном виде. А мне больно видеть что система пилится откровенно кривая и дырявая.[/quote] Умение донести до самого заказчика твои мысли это величайший дар. И он зачастую может быть правильным и в конечном итоге тебе скажут, да ты был прав, давай переделаем. Я иногда левачу, помимо основной работы, и задания раздает человек, который совсем не шарит в программировании , но он отлично шарит в администрировании. И последнее время очень часто, когда я ему говорю: так будет быстрее и дешевле, чем потом переделывать, он говорит: я тебе доверяю делай так как считаешь нужным. И очень жаль, что когда на основном проекте я говорю: ребята ваша идея полное гавно, которое будет тормозить, будет неюзабельным да и вообще лютый треш который решает проблемы всего 1% конечных пользователей, из-за которого мы будем в дерьме рано или поздно и все равно это снесем. Мне в ответ говорят: 1) они хотят за это заплатить, они за это заплатят, поэтому твое мнение никого не волнует. 2) мы наняли крутого спеца с кучей сертификатов, он говорит что так будет нормально, быстро, удобно и не займет 40 часов времени Поэтому вывод: если ты простой девелопер - твое мнение никому не интересно. UPD: и это как не печально касается любой конторы, технологий и проектов. Помню работал с одним очень классным человеком, который любит делать все красиво, у которого был опыт в .net и он пришел с этим опытом в salesforce и хотел все делать по уму, но очень быстро понял, что его громаднейший опыт тут никому не пригодится, потому что основная задача всех контор, в которых больше 5 человек - выкачать бабло, а не сделать красиво.
В этом релизе вроде классы появились для поиска дубликатов от Salesforce
В этом релизе вроде классы появились для поиска дубликатов от Salesforce
Интересно узнать как это проблема решается в других CRM и вообще любых систем учета клиентов (ну 1c там например). Проблема типовая, но очевидно просто решения нет. 100% кто-то как-то решает.
Интересно узнать как это проблема решается в других CRM и вообще любых систем учета клиентов (ну 1c там например). Проблема типовая, но очевидно просто решения нет. 100% кто-то как-то решает.
[quote="Maxim Elets"] они хотят за это заплатить, они за это заплатят, поэтому твое мнение никого не волнует[/quote] Вот так работают в старапах до 50 человек :)
да так по-моему везде работают)
а стартапы которые маленькие, наоборот до момента пока не вырос до 50 человек, они гнут именно свою идею
[quote="Mike V"]Вот так работают в старапах до 50 человек :)[/quote] да так по-моему везде работают) а стартапы которые маленькие, наоборот до момента пока не вырос до 50 человек, они гнут именно свою идею
Это не совсем так, у маленького стартапа как правило денег немного и основная задача это дожить до следующего раунда инвестиций, поэтому и гнуться под каждого клиента. Опять таки, у маленькой компании бизнес модель может существенно меняться, следуя за клиентом. Это у большой компании денег уже дохрена, и они могут в каком-то смысле могут класть на кастомеров делая что-то новое.
[quote="Maxim Elets"]да так по-моему везде работают) а стартапы которые маленькие, наоборот до момента пока не вырос до 50 человек, они гнут именно свою идею[/quote] Это не совсем так, у маленького стартапа как правило денег немного и основная задача это дожить до следующего раунда инвестиций, поэтому и гнуться под каждого клиента. Опять таки, у маленькой компании бизнес модель может существенно меняться, следуя за клиентом. Это у большой компании денег уже дохрена, и они могут в каком-то смысле могут класть на кастомеров делая что-то новое.
Ну я просто из опыта стартапа в которм работаю говорю. И не претендую на 100% правду по поводу остальных стартапов.
Когда мы были молодыми(и трава зеленее)мы интересовались тем что хочет клиент, но! не всегда это делали потому что клиент у нас не один. Сейчас же когда пошли в гору, когда мы начали выбирать клиентов с большими годовыми оборотами, мы начали так сказать продавать свою жеппу этим клиентам, делать абсолютно все что им надо. И получается что если у нас к примеру 3 клиента, но 2 из них не платят нам за свои хотелки, то их мнение практически не учитывается, и получается что продукт ушел в сторону "хотелки клиента который платит за эти хотелки", и мне иногда боязно что те 2 клиента с громадным оборотом скажут: ребята вы начали пилить чачу которая совсем не ложится в наши бизнес процессы, и мы с вами больше не будем работать. ПС: все клиенты действительно крупные и при деньгах.
[quote="Mike V"][quote="Maxim Elets"]да так по-моему везде работают) а стартапы которые маленькие, наоборот до момента пока не вырос до 50 человек, они гнут именно свою идею[/quote] Это не совсем так, у маленького стартапа как правило денег немного и основная задача это дожить до следующего раунда инвестиций, поэтому и гнуться под каждого клиента. Опять таки, у маленькой компании бизнес модель может существенно меняться, следуя за клиентом. Это у большой компании денег уже дохрена, и они могут в каком-то смысле могут класть на кастомеров делая что-то новое.[/quote] Ну я просто из опыта стартапа в которм работаю говорю. И не претендую на 100% правду по поводу остальных стартапов. Когда мы были молодыми(и трава зеленее)мы интересовались тем что хочет клиент, но! не всегда это делали потому что клиент у нас не один. Сейчас же когда пошли в гору, когда мы начали выбирать клиентов с большими годовыми оборотами, мы начали так сказать продавать свою жеппу этим клиентам, делать абсолютно все что им надо. И получается что если у нас к примеру 3 клиента, но 2 из них не платят нам за свои хотелки, то их мнение практически не учитывается, и получается что продукт ушел в сторону "хотелки клиента который платит за эти хотелки", и мне иногда боязно что те 2 клиента с громадным оборотом скажут: ребята вы начали пилить чачу которая совсем не ложится в наши бизнес процессы, и мы с вами больше не будем работать. ПС: все клиенты действительно крупные и при деньгах.