Khi nào nên sử dụng công cụ xử lý công việc?


41

Tôi đã từng làm việc trong một số công cụ xử lý công việc với tư cách là lập trình viên nhưng chưa bao giờ hiểu rõ lý do tại sao chúng tôi chọn công cụ quy trình công việc ở vị trí đầu tiên. Và là một lập trình viên, tôi biết rằng có ít nhất 100 cách để làm bất cứ điều gì khi bạn viết mã nhưng chỉ có một vài cách là tốt nhất!

Tôi vẫn không hiểu trường hợp sử dụng nào được giải quyết tốt nhất bằng các công cụ xử lý công việc (hay đúng hơn là khái niệm của chúng) hơn là thiết kế một ứng dụng hỗ trợ DI tốt. Tôi đang tìm kiếm bất kỳ đặc điểm chung nào của các trường hợp sử dụng trung lập miền, trong đó công cụ dòng công việc là một trong những lựa chọn tốt nhất.

Vì vậy, câu hỏi của tôi là: các đặc điểm chung của một yêu cầu có thể được coi là một tín hiệu để lựa chọn một công cụ dòng công việc tốt và mã hóa xung quanh nó là gì?


1
"Ứng dụng kích hoạt DI" là gì?
jnewman

Tôi đã giải quyết được việc tiêm thuốc phụ thuộc, nhưng phải suy nghĩ rất nhiều ...
jnewman

1
@JasonTrue Oh vậy bạn cũng đã sử dụng Windows Workflow Foundation!
Gilles

@Gilles làm thế nào bạn có thể nói? : P
JasonTrue

Câu trả lời:


22

Một công cụ dòng công việc là hữu ích khi bạn cần đi từ đầu đến cuối nhưng có nhiều đường dẫn / logic / quy tắc khác nhau để đạt được điều đó.

Ví dụ: giả sử tôi viết chương trình xuất bản nội dung. Vì vậy, trong trường hợp của tôi, việc xuất bản trải qua quá trình xem xét, hợp pháp và sau đó là phê duyệt cuối cùng. Tôi viết chương trình thực hiện logic và các bước của tôi. Bây giờ công việc này tuyệt vời cho tôi và công ty của tôi. Vì vậy, tôi quyết định những người khác nên sử dụng chương trình của tôi.

Thật không may, không phải ai cũng xuất bản nội dung bằng cùng một quy trình, vì vậy thay vì viết các quy trình riêng cho từng trường hợp khác nhau, chúng tôi sẽ thực hiện quy trình xử lý công việc để chương trình linh hoạt để chứa tất cả mọi người. Bất kể có bao nhiêu bước hoặc quy tắc hoặc logic giữa hai điểm đó, kết quả là như nhau.

Vì vậy, nếu bạn có các quy trình có thể thay đổi từ đầu đến cuối, hãy sử dụng quy trình làm việc. Nếu mọi người có thể sử dụng cùng một quy trình, thì bạn không cần một quy trình làm việc.


Nhưng làm thế nào mà kết nối với thế giới thực? Bạn sẽ có một cơ sở dữ liệu với "quá trình hồ sơ" theo dõi trạng thái theo một biểu đồ trạng thái ví dụ, nhưng sau đó bạn vẫn cần phải mã giao diện người dùng và cảnh báo, hệ thống nhắn tin I / O qua tin nhắn, việc làm ETL vv Và sau đó đưa tất cả điều này ở trung tâm của một trung tâm truyền thông và chạy nó. "Công cụ dòng công việc" có phải là một cách thú vị để thiết lập statechart và "chạy nó" không?
David Tonhofer

@David - Ở một mức độ nào đó, vâng.
Jon Raynor

19

Tôi biết bạn đã yêu cầu các trường hợp sử dụng, nhưng việc liệt kê các ưu điểm dễ dàng hơn là tưởng tượng tất cả các trường hợp sử dụng có thể. Những lợi thế của khóa học phụ thuộc vào công cụ và ngôn ngữ bạn đang so sánh, nhưng nói chung:

  1. Giữ quy tắc dưới dạng dữ liệu thay vì mã có nghĩa là bạn không phải biên dịch lại, do đó, bạn có thể kiểm tra các thay đổi nhanh chóng, thay đổi trong thời gian chạy, v.v. Tuy nhiên, không có nhiều lợi thế nếu bạn không phải biên dịch lại ở vị trí đầu tiên.

  2. Người dùng hợp lý hơn có thể được dự kiến ​​sẽ chỉnh sửa các quy tắc. Họ có khả năng tinker với họ một cách tương tác theo những cách không khả thi khi có một lập trình viên viết mã cho họ.

  3. Giữ quy tắc dưới dạng dữ liệu cho phép các công cụ được viết để trực quan hóa và thay đổi dữ liệu.

  4. Giữ quy tắc dưới dạng dữ liệu cho phép lập trình meta dễ dàng hơn - bạn có thể viết mã để phân tích dữ liệu và chèn thêm theo một cách phức tạp, điều này sẽ rất khó đối với mã.

Tất cả những điều này có thể thực hiện trực tiếp với mã (ví dụ: viết trình phân tích cú pháp C # để tìm tất cả các quy tắc của một loại nhất định và tạo mã cho nhiều quy tắc hơn, chèn nó một cách linh hoạt vào một tổ hợp theo cách cho phép dỡ bỏ lắp ráp, viết các công cụ cho người dùng có thể thực hiện điều này cũng sử dụng visualizer và biên tập viên của bạn) nhưng có thể nhiều hơn khó khăn tùy thuộc vào ngôn ngữ của bạn (lập trình viên sử dụng một Lisp có thể tham khảo mục 1-4 như "lập trình").


5
Không ai trong số này thực sự là một lợi thế trong bất kỳ dự án phức tạp hợp lý nào ở bất kỳ quy mô nào. Bạn sẽ thấy mình "gỡ lỗi" vô tận các quy tắc của người khác bị ném vào môi trường sản xuất mà không cần kiểm tra hoặc tài liệu đầy đủ.
James Anderson

+1 cho tham chiếu Lisp - mã là dữ liệu và ngược lại.
Michael H.

2
@JamesAnderson: ngoại trừ khách hàng hiện có thể trả tiền cho những người không phải là lập trình viên (chuyên gia tư vấn quy trình công việc) của họ để khắc phục các quy tắc của riêng họ mà không phải gửi trường hợp hỗ trợ với nhà cung cấp phần mềm.
rwong

3

IMHO trường hợp DUY NHẤT mà bạn nên sử dụng loại điều này là khi nó có thể được cấu hình bởi người dùng ít giá trị hơn. Nếu bạn có thể giải quyết vấn đề của mình bằng cách cung cấp cho họ một công cụ thì hãy quay lại làm việc với một thứ khác quan trọng hơn, sau đó sử dụng một công cụ.

Nếu bạn vẫn cần thiết lập nó cho họ thì tôi sẽ tưởng tượng bạn có thể nghĩ ra 10 cách khác nhau để có được kết quả tương tự với một công cụ mà bạn quen thuộc và việc hỗ trợ và tùy chỉnh sẽ dễ dàng hơn rất nhiều.


3

Điều này trông giống như một câu hỏi cũ, nhưng bề mặt nhiều lần trong tự nhiên. Tôi đồng ý với câu trả lời của Jon . Tôi đã tìm thấy các công cụ dòng công việc có năng suất cao trong các tình huống sau:

  1. Có một quy trình kinh doanh cơ bản mà bạn đang cố gắng thể hiện / thực hiện thông qua phần mềm của mình.
  2. Có một thực thể kinh doanh (có thể là tổng hợp) được thực hiện trong tất cả hoặc một số giai đoạn trong quy trình. Trong ví dụ Jon đưa ra, thực thể hoặc Mục luồng công việc này sẽ là nội dung hoặc một bài viết. Xem xét theo dõi lỗi như một ví dụ khác về quy trình làm việc, chuyển đổi lỗi giữa các trạng thái khác nhau, dựa trên hành động mà người dùng thực hiện.
  3. Sử dụng quy trình công việc để mô hình hóa các quy trình của bạn, chỉ khi bạn mong muốn quy trình kinh doanh thay đổi, bằng cách thay đổi, tôi có nghĩa là chuỗi hoặc hành động được thực hiện do kết quả của hành động hoặc chuyển đổi của người dùng.

Hãy rất cẩn thận và quan trọng để xem liệu miền / vấn đề yêu cầu của bạn có quy trình kinh doanh hay không, đừng cố gắng "khớp" nó vào quy trình công việc.


điều tôi thích về câu trả lời này là phần "mô hình hóa" quy trình của bạn, tức là vẽ trên bảng trắng. Tôi nghĩ rằng điều đó sẽ minh họa rất lớn cho dù một công cụ xử lý công việc sẽ được áp dụng (dựa trên các gợi ý trong các câu trả lời này)
dave thieben

1

Tôi có một vài hướng dẫn tôi sử dụng để đề xuất các công cụ xử lý công việc.

1) Khi các nhà phân tích kinh doanh không có nền tảng mã hóa nhưng có thể vẽ sơ đồ.

Các công cụ dòng công việc hiện đại sử dụng ký hiệu mô hình hóa quy trình nghiệp vụ hoặc các phiên bản ít khả năng hơn có sẵn trong SharePoint và các hệ thống tương tự. Điều này cho phép các thành viên có khả năng về kỹ thuật nhưng chưa được mã hóa trong nhóm thiết kế và phát triển nhiều luồng công việc.

2) Khi bạn cần theo dõi tiến độ công việc, hãy thực hiện các bước leo thang, lật qua lại giữa các quy trình do máy tính điều khiển và các quy trình do con người kiểm soát.

Giám sát và tự tham khảo là đặc điểm nổi bật của động cơ dòng công việc hiện đại.


-2

Từ góc độ kinh doanh nhân sự, động cơ dòng công việc là rất quan trọng.

  1. Họ cung cấp một quy trình có cấu trúc, ngay cả khi nó giống nhau mọi lúc.
  2. Họ cung cấp sự minh bạch

    • Ai yêu cầu thay đổi,
    • Khi được yêu cầu,
    • Ai phê duyệt v.v.

    Sự minh bạch này giúp thúc đẩy quá trình và thúc đẩy quyền sở hữu.

Giả sử các hình thức được tích hợp và thông minh, hỗ trợ logic kinh doanh, nó cũng có tác động lớn đến dòng thời gian, hiệu quả xử lý và chất lượng dữ liệu. Bảo mật cũng là một sự cân nhắc và chứa thông tin nhạy cảm trong một hệ thống bảo mật sẽ tốt hơn nhiều so với việc có các biểu mẫu giấy nằm chờ đợi để được ký kết. Nó cũng di động hơn nhiều. Sau khi thực hiện gần đây, một người quản lý nói với tôi rằng nó đã giúp anh ấy tiết kiệm rất nhiều rắc rối khi gửi những thứ cho anh ấy để ký khi anh ấy đi du lịch rất nhiều.

Thay mặt nhân sự: Quy trình làm việc lâu dài !!!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.