يضع خلط مستويات التجريد قنبلة في قاعدة مشروعك

على مر السنين كمهندس معماري ، رأيت عملاء مختلفين ، وأحد الأخطاء الأكثر شيوعًا في صياغة المواصفات الفنية ورغبات العملاء هو خلط مستويات مختلفة من التجريد. يأتي شخص ويقول:



- أنا بحاجة إلى قطعة من الأجهزة التي تتحكم في محرك الأبواب وتظهر الحالة الحالية على شاشة من سبعة أجزاء ، ودائمًا مع خادم خارجي للتحكم عن بعد ، حتى يتمكن من الاتصال بهذا الخادم عبر TCP ، وأخذ VueJS للوحة التحكم.



يبدو أنه من الواضح ما يريده الشخص. حتى أن شخصًا ما لديه مثل هذه المعارف التقليدية يسبب الحماس - فالشخص ، على ما يبدو ، يفهم بوضوح ما يريد. غالبًا ما يشير إلى وحدات تحكم / مكونات / أطر / بروتوكولات محددة.



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



في هذه الحالة نتحدث أولاً عن المستوى الأول: الجهاز الذي يتحكم في محرك الأقراص ، مع الإشارة والتحكم عن بعد.



ثم نبدأ في تحديد المتطلبات (ولكن ليس التقنيات المحددة).

جهاز في حالة IP68 ، مزود بمصدر طاقة 230 فولت ، والذي يتحكم في محرك غير متزامن بقوة 800 واط من خلال محرك تردد عبر modbus ، والذي يحتوي على مؤشر مرئي بوضوح ، يجب التعرف على الحالات الأربع (مفتوحة / مغلقة / قيد التقدم / الانهيار) من قبل شخص من مسافة 10 أمتار ، والتي يتوفر بها جهاز تحكم عن بعد من المتصفحات الحديثة عبر الإنترنت.



وفقط بعد ذلك يمكنك البدء في تحديد مستوى التنفيذ للمتطلبات. هنا وحدة تحكم كهذه ، هنا جهاز إرسال واستقبال rs485 ، هنا مزود طاقة ، وهنا مثل هذا المؤشر.



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



لنفترض أن العميل يريد شاشة بها أحرف 8 سم. في هذه المرحلة ، يجب على المهندس المعماري أو مدير المنتج أن يسأل لماذا بالضبط 8 سنتيمترات؟ في معظم الحالات ، اتضح أن العميل لديه "رؤية من 10 أمتار" من الداخل ، لكنه قرر تبسيط المهمة وعبّر على الفور عن مطلب محدد. أو أنه ببساطة لا يستطيع أن ينظر بشكل مجرد ، لأنه يفكر في المشروع في أشياء أكثر قابلية للفهم: "شاشة مجردة مرئية من 10 أمتار" أكثر تعقيدًا من "عرض شرائح كبير ، كما تعلمون ، في صندوق ، أنا هنا سأعلقها على الحائط ".



لكن العميل بحكم التعريف ليس لديه الكفاءة لتطوير المشاريع ، وإلا لما أتى إليك. وحتى لو كان يمتلك هذه الكفاءات لا يمكنه تطبيقها في تطوير هذا المشروع بالذات ، فلماذا أتى إليكم حينها؟



يجب اتخاذ القرارات في المشاريع من قبل الشخص الذي سيكون مسؤولاً عنها. إذا لم يكن العميل مسؤولاً عن توقيت تطوير الكود لشاشة معينة اختارها ، فلا يجب عليه تحديد هذه الشاشة. تتمثل مهمة العميل في تحديد المتطلبات ، في رأيه ، التي ينفذها نموذج الشاشة المختار.



يتمثل التحدي الذي يواجه صانع القرار المعماري في اختيار الحل الأنسب لتلبية هذه المتطلبات. يمكن أن تكون شاشة LED أو شاشة LCD أو مجرد إشارة مرور من 4 ألوان ولوحة بها نقوش ملصقة.



لكن لا ينبغي للمهندس أن يأخذ كل ما يقوله العميل على أنه أمر مفروغ منه: إذا كان من الممكن بهذه الطريقة وضع مواصفات فنية كافية للتطوير ، فلن يحتاج العميل إلى وسطاء بينه وبين التطوير.



وصف المتطلبات ليس على مستوى العمارة التي تنتمي إليها هو أمر خطير يضمن دفن بنية المشروع ، واختزاله ليس فقط إلى وصف الرغبات ، ولكن إلى مزيج خطير من الغازات آمنة وحدها ، ولكنها جاهزة للانفجار عند الخلط. وسوف ينفجر النظام المنفذ وفقًا لهذه البنية عاجلاً أم آجلاً - مع التجريدات الحالية أو التعديلات المعقدة أو العكازات المتساقطة مع أي تغيير في الوظيفة.



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



لكن تصميم منزل من الطوب ، وحتى في تكتلات الطوب ، فكرة سيئة للغاية.



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



ثانيًا ، ضياع المرونة: تغيير لبنة هو بالفعل خطأ. نحن لا نفسح المجال للمناورة عند مستوى منخفض من التطور ، مما يجبرنا على القيام بعمل شخص آخر ، وتلقي رسائل خطأ ليست بالغة الأهمية بالنسبة لنا. إذا حددنا المهمة على أنها "صنع جدار من الطوب بسمك 30 سم" ، فسيكون لدى المنشئ الفرصة لوضع الطوب كما يريد ، طالما أنه لا ينتهك القوة أو القيود الأخرى. إذا قدمنا ​​له رسمًا دقيقًا لموقع الطوب ، فعند الفحص التالي ، سيعطينا الاختلاف المتراكم في سماكة التماس ببضعة ملليمترات خطأ بمقدار نصف سنتيمتر في موقع لبنة معينة ، مما سيؤدي إلى تباين بين الجدار ومعرفته الفنية. في بعض الأحيان يكون هذا خطأ ، ولكن في معظم الحالات ، لا يؤثر الوضع الخاطئ لبنة واحدة على أي شيء ، وتمليه الظروف ،التي لم نأخذها في الاعتبار عند التصميم: على سبيل المثال ، الأبعاد غير الصحيحة للطوب من الإنتاج. يمكنك العودة ، يمكنك البناء من هذا ، سيكون أسهل وأرخص. التصميم على مستوى الطوب الفردي يسلبنا هذا الاختيار ، ويجبرنا إما على مطابقة النتيجة المثالية أو التخلص من كل العمل.



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



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



لكن من المستحيل التعامل مع منزل مصنوع من مواد أخرى: عليك التوقف عن التركيز على الطوب ، وهذا يدمر الصورة الكاملة للعالم. على الرغم من أنه مع الفصل الصحيح لطبقات التجريد ، فإنك ستقوم بتصميم الغرف بالأمتار بشكل مثالي ، وحساب التكلفة بالروبل ، والحمل على الأكوام بالأطنان ، وحساب التوصيل الحراري في W / (m · K) ، وفقط في آخر مستوى تصميم تقرر ما يجب أخذه - الطوب ، الخرسانة الخلوية أو الألواح الخرسانية. وإذا لم يعجب العميل الحل ، فغيّره دون لمس باقي المشروع.



العمل على الهندسة المعمارية يدور حول السير عبر مستويات التجريد. تعتبر رؤية هذه المستويات خاصية أساسية للمهندس المعماري الجيد.



All Articles