เมื่อใดจึงจะใช้โปรแกรมเวิร์กโฟลว์


41

ฉันเคยทำงานกับเอ็นจิ้นเวิร์กโฟลว์บางตัวในฐานะโปรแกรมเมอร์ แต่ไม่เคยมีความชัดเจนว่าทำไมเราจึงเลือกเอ็นจิ้นการทำงานตามลำดับมาก่อน และในฐานะโปรแกรมเมอร์ฉันรู้ว่ามีอย่างน้อย 100 วิธีที่จะทำอะไรเมื่อคุณเขียนโค้ด แต่มีเพียงไม่กี่วิธีที่ดีที่สุด!

ฉันยังไม่เข้าใจว่ากรณีการใช้งานใดที่แก้ไขได้ดีที่สุดโดยเอ็นจินเวิร์กโฟลว์ (หรือมากกว่าแนวคิดของพวกเขา) กว่าการออกแบบแอปพลิเคชัน DI ที่เปิดใช้งานได้ดี ฉันกำลังมองหาลักษณะทั่วไปของกรณีการใช้โดเมนที่เป็นกลางซึ่งเอ็นจินการทำงานของเวิร์กโฟลว์เป็นหนึ่งในตัวเลือกที่ดีที่สุด

ดังนั้นคำถามของฉันคืออะไรลักษณะทั่วไปของความต้องการซึ่งสามารถนำมาเป็นสัญญาณสำหรับการเลือกสำหรับเครื่องยนต์เวิร์กโฟลว์ที่ดีและการเข้ารหัสรอบ ๆ มันคืออะไร?


1
"แอปพลิเคชันที่เปิดใช้งาน DI" คืออะไร
jnewman

ฉันตัดสินจากการฉีดขึ้นอยู่กับ แต่มันต้องใช้ความคิดหนัก ...
jnewman

1
@JasonTrue โอ้คุณก็ใช้ Windows Workflow Foundation เช่นกัน!
Gilles

@Gilles คุณบอกได้อย่างไร? : P
JasonTrue

คำตอบ:


22

เอ็นจินเวิร์กโฟลว์มีประโยชน์เมื่อคุณต้องเริ่มตั้งแต่ต้นจนจบ แต่ก็มีเส้นทาง / ตรรกะ / กฎที่แตกต่างกันมากมายในการเดินทาง

ตัวอย่างเช่นสมมติว่าฉันเขียนโปรแกรมที่เผยแพร่เนื้อหา ดังนั้นในกรณีของฉันการเผยแพร่จะต้องผ่านกระบวนการตรวจสอบทางกฎหมายและการอนุมัติขั้นสุดท้ายแล้ว ฉันเขียนโปรแกรมโดยใช้ตรรกะกระบวนการและขั้นตอน ตอนนี้ใช้งานได้ดีสำหรับฉันและ บริษัท ของฉัน ดังนั้นฉันตัดสินใจว่าคนอื่นควรใช้โปรแกรมของฉัน

น่าเสียดายที่ไม่ใช่ทุกคนที่เผยแพร่เนื้อหาโดยใช้กระบวนการเดียวกันดังนั้นแทนที่จะเขียนกระบวนการแยกต่างหากสำหรับแต่ละกรณีที่แตกต่างกันเราจะใช้กระบวนการเวิร์กโฟลว์เพื่อให้โปรแกรมมีความยืดหยุ่นในการรองรับทุกคน ไม่ว่าจะมีกี่ก้าวหรือกฎหรือลอจิกอยู่ระหว่างสองจุดนั้นผลลัพธ์ก็เหมือนกัน

ดังนั้นหากคุณมีกระบวนการที่ผันแปรตั้งแต่ต้นจนจบให้ใช้เวิร์กโฟลว์ หากทุกคนสามารถใช้กระบวนการเดียวกันคุณไม่จำเป็นต้องมีเวิร์กโฟลว์


แต่นั่นเชื่อมโยงกับโลกแห่งความเป็นจริงได้อย่างไร? คุณจะมีฐานข้อมูลที่มี "การบันทึกกระบวนการ" สถานะการติดตามตามstatechartตัวอย่างเช่น แต่แล้วคุณยังต้องรหัสส่วนติดต่อผู้ใช้และการแจ้งเตือนข้อความ I / O ข้อความผ่านระบบส่งข้อความงาน ETL ฯลฯ แล้วใส่ทั้งหมดนี้ อยู่ตรงกลางศูนย์กลางการสื่อสารและเรียกใช้ "เวิร์กโฟลว์เอ็นจิ้น" เป็นวิธีที่ยอดเยี่ยมในการตั้งค่าสถานะและ "เรียกใช้" หรือไม่?
David Tonhofer

@ David - มีขอบเขตใช่
Jon Raynor

19

ฉันรู้ว่าคุณถามถึงกรณีการใช้งาน แต่มันง่ายกว่าที่จะแสดงรายการข้อดีกว่าที่จะจินตนาการถึงกรณีการใช้ที่เป็นไปได้ทั้งหมด ข้อดีของหลักสูตรขึ้นอยู่กับเครื่องยนต์และภาษาที่คุณเปรียบเทียบ แต่โดยทั่วไป:

  1. การรักษากฎเป็นข้อมูลแทนที่จะเป็นรหัสหมายความว่าคุณไม่จำเป็นต้องคอมไพล์ซ้ำดังนั้นคุณสามารถทดสอบการเปลี่ยนแปลงได้อย่างรวดเร็วเปลี่ยนเวลาทำงาน ฯลฯ ไม่ได้เปรียบมากนักถ้าคุณไม่ต้องคอมไพล์ซ้ำในตอนแรก

  2. ผู้ใช้สามารถคาดหวังการแก้ไขกฎได้อย่างสมเหตุสมผล พวกเขาสามารถคนจรจัดกับพวกเขาโต้ตอบในรูปแบบที่ไม่เป็นไปได้เมื่อมีโปรแกรมเมอร์เขียนรหัสสำหรับพวกเขา

  3. การรักษากฎในขณะที่ข้อมูลอนุญาตให้เครื่องมือเขียนเป็นภาพและเปลี่ยนข้อมูลได้

  4. การรักษากฎในขณะที่ข้อมูลช่วยให้การเขียนโปรแกรมเมตาง่ายขึ้น - คุณสามารถเขียนโค้ดเพื่อวิเคราะห์ข้อมูลและแทรกเพิ่มเติมในวิธีที่ซับซ้อนซึ่งจะยากสำหรับรหัส

ทุกสิ่งเหล่านี้เป็นไปได้ที่จะทำโดยตรงกับรหัส (เช่น - เขียนตัวแยกวิเคราะห์ C # เพื่อหากฎทั้งหมดของประเภทที่แน่นอนและสร้างรหัสสำหรับกฎเพิ่มเติมใส่มันแบบไดนามิกในการชุมนุมในลักษณะที่อนุญาตให้ขนถ่ายประกอบ ให้ผู้ใช้สามารถทำเช่นนี้ได้เป็นอย่างดีโดยใช้ Visualizer และบรรณาธิการของคุณ) แต่อาจจะมากขึ้นยากขึ้นอยู่กับภาษาของคุณ (เขียนโปรแกรมโดยใช้เสียงกระเพื่อมอาจหมายถึงรายการที่ 1-4 เป็น "การเขียนโปรแกรม")


5
สิ่งเหล่านี้ไม่ได้เป็นข้อได้เปรียบในโครงการที่ซับซ้อนขนาดใดก็ได้ คุณจะพบว่าตัวเอง "ตรวจแก้จุดบกพร่อง" กฎของคนอื่นอย่างไม่สิ้นสุดซึ่งถูกโยนลงไปในสภาพแวดล้อมการผลิตที่ไม่มีการทดสอบหรือเอกสารที่เพียงพอ
เจมส์แอนเดอร์สัน

+1 สำหรับการอ้างอิงชัด - รหัสคือข้อมูลและในทางกลับกัน
Michael H.

2
@JamesAnderson: ยกเว้นลูกค้าสามารถชำระเงินที่ไม่ใช่โปรแกรมเมอร์ (ที่ปรึกษาเวิร์กโฟลว์) ของตนเองเพื่อแก้ไขกฎของตนเองโดยไม่ต้องยื่นกรณีสนับสนุนกับผู้จำหน่ายซอฟต์แวร์

3

IMHO กรณีเดียวที่คุณควรใช้สิ่งนี้คือเมื่อมันสามารถกำหนดค่าโดยผู้ใช้ที่มีค่าน้อย หากคุณสามารถแก้ปัญหาของคุณด้วยการมอบเครื่องมือให้พวกเขาจากนั้นกลับไปทำงานในสิ่งอื่นที่สำคัญกว่านั้นจากนั้นใช้งาน

หากคุณยังต้องการตั้งค่าสำหรับพวกเขาฉันจะจินตนาการว่าคุณคิดว่า 10 วิธีที่ต่างกันจะได้ผลลัพธ์เดียวกันกับเครื่องมือที่คุณคุ้นเคยและจะง่ายขึ้นในการสนับสนุนและปรับแต่ง


3

ดูเหมือนว่าเป็นคำถามเก่า แต่ปรากฏขึ้นหลายครั้งในป่า ผมเห็นด้วยกับคำตอบของจอน ฉันพบเอ็นจินเวิร์กโฟลว์มีประสิทธิผลสูงในสถานการณ์ต่อไปนี้:

  1. มีกระบวนการทางธุรกิจพื้นฐานที่คุณพยายามแสดง / ใช้งานผ่านซอฟต์แวร์ของคุณ
  2. มีเอนทิตีธุรกิจเดียว (อาจจะเป็นคอมโพสิต) ที่ทำงานในทุกช่วงเวลาของกระบวนการ ในตัวอย่างที่จอนมอบให้เอนทิตีหรือไอเท็มเวิร์กโฟลว์นี้จะเป็นเนื้อหาหรือบทความ พิจารณาการติดตามบั๊กเป็นอีกตัวอย่างหนึ่งของเวิร์กโฟลว์การเปลี่ยนข้อผิดพลาดระหว่างสถานะต่าง ๆ ตามการกระทำที่ผู้ใช้ทำ
  3. ใช้เวิร์กโฟลว์เพื่อสร้างแบบจำลองกระบวนการของคุณเฉพาะในกรณีที่คุณคาดหวังว่ากระบวนการทางธุรกิจจะเปลี่ยนแปลงโดยการเปลี่ยนแปลงฉันหมายถึงลำดับหรือการดำเนินการที่เป็นผลมาจากการกระทำของผู้ใช้หรือการเปลี่ยนแปลง

ระวังและสำคัญมากเพื่อดูว่าโดเมนปัญหา / ความต้องการของคุณมีกระบวนการทางธุรกิจหรือไม่อย่าพยายาม "ปรับ" ให้เข้ากับเวิร์กโฟลว์


สิ่งที่ฉันชอบเกี่ยวกับคำตอบนี้คือส่วนที่เกี่ยวกับ "การสร้างแบบจำลอง" กระบวนการของคุณเช่นการวาดภาพบนไวท์บอร์ด ผมคิดว่าจะช่วยแสดงให้เห็นว่าเครื่องมือเวิร์กโฟลว์จะใช้ (ขึ้นอยู่กับคำแนะนำในคำตอบเหล่านี้)
dave thieben

1

ฉันมีแนวทางสองสามข้อที่ฉันใช้สำหรับแนะนำเครื่องยนต์สำหรับกระบวนการทำงาน

1) เมื่อนักวิเคราะห์ธุรกิจไม่มีภูมิหลังการเข้ารหัส แต่สามารถวาดไดอะแกรม

เอ็นจิ้นเวิร์กโฟลว์สมัยใหม่ใช้สัญกรณ์แบบจำลองกระบวนการทางธุรกิจหรือเวอร์ชันที่มีความสามารถน้อยกว่ามีอยู่ใน SharePoint และระบบที่คล้ายคลึงกัน สิ่งเหล่านี้ช่วยให้สมาชิกในทีมมีความสามารถทางเทคนิค แต่ยังท้าทายด้วยการเข้ารหัสเพื่อออกแบบและพัฒนากระบวนการทำงานจำนวนมาก

2) เมื่อคุณต้องการตรวจสอบความคืบหน้าของงานให้ดำเนินการเลื่อนระดับกลับไปกลับมาระหว่างกระบวนการที่ควบคุมด้วยคอมพิวเตอร์และกระบวนการที่ควบคุมโดยมนุษย์

การตรวจสอบและการอ้างอิงตนเองเป็นจุดเด่นของเครื่องยนต์ขั้นตอนการทำงานที่ทันสมัย


-2

จากมุมมองทางธุรกิจของ HR เครื่องมือการทำงานของกระบวนการทำงานมีความสำคัญมาก

  1. พวกเขาให้กระบวนการที่มีโครงสร้างแม้ว่ามันจะเหมือนกันทุกครั้ง
  2. พวกเขาให้ความโปร่งใส

    • ใครร้องขอการเปลี่ยนแปลง
    • เมื่อไหร่ที่มันถูกร้องขอ
    • ใครอนุมัติเป็นต้น

    ความโปร่งใสนี้ช่วยในการขับเคลื่อนกระบวนการและส่งเสริมการเป็นเจ้าของ

สมมติว่ารูปแบบนั้นถูกรวมเข้ากับและชาญฉลาดซึ่งสนับสนุนตรรกะทางธุรกิจ แต่ก็มีผลอย่างมากต่อระยะเวลาประสิทธิภาพการประมวลผลและคุณภาพของข้อมูล ความปลอดภัยเป็นสิ่งที่ควรพิจารณาและมีข้อมูลที่ละเอียดอ่อนในระบบความปลอดภัยซึ่งเป็นที่นิยมมากกว่าที่จะมีรูปแบบกระดาษอยู่รอบ ๆ รอให้เซ็นชื่อ มันยังเป็นมือถืออีกมาก หลังจากการติดตั้งเมื่อไม่นานมานี้ผู้จัดการคนหนึ่งบอกกับฉันว่ามันช่วยให้เขายุ่งมากในการทำสิ่งต่าง ๆ ที่โพสต์ไว้ให้เขาเพื่อเซ็นสัญญาเนื่องจากเขาเดินทางบ่อยมาก

ในนามของ HR: กระบวนการทำงานที่ยาวนาน !!!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.