این روزها که خبر تغییر لایسنس AutoMapper و MediatR و MassTransit به جمع قبلی‌ها یعنی ImageSharp, IdentityServer, Fluent Assertions پیوست که تازه اینا اکوسیستم دات‌نت بودن، و اگر فارغ از اکوسیستم نگاه کنیم Redis و Elastic و... هم اضافه می‌شن؛ خوبه تا فرایند انتخاب تکنولوژی، مدیریت فنی محصول، بودجه‌بندی و... رو مرور کنیم.

این روزها که خبر تغییر لایسنس AutoMapper و MediatR و MassTransit به جمع قبلی‌ها یعنی ImageSharp, IdentityServer, Fluent Assertions پیوست که تازه اینا اکوسیستم دات‌نت بودن، و اگر فارغ از اکوسیستم نگاه کنیم Redis و Elastic و... هم اضافه می‌شن؛ خوبه تا فرایند انتخاب تکنولوژی، مدیریت فنی محصول، بودجه‌بندی و... رو مرور کنیم.


چقدر تیم‌ها بابت جوگیری و چپوندن انبوه کتابخونه‌ها به پروژه با هدف عقب نیوفتادن از موج وبلاگ‌ها و ویدیوهای بلاگر‌های تکنولوژی، خودشون و اعصابشون و محصول و زمان رو دچار چالش کردن...


لذا خوبه تا مسیر اصولی رو یاد بگیریم، کاری که توی تیم‌های بزرگ عموما توسط technology manager هدایت می‌شه. با یه مثال انترپرایز بزنم تا بعدن نسبت به سایز کوچک‌تر بریم جلو:

شما می‌خواهید از کتابخونه A استفاده کنید، اول چک می‌کنید ببینید آیا توی green book سازمان لیست شده یا نه. اگر نشده باشه، جک می‌کنید ببینید کاری که اون کتابخونه قراره انجام بده، در دنیای محصولات تجاری، چقدر هزینه داره؟! و اگر کدباز است، نوع لایسنسش چیه؟ چند نفر توسعه‌دهنده فعال داره؟ کامیونیتی‌اش چقدر بزرگه؟ بنیه مالی این پروژه چجوریه؟ آیا جایگزین کدباز یا تجاری با امکانات مشابه یا حداقل نیاز ما وجود داره؟ و سوالات دیگه‌ای که بهمون کمک کنه تا چیزی رو انتخاب کنیم که آینده محصول تحت تاثیر عمیق قرار نگیره. بعد، موضوع پیاده‌سازی پیش میاد که کد ما چقدر قابلیت تعویض قطعات پازلش رو داره؟ (وابستگی‌ها با چقدر تغییر قابل تغییر هستن؟)


خلاصه اینکه توسعه محصول فقط استفاده از کتابخونه‌ها نیست، انتخاب ابزار هم بخشی از مسیر و نیازمندی‌های دانش و تجربه است. توسعه خیلی از محصولات «غلط اضافی» شرکت‌ها هستند!! (با توجه به استعداد مالی و بنیه فنی و...) کما اینکه تاسیس شرکت و استقلال هم «غلط اضافی» برخی علاقه‌مندانِ پوزیشن مدیرعاملیه....