На работе понадобилась узкоспециальная CRM, руководство решило сэкономить на покупке, пришлось реализовывать на С# WinForms + MS SQL Server.
Функционал:
1. Добавление / редактирование заказов
2. Расчет стоимости выполнения заказов, перерасчет стоимости предыдущих заказов
3. Ведение справочников номенклатуры
4. Выгрузка нескольких отчетов в csv
CRM работает в локальной сети, 10 пользователей, в день вносится 50-80 заказов, хранятся чувствительные персональные данные.
Суть проблемы:
Опыта мало, сделал на скорую руку. Например, нет истории изменения записей, нет блокировки записей при редактировании одним пользователем, при обновлении справочников приходится всех выгонять из программы.
Руководству это не важно, лишь бы работало. Для того, чтобы не иметь проблем в будущем, планирую добавить функционал, но у меня нет четкого представления о требованиях к такому ПО.
Существует ли написанная простым языком методичка, в которой собраны советы и требования, может быть базовые алгоритмы работы таких программ? Вот прям список must have, без которых программа не может называться таковой.
Вот прям список must have, без которых программа не может называться таковой
Ты уже озвучил часть must have требований вот тут:
Например, нет истории изменения записей, нет блокировки записей при редактировании одним пользователем, при обновлении справочников приходится всех выгонять из программы.
Теперь думай как эти требования удовлетворить. Но по сути надо сначала ТЗ написать, вот садись к директору в кабинет и пусть он свои все требования говорит, а ты пиши, в блокнот (а лучше в два).
Руководству это не важно, лишь бы работало
Не имей привычки валить свои косяки на руководство, ТЫ тут архитектор решения и ТЫ ОТВЕЧАЕШЬ чтобы работало и не ломалось и было расширяемо.
твоя CRM должна работать уже вчера, а ты приходишь с блокнотом и говоришь, что только на написание ТЗ и продумывания защит от дурака тебе нужна неделя.
freeExec, ага, причем тот, кому надо, чтобы "еще вчера", и тот, кто допустил ошибки планирования, из-за которых все в жопе и конь не валялся - одно и то же лицо.
Собственно, и сама постановка задачи с условием "уже вчера" суть классическая ошибка планирования.
Теперь думай как эти требования удовлетворить. Но по сути надо сначала ТЗ написать, вот садись к директору в кабинет и пусть он свои все требования говорит, а ты пиши, в блокнот (а лучше в два)
А ещё лучше задать по пути наводящих вопросов пачку
Владимир Коротенко, и миллионы мух, да-да.
БД все равно нужна, так что сервер для размещения бэкенда уже есть. Писать отдельный клиент для клиент-серверной системы, когда браузер все равно стоит на компьютере, а интерфейс заведомо шаблонен, да еще и имеет тенденцию к постоянным изменениям - пустая трата ресурсов сначала на написание, а потом на поддержку. Не говоря уже об упомянутых ТС архаизмах типа "выгонять всех из программы при обновлении справочников".
Adamos, Почему браузер отстой для десктоп приложений:
* отсутствие плавности скрула и ненативные компоненты
* ориентированность на мобильники и тач. За счет этого экран содержит меньше информации и нужно дольше скрулить и просто тягать мышь
* куча памяти, а если страница сложная то просто прорва
* куча ограничений, как то возможность работать с оборудованием или делать скриншот
* ущербный формат обмена данными (json или xml или soap)
Владимир Коротенко, я не сомневаюсь, что ровно такой же список в обратную сторону вы напишете с той же легкостью, банально исправив "ущербный" на "универсальный", например ;)
Не будем увеличивать энтропию.
Adamos, Я же говорил для конкретного случая. При других вводных выводы будут соответственно другими. Это у Файлера есть "Серебрянная пуля". А я предпочитаю возить картошку на беларуси, а не на мазератти, хотя обе марки по сути трактор
Владимир Коротенко, или вы просто пользуетесь тем, что умеете, и нагибаете под него даже те задачи, для решения которых применение именно этого инструмента слабо обосновано, а то и противопоказано. Точно так же, как выше отписавшийся 1С-ник.
Adamos, Постойте. Я четко высказал свои соображения по пунктам, с разъяснением почему лучше. Вы же отделываетесь общими фразами и красивыми формулировками. Почему не возразить по существу?
Это же будет продуктивно
Владимир Коротенко, не будет. Лично мне совершенно очевидно, что ваши "пункты" высосаны из пальца, и продуцировать такое же бессмысленно. Ваши доводы не изменят моего опыта написания CRM на веб-стеке и переписывания на тот же стек изначально вымученных для десктопа программ. Я, в свою очередь, вряд ли смогу преодолеть вашу привычку смотреть на все задачи через дотНет.
Adamos, Для справки. Я более 8 лет занимался MS CRM 4 после MS Sales Online. Системами документооборота, шарепоинтом и интеграцией этого всего зоопарка.
В это же время писал АРМ для таможни и УФМС. Так что какой то опыт имею.
И если в золотое время мы просто встраивали ActiveX угадайте в какой браузер для сканирования, то сейчас благодаря криворучкам и безопасникам мы этого не можем. И делаем отдельный сервис для сканирования.
И примеров масса, так что вышеуказанное это реальный боевой опыт востребованный компаниями а не мои теоретизирования.
Владимир Коротенко, а я и не обвинял вас в теоретизировании. Но посмотрите на вопрос.
10 юзеров в локалке работают над заказами. Не УФМС-ы, таможни и прочий энтерпрайз, а автоматизация работы малого офиса. В которой нагромождения дотНета на хрен не нужны, а его же требования и ограничения - гиря на ноге без всякой на то причины.
Adamos, Снова какой то теоретический офис в вакууме. Пусть это будет мелкая оптовка, дизайн бюро или контора по установке окон или изготовлению мебели.
Итак что мы имеем:
* директор - тут в общем то без разницы
* бухгалтер 1с - уже сильная посылка к виндоуз, а если нужна эцп то только виндоуз плюс офис
* кладовщики - возможно что обойдутся веб версией 1с или какой то самописью
* дизайнеры - корел драв и фотошоп (виндоуз, мак)
* окна и мебель (только виндоуз)
Вот и выходит что из ос подходит только windows.
Дальше идем по средствам разработки. .Net 4 установлен на всем начиная c XP.
С набором компонентов накидать что то нормальное это дело очень быстрое, по моим оценкам быстрее чем на react раза в 3-4. Да я знаю про компоненты от того же телерика, но это остается так.
Да это будет типа говнокод, хотя и не всегда, там просто другой подход. Но реально это будет быстрее, быстрее и быстрее. Здесь быстрее это (разработка, развертывание и исполнение)
Владимир Коротенко, вы таки будете смеяться, но и для дизайнеров, и для мебельщиков я писал и внедрял самописные CRM-ки в одно лицо. Они ими пользуются до сих пор, вполне успешно, инструмент зашел и помогает. Кладовщики, в частности, радуются, что им не нужно бегать к компьютеру или таскать с собой ноут, все на смартфоне. Менеджеры, обеспечивающие тех дизайнеров работой, тоже легко считают заказ "на коленке" прямо у клиента.
Ни одна M$-технология в проектах не использовалась, банальный веб-стек на LAMP.
Владимир Коротенко, вы же хотели конкретики? Вот вам конкретика - работающие не первый год системы, в которых ваши якобы обязательные Windows никому в хрен не уперлись.
Кстати, посреднику, который среди прочих заказов привел ко мне тех мебельщиков, очень удобно зайти на свой сайт, заполнить небольшую форму - и получить на нем поддомен с полностью рабочей копией той или другой CRM (с демо-данными, разумеется), в которой другой потенциальный заказчик может все пощупать и убедиться, годится ему такая система или нет. Без бодрых рассказов продаванов. И более-менее определиться, как он видит допиливание ее под себя. Предметно.
Adamos, Я говорил про офис многие компании производители мебели предоставляют свои конфигураторы и они работают только под виндоуз. И их на ноутбуке присутствует с 10к. Многие кстати завязаны на хасп ключи.
То же самое относится и к программам расчета окон и профиля. И от этого никуда не уйдешь.
Поясню, почему WinForms и винды: я не разработчик и больше пока ничего не умею ). Кроссплатформенность и веб-интерфейс для этой задачи не нужны.
В общем, наиболее реалистичный выход: при участии руководства составить список возможных проблем и план внесения исправлений, таким образом разделить ответственность. Добавление функционала и исправления вносить согласно этого плана.