
تحية! اسمي Oleg ، وأنا مطور الواجهة في Alfa Bank. أريد أن أخبركم عن قصة فلسفية صغيرة - حول النهج الهندسي في التنمية ، عن وظيفتي الأولى ، وأشعل النار التي جمعتها هناك ، حول سبب أهمية قوائم المراجعة (وإنقاذ الأرواح).
وأيضًا حول كيفية الاستمرار في العمل بشكل منتج وليس التنقيب في الكثير من المهام الصغيرة وليس المهام ذاتها.
بدأ كل شيء بالفوضى.
في أول وظيفة لي (وليس ألفا ، لا) لقد تم نقلي بطريقة أو بأخرى وتم إلقاؤي على الفور ، كما قالوا ، أيها الرجل ، والآن أنت تقوم بـ CRM ، فقد أصبحت شركات هناك. ما يجب القيام به وكيفية القيام به - لم أفهم على الإطلاق. ماذا يفعلون عادة في مثل هذه الحالة؟ هذا صحيح - فهم يركضون إلى زملائهم ويبدأون في التحقق معهم من كيفية توصيل الشفرة إلى الخادم ، وكيف هي الأشياء في البوابة ، وما هي الممارسات التي نستخدمها ، وتلك التي لا تستخدمها ، وما إلى ذلك. ساعدني هذا النهج ، وأنا أنصح الآخرين دائمًا بالقيام بذلك. اسأل ، اطرح الأسئلة ، حتى لو بدا واضحًا لك ، حدد ما يجب توضيحه. هذا طبيعي. ليس من الطبيعي ألا تسأل.
خطوتي التالية هي استخدام الكتب. لأنني عندما كنت أعيد طرح أسئلة والحصول على إجابات مثل "Yuzay linter" ، أدركت نفسي أفكر في أنني أعرف كيفية القيام بكل هذا ، لكنني لا أفهم تمامًا السبب. لقد كنت مهتمًا جدًا بمعرفة أين تنمو الأرجل في جميع العمليات ، وقررت البحث عن المساعدة في الكتب. "رمز نقي" ، "رمز مثالي" - بشكل عام ، ذهبت إلى المجموعة القياسية ، حيث يقولون إن الوظيفة يجب ألا تزيد عن 30 سطرًا. يجب أن أقول على الفور أنه لم يساعد على فهم كل شيء والسيطرة على الفوضى.
نعم ، بدأت أكتب أنظف بشكل ملحوظ ، لكن الفوضى في شكل كومة من المهام ، والتي لم أستطع حلها عادة ، لم تختف. قرر الزملاء المساعدة بنصيحة حكيمة مثل "Dude ، ليس لديك ما يكفي من الحافة ، فلنقرأ عن الحافة هنا وكل شيء سيكون رائعًا معك ، إذا أعطيت أيضًا Scrum-master."
حسنا نعم. رشيق وحده هو شيء جيد. ولكن عندما تعمل في فريق. والحافة ذات الوجه الواحد غريبة بعض الشيء. بدأت الحفر أكثر ، وجدت كتب كايزن. ثم قابلت نظرية تقييد النظام وكتاب "الغرض". ربما قرأها كثيرون ، لذلك سألاحظ بإيجاز أن إحدى الرسائل الرئيسية هنا ليست تحسين كل شيء في كل مكان دفعة واحدة ، ولكن أولاً العثور على مشكلة واحدة وحلها. ثابت - ابحث عن الخطوة التالية واصلحه. لقد توصل المؤلف إلى هذا من خلال الأساليب الهندسية ، لأن المهندسين يفعلون شيئًا كهذا - يبحثون عن مشكلة ويحلونها.
حسنًا ، هذه كلمات ، دعنا نقترب أكثر من الممارسة.
في الحياة
لنفترض أن لديك نوعًا من العمليات الكروية في فراغ يوجد فيه مصمم ، واجهة أمامية واختبار. يرسم المصمم تخطيطات وأزرار في يوم واحد ، تعمل الواجهة الأمامية في ثلاثة أيام مع هذا ، ويحتاج المختبر إلى يومين. يبدو أنه مخطط بسيط ويتضح على الفور أين يمكن تحسين العملية - في المقدمة ، لأن عملها يستغرق معظم الوقت. وهذا هو ، الهدف من التحسين هو العثور على أبطأ مرحلة في هذه العملية.
ولكن هذا مثال بسيط مع ثلاثة متغيرات. بالطبع ، العمل يختلف في كثير من الأحيان. ومختلفة كثيرا. تصبح العملية معقدة عندما يكون لديك خلفية ، وثائق ، CI / CD وغيرها من الأدوات الهامة.

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

في هذه الحالة ، سوف تبحث عن أطول طريق بالأيام في المجموع. في الصورة أعلاه هو حوالي 6 أيام. ابدأ بها ، مع هذه العملية الأطول. اتضح أنه في هذا المثال ، ستقوم بتحسين الواجهة الخلفية ، لأنه يستغرق 4.5 أيام. هذا ليس بالأمر الصعب للغاية ، ولكن عندما تصل إلى هذا وتبدأ في ذلك ، تلاحظ أن الحياة تصبح أسهل.
سأعود إلى أمثلة على فوضى عملي. حصلت على مجموعة من المهام ولم يكن لدي وقت. أدركت أن هناك قيودًا في الواجهة الأمامية (أي ، في نفسي) ، أن المشكلة ليست في المختبر ، لأنه يجد الأخطاء ، وهي على جانبي. للقيام بشيء حيال ذلك ، بدأت أفكر في كيفية استخدام هذا التقييد.
وقرر أننا بحاجة إلى تغيير العملية بحيث يكون هناك نقطة دخول واحدة فقط - شخص واحد يتخذ قرارات بشأن ما إذا كنا سنقوم بالمهمة أم لا. لأن هناك حالات عندما جاء شخص واحد وقال ، أوليغ ، نحن بحاجة إلى نقل الزر هنا قليلاً إلى اليمين. ثم واحد آخر. وفي نصف ساعة شخص آخر لديه مهمة مماثلة. ويبدو أن الأشياء الصغيرة والقمامة ، ولكن في النهاية كنت مخيط بالكامل ، في محاولة لإرضاء الجميع.
الآن أحاول القيام بأكثر من مهمتين بشكل متوازٍ (بشكل متوازٍ وليس في وقت واحد). في السابق ، كان بإمكاني أن أعطي للاختبار مهمة وأقوم بما يلي ، لكن إذا عثر المختبر على خلل ، كان عليّ أن أتحقق من الكود الذي كتبته هناك وأن أتذكره وأن أتحول إليه ، وهو أمر أصعب مما يبدو عند التبديل كثيرًا. وبشكل عام ، التبديل مكلف. حاول ألا تفعل أكثر من مهمتين بالتوازي. 3 المهام هي بالفعل وسيلة لخياطة.
دعونا نفكر في كيفية إخضاع أي شيء آخر للقرار. يبدو الأمر منطقيًا ، نعم ، إذا كان هناك العديد من المهام ، فلن تحتاج إلى رمي شريحة؟ على سبيل المثال ، تتوقع أن يقوم شخص ما بثلاث مهام متساوية التعقيد في ثلاثة أيام. إذا كان قد أنهى مهمة واحدة فقط في غضون يومين من كل ثلاثة أيام ، فعلى الأرجح أنه لا يتناسب مع الخطة على أي حال ، لذا فإن إلقاء المزيد من المهام عليه أعلاه أمر يثبط بعض الشيء.
المزيد عن القيود
بالطبع ، يمكن توسيع القيود. في مثالنا ، استئجار جبهة أخرى. كما أنه من المنطقي والمزيد من الجبهات - سيكون لديهم الوقت لإكمال المزيد من المهام. ثم سيتم نقل التقييد إلى مكان آخر.
هناك أيضًا نهج لا يوسعون به عدد الوحدات ، بل كفاءاتهم. لدي مثال حي - يمكن أن يساعدني المختبر في النهاية الأمامية إذا كنت أعرف الواجهة الأمامية. في زميلي ، بدأ السيد scrum في كتابة الواجهة الأمامية من تلقاء نفسه ، لأنه كان مهتمًا ، قام ببعض الميزات هناك مع وميض ، وكان يستمتع وساعد الفريق. أنا لا أحث على القيام بذلك في المنزل ، لأن النتيجة يمكن أن تكون مختلفة تمامًا ، ولكن على سبيل المثال ، هناك مثل هذا النهج - نعم ، وينجح في بعض الأحيان.
قوائم

قوائم التحقق تساعد حقا جعل الحياة أسهل. تساعد
قائمة التحقق الخاصة ببنك ألفا الآن الكثير في عملي
، حيث توجد مراحل قليلة تحتاج إلى إكمال.
حتى ينقذ الشيكليون الأرواح ، سأقدم مقتطفًا صغيرًا من كتاب
"فهم المخاطر. كيفية اختيار المسار الصحيح ":
في فجر الطيران ، طار الطيارون على الطائرات التي لم تكن مجهزة بمعدات تقنية كما هي اليوم. لم يتم استخدام قوائم التحقق في سلاح الجو الأمريكي إلا بعد أن أصبح واضحًا أن قاذفة B-17 كبيرة جدًا ولا يمكن التحكم فيها من قبل شخص واحد فقط. في عام 2009 ، عندما توقف كلا المحركين في رحلة الخطوط الجوية الأمريكية رقم 1549 فور إقلاعها من مطار لاغوارديا ، قام الطيارون بجميع إجراءات قائمة المراجعة في مثل هذه الحالة الطارئة ، بما في ذلك محاولة إعادة تشغيل المحركات. قام العاملون في الرحلة ، مرة أخرى وفقًا لقوائم المراجعة ، بمراقبة صارمة للإعداد السليم للركاب من أجل الهبوط في حالات الطوارئ. قوائم المراجعة مثل هذه هي طريقة بسيطة وغير مكلفة لزيادة الأمن.
في الطب ، لوحظ صورة مختلفة. كل عام ، تسبب سوء استخدام القسطرة الوريدية المركزية حوالي 80 ألف حالة إصابة بالدم ، ونتيجة لذلك ، يموت حوالي 28 ألف شخص في وحدات العناية المركزة في المستشفيات الأمريكية. وهؤلاء المرضى الذين تمكنوا من البقاء على قيد الحياة يقضون أسبوعًا إضافيًا إضافيًا في المتوسط في العناية المركزة. وتقدر التكلفة الإجمالية لعلاج هذه الإصابات بنحو 2.3 مليار دولار في السنة. ما الذي يمكن أن ينقذ هؤلاء الناس؟ أدوية أفضل لعلاج الالتهابات ، تقنيات أفضل؟ الجواب هو: تحسين ثقافة الأخطاء.
في عام 2001 ، صاغ بيتر برونوفوست من مستشفى جونز هوبكنز قائمة مراجعة بسيطة لأطباء غرفة الطوارئ للتحقق مما إذا كانت هذه التدابير يمكن أن تقلل من انتشار العدوى. فيما يلي خمس خطوات متتالية مصممة لمنع دخول البكتيريا الخطرة إلى المريض:
1) غسل اليدين بالصابون ؛
2) علاج الجلد المريض مع الكلورهيكسيدين مطهر.
3) تغطية المريض مع ورقة معقمة.
4) ارتداء قناع معقم وقبعة ومئزر وقفازات ؛
5) تطبيق مادة معقمة على القسطرة بعد إدخال القسطرة في الوريد.
في هذه القائمة ، كان كل من التدابير الوقائية معروفًا جيدًا ، ولم يتضمن أي شيء جديد. طلب برونوفوست من الممرضات العاملات في وحدة العناية المركزة له معرفة ما إذا كان الأطباء قد اتبعوا هذه القواعد الخمس. ذكرت الممرضات أنه عند تثبيت قسطرة ، فإن أكثر من ثلث جميع المرضى لم يتبعوا واحدة أو أكثر من هذه القواعد. كان معدل إصابة مجرى الدم في المستشفى في ذلك الوقت 11 ٪.
أقنع برونوفوست إدارة المستشفى بالسماح للممرضات بإيقاف الأطباء إذا فاتهم أي من التدابير الخمسة المقررة. انتهك هذا الابتكار الثوري الهيكل الهرمي الذي لم يكن فيه للعاملين في المجال الطبي (وخاصة النساء) الحق في إعطاء تعليمات للجراحين (معظمهم من الرجال). بعد عام ، تم خلالها اتباع هذه التعليمات بدقة ، انخفض معدل الإصابة في مجرى الدم في مرضى المستشفى من 11 ٪ إلى 0 (!). وعلى مدار الخمسة عشر شهرًا التالية ، لوحظت حالتان فقط من هذه العدوى. في هذا المستشفى وحده ، منعت قائمة الإرشادات 43 إصابة ، 8 حالات وفاة ، ووفرت مليوني دولار.
لإثبات أن تأثير استخدام قائمة المراجعة لم يقتصر على مستشفاه ، أقنع برونوفوست أكثر من مائة وحدة للعناية المركزة في ميشيغان بالمشاركة في دراسة مشتركة واسعة النطاق. من المهم أن نلاحظ أن كل واحد منهم طور قائمة أعماله الأكثر صلة بثقافته.
ذكرت وحدات العناية المركزة المشاركة في الدراسة أنه في السابق كان لديهم ما مجموعه 695 حالة من حالات إصابة مجرى الدم بسبب استخدام القسطرة. بعد 3 أشهر فقط من بدء استخدام قوائم المراجعة في معظم الأقسام ، انخفض معدل إصابة المريض إلى الصفر. تمكنت وحدات العناية المركزة المتبقية أيضا من الحد بشكل كبير من هذا المؤشر للسنة ونصف التي أجريت خلالها الدراسة. تم تنفيذ هذا البرنامج الواسع النطاق لإنقاذ الأرواح دون استخدام تقنيات باهظة الثمن ودون زيادة عدد موظفي المستشفى.أي أن كل نقطة من هذه النقاط كانت معروفة ، وهذا ليس نوعًا من الحداثة أو أي شيء آخر. صمم بيتر ببساطة في شكل قائمة مرجعية وجعلها إلزامية. هذا كل شيء.
نحاول تحسين ليس فقط نتائجنا ، ولكن أيضًا نتائج الآخرين ، لذلك نقوم باستمرار بتحديث قائمة التحقق من العمل لدينا. إذا نسيت شيئًا ما فجأة ولم أفعل شيئًا في هذه العملية ، فسأضعه في قائمة المراجعة حتى لا تنسَ في المرة القادمة. في السابق ، كانت النماذج غالباً ما تُعاد إلى المصمم لإعادة صياغتها ، رغم أنه قال إنه فهم على الفور كل شيء وسيقوم بذلك بشكل صحيح ، وبعد ذلك طلب منا للتو قائمة مرجعية ، ألقيت قطعة منه للتصميم ، وأصبحت أسهل.
قمت بتصنيف قائمة التحقق الخاصة بي حسب الإجراء - إجراء واحد = عنصر قائمة مرجعية واحد. الشيء الرئيسي هنا هو عدم الراحة بشدة وعدم الدخول في قوائم المراجعة من أجل قوائم المراجعة. صفحة المكياج هي نقطة جيدة. "عناصر التحكم في المكياج" - حتى أكثر من ذلك ، سوف تساعد على عدم نسيان الضوابط والفروق الدقيقة.
يمكن أن تكون قائمة الاختيار هرمية: تخطيط الصفحة -> تخطيط الصفحة -> تخطيط الصفحة.

لماذا الترميز فقط لا يكفي
هناك حاجة إلى الاختبارات. لكنها ليست هناك حاجة دائما. على سبيل المثال ، تقوم بالهبوط مرة واحدة ، ولا تخطط للعودة إليها لاحقًا - فلا فائدة من دفعها بقوة. يمكنك تغطية المحددات بوحدات أو استخدام end2end ، لكن اختبارات الوحدة الخاصة بالباقي مضيعة للوقت.
ولكن هذا هو السبب في أن الترميز لا يكفي. مرة أخرى ، مثال من العمل الأول - اضطررت إلى تغيير شيء ما ، وذهبت إلى زملائي وتحدثت عنه ، فأجابوا أنهم كانوا مشغولين. وسباق بلدي حرق. وليس هناك من يساعد. ونتيجة لذلك ، بدأ يفهم نفسه في كفاءات إضافية.
افترض أن لديك بعض المهارات الجيدة ، على سبيل المثال ، العمل مع CI / CD. أعطاك المصمم التصميم وذهب في إجازة ، وكان لديك بضعة تعديلات أو أسئلة ، ولكن حتى يعود من الإجازة ، هذا كل شيء ، فإن العملية تستحق كل هذا العناء. قم بتوسيع مهاراتك ، لأنه إذا كانت النقطة الضعيفة في العملية على جانب التصميم ، حسنًا ، فإن المصمم خياط لعدة أسباب ، يمكنك مساعدته. هذه مجموعة إضافية من المعرفة ، لكن يمكن إتقانها. بالطبع ، أنا لا أتحدث عن استبدال أخصائي بالكامل وبالكامل ، أنا أتحدث عن المهارات الأساسية.
النتائج
من المفيد التعامل مع الأمر كمهندس. حتى لو لم يكن عملك ذا طبيعة هندسية. إنها تتيح لك عدم تقديم كل شيء بدون تفكير ، ولكن لإيجاد مشكلة وتقديم فقط ما يساعد على حلها.
بحاجة إلى التواصل ومناقشة الحلول. التواصل من حيث المبدأ يصعب المبالغة في تقديره. في بعض الأحيان تنشأ مشاكل بسبب ما يسمى المبادرة الصامتة. كانت لدينا حالة عندما حصلنا على مطور .Net ومهمة بسيطة بالنسبة له لكتابة الاختبارات. لقد سرعان ما كتب كل شيء ، اختبارات ، اختبارات وحدة ، يختار ، وبعد ذلك لسبب ما بدأ في فعل شيء يتجاوز ما كان في المهمة. على ما يبدو ، في الاعتقاد بأن هذا سيكون مفيدا لنا. نتيجة لذلك ، كل ما فعله جعلنا نقضي الكثير من الوقت على التزامن الإضافي ، وبعد ذلك ذهب كل هذا إلى المهملات في جوهرها. فقط بسبب مشاكل الاتصال الأساسية. لا تفعل ذلك.
حسنًا ، قائمة الكتب المفيدة:
- نظرية تقييد النظام (E. Goldratt)
- إدارة مشروعات السلسلة الحرجة (E. Goldratt)
- Gemba kaizen - طريقة لخفض التكاليف وتحسين الجودة (M. Imai)
- إدارة رشيقة: القيادة وإدارة الفريق (أ. يورغن)
- شرح البرمجة المتطرفة (K. Beck)
عرض مفصل ويمكن الاطلاع
هنا .
هل تستخدم قوائم المراجعة ، هل تعتبرها ضرورية؟ إذا كان لديك أي نهج للحفاظ على أو إنشاء قائمة تحقق ، يرجى مشاركتها في التعليقات.