Я відповідаю за команду розробників, яка збирається розпочати розробку системи легких ваг страхових претензій. Система передбачає безліч ручних завдань і ділових процесів, і ми розглядаємо використання Windows Workflow (.NET 4.0).
Приклад ділового домену наступний: Власник полісу телефонує контактному центру, щоб подати претензію. Ця подія запускає дві підзадачі, які вручну діють паралельно і можуть зайняти тривалий час;
- Перевірка клієнта на шахрайство - ручний процес, під час якого оператор закликає різні кредитні компанії для перевірки та оцінки потенціалу шахрайського клієнта. Звідси підзадача може вводити ряд підпунктів (Перевірка у виконанні, Невдала перевірка довідки, Пройдена перевірка довідки тощо)
- Надіслати товар до центру ремонту - Процес вручну, коли предмет, за яким страхувальник подав претензію, надсилається до центру ремонту, який має бути виправлений. Звідси підзадача може ввести ряд підпунктів (Очікування ремонту, У процесі виконання, Ремонт, Опубліковано тощо). Претензія може продовжуватися лише після того, як статус кожного підзадачі досяг заздалегідь визначеного статусу (виходячи з правил бізнесу).
На перший погляд здається, що Workflow - це справді найкращий вибір технології; однак у мене є деякі проблеми при використанні WF 4.0.
- Набір навичок - дивлячись на середній набір навичок розробника, я не бачу багатьох розробників, які розуміють або знають Workflow.
- Ремонтопридатність - Мабуть, мало підтримки в громаді для проектів WF 4.0, і це у поєднанні з відсутністю набору навичок викликає занепокоєння щодо ремонтопридатності.
- Перешкода для вступу - у мене таке відчуття, що робочий процес Windows має круту криву навчання, і підібрати його не завжди так просто.
- Новий продукт - Оскільки Workflow був повністю перероблений для .NET 4.0, я бачу продукт як продукт першого покоління і може не мати необхідної стабільності.
- Репутація. Попередні версії Workflow були недостатньо сприйняті, вважалися важкими для розвитку та призводили до поганого поглинання бізнесу.
Отже, моє запитання: чи слід використовувати для цієї ситуації Windows Workflow (WF) 4.0, чи є альтернативна технологія (наприклад, Simple State Machine тощо) чи навіть кращий механізм робочого процесу?