جزء آخر من كتاب مدرسي حول برمجة الأعمال.
العمليات الحدودية هي أفضل آلية. يبدو مبتذلًا ، لكن هذه التوصية بعيدة عن التنفيذ دائمًا.
لا تزال المواقف شائعة عندما تعبر العملية الحدود دون استخدام أنظمة آلية. في العديد من الشركات ، يتم استخدام المذكرات الورقية والتطبيقات والأوامر وما إلى ذلك. بالطبع ، هذا لا ينطبق فقط على الحدود بين الإدارات - الموظفون في نفس الخدمة يخطئون أيضًا بأوراق.
إذا قام أحد الموظفين بتسليم العملية إلى موظف آخر في شكل ورقي ، فسيكون من الصعب للغاية تتبع حالة هذه المهمة. يتم التعبير عن الطريقة الأولية واسعة الانتشار لفقدان مثل هذه المهمة في عبارة "نظيفة تحت القماش". من الجيد أن يقوم الموظف بتجميع مثل هذه الأوراق على سطح مكتبه - ثم يكون حجم التطبيقات مرئيًا على الأقل. من الناحية النظرية ، يمكن العثور على قطعة معينة من الورق في هذه المجموعة ، وتحديد المدة التي كانت عليها في قائمة الانتظار هذه.
طريقة نقل العملية عبر البريد الإلكتروني شائعة أيضًا. للأسف ، هذا النهج هو أيضا ليست جيدة. بمعنى ما ، هو أسوأ من كومة من الأوراق ، لأنه ليس لدى عملاء البريد الإلكتروني وظائف كافية لإدارة الرسائل كمهام. سيحصل الشخص على جبل من الحروف ، وهو أمر يصعب تحديد حالة قائمة الانتظار.
حول النقل الشفوي للمهام ولا يستحق الحديث عنه. كما يقولون ، طار في أذن واحدة ، طار في الآخر.
هناك لحظة غير سارة أخرى مرتبطة بمعرفة الحدود. عندما يقوم أحد الأشخاص بتسليم المهمة إلى شخص آخر - على الورق أو لفظيًا أو عبر البريد الإلكتروني - فإن شركة النقل الآن تنتمي إلى الشخص الثاني. من وجهة نظر رسمية وأخلاقية وفنية في كثير من الأحيان ، لم تعد الأولى قادرة على الخوض في مهام الثانية. مع وجود بنية تبعية معينة ، يمكنك بالطبع التعمق في مجموعة من الأوراق ، ولكن قراءة البريد الإلكتروني لشخص آخر بالفعل أكثر من اللازم. لا يزال من الممكن بطريقة ما اكتشاف حالة تطبيق واحد أو أكثر ، مثيلات العملية الخاصة بك ، لكن يكاد يكون من المستحيل تقييم الحالة العامة لقائمة الانتظار "على الحدود".
لذلك ، نحن بحاجة إلى نظام مراقبة الحدود الآلي. لديها العديد من المتطلبات الهامة.
الشرط الأول هو أن النظام يجب أن يحدد بوضوح قائمة الانتظار والمهام الموجودة فيه. حتى في الأنظمة الآلية المتقدمة ، فإن هذا غير ممكن دائمًا. إذا طلبت من شخص إظهار دور مهامه في البرنامج ، فسيكون قادرًا على إظهار شيء ما - سيُظهر قائمة من الوثائق ويطبق بعض المرشحات ويرتبها ، وستحصل على قائمة بالمهام. إذا سألت المبرمج ، فسوف يفعل الشيء نفسه ، ليس فقط في قائمة الوثائق ، ولكن على الأرجح من خلال الاستعلام عن البيانات.
العبارة الرئيسية هنا هي "إذا سألت". وإذا كنت لا تسأل؟ بالنسبة إلى مبرمج الأعمال ، يمكن أن يكون هذا السؤال البسيط ("ماذا لو لم تسأل؟") معيارًا واضحًا لتحديد الحدود بشكل صحيح. إذا كنت ، بصفتك مراقبًا خارجيًا ، فيمكنك ، دون سؤال الموظف ، الاطلاع على قائمة بمهامه ، عندئذ يتم استيفاء الشرط الأول - يتم تحديد قائمة الانتظار.
مع بساطة واضحة لهذا المعيار ، ستجد أن معظم الأنظمة الآلية لا تفي به. فهم قائمة الانتظار كما كان فقط في رأس الموظف ، حتى في ظل القيصر Gorokh والمذكرات المكتبية ، لا يزال في النظام الآلي. هذا الموقف مألوف ويبدو طبيعيا ، لأن "كل شخص لديه". ولكن إذا كنت ، كمبرمج أعمال ، ترغب في تحسين هذه العملية ، فسيتعين عليك القيام بتحديد قائمة الانتظار.
الشرط الثاني هو أن قائمة الانتظار يجب أن تتحلل قبل المهام ، أي للكيانات البسيطة التي تتطلب إجراءات مفهومة. يحدث أن يبدو أن قائمة الانتظار قد تم تحديدها ، ولكن المهام من عمليات مختلفة مختلطة فيها. في هذه الحالة ، تكون إمكانية التحكم في قائمة الانتظار والتحكم فيها مسألة خطيرة.
المعيار بسيط: إذا كان بإمكانك ، دون سؤال الموظف ، أن تخبرك عن كل مهمة محددة ما يجب القيام به ، فإن قائمة الانتظار تتحلل بشكل صحيح. إذا كانت الإجابة "من الضروري أن نفهم" ، أو "من الضروري إصلاحها بطريقة أو بأخرى" ، أو "لم تنظر بعد" ، فإن التحلل سيء. يستمر النظام والعملية في الاعتماد على الموظف.
الشرط الثالث هو أن تكون أولويات إكمال المهام واضحة. المبدأ هو نفسه كما في المعايير السابقة. إذا نظرت أنت إلى قائمة الانتظار من الجانب ، انظر ترتيب المهام ، تكون الأولويات واضحة. إذا احتجت أنت أو مستهلكو العملية إلى سؤال الموظف عن الأولويات أو إعادة تعيين هذه الأولويات كل يوم ، فإن قائمة الانتظار تتم إدارتها بشكل سيء.
الشرط الرابع هو أن الوقت الذي تقضيه المهمة في قائمة الانتظار ، أي يتم تطبيق مبدأ "جبل الجليد" . يرتبط الوقت الذي يقضيه عادةً بأولويات التنفيذ ، ولكن هناك أيضًا تعارضات.
على سبيل المثال ، تم بناء نظام الأولوية على فرز مزدوج - أولاً الأهمية ، ثم تاريخ المهمة. في هذه الحالة ، مع وجود عدد كبير من المهام المهمة ، لن تصل أبدًا إلى المهم. إذا كانت العملية بحيث يعتبر عدم الوفاء الأبدي لبعض المهام هو القاعدة ، فلا بأس بذلك. ولكن ، كقاعدة عامة ، في عمليات التدفق ، من المهم إكمال جميع المهام.
لذلك ، يجب مراقبة التأثير المتبادل للأولوية والوقت المستغرق في قائمة الانتظار. على سبيل المثال ، بعد تحديد نظام الأولوية ، أضف معامل وزن إلى الوقت الذي يقضيه في قائمة الانتظار ، بحيث تطفو المهمة على قيمة معينة ، بغض النظر عن أهميتها.
لذلك ، يكون المعيار بسيطًا: إذا رأيت كل مهمة لها وقت في قائمة الانتظار ، فسيتم تلبية المتطلبات. الخطأ المعتاد هو الرأي القائل بأنه يكفي معرفة ومعرفة تاريخ بيان المشكلة ، لأنه في هذه الحالة يمكن حساب الوقت الذي يقضيه في قائمة الانتظار بسهولة. الأتمتة من السهل فعلها حقًا. لكن الحساب في العقل أكثر صعوبة ، ولن يقوم بذلك أي موظف عاقل. لذلك ، لن يتم أخذ الوقت المستغرق في قائمة الانتظار في الاعتبار في العمل.
الشرط الخامس هو بغض النظر عن كيفية مبتذلة ، ولكن يجب أن تكون معروفة للمنفذ المهمة. إذا كان اختيار المقاول خاضعًا لتنظيم خوارزمي تلقائي ، فيجب فهم اللحظة التي يتم فيها تنفيذ هذه الخوارزمية.
طالما أن المهمة لا يوجد بها منفذ ، لن يتم حلها. ليس من الضروري تعيين المقاول لكل مهمة محددة - يكفي أن نفهم أن حل جميع مهام قائمة الانتظار المحددة تم تعيينه لشخص معين.
غالبًا ما يؤدي اختيار المقاول إلى وضع قائمة الانتظار في وضع الخمول في الحالات التي لا يُعيّن فيها المقاول في العملية شخصًا معينًا ، بل منصب أو إدارة. في هذه الحالة ، يوصى باختيار المنفذ كمهمة منفصلة ، والتي يجب أن يقوم بها الرئيس أو مرسل معين. في حين أن اختيار المقاول ليس مهمة ، ولكنه امتياز ، فإن قائمة الانتظار ستكون عالقة باستمرار في هذه المرحلة.
المعيار بسيط: بالنظر من جانب الخط ، يجب أن تعرف بالضبط من سيقوم بهذه المهمة.
الشرط السادس ، من المناطق العليا في برمجة الأعمال: يجب أن يكون النظام قادرًا على عرض ومقارنة قوائم الانتظار من عمليات مختلفة. في الحالة العامة ، لم يتم الوفاء بهذا الشرط أبدًا ، لذلك لا يمكننا التحدث إلا عن درجة الامتثال.
المشكلة ، عادة ، هي أن قوائم الانتظار والمهام والعمليات المختلفة هي كيانات نظام مختلفة ، مع مجموعات منفصلة من الخصائص. هناك مثيل عملية في قائمة انتظار واحدة ، ولكن ليس في قائمة انتظار أخرى. مهمة واحدة لها تاريخ الإنتاج ، في حين أن الآخر لا. الخ.
في ضوء هذا التنوع في الكيانات ، لا يحل أحد عادة مهمة التحكم في جميع قوائم الانتظار "في نافذة واحدة" - لا في الأنظمة الآلية ، ولا في التحكم اليدوي. لذلك ، تظل حالة قوائم الانتظار - سواء الفورية أو المقاييس لكل فترة - لغزا ، مما يقلل من فعالية الإدارة والتحليل.
المساعدة الجزئية هي أنظمة التحكم في العمليات التي "تفرز" مجموعة متنوعة من المستندات الأساسية في كيانات مفردة. هذه هي الطريقة التي تظهر بها بطاقات العمليات والمهام المشتركة وكيانات العنونة.
ولكن لمبرمج الأعمال ، للأسف ، هذا النهج غير مناسب للغاية.
أولاً ، يؤدي تطبيق العمليات عادةً إلى تعقيد الأتمتة - وليس لفترة التطوير بقدر ما يحدث في التغييرات اللاحقة. إن العملية ، مع البطاقة ، والمنفذين ، والإجراءات والشروط ، في حد ذاتها ، هي هدف الأتمتة ، مع كل ما يترتب على ذلك - الحاجة إلى الصيانة ، وتصحيح الأخطاء ، والتنسيق ، إلخ.
ثانياً ، لا يمكن رسم الصورة الحقيقية للعمليات ، كقاعدة عامة ، بسبب الصراع "واحد - كثير". تريد معظم أنظمة رسم العمليات تشغيل كائن واحد في كل مرة ، حتى إذا كان الكائن متعددًا.
على سبيل المثال ، عملية تنفيذ طلب شراء. إذا قمت برسم خريطة شاملة لهذه العملية ، فسيظهر أن نفس التطبيق يعمل من البداية إلى النهاية. يجب أن يعمل المورد نفسه ، وفقًا لخريطة العملية ، مع كل تطبيق على حدة ، كجزء من مثيل العملية.
في الواقع ، لا يشارك المورد في العملية الشاملة على الإطلاق. لديه بطاقة خاصة به ، عند مدخلها مجموعة من التطبيقات. علاوة على ذلك ، كل يوم - بحجم مختلف (بما في ذلك ، في بعض الأحيان ، فارغة). بعد تنفيذ تطبيق معين من تلك الحالة الأولى ، تعود الإدارة إلى عملية واحدة.
لا يمكن رسم مثل هذه العملية إلا باستخدام عمليات متداخلة ، والتي تنجح عادة ، ولكن يتم فقدان بساطة ووضوح الخوارزمية - تصبح تقنية ، يمكن فهمها للمبرمجين ، ولكنها غير مناسبة للأشخاص الأحياء والإدارة.
ثالثًا ، هذه العمليات عرضة للبيروقراطية - فهي تسعى جاهدة لجعلها "خرسانة مسلحة" وتنسيقها وطباعتها ووضعها على الرف. هذا النهج يتناقض مع مبادئ الأتمتة السريعة ، وبالتالي ، ليست مناسبة لبرمجة الأعمال. عمليات صب الخرسانة ، خاصة خلال فترة التصحيح ، هي نفس رمز برنامج الطباعة.
رابعًا ، لا يوفر مطورو آليات عمليات الرسم ، الموجهة فقط بمنطق المبرمجين ، أدوات لإدارة قائمة الانتظار. وفقا لذلك ، لتحليل جميع الخطوط على الحدود ، لمقارنتها مع بعضها البعض ، على هذه الخطوة لن تنجح. لا يزال يتعين عليك اختراع الأدوات الخاصة بك.
يمكن استخدام طريقة رسم عمليات "الخرسانة المسلحة" كمساعد ، ولن يكون هناك ضرر كبير. أو ، يمكن استخدامه في نهاية المشروع ، كوسيلة للحفاظ على العمليات المكونة. حتى المشروع القادم.
ومع ذلك ، لا تنسى النقطة الثالثة - الميل إلى البيروقراطية. إذا بدا لك أنه يمكنك الحفاظ على النظام لفترة من الوقت ، فإن بقية الموظفين والمديرين لديهم رأي معاكس: لا تلمس ما ينجح. سيبدأ النظام الذي تم إنشاؤه وتصحيحه وتنفيذه في مقاومتك.
من الأفضل استخدام مبدأ "المهمة التلقائية" أو ما شابه ذلك عندما يكون لدى النظام الخاص بك كيانات يمكنها "إرفاق" العمليات الجارية وبناء المهام في قائمة انتظار. وسيتم النظر في المبدأ نفسه في وقت لاحق.
يوفر كيان واحد لإدارة قوائم الانتظار على الحدود ، أولاً وقبل كل شيء ، نظام إحداثي واحد - مقاييس جميع العمليات في نفس الوحدات. يمكن تقييم أي عملية - على الفور وفي وقت لاحق - على نفس النطاق.
يمكن إجراء تقييم فوري ، على سبيل المثال ، في لوحة تحكم عملية مشتركة. ليس في خريطة العملية العامة التقليدية ، والتي لا يمكن رؤيتها على شاشة واحدة دون التمرير ، ولكن في شكل قائمة بسيطة ، حتى بدون أرقام ، باستخدام شاشة ملونة ، مثل إشارة المرور. سيؤدي هذا إلى قائمة من عمودين: العملية والحالة.
الخيار أكثر إثارة للاهتمام بعض الشيء - ليس قائمة من العمليات ، ولكن قائمة نقاط المشكلة. النقطة ، في هذه الحالة ، هي مهمة تلقائية ، عقدة معينة من عملية محددة ، يمكن مقارنتها بشكل لا لبس فيه مع الحياة. على سبيل المثال ، "اتفاق العقود من قبل محام". يكفي سرد جميع النقاط وإظهار حالتها وترتيبها بحيث تظهر النقاط الأكثر إشكالية في الجزء العلوي.
إن مثل هذا التقييم الفوري لجميع العمليات ، على الرغم من بساطته وضوحه الواضح ، نادر للغاية. أنت الآن تفهم السبب.
يعد تحليل قائمة الانتظار بأثر رجعي حدثًا أقل شيوعًا لأن معظم الأنظمة لا تحتوي على البيانات الضرورية على الإطلاق. تتوفر مثل هذه البيانات فقط إذا تم استخدام مبدأ Iceberg بالكامل ، عندما لا يتم تخزين وقت الحالة الآني فقط ، ولكن أيضًا تاريخه.
بشكل عام ، كما ترى ، لا يوجد شيء معقد في أتمتة مراقبة الحدود. من المهم عدم خلق صعوبات بشكل مصطنع باستخدام عمليات "الخرسانة المسلحة" وتجاهل مبادئ الأتمتة السريعة. أصبحت الطرق والمعايير التي تحتاج إلى استخدامها عند أتمتة الحالات الحدودية للعمليات معروفة لك الآن.