فرهنگ مهندسیتوسعه نرم افزاراستراتژی نوآوریمدیریت فناوری اطلاعات
آزمایش در مقابل بهترین روش ها
عبور از تنش میان نوآوری و ثبات، یکی از چالش های اصلی در فناوری مدرن است. در حالی که آزمایش ها با آزمایش نظریه های اثبات نشده و راه حل های خلاقانه به پیشرفت ها منجر می شوند، بهترین روش ها پایه ای قابل اعتماد بر اساس خرد جمعی صنعت و الگوهای اثبات شده برای کاهش ریسک و بدهی فنی فراهم می کنند.
برجستهها
آزمایش و آزمایش، «چگونه» مسائلی را که هنوز حل نکرده ایم آشکار می کند.
بهترین روش ها مانع از تکرار اشتباهاتی می شوند که صنعت قبلا حل کرده است.
تقسیم منابع ۷۰-۲۰-۱۰ اغلب برای تعادل توصیه می شود: ۷۰٪ استاندارد، ۲۰٪ بهبود، ۱۰٪ آزمایش خالص.
بدون آزمایش، شرکت های فناوری راکد می شوند؛ بدون بهترین روش ها، آن ها فرو می ریزند.
آزمایش ها چیست؟
فرآیند امتحان کردن روش ها، ابزارها یا معماری های جدید برای کشف راه حل های نوآورانه و مزایای رقابتی.
شامل سناریوهای پرریسک و پاداش بالا است که نتیجه آن ها نامشخص است.
برای شناسایی «چیز بزرگ بعدی» قبل از تبدیل شدن به یک استاندارد صنعتی، حیاتی است.
معمولا از تست A/B، هکاتون ها و محیط های «سندباکس» استفاده می کند.
فرهنگ یادگیری را تشویق می کند که در آن شکست به عنوان یک نقطه داده دیده می شود.
اغلب محدودیت های سنتی را دور می زند تا گردش های کاری سریع تر یا کارآمدتر پیدا کند.
بهترین روش ها چیست؟
روش ها و تکنیک های استاندارد شده به طور مداوم نشان داده اند که از طریق تجربه گسترده صنعت، نتایج برتری ارائه می دهند.
تمرکز بر پیش بینی پذیری، قابلیت نگهداری و سلامت بلندمدت سیستم.
بار شناختی را برای اعضای جدید تیم که به پروژه می پیوندند کاهش می دهد.
شامل الگوهای تثبیت شده ای مثل DRY (خودت را تکرار نکن) و اصول SOLID است.
حاصل سال ها عیب یابی و حل خطاهای رایج معماری است.
زبان و چارچوبی مشترک برای همکاری توسعه دهندگان جهانی فراهم می کند.
جدول مقایسه
ویژگی
آزمایش ها
بهترین روش ها
هدف اصلی
کشف و نوآوری
ثبات و قابلیت اطمینان
تحمل ریسک
بالا (شکست انتظار می رود)
کم (خرابی کاهش یافته است)
زمان پیاده سازی
متغیر/غیرقابل پیش بینی
ساختاریافته/استاندارد شده
تخصیص منابع
تحقیق و توسعه
عملیات و مهندسی
ماهیت نتیجه
رمان یا مخرب
پایدار و پایدار
سبک مستندسازی
اکتشافی/دفترچه های لاگ
رویه های عملیاتی استاندارد
مقایسه دقیق
رشد نوآوری در مقابل ایمنی عملیاتی
آزمایش و آزمایش، موتور رشد است و به تیم ها اجازه می دهد از وضعیت موجود فاصله بگیرند و راه حل های منحصربه فردی بیابند که رقبا هنوز متوجه آن نشده اند. با این حال، انجام این کار بدون شبکه ایمنی بهترین روش ها می تواند منجر به «اختراع مجدد چرخ» یا ایجاد سیستم های شکننده شود. بهترین روش ها به عنوان نرده هایی عمل می کنند که مانع از خروج موتور از مسیر می شوند و اطمینان می دهند که حتی راه حل های خلاقانه نیز قابل مدیریت باقی بمانند.
مدیریت بدهی فنی
آزمایش ها اغلب سرعت و «اثبات مفهوم» را بر کد پاک ترجیح می دهند که به طور طبیعی بدهی فنی ایجاد می کند. این یک معامله عمدی برای افزایش سرعت است، اما باید با دقت مدیریت شود. پیروی از بهترین روش ها اصلی ترین روش برای پرداخت بدهی توسط تیم هاست، با استفاده از تکنیک های بازسازی اثبات شده برای تبدیل یک آزمایش موفق به بخشی دائمی و صیقل خورده از زیرساخت.
همکاری تیمی و جذب
وقتی یک پروژه صرفا بر آزمایش تکیه دارد، می تواند به یک «جعبه سیاه» تبدیل شود که فقط سازندگان اصلی آن را درک می کنند و مشارکت را برای استخدام های جدید دشوار می کند. بهترین روش ها یک مدل ذهنی مشترک ایجاد می کنند که به هر مهندس باتجربه اجازه می دهد به کدبیس نگاه کند و بلافاصله هدف را درک کند. متعادل کردن این دو یعنی مستندسازی آزمایش ها به اندازه کافی خوب که به جزایر انزوا تبدیل نشوند.
تحول استانداردها
مهم است به یاد داشته باشیم که بهترین روش های امروز، آزمایش های موفق دیروز بودند. صنعت به جلو حرکت می کند چون تیم های شجاع ایده های غیرمتعارف را آزمایش کردند که در نهایت آنقدر مؤثر بودند که به استاندارد جدید تبدیل شدند. یک سازمان فناوری سالم چرخه ای را حفظ می کند که در آن آزمایش ها روش های جدید را شکل می دهد و این روش ها ثبات لازم برای تأمین مالی دور بعدی آزمایش ها را فراهم می کنند.
مزایا و معایب
آزمایش ها
مزایا
+پتانسیل پیشرفت ها
+روحیه بالای تیم
+تمایز رقابتی
+چرخه های یادگیری سریع
مصرف شده
−جدول های زمانی غیرقابل پیش بینی
−نرخ خرابی بالاتر
−می تواند به هم ریختگی ایجاد کند
−هدررفت منابع
بهترین روش ها
مزایا
+نتایج قابل پیش بینی
+نگهداری آسان تر
+ریسک امنیتی کمتر
+مقیاس بندی بهتر تیم
مصرف شده
−نوآوری محدود
−می تواند دگماتیک باشد
−کندتر به چرخش
−هیچ مزیت منحصر به فردی وجود ندارد
تصورات نادرست رایج
افسانه
بهترین روش ها قوانین مطلقی هستند که هرگز نباید شکسته شوند.
واقعیت
در واقع این ها دستورالعمل هایی هستند که بر اساس رایج ترین سناریوها ساخته شده اند. در موارد نادر، با عملکرد بالا یا موارد خاص، نقض بهترین رویه دقیقا همان چیزی است که برای رسیدن به یک هدف فنی خاص لازم است.
افسانه
آزمایش کردن فقط «بازی» کردن بدون برنامه است.
واقعیت
آزمایش های دقیق از روش علمی پیروی می کنند: شکل دادن به فرضیه، تعیین معیارهای موفقیت و تحلیل نتایج. این یک روش ساختارمند برای مقابله با ناشناخته هاست، نه کمبود انضباط.
افسانه
شما باید یکی را برای کل شرکت خود انتخاب کنید.
واقعیت
غول های موفق فناوری از استراتژی های «دو وجهی» استفاده می کنند. آن ها سیستم های اصلی خود (مانند پایگاه های داده) را تحت بهترین شیوه های سختگیرانه نگه می دارند و در عین حال اجازه می دهند تیم های ابزار فرانت اند یا داخلی شان به طور گسترده آزمایش کنند.
افسانه
پیروی از بهترین روش ها شما را توسعه دهنده بهتری نسبت به آزمایش می کند.
واقعیت
بهترین توسعه دهندگان کسانی هستند که قوانین را به اندازه کافی می دانند تا بدانند چه زمانی باید آن ها را بشکنند. تسلط شامل حرکت روان بین الگوهای تثبیت شده و کاوش خلاقانه است.
سوالات متداول
چطور بفهمم یک آزمایش شکست خورده یا فقط به زمان بیشتری نیاز دارد؟
به همین دلیل تعیین «معیار کشتن» قبل از شروع بسیار مهم است. اگر در بازه زمانی یا بودجه مشخصی به معیارهای موفقیت از پیش تعیین شده خود نرسیده اید، معمولا بهتر است تغییر مسیر دهید. یک آزمایش شکست نمی خورد اگر بفهمید چرا کار نکرده، اما اگر از روی غرور یا مغلطه «هزینه غرق شده» ادامه دهید، به یک تخلیه تبدیل می شود.
آیا بهترین روش ها واقعا می توانند یک استارتاپ را کند کنند؟
بله، اگر خیلی سفت و خیلی زود اعمال شوند. اگر ماه ها صرف راه اندازی معماری کامل میکروسرویس برای محصولی کنید که حتی ده مشتری اولش را هم پیدا نکرده، شما بیش از حد مهندسی می کنید. در مراحل اولیه، به سمت آزمایش گرایش دارید؛ وقتی بازار را مناسب یافتید، به بهترین روش ها برای مدیریت رشد متمایل شوید.
آیا ممکن است یک «بهترین روش» اشتباه باشد؟
قطعا، چون چشم انداز فناوری تغییر می کند. برای مثال، برخی روش های قدیمی بهینه سازی کد توسط کامپایلرهای مدرن و سخت افزارهای سریع تر منسوخ شدند. باید هر از گاهی «بهترین روش ها» خود را بازنگری کنید تا مطمئن شوید این ها فقط «عادات» نیستند که مانع رسیدن شما به بهره وری های مدرن شده اند.
چطور می توانم در تیمی که از شکست می ترسد به آزمایش و تجربه کردن تشویق کنم؟
باید محیطی «بدون سرزنش» ایجاد کنید. به اندازه موفقیت های راه اندازی یک ویژگی، آموخته های یک آزمایش شکست خورده را جشن بگیرید. برگزاری یک «زمان نوآوری» یا هکاتون اختصاصی به مردم اجازه می دهد تا از فشار کمال فاصله بگیرند و بدون ترس از پیامدهای شغلی، کاری پرریسک را امتحان کنند.
«قاعده سه» در این زمینه چیست؟
قانون سه گانه پیشنهاد می کند که نباید یک راه حل را به «بهترین روش» یا کتابخانه قابل استفاده مجدد تبدیل کنید مگر اینکه حداقل سه بار یک مسئله را به صورت تجربی حل کرده باشید. این مانع از آن می شود که استانداردهای سختگیرانه ای بر اساس یک موقعیت واحد و شاید منحصر به فرد ایجاد کنید.
آیا باید پروتکل های امنیتی ام را آزمایش کنم؟
به طور کلی، نه. امنیت تنها حوزه ای است که تقریبا همیشه باید از بهترین روش های تثبیت شده و کتابخانه های استاندارد صنعت پیروی کنید. «رول کردن رمزارز خودتان» یا آزمایش احراز هویت، دستورالعملی برای فاجعه است. نوآوری در امنیت باید تا زمانی که کارشان داوری همتا شود و به استاندارد جدیدی تبدیل شود، به پژوهشگران متخصص واگذار شود.
چطور می توانم یک آزمایش موفق را مستندسازی کنم؟
فقط کد را مستند نکنید؛ «چرا» را مستند کنید. فرضیه ای که آزمایش می کردید، داده هایی که جمع آوری کردید و دلیل بهتر بودن نتیجه نسبت به رویکرد استاندارد را توضیح دهید. این زمینه لازم را برای تیم های آینده فراهم می کند تا تصمیم بگیرند آیا این «وقفه» از بهترین روش ها هنوز برای پروژه منطقی است یا خیر.
«بدهی فنی» چگونه در این مقایسه جای می گیرد؟
آزمایش را مانند گرفتن وام برای سریع تر شدن در نظر بگیرید و بهترین روش ها را به عنوان بازپرداخت ها در نظر بگیرید. اگر فقط آزمایش کنید، بهره شما (بدهی فنی) در نهایت توانایی شما برای ارسال کد جدید را از بین می برد. اگر فقط بهترین روش ها را دنبال کنید، عملا از گرفتن هرگونه وام خودداری می کنید، که ممکن است رشد شما را برای بقا در بازار رقابتی کند کند.
حکم
وقتی با مشکلی منحصر به فرد بدون راه حل واضح روبرو هستید یا به دنبال مزیت رقابتی بزرگ هستید، آزمایش را انتخاب کنید. برای ۸۰٪ اصلی سیستم های خود به بهترین روش ها پایبند باشید تا اطمینان حاصل کنید که آن ها در طول چند سال امن، مقیاس پذیر و آسان برای تیم شما باقی می مانند.