عن إختيار التقنيات وتصميم الأنظمة
أرسل جيف بيزوس مؤسس أمازون في عام ٢٠٠٢ رسالة عامة تحتّم على جميع منتجات أمازون بناء الخدمات داخليًا بطريقة تكون API First واللي مايسمع الكلام يُفصل!
لهذا القرار ومجموعة الاشتراطات التي كانت بداخله تبعات عجيبة على أمازون، فهي كانت سبب رئيسي خلف أن يكون متجر الكتب هذا هو كبير الحوسبة السحابية في سنوات لاحقة.
إتخاذ القرارت هو فن يصعب تدريسه وتكتسبه مع الخبرة وكثرة التجارب الناجحة والفاشلة.
في هذه المقالة سأحاول تلخيص عدة أفكار ستساعدك في بناء منهجية صحيحة لاتخاذ القرارت بما يتسق مع السياق الذي أنت فيه.
هذه الافكار هي مجموعة آراء شخصية ونصائح من تجربة امتدت لعقد من الزمن في مجال التقنية في أماكن متعددة وبمسؤوليات مختلفة بعضها دروس استفدتها من المتابعة اللصيقة لمن سبقوني وبعضها تجارب شخصية ويغلب عليها قناعات توصلت لها مع مرور السنين.
أولًا، هنالك نوعين من القرارت:
قرارت سهل التراجع عنها وإطار تأثيرها محدود فهذه لاتستدعي إكثار التفكير فيها ولذا الافضل إختيار الطريق الأسهل والأسرع للتنفيذ، وإن أثبت فشله فالتراجع عنه سهل.. أين المشكلة؟
وقرارات صعب التراجع عنها أو مدى تأثيرها ممتد بين الأنظمة والفرق. وهذه تستوجب دراسة القرار.
نصائح لقرارات اختيار التقنيات وتصميم النظام
أولًا يجب أن تحدد مع متخذي القرار الأهداف من وراء بناء هذا النظام، وكيفية استخدامه وماهي الخدمة الجوهرية به، وكم مستخدم متوقع؟ هذه جميعها أشياء ستساعدك في إتخاذ قرارات من صالح البزنس.
يجب أن تعي أن بناء الأنظمة وتصميمها هو عبارة عن طريق يوجد به عدة مفترقات طرق، لكل طريق تسلكه محاسن ومساوئ إتخاذ قرار إنك تلف يمين أو يسار يجب أن تكون مدعومة بفوائد وتضحيات واضحة تتماشى مع البزنس ومستهدفاته.
عندما تقوم ببناء شيء إتبع هذه الفلسفة.. Make it work. Make it right. Make it fast
عند اختيار تقنية فكّر في سهولة التوظيف ومدى توفر المواهب
مدى سهولة تعليم اللغة/التقنية للناس في حال كان توفر المواهب صعب
دائمًا ضع في عين الإعتبار سهولة إدارة النظام بعد الإطلاق. Operational Sympathy
عند حدوث عطل، هل لدى الفريق المعرفة الكافية لتحديد المشكلة وحلّها في وقت مناسب؟ إن لم يكن كذلك وكان لابد من إستخدام هذه التقنية فالأفضل محاولة محاكاة هذه الأعطال قبل الإطلاق وتوثيق الحلول لها.
فقط لأن أمازون أو قوقل قاموا ببناء نظام بطريقة معينة لاتعني أنك يجب أن تتبع خُطاهم. على النقيض تمامًا دائمًا تذكر أنك لست بحجمهم لذا استغل هذا الشيء لصالحك!
لاتقم بتبني تقنية ضخمة جدًا من ناحية عدد المزايا فقط لأن ممكن تحتاجها.
إن كنت في مرحلة بناء أولية MVP جُل التركيز يجب أن يكون على إختيار تصميم وتقنيات تساعدك على التحرك بسرعة الى أن تجد موائمة لنموذج العمل.
لاتنجرف وراء التقنيات الجديدة اللامعة فأفضل التقنيات هي المملة.. Choose Boring Technology
دائمًا قللّ عدد المتغيرات في كل نظام تقوم به، المتغيرات هنا هي أشياء جديدة على الفريق. وإن كان لابد من متغيرات كثيرة.. قم بإضافتها بشكل تدريجي حتى يكون التركيز في كل مرحلة من البناء واضحة للجميع.
سيكون لهذه المقالة أجزاء قادمة للإسهاب في بعض هذه النصائح فبعضها يمكن كتابة كتب عنها.
أما الآن سأعود لمحرر الأكواد لأكمل العمل على نظام Linker القادم!
في حال أعجبتك هذه المقالة شاركها مع الآخرين، وإن كان لديك نصائح أخرى.. سنود الاستماع لها على حسابنا في تويتر
https://twitter.com/by_linker