اثبات مفهوم (Proof of Concept)در توسعه نرمافزار چیست؟
اثبات مفهوم (Proof of Concept) در توسعه نرمافزار یک موضوع بحثبرانگیز است. کسی که به یک ایده نرمافزاری میرسد، معمولاً در مورد کاربردی بودن آن مطمئن است. سهامداران معمولاً نمیخواهند وقت خود را صرف چیزی کنند که حتی در محصول نهایی وجود ندارد. به هر حال واقعیت این است که هر چقدر فردی تجربه بیشتری داشته باشد احتمال اینکه به اثبات مفهوم در توسعه نرمافزار علاقه نشان دهد بیشتر است. مطالعه کنید و بفهمید که چرا این مورد مهم است و بهترین روش استفاده از آن چیست.
اثبات مفهوم (Proof of Concept) در توسعه نرمافزار یک موضوع بحثبرانگیز است. کسی که به یک ایده نرمافزاری میرسد، معمولاً در مورد کاربردی بودن آن مطمئن است. سهامداران معمولاً نمیخواهند وقت خود را صرف چیزی کنند که حتی در محصول نهایی وجود ندارد. به هر حال واقعیت این است که هر چقدر فردی تجربه بیشتری داشته باشد احتمال اینکه به اثبات مفهوم در توسعه نرمافزار علاقه نشان دهد بیشتر است. مطالعه کنید و بفهمید که چرا این مورد مهم است و بهترین روش استفاده از آن چیست.
اثبات مفهوم در توسعه نرمافزار چیست؟
اجازه بدهید با توضیح یک تفاوت مهم شروع کنیم: اثبات مفهوم در توسعه نرمافزار دقیقاً همان اثبات مفهومی نیست که بیشتر کارآفرینان و استارتآپها با آن آشنا هستند. اثبات مفهوم آشنا برای کارآفرینان بیشتر مربوط به امکان پیادهسازی فنی یک محصول است تا اینکه در مورد پتانسیل بازار باشد. امّا چون توسعه نرمافزار و موفقیت تجاری بسیار به هم وابسته هستند، اجازه بدهید تفاوت بین این سه عنوان گمراهکننده ولی جداییناپذیر را بیان کنیم.
اثبات مفهوم (بازار): رایجترین برداشت از این اصطلاح است. قسمت اصلی این اثبات مفهوم راهی است که شما از طریق آن مطمئن میشوید که اصلاً مخاطبان هدف ایده (برنامه) شما را قبول دارند یا خیر. به عنوان مثال شما در مورد یک app فکر میکنید که به افراد کمک میکند تا همدیگر را بغل کنند (در واقعیت یک app مانند این مورد وجود دارد!). آیا شما میخواهید در مورد شانس پیدا کردن مشتری برای این app بدانید؟ یک نظرسنجی درست کنید و یک کمپین کیکاستارتر (kickstarter) آغاز کنید و یا یک فیلم کوتاه بسازید. در واقع تلاش کنید تا مردم در مورد این محصول صحبت کنند. این روش عمل نمیکند؟ شاید دلیلش این است که ایده شما واقعاً یک ایده خیلی خوب نیست. شما میتوانید از این منظر در مورد اثبات مفهوم بیشتر مطالعه کنید.
حداقل محصول قابل عرضه: Minimum Viable Product) MVP) عنوانی است که به روش شناسی استارتآپ لین (Lean Startup) ارتباط دارد که معمولاً با اثبات مفهوم بازار اشتباه گرفته میشود. این عنوان در چه چیزی با عنوان قبلی متفاوت است؟ فرض کنید شما مطمئن شدید که ایده نرمافزاری شما شانس موفقیت دارد، زیرا افرادی که از آنها در مورد ایده خود پرسیدید به آن علاقه نشان دادهاند. اما این به معنی این نیست که شما یک محصول دارید که ویژگیهای درست و تجربه مناسب را با قیمت مناسب و برای مشتری مناسب تأمین میکند. این همان چیزی است که MVP برای آن بکار میرود. MVP اولین ورژن محصول شما است که شما آماده کردید تا اجرای بهینه را برای اثبات مفهوم پیدا کنید و بفهمید که آیا این محصول موفق است یا خیر.
اثبات مفهوم در توسعه نرمافزار: بر خلاف دو عنوان بالا اثبات مفهوم در توسعه نرمافزار برای این منظور نیست که اثر مستقیمی بر روی بازار داشته باشد. این در حالی است که این مورد بصورت غیرمستقیم بر روی بازار تأثیر دارد. این مورد در واقع یک پروسه است با هدف اینکه تعیین کند که آیا ایده نرمافزاری شما واقعاً میتواند ساخته شود (در کل و یا با یک هزینه معقول) و یا اینکه مؤثرترین تکنولوژیها را برای استفاده در توسعه نرمافزار پیدا کند.
سناریوهای معمول برای اثبات مفهوم در توسعه نرمافزار
در مورد توسعه نرمافزار صرف نظر از اینکه شما از کدام استراتژی استفاده کنید، انتخاب درست شرکت نرمافزاری میتواند مفید باشد. اجازه بدهید یک نگاهی به چند نمونه از این سناریوها بیاندازیم.
- ۱.شرکت شما دنبال راهی برای استفاده از یک app است تا یک مشکل خاص که افراد در کار روزانه خود با آن مواجه میشوند را حل کند. نمونه کار ما یک برنامه است که آسیبهای ایجادشده توسط فعالیتهای معدنی زیرزمینی را بررسی میکند تا ریسک سنگین ناشی از فرونشست زمین را کاهش دهد. از همان اول واضح است که تأمین چنین Appای بسیار به شرکت کمک خواهد کرد. سؤال این است که آیا این ایده اصلاً قابل اجرا است یا خیر. اثبات مفهوم در توسعه نرمافزار با فاصله زیاد مهمترین روش برای بررسی این مورد است. تمرکز این مفهوم بر محصولاتی که باید تحویل داده شوند نیست، بلکه بر روی تحقیقاتی است که هدف آن پیدا کردن یک روش بهینه برای رسیدن به خروجی دلخواه است.
- ۲.شما در حال توسعه یک app موبایل هستید که به کاربران اجازه میدهد تا از رستورانهای محلی غذا سفارش دهند. این App همچنین شامل یک برنامه وفاداری است. تعداد زیادی App مانند این وجود دارد امّا شانس شما این است که App شما دارای یک ویژگی ماهرانه است که سبب میشود تا موفقتر از نمونههای مشابه خود باشد. اثبات مفهوم در توسعه نرمافزار ممکن است کماکان برای این مورد نیاز باشد ولی تمرکز آن بر پیدا کردن بهترین تکنولوژیها برای استفاده است تا یک app بهینهشده را بسازد. یک چنین پروسههایی بصورت داخلی و توسط توسعهدهندههای نرمافزار شما اجرا میگردند و در اغلب اوقات در شروع پروسه توسعه به نحوی هدایت میگردند که مشخصات پروژه را ایجاد کنند. صرف نظر از پروسهها، یک MVP کماکان میتواند توسعه یابد. چه تکنولوژیهای بهینه استفاده گردند یا نه، ممکن است شما کماکان در مورد اینکه ایده شما از نقطه نظر بازار امکانپذیر است یا نه شک داشته باشید. روش قیمتگذاری با بودجه ثابت و یا بر پایه زمان و مواد مصرفی میتواند برای ساخت یک MVP مورد استفاده قرار گیرد. از آنجایی که شما هنوز در مورد اینکه محصول نهایی به شکلی خواهد بود مطمئن نیستید، یک پروسه تکرارشونده را انتخاب میکنید که شامل این موارد میشود: طراحی ورژن اولیه محصول خود که تنها ویژگیهای اصلی را دارد و یا حتی تنها یک ویژگی را دارد، تست آن بوسیله مشتریهای واقعی و دادن فیدبک به توسعهدهنده. این درواقع حالتی است که روش استارتآپ لین در کنار روشهای سریع و تکرارشونده توسعه نرمافزار قرار میگیرد.
مزایای اثبات مفهوم در توسعه نرمافزار
صرف نظر از اینکه از چه استراتژی برای اثبات مفهوم استفاده کنید، این کار مزیتهای زیادی دارد :
شما میتوانید از صرف مقدار زیادی پول بر روی چیزی که از نقطه نظر بازار و یا تکنولوژی امکانپذیر نیست جلوگیری کنید.
شما میتوانید به یک دلیل قابل درک و قابل قبول در مورد اینکه ایده شما ارزشمند است برسید و بدین ترتیب برای دیگر سهامداران پروژه سخت خواهد بود تا در مورد آن بحث کنند.
از آنجاییکه بدست آوردن اثبات مفهوم در توسعه نرمافزار نیاز به تخصص بالایی هم در زمینه توسعه نرمافزار و هم زمینه تخصصی شما (مثل ecommerce، فینتک و یا ژئومکانیک) دارد، بنابراین نیاز است تا یک شرکت نرمافزاری مناسب انتخاب شود تا بتواند آن را تحقق ببخشد. اگر پروژه شما به گونهای است که در مورد تخصص مورد نیاز برای آن شک دارید، باید یک شرکت نرمافزاری پیدا کنید که منابع مناسب، توسعهدهندگان باتجربه و مدیریت بازار بسیار قوی داشته باشد تا با آن کار کنید. شما نمیتوانید فقط بر پایه قیمت تصمیم بگیرید.