این هفته ارائهای در اتکاپذیری بود با عنوان «لامصب رادَسته» (gosh darn convenient) که نکات جالبی داشت، نکات سرراست و بدیهی ولی معمولا مغفول در طراحیها. (۱)
مثلا برای یک سیستم که فلان فایل ورودی/پیکربندی رو میگیره (مثلا برای مدیریت ترافیک، برای اِعمال بر درخواستها، برای کنترل سهمیهها، …) اون فایل رو براش کجا بگذاریم که بره برداره؟ چه جایی بهتر و رادَستتر از سرویس مدیریت نسخههای کُد (مثلا git)؟ هم دم دسته، هم به سادگی ... (۲)
قابل جستجو و مروره، هم بازبینی (code review) داره، هم میشه براش تستهای پیش-از-submit نوشت، هم مدیریت نسخه و تاریخچه داره. از قضا در گوگل زیاد این کارو میکنیم (البته git نیست) و از قضا حادثههای بزرگی آفریده چون این کار یعنی وابستگی محیط عملیاتی (production) به آنچه نباید. (۳)
سرویس مدیریت کد، سرویس پایگاه داده نیست. برای سلامت محیط عملیاتی عرقها ریخته و بخیهها خورده میشه تا مثلا دسترسیپذیری پنج ۹ حاصل بشه ولی یادمون میره که اون چیزی (مثل git) که بهش وابستگی حیاتی ایجاد کردیم (چون عموما بالا بوده و ناخوداگاه بهش اعتماد داریم) تهِ تهش سه ۹ است. (۴)
یعنی اختلال در سرویس مدیریت کد باعث میشه مثلا سرویس مدیریت شبکه (که زیربنای N چیز دیگهست) بخوابه.
بدتر: خود سرویس مدیریت کُد به این سرویسهای عملیاتی مثل مدیریت شبکه وابستهست، یعنی چرخهی وابستگی، یعنی حادثههای غیرقابل مهار، یعنی بمب ساعتی.
اصل بدیهی ولی معمولا مغفول. (۵)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
امروز برخی سرویسهای گوگل برای ۴۵ دقیقه خوابید و رفت در خبرها. بیشتر outageهای بزرگ حاصل تعامل چند اشکال با همه، این بار در file system توزیعشدهی گوگل (Colossus) برای سرویسدهی به سیستم احراز هویت گوگل (GAIA). بهانهایست تا یک رویکرد سازمانی مرتبط و خیلی مهم رو مرور کنیم: (۱)
یک مثال که معمولا در کلاسهای دورهی معارفه مرور میشه اینه که یک بار یک بابایی یک configای در سیستم مدیریت jobها (سیستم Borg که بابای Kubernetes است) push کرد و کلّ گوگل رفت پایین! pagerها شروع کرد به زنگ و SREها این ور اون ور میدویدن و این حرفا. (۲)
این بابا، با این pushاش ظاهرا نامرتبط بود و بعید بود کار اون باشه، سریع به همه خبر داد و rollback هم کرد. و قضیه حل شد. این شخص که کل گوگل رو برای چند دقیقه آورده بود پایین، توبیخ شد؟ نه اتفاقا جایزه گرفت (peer bonus که همکار به همکار میده) چون دقیقا کارِ درست رو کرده بود. (۳)
بودجهی استادها، که ازش حقوق دانشجو و خرج سفرها و امکانات و ... رو میدن، دادنی نیست بلکه گرفتنیست و باید روزها وقت گذاشت و proposalها نوشت و از فلان شرکت و دولت و شهرداری بودجه گرفت برای پژوهش روی فلان مسالهها. خوب عیبیش چیه؟ (۱)
اینه که عمدتا کار به درد بخوری از این همه پول و زحمت درنمیآد و همه هم اینو میدونن و باز ادامه داره. یعنی بودجهایست که از طرف شرکت/دولت/شهرداری/... باید به اسم «پژوهش» صرف بشه و میشه. آوردهاش؟ چندتا مقاله و البته سفر به نصف دنیا! آوردهاش برای منبع بودجه؟ آها، اون هیچی. (۲)
مثال: استادِ بنده از چندین شرکت و نهاد معروف بودجه داشت تا براشون پژوهش کنه ولی نامشون یا نیازهاشون برای ما هنگام جهتدهی به پژوهشهامون اصلا مطرح نبود. تنها در پایان مقاله میگفتیم با حمایت اونا بوده.
مثال: گروهی از استادانِ نامیِ دانشگاهِ نامیِ ما، از شهرداری تورنتو ... (۳)
اگر در شرکتتون در استفادهی درست از OKR بحث دارید---چون بحثهاش رو دیدم میگم و اگر نه که چه بهتر---بد نیست بدونید که در خود گوگل که بابای اشاعهی OKR است هم، همهی تیمها یکشکل OKR استفاده نمیکنن یا کلا نمیکنن. ببینید چی برای خودتون بهینه است.
چند نکته که شاید به درد خورد:
(برای خوانندهی ناآشنا ولی علاقهمند: OKR=هدفگذاری)
۱. ارزیابی کارکنان/تیمها رو نباید ریخت تو OKRها، وگرنه هدفگذاری بلندپروازانه که هیچ، هدفگذاری معمولیتون هم عقیم میشه.
این خطا رو مدیران سنتی که OKR فقط براشون مُدِ روزه میکنن. اینجوری قضاوتی گفتم که قشنگ ازش دوری کنید.
۲. امتیاز ۳۰٪ در پایان فصل فقط یعنی هدفبندیمون نادقیق بوده و باید بهترش کنیم، نه این که اجرا ضعیف بوده - اجرا رو جور دیگه میسنجن نه با امتیاز OKR. همچنین امتیاز ۹۰٪ در پایان فصل هم باز یعنی هدفبندیمون نادقیق و محافظهکارانه بوده. ما دنبال ۷۰٪ایم ولی نسخه نمیپیچم.
متاسفانه اکثر قریب به اتفاق پژوهشها در این فضا پر از لافزنیاند، مثل تعریفی که بُنگاهی ماشین میکنه. ادعاهای گزاف و بزرگنمایی در کاربردها، رفتارِ پیشفرضه و همه میدونن و عادی شده. دربارهی کنفرانسها و ژورنالهای سطح اول هم صادقه. (۱)
در آغاز راه، همهی مقالهها به نظرتون فوقالعاده میان ولی عادت میکنید که به عهدهی شماست تا چرندیات رو تشخیص بدید، مثل inboxی که فیلتر spam نداره. متاسفانه همه به این مساله عادت کردن در حالی که این رویکرد بنگاهی (شاید طبیعی در جاهای دیگر ولی) برای محیط علمی و فنی مثل سرطانه. (۲)
برخلاف دنیای آکادمیک، در دنیای صنعت به ويژه محیط فنیِ شرکتهای حرفهای، چنین نیست - کسانی که اهل لافزنی باشن جدی گرفته نمیشن و به حاشیه میرن. حداقل در تجربهی بنده. (۳)
شما ماهها تلاش کردید و یک پژوهش خطشکن/groundbreaking انجام دادید و میخواید چاپش کنید، ولی این پژوهش باارزش باید از یک پُل معلق پوسیده و متزلزل با سلام و صلوات رد بشه تا به دست دنیا برسه: سیستم بازبینی و داوری مقالهها. (۱)
اول، بسیاری از داوران اصلا مقاله رو کامل نخونده ایراد میگیرن - و این چنین قراره علم پیشرفت کنه!
دوم، بسیاری میخونن ولی نمیفهمن و ایراد میگیرن، شاید چون خوب ارائه نشده ولی (دلیل متداولتر) چون سطح دانش داور از سطح علمی مقاله پایینتره. خود من همینطوری کلی مقاله ... (۲)
... رد کرده بودم، از جمله در ژورنالهای تراز اول! همچنین استادان به صورت کیلویی مقالههاشون رو میدن دانشجوهاشون بازبینی کنن.
سوم، بدون استریوتایپسازی (یعنی تعمیم ندید)، شخصیت عیبجو و شاکی و دُگم در فضای آکادمیک کم نیست. البته ایرادگیری خیلی هم خوبه برای کیفیت، ولی ... (۳)
چند مشاهده از سالیانی که در دنیای «رّیسرچ» آکادمیک (تعمدا فینگلیش) داشتم رو به مرور و با چارخط #آکادمی_خسته اینجا مینویسم بلکه به درد جوانان آغاز راه بخوره. این مشاهدهها هم سودار (biased) است و هم از روی تجربههای محدود و هم فقط از زیرشاخههایی از علوم/مهندسی کامپیوتر. (۱)
بخش اول: حباب
در تقریبا همهی پژوهشها، حتی در بالاترین سطح، هدف اول نه «به درد خوردن» (که فقط هدف کمکی است) بلکه چاپ در جای خوب و ارجاع گرفتنه. اشکالی هم نداره اگر این دو هدف هم سو میبودن، ولی نیستن بلکه تضاد دارن. به زبان ساده: باید تخیلی (نه واقعی) کار کنید تا چاپ کنید. (۲)
مثال: در کارآموزی که سالها پیش با گوگل داشتم موفق شدم مدیران ارشد رو راضی کنم تا سیستم CDN گوگل رو در قالب یک مقاله چاپ کنیم تا پژوهشگران دنیای بیرون (از جمله خودم پس از بازگشت به دنیای پژوهش دکترا) نفع ببرن و دیدِ واقعی و مسالههای عملی برای کار داشته باشن. (۳)