برنامهنویس و مدیر فنی سابق، فعال در حوزه استخدام و جذب، علاقهمند به ساختن! ساختن محصول، فرآیندها، تیمها و ...
ارزیابی فنی: چقدر؟ چگونه؟
در پست قبل، در مورد لزوم انجام ارزیابی فنی هنگام سرمایهگذاری صحبت کردم. هدف از سرمایهگذاری، سن و طول عمر شرکت مورد بررسی، تکنولوژی به کار گرفته شده در محصول، مبلغ سرمایهگذاری و هزینه ارزیابی تعیین میکنند که نیاز به ارزیابی فنی تا چه حدی وجود دارد و چقدر باید وارد جزئیات شد.
اگر شما قصد سرمایهگذاری در یک شرکت نرم افزاری دارید، یا در حال مذاکره با یک تیم فنی برای همکاری هستید و یا می خواهید یک شرکت نرم افزاری را به تملک خود در آورید چگونه باید از ارزیابی فنی بهرهمند شوید؟
ابتدا لازم است هدف خود را تعیین کنید. برای مثال یک شتابدهنده در هر دوره با تعداد زیادی استارت آپ رو به روست که در ابتدای کار خود هستند که یا محصولی وجود ندارد و اگر وجود دارد در حد پروتوتایپ و دمو است نیازی به ورود به جزییات فنی ندارد. در این مرحله آنچه اهمیت دارد ارزیابی تیم است و میتوان از یک کارشناس فنی برای ارزیابی تیم استفاده کمک گرفت. به ویژه اگر بنیانگذاران تیم فنی هستند شاید بررسی تیم از دید یک کارشناس فنی بتواند کمک کند که متوجه شوید آیا با تیم کننده کار است یا نه! همچنین با توجه به مبلغ اندک سرمایهگذاری ورود به جزییات فنی ماجرا به صرفه نیست و اساسا با کار شتابدهنده همخوانی ندارد.
اگر هدف شما سرمایهگذاری در یک شرکت با یک محصول آماده است و مبلغ قابل توجهی برای سرمایهگذاری در نظر گرفتهاید معقول است که شرکت مورد نظر را دقیقتر ارزیابی کنید. معمولا شرکتهای سرمایهگذاری جسورانه از مشاوران و کارشناسان فنی کمک میگیرند تا ریسک سرمایهگذاری خود را کاهش دهند.
مساله دیگر، روش ارزشگذاری منتخب شما است. ارزشگذاری شرکتها روشهای مختلفی دارند مثل: روش برکاس، روش کارت امتیازی، روش مجموع عوامل ریسک، روش ارزش دفتری، روش معاملات مشابه و ...
در هر روش ارزیابی فنی از بعد خاصی به مساله نگاه میکند. مثلا اگر روش شما مجموع عوامل ریسک است، ارزیابی فنی میتواند به منظور تعیین میزان ریسک فنی پروژه انجام شود. در یک پروژه نرمافزاری در نظر گرفتن یک برنامه مدیریت ریسک، وابستگی نرمافزار به سرویسها و خدمات خارجی(خارج از تیم)، برنامه مواجه به اتفاقات ناگوار و حملات(disaster recovery plan) و ... دارای اهمیت است.
در روش برکاس ۵ عامل کلیدی موفقیت در نظر گرفته میشود: داشتن ایده مناسب، در اختیار داشتن پروتوتایپ یا نمونه اولیه، وجود تیم مدیریتی با ویژگیهای مناسب، روابط استراتژیک درخور و مناسب و
فروش محصول یا داشتن کاربران و مشتریان وفادار. در این روش یک کارشناس فنی با تجربه میتواند در ارزیابی تیم مدیریتی کمک کند. اینکه در این تیم روش تعیین تکنولوژیهای مورد استفاده چیست و نگرش تیم به مسائل فنی چگونه است و آیا تجربه و دانش کافی برای پیشبرد کار در این تیم وجود دارد یا نه، مساله قابل توجهی است.
گاهی هنگام سرمایهگذاری با یک تکنولوژی جدید و بسیار خاص رو به رو هستیم. مثلا استارتآپ مورد بررسی ما برای کار خود از تحلیل فعالیت الکتریکی مغز مخاطب استفاده میکند. قطعا ارزیابی این شرکت نیاز به تخصص فنی خاص خود را دارد و بدون کمک گرفتن از کارشناسان مرتبط نمیتوان ارزیابی دقیقی از عملکرد این شرکت و ادعاهایش انجام داد.
در این باره به مقاله جالبی در مورد اینکه ارزیابی فنی چقدر لازم است برخوردم. نویسنده این مقاله به تجربه خود از ارزیابی یک شرکت نوشته است که در دهه نود این شرکت ادعا کرده بود که یک Mainframe در اندازه یک کامپیوتر خانگی ساخته است. در جلسه ارزیابی که در محل این شرکت انجام میشد متوجه یک کابل شده بودند که از اتاق کنفرانس خارج شده بود. با دنبال کردن این کابل متوجه شده بودند که یک اپراتور در اتاق دیگری نشسته بود و دستورات را سریعا وارد یک کامپیوتر بزرگتر میکرد و پاسخ را در صفحه نمایش اتاق کنفرانس نشان میداد. اگر چه این مثال تاحدی اغراقآمیز است ولی میتواند اهمیت ارزیابی فنی در تکنولوژیهای جدید و پیچیده را نشان دهند.
نویسنده این مقاله از شرکت سرمایهگذاری Social Starts پیشنهاد میدهد که لیستی از کارشناسان فنی در حوزههای مختلف داشته باشید تا در صورت لزوم از آنان برای بررسی دقیقتر موضوع کمک بگیرید. در شرکت Social Starts علاوه بر بررسی ارزیابی دقیق CTO و CEO، وارد مسائل فنی و تکنولوژی هم میشود و ارزیابی فنی را با کمک کارشناسان فنی داخل شرکت و خارج از شرکت انجام میدهند. نویسنده مقاله معتقد است که نبود دانش فنی لازم در شرکتهای سرمایهگذاری و سرمایهگذاران باعث شده است عمدتا سرمایهگذاری در شرکتهای با ایدههای تکراری(copycat companies) انجام شود و مثلا ایده راه اندازی اوبر برای غذا! مورد توجه قرار گیرد.( در کشور ما انواع شرکتهای تاکسی آنلاین و اینترنتی)
در ارزیابی شرکتهای نرم افزاری میتوان مسائل مختلفی را مورد بررسی قرار داد:
- تکنولوژیهای مورد استفاده چه بوده و چرا انتخاب شده است؟ چون جالب است؟ یا به آن تسلط دارند؟ سرعت تولید توسط آنها بالا است؟
- طراحی و معماری نرمافزار؟ آیا نرم افزار متکی به ابزارهای Third party و vendorهای خارجی است؟ از چه APIهایی استفاده میکنند؟ اگر دسترسی به آنها قطع شود چه اتفاقی برای محصول میافتد؟
- ابزارها و متدلوژی مورد استفاده در تولید نرم افزار؟ روال انجام کار؟ آیا مستنداتی وجود دارد؟ آیا بخشهایی از سیستم وجود دارد که فقط یک نفر از مطلع باشد؟
- تستهای انجام شده؟ قابلیتهای نرمافزار چگونه تستی میشوند؟ آیا تستی برای اندازهگیری کارایی انجام میشود؟
- امنیت نرمافزار؟ چه راهکارهایی برای افزایش امنیت نرمافزار در نظر گرفته شده؟ اطلاعات کاربران چگونه ذخیره میشود؟
- مسائل مربوط به کارایی؟ اگر تعداد کاربران ۱۰ برابر یا ۱۰۰ برابر شود، آیا اختلالی در عملکرد نرمافزار پیش میآید؟ چه گلوگاههایی وجود دارد؟
- روال پشتیبانی؟ در صورت بروز خطا چگونه از آن مطلع میشوند و چگونه آن را برطرف میکنند؟
- پایش و نظارت بر عملکرد نرمافزار و مشتریان؟ آیا از ابزارهای مانیتورینگ استفاده میشود؟
- ساختار تیم و تعاملات آنها؟ در تیم تولید چه نقشهایی وجود دارد؟ تعاملات بین آنها چگونه انجام میشود؟
- چگونگی مدیریت تیم و استخدام افراد؟ روال استخدام چیست؟ در سال گذشته چند نفر از تیم جدا شدهاند و چند نفر به تیم اضافه شدهاند؟
- ...
با جستجوی در گوگل چک لیستهای مختلفی برای ارزیابی فنی میتوان پیدا کرد. هر چک لیست دارای سطح متفاوتی از جزئیات است. یک نمونه از این چک لیست را میتوانید در این لینک مشاهده کنید. شرکت سرمایهگذاری جسورانهای به نام Point Nine ماشین حسابی برای ارزیابی فنی طراحی کرده است. اگر علاقهمند به مطالعه بیشتر هستید، میتوانید به این کتاب نیز مراجعه کنید.
شما چه فکر میکنید؟ اگر یک سرمایهگذار هستید، آیا تاکنون نیاز به ارزیابی فنی را حس کردهاید؟ آیا ارزیابی فنی انجام میدهید؟
مطلبی دیگر از این انتشارات
اضافه کردن Swagger در ASP.NET Core 2.0 Web API
مطلبی دیگر از این انتشارات
Serverless یک زیر ساخت مدرن
مطلبی دیگر از این انتشارات
من از هوش مصنوعی وحشت دارم!