استارتاپ و بسترهای آماده
استارتاپها مخصوصاً اگر مدل کسب و کارشان بدیع باشد، قابلیت سوار شدن روی نرمافزارهای از پیش آماده شده را ندارند. استفاده از نرمافزارهای آماده میتواند فرصت و نعمت خیلی خوبی باشد برای تمرکز و مصرف منابع روی دیگر بخشهای استارتاپ. استارتاپی که روی نرمافزارهای از پیش آماده شده سوار میشود، مدل کسب و کار جاافتادهای دارد؛ اما احتمالاً رقبای متعددی هم در بازار آن فعالیت میکنند.
مثلاً این روزها که از هر شهر ایران خبر رونمایی از یک استارتاپ تاکسی اینترنتی (مشابه اسنپ و تپسی) را میشنویم یکی از دلایلش این است که نرمافزارهای آمادهای برای این کار نوشته شده که سورس آنها با قیمت مشخصی در حال فروختهشدن است. هر تیمی اراده کند یک استارتاپ تاکسی اینترنتی راه بیاندازد، میتواند با چند میلیون پول و انتخاب یک اسم و لوگو کارش را شروع کند و وارد یک بازار به شدت رقابتی و حبابی بشود.
اوضاع نرمافزارهای آماده در مدل فروشگاههای اینترنتی بسیار بهتر از این است. اگر میخواهید یک فروشگاه اینترنتی راهاندازی کنید و محصولاتی را در آن به بهترین شکل بفروشید، گزینههای بسیار خوبی مثل PrestaShop, OpenCart, Magento, WooCommerce روی میز دارید. هر کدام از اینها را انتخاب کنید و افزونههای مختلف را رویشان نصب کنید، یک فروشگاه اینترنتی کاملاً کارآمد، تا حدودی شبیه دیجیکالا یا بامیلو تحویل خواهید گرفت.
مدلهای جدید بیزینس
اما وقتی مدل بیزینس شما اساساً یک چیز جدید است، نرمافزار پیشساختهای برای آن پیدا نخواهید کرد. در چنین شرایطی زحمت شما زیاد میشود. هم باید نرمافزار بسازید، هم بازارتان را و هم مواظب باشید که مدل بیزینستان آنقدر بدیع نباشد که کسی خاطرخواهش نباشد! میگویند ریسک مدلهای جدید بیزینس از مدلهای جاافتاده بیشتر است. طبیعتاً مدل بیزینس شرکت SpaceX به مراتب از مدل هایپرمارکت اینترنتی ریسکیتر است.
اما کارآفرینها علاقهای به تکرار کار هزاران نفر دیگر ندارند. اگر مدلی بدیع و در عین حال مفید برای بیزینس داشته باشید، جای نگرانی نیست. مدلی که نیازهای قدیمی انسانها را به شکل بهتری پاسخ بدهد و از نرخ رشد همان ماههای اولش معلوم باشد که مردم در حال استقبال از آن هستند، جواب میدهد. بگذریم… میخواستم در مورد نرمافزار بنویسم اما موضوع، قدری بیزینسی شد. برویم سراغ نرمافزار ساختنمان.
میگفتیم که نرمافزار ساختن برای یک مدل کسب و کار بدیع، طراحی و پیادهسازی خاص خودش را میطلبد. دقت داشته باشید که ما اینجا از فریمورکها صحبت نمیکنیم، از راهکار نرمافزاری کاربردی و کاملی صحبت میکنیم که مشتریان و کارکنان استارتاپ مستقیماً با آن تعامل میکنند؛ مثل وبسایت، پنلهای مدیریتی و اپلیکیشنهای موبایل. فریمورکها زیرساخت و زیربنای اساسی نرمافزارهای کاربردی هستند و امروزه استارتاپها راهکارهای نرمافزاریشان را روی فریمورکهای مختلفی بنا میکنند. باسلام هم این روزها مشغول چنین کاری است.
مدل بیزینس باسلام و توسعههای نرمافزاری
مدل کسب و کار باسلام یک مدل نو و چندلایه است. ارائه بستر ایجاد فروشگاه توسط مردم برای فروش کالا به عنوان اولین لایه کسب و کار باسلام، چندان بدیع نیست (اگر بها دادن به داستان زندگی آدمها و داستان محصولات معنادار و اصیل را به عنوان یک تفاوت اساسی در نظر نگیریم). از لحاظ نرمافزاری پاسخ به چنین نیازی توسط بسیاری از نرمافزارهای پیشساخته، شدنی است. اما وقتی پای لایههای بعدی مدل کسب و کار به میان میآید دیگر نمیشود روی هیچ نرمافزار پیشساختهای حساب کرد.
خدا را شکر به شکل غیرقابل پیشبینیای لایههای بعدی بیزینس مدل باسلام دارد متولد میشود. در ابتدا تصور میکردیم که برای به دنیا آوردن لایههای جدید باید خودمان دست به کار بشویم و چهها بکنیم؛ ولی زمانی که ۵۰۰ غرفه فعال را رد کردیم، دیدیم دیگر جلوی به دنیا آمدن لایهها را نمیشود گرفت.
ابزارهای اشتراک مهارت را فراهم نکردهایم؟ ابزارهای سرمایهگذاری را چطور؟ هیچ مهم نیست؛ مشتریان لایه اول، بدون اینکه از کسی اجازه بگیرند لایه دوم و سوم را به صورت طبیعی میسازند. سیستم به طور طبیعی به سمتی میرود که باید برود و این برای یک کسب و کار از هر خبر دیگری خوشتر است. شاید خوششانس بودیم که در طراحیهای مدل بیزینس، آینده کار به شکل خوبی پیشبینی شده بود. در چنین شرایطی توسعه نرمافزاری دچار تغییر و تحولات اساسی نمیشود.
تیم فنی باسلام این روزها مشغول توسعه زیرساختهای لایه اول و لایههای بعدی مدل بیزینسش روی بستر راهکار نرمافزاری جدید است.
باسلام پیش از این که یک تیم نرمافزاری داشته باشد، کار توسعه نرمافزار را برونسپاری کرد و نرمافزار پیشساختهای را که مطابق با نیازهایش شخصیسازی شده و توسعه یافته بود، تحویل گرفت.
اصولاً یک استارتاپ متکی بر نرمافزار، نباید توسعه نرمافزارش را برونسپاری کند؛ چرا که پاشنه آشیلاش میشود. از بدو تشکیل تیم نرمافزاری در خود باسلام، تصمیم گرفته شد که یک زیرساخت نرمافزاری قوی، قابل توسعه و منعطف، بر اساس نیازهای باسلام طراحی و توسعه داده شود (در تشکیل تیم نرمافزار، تجربیات جالبی برای باسلام رقم خورد که در فرصتی به عنوان یک پست مستقل دوست داریم در موردش بنویسیم). کار معماری نرمافزار آغاز شد. همزمان پشتیبانی و توسعه نرمافزار قدیمی باسلام بر عهده تیم داخلی بود.
ما به مشکلی برخوردیم
اغلب مردم معتقدند برای انجام یک کار دقیق و دشوار نیاز به تمرکز دارند. ما هم چنین نظری داشتیم. در شرایطی که استارتاپ رو به رشد بود و نمودارهای تحلیلی کسب و کار، هر هفته اعداد بزرگتری را نسبت به هفته قبل نمایش میداد، تیم نرمافزار نمیتوانست بگوید رفت و آمد بین طراحی «راهکار نرمافزاری جدید» و «پشتیبانی و توسعه نرمافزار قدیمی» سرعتمان را میکاهد و تمرکز نداریم. استارتاپ در حال رشد بود و همه بابت این رشد خوشحال بودیم. بعضی روزها زمان خوبی روی توسعه نرمافزار قدیمی میگذاشتیم و برخی روزها برعکس. بعضی نیروها روی سیستم قدیم متمرکز میشدند و برخی روی سیستم جدید. البته در کل هیچ روزی نبود که با نرمافزار قدیمی کاری نداشته باشیم. به هر حال نرمافزار قدیمی ماشینی بود که مردم سوار آن میشدند. فشار کاری تیم فنی با انگیزه و تلاش اعضای تیم همپوشانی میکرد و کار به هر شکل که بود از فاز طراحی عبور کرد.
در طول این مدت، نرمافزار قدیمی باسلام واقعاً متحول شد. اگر بخواهیم تمثیل کنیم باید بگوییم با دستکاریهای اساسی در موتور یک پیکان قدیمی و استفاده از بدنه و ظاهر پژو ۴۰۵، یک پژو Roa ساختیم. دوست داشتیم وضعیت نرمافزار قدیمی را قبل و بعد از توسعه، به هواپیماها تمثیل کنیم اما شاید برای همه ملموس نباشد. به هر حال این پژو روآ، چیزی نبود که خودمان دوست داشته باشیم، اما مجبور بودیم چنین چیزی بسازیم.
زیرساخت سیستم جدید
به فاز توسعه زیرساختهای سیستم جدید رسیدیم. باید مساله تمرکز تیم فنی حل میشد چون توسعه زمانبرتر از معماری است. ما همچنان به همان روش سابق که افراد تیم یا زمان تیم به دو بخش تقسیم میشد کار میکردیم. هرچه جلوتر میرفتیم، به دلیل افزایش تعداد کاربران، حجم کارمان روی سیستم قدیمی بیشتر میشد و از توسعه سیستم جدید بیشتر بازمیماندیم.
مسأله توسعه سیستم جدید داشت وارد شرایط سختی میشد و فشار روی نیروها به حد بالایی رسیده بود. استخدام و افزایش ظرفیت تیم فنی هم در آن زمان منطقی نبود. مدتی هم نیازهای سمت نرمافزار قدیمی را فریز کردیم و تقریباً کاری در آن سمت نکردیم.و کار روی سیستم جدید به شکل خوبی پیش رفت اما نه به فریز کردن نیازهای سیستم قدیمی میشد ادامه داد و نه این بازههای زمانی برای ما کافی بود. این مسأله به یک راهحل اساسی نیاز داشت.
ایدهآل ذهنی ما این بود که راهکار نرمافزاری جدیدمان را بسازیم، در یک نیمهشبی دیتابیسها را تبدیل کنیم، نرم افزار قدیمی را خاموش کنیم و از فردا روی سیستم جدید نرمافزاری باسلام باشیم. با زمان کمی که برای توسعه سیستم جدید داشتیم، رسیدن به چنین شبی هر روز دورتر به نظر میرسید. تا اینکه استراتژی تیم فنی تغییر کرد.
راهحلی که همه دوستش داشتیم
یک روز مدیر تیم نرمافزار، آقای رکنی خبر دادند که احتمالاً استراتژی تیم فنی باید تغییر کند. دیگر برنامه تیم فنی نمیتواند مهاجرت یک شبه از نرمافزار قدیمی به جدید باشد؛ این مهاجرت نسیه است و به این زودیها فرا نمیرسد. برنامه جدید از این قرار است که در یک بازه زمانی چند ماهه که از همین امروز شروع میشود، مهاجرت نامحسوس به سیستم نرمافزاری جدید را آغاز میکنیم. ما باید هواپیمای ملخی کوچکمان را روی آسمان به یک سوپرجت قدرتمند و عظیم تبدیل کنیم آن هم بدون اینکه آب توی دل مسافرانش تکان بخورد. ساعتی نگذشت که همه بچههای تیم گفتند «ظاهراً این همان بهترین راهحلی بود که دنبالش میگشتیم…»
قسمت دوم این نوشته را از اینجا میتوانید بخوانید:
هواپیمای ملخی کوچکی که روی آسمان به سوپرجت تبدیل میشود – قسمت دوم