امروز میخوام کمی در مورد این صحبت کنم که چطور کیفیت کار خودتون و محصولی که دارید توسعه میدید رو ارزیابی کنید.
در طول مدت این چند سالی که خدا توفیق داده تو استارت آپ ها و شرکت های مختلف نقش کوچیکی تو توسعه محصول نرم افزاری داشتم، همیشه این نکته برام سوال بود که با چه معیار و metricی میشه عملکرد تیم رو سنجید. احتمالا معیارهای خیلی زیاد و متفاوتی وجود داره. اما من معیارهایی که تو این مقاله ذکر شده رو خیلی دوست دارم و درست میدونم از این لحاظ که هدف رو توسعه محصول در نظر گرفته نه کیفیت فنی محصول یا چیز دیگه.
Deployment frequency: با چه فراوانی ای نسخه جدید روی پروداکشن میره. این مورد خیلی بستگی داره که محصول شما تو چه استیجی هست. اما اگه لانچ کردید، احتمالا هفته ای یک یا چند دیپلویمنت باید داشته باشید، اگه بیشتر از یک هفته طول میکشه احتمالا یه جای کار داره میلنگه!
Mean change lead time: چقدر طول میکشه از زمانی که کد commit میشه تا اینکه روی پروداکشن اجرا بشه. این موضوع بیشتر سرعت تیم فنی رو نشون میده و همچنین اینکه شما چقدر به پروسه ci/cd تو پروژه تون اهمیت میدید.
Mean time to recovery: چقدر طول میکشه از یه bugی که گزارش میشه هر failure دیگه ای recover بشه سیستم. این موضوع بیشتر استراتژی های failure recovery رو هدف قرار میده و یه نکته پنهان هم داره، اینکه شما چقدر observability و monitoring براتون مهمه. چون software خوب اونیه که observability بالایی داشته باشه. یکی از نکاتی که observability خیلی کمک میکنه همینه که شما سریعتر باگ و مشکل رو پیدا کنید و فیکس کنید.
Change failure rate: با چه نرخی release های جدید باعث ایجاد failure میشه. این هم طبیعتا کیفیت فنی محصول رو میرسونه، چقدر محصول reliable هست. این معیار یکی از اون معیارهایی ست که نه تنها کیفیت محصول بلکه کیفیت فنی اعضای توسعه دهنده رو هم بازگو میکنه. هر چقدر تیم شما با تجربه تر باشه، معماری درستی رو انتخاب کرده باشه و تلاش زیادی برای پیاده سازی و تست محصول کرده باشه این نرخ باید کمتر باشه.
البته کاملا متوجه هستم که محصولات نرم افزاری ذاتا خیلی متنوع هستن و بسته به اندازه تیم و بیزینس میتونه معیارهای خیلی متفاوتی وجود داشته باشه. اما من این معیار ها رو معیارهای خیلی خوب و درستی برای تیم های استارت آپی میبینم. حتی شما به عنوان برنامه نویس میتونید با این معیارها کیفیت کار خودتون رو هم بسنجید که محصولی که تولید کردید چه نمره ای داره.