شش ماه از شروع چالش طراحی سرویس تحت وب من گذشت

شش ماه از شروع چالش طراحی سرویس من می‌گذره؛ شش ماهی که قرار بود که طی اون من سرویس تحت وبی طراحی کنم که بتونه ۵ میلیون تومان درآمد ماهانه داشته باشه و قرار گذاشتم که به صورت مرتب و شفاف در مورد روند انجام کارها در بلاگ خودم بنویسم. قبل از هر چیز از اینکه برای مدت طولانی مطلبی در بلاگم منتشر نکردم ازتون عذر می‌خوام. اما سعی می‌کنم در روزهای آینده تمام تجربیاتی رو که در این مدت بدست آوردم باهاتون به اشتراک بذارم.

این نوشته دو بخش داره. بخش اول اون مربوط می‌شه به گزارش من در مورد ادامه مشاهدات و تجربیات من در راه ارایه سرویسی آنلاین به عنوان راه‌حلی برای بهبود یادگیری نیروی متخصص برنامه‌نویس. بخش دوم اون مربوط می‌شه به نتیچه چالش طراحی سرویس در شش ماه و تصمیم من در این مورد ادامه این روند.

تصویری از خط پایان یا خط آغاز مسابقه

آنچه که گذشت…

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

و اما ادامه داستان…

آره! همینطور که به احتمال زیاد در گزارش آخرم خوندید بعد از اتمامِ دوره‌ی آفلاینِ برنامه‌نویسی و طراحی وب ، تصمیم داشتم تا دوره‌ی آفلاین دیگه ای رو شروع کنم که در میانه راه این تصمیم رو عوض کردم. با خودم فکر کردم وقتی که قرار هست آخر ماجرا به سرویسی آنلاین ختم بشه، چرا سعی نکنم جواب سوالاتم رو هم طی دوره‌های آنلاین بدست بیارم؟ اینجوری شد تصمیم گرفتم دوره بعدی رو آنلاین برگذار کنم و البته با کمی تغییر.

تغییراتی که نسبت به دوره آفلاین دادم

  1. با توجه به تجربه‌ای که از دوره آفلاین داشتم مدت زمان دوره باید بیشتر از چهار هفته می‌شد. طبق محاسبات جدیدم و لیست مباحثی که فکر می‌کردم باید در دوره برنامه‌نویسی و طراحی وب وجود داشته باشه زمان دوره رو به ۱۲ هفته افزایش دادم.

  2. در ضمن برخلاف دوره‌ی اول که انتخاب زبان برنامه‌نویسی سمت سرور رو در اختیار خود شرکت‌کننده‌ها گذاشته بودم، در این دوره تصمیم گرفتم که همه شرکت‌کننده‌ها از جاوااسکریپت و Node.js برای برنامه‌نویسی سمت سرور استفاده کنن. دلیل اینکار این بود که اگه قرار هست هر طراح و توسعه‌دهنده وب زبان جاوااسکریپت رو در سمت کلاینت یاد بگیره، چرا از چیزی که یاد گرفته برای برنامه‌نویسی سمت سرور هم استفاده نکنه تا در وقت و انرژی محدودمون در این ۱۲ هفته صرفه‌جویی بشه؟

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

روش جذب شرکت کننده برای دوره آنلاین

چون در آخرین گزارش خودم از چالش طراحی سرویس خواسته بودم که اگر فردی دوست داره که در دوره‌های من شرکت کنه بهم ایمیل بزنه، به تمام کسانی که برام ایمیل زده بودن پاسخ دادم. توی ایمیل ماجرا دوره آنلاین رو گفتم و اینکه می‌خوام دوره بعدی رو از اول دی‌ماه ۱۳۹۳ شروع کنم. ۹ نفر از این افراد بهم پاسخ دادن و اعلام کردند که دوست دارند در این دوره شرکت کنند. یکی از شرکت‌کننده‌های دوره با توجه به مشغله کاری خودش، سه هفته بعد از شروع بهم ایمیل زد و از ادامه دوره انصراف داد. در نتیجه دوره با هشت نفر ادامه پیدا کرد. تمام این هشت نفر شاغل یا دانشجو بودند که تنها عصرها فرصت یادگیری داشتند.
علاوه بر این ۸ نفر، به همه‌ی شش نفر شرکت‌کننده در دوره‌ی اول آفلاین ایمیل زدم و بهشون گفتم که می‌تونن در دوره‌ی جدید به صورت رایگان شرکت کنن، که پنج نفر از اون‌ها اینکار رو کردن؛ در نتیجه کل افراد شرکت کننده در این دوره ۱۳ نفر شد (۴ زن و ۹ مرد).

گزارش مالی

قیمت دوره آفلاین چهار هفته‌ای قبلی ۲۰۰ هزار تومان بود، قیمت دوره جدید ۱۲ هفته‌ای رو ۴۰۰ هزار تومان در نظر گرفتم. گو اینکه این قیمت خیلی کمتر از ارزش واقعی این دوره ۱۲ هفته‌ای هست (به نظرم حداقل قیمتی که باید برای این دوره در نظر بگیرم ۱،۲۰۰،۰۰۰ تومان هست. یعنی سه ماه و ماهی حدود ۴۰۰ هزار تومان).
در ضمن همانند دوره قبلی شرکت‌کننده‌ها به هردلیلی مثل نداشتن رضایت از کیفیت دوره یا مشکلات شخصی که باعث بشه نتونن دوره رو ادامه بدن، می‌تونستن از دوره انصراف بدن و مبلغی که پرداخت کردن رو به صورت کامل دریافت کنن.
با توجه به ۸ نفر شرکت‌کننده دوره جدید و قیمت ۴۰۰ هزار تومان، درآمد حاصل از این دوره برای من ۳،۲۰۰،۰۰۰ تومان بود.

روش‌های ارتباطی دوره آنلاین

با توجه به اینکه دوره آنلاین بود باید فکری به در مورد روش ارتباط خودم با شرکت‌کننده‌ها و در ضمن ارتباط شرکت‌کننده‌ها با همدیگه می‌کردم. ساده‌ترین راهی که می‌شد ازش استفاده کرد تشکیل یک گروه فیسبوکی بود که همین کار رو هم کردم. بعدن با زیاد شدن تعامل داخل این گروه متوجه شدم که باید به فکر جایگزین بهتری باشم. از طرفی متوجه شدم که افراد باید به راحتی بتونن با هم در ارتباط باشن و سریع chat کنند و در ضمن دیدن اینکه سایرین در دوره آنلاین هستند و دارند روی پروژه خودشون کار می‌کنن انگیزه‌ای بود برای ادامه کار و تنبلی نکردن. برای این مورد استفاده از slack گزینه مناسبی بود که جایگزین گروه فیسبوکی دوره شد.

علاوه بر slack در صورت نیاز از طریق اسکایپ و یا تلفن با شرکت کننده‌ها در ارتباط بودم. و این اواخر به این نتیجه رسیدم که بایستی تماس‌های صوتی مرتبی (مثلن هفته‌ای دو تماس یک ساعته) بین من و شرکت‌کننده اتفاق بیافته تا علاوه بر این که از وضعیت فرد در دوره آگاه بشم فرصت این رو داشته باشیم تا با هم در مورد مسایلی که در طول روزهای گذشته گنگ بوده گپ بزنیم.

محتوای آموزشی

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

منظور من از «محتوای آمورشی» در متن بالا تدریس کامل مطالب نبود، بلکه در اختیار گذاشتن برخی مفاهیم کلیدی برای حل چالش بعدی برنامه‌نویسی توسط افراد بود. در ابتدای کار چالش‌های برنامه‌نویسی به پروژه هر فرد ربط پیدا نمی‌کرد ولی بعد از پیشرفت افراد در دوره و یادگیری مسایل پایه‌ای، چالش‌ها کاملن مرتبط با پروژه فردی شخص می‌شد. برای مثال یادگیری و استفاده از یک سیستم ورژن کنترل برای یک برنامه‌نویس حیاتی هست. من به عنوان «محتوای آموزشی» ده ویدیو کوتاه آماده کردم که مفاهیم اصلی ورژن کنترل رو طی داستانی توضیح می‌داد. حالا «چالش» افراد چی بود؟ اینکه در پست بلاگی چرایی نیاز به ورژن کنترل‌ها رو بنویسن و در ضمن دستورات معادل مفاهیمی که یاد گرفتن رو در سیستم ورژن کنترل git توضیح بدن.

در طی دو ماه اخیر یکی از چالش‌های من تولید محتوای مناسب برای هر فرد بود و اینکار رو باید همزمان با سایر کارهای مربوط به دوره انجام می‌دادم. این فشردگی کار باعث می‌شد گاهی فردی برای گرفتن محتوای بعدی خودش یک یا چند روز معطل بمونه. که از یکی از نقاط ضعف این دوره به نظرم محسوب می‌شه. اما خوب از دوره‌های بعدی به دلیل وجود محتوا این مشکل وجود نداره.

حالا که در مورد روند انجام دوره صحبت کردیم بریم سراغ یافته‌های من در دو ماه اخیر:

۱) ویدیو یا متن؟ «مساله این نیست، وسوسه این است»

برای مدت‌ها تصور بر این بود که افراد مختلف با روش‌های مختلفی بهتر آموزش می‌بینن و مطالب رو درک می‌کنن. مثلن فردی یادگیری تصوریری بالایی داره و در مقابل از طریق خوندن متن همان بازدهی یادگیری براش وجود نداره. این فرضیه خیلی وقت هست که در میان ما وجود داره و گاهی وارد باورهای شخصی‌مون هم شده. این موضوع طی ماه‌های اخیر همیشه در گوشه‌ای از ذهن‌ام وجود داشت. اما تحقیقات نشون دادن تفاوت معنی‌داری بین آموزش ویدیو و متنی وجود ندارد. در واقع واقعیت چیز دیگری است. برخی از موضوع‌ها با آموزش ویدیویی و برخی با آموزش متنی بازده بهتری دارند و این بازدهی ارتباطی با فرد آموزش‌گیرنده ندارد. در نتیجه به هنگام ارایه محتوای آموزشی باید به این موضوع دقت کنیم و در هر مورد روش مناسب رو انتخاب کنیم و صرفن تمامی محتوا ویدیویی یا متنی نباشد.

۲) شرکت کننده ها دوست داشتن از وضعیت دیگران با خبر باشن

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

۳) شرکت در دوره آنلاین نیاز به دیسیپلین شخصی بیشتر و هدف محکمی داره

برخلاف دوره آفلاین که فرد باید ساعت مشخصی رو با توجه به جو دوره به مطالعه و کدنویسی اختصاص بده، در دوره آنلاین ایجاد چنین جوی و داشتن دیسیپلین شخصی کافی برای اختصاص حداقل ۳ ساعت از روز برای مطالعه و کدنویسی کار راحتی نیست. برای حل بخشی از این موضوع، همینطور که در بالا خوندید، تماس‌های اسکایپی یا تلفنی منظم (دو تماس در هفته) از طرف مربی دوره می‌تونه تاثیر خیلی زیادی داشته باشه.

۴) این دوره برای همه کسان نیست!

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

درست به همین دلیل از این به بعد بایستی در انتخاب افراد شرکت کننده این مورد رو حتمن در نظر داشته باشم و یکی از معیارهای امکان ورود به دوره یعدی باید داشتن هدف مناسب باشه و تنها پرداخت مبلغ دوره کافی نیست و باعث هدر رفتن انرژی و وقت اون شرکت‌کننده و سایرین می‌شه. برای مثال آیا ایده‌ای دارید که می‌خواید خودتون عملیش کنین؟ هدف خوبی هست. یا مثلن می‌خواین با شرکت در این دوره موقعیت شغلی بهتری رو پیدا کنین؟ باز هم دلیل خوبی هست.

از این یافته‌ها بگذریم… آرش نتیجه این چالش شش‌ماهه چی شد؟ در ادامه چیکار می‌خوای بکنی؟

اگر منظورتون از نتیجه چالش، رسیدن به هدف مالی اون هست، باید بگم که نه! نتونستم در عرض شش ماه سرویس رو طراحی کنم که بتونه ماهانه ۵ میلیون درآمد داشته باشه. کل درآمد حاصل از این چالش برای من حدود ۴،۴۰۰،۰۰۰ تومان بود. اما من خیلی امیدوار هستم که در عرض ماه‌های آینده بتونم به این مبلغ برسم و همینطور از اون عبور کنم.

و اما در ادامه می‌خوام چیکار کنم؟ راستش من تازه گرم شدم و می‌خوام این مسیری رو که شروع کردم ادامه بدم. من هنوز باور دارم به هدف اصلی خودم یعنی طراحی سرویسی که مشکلی واقعی رو حل می‌کنه نرسیدم و تا رسیدن بهش به تلاشم ادامه می‌دم. گام بعدی من بعد از اتمام دوره آنلاین کنونی، طراحی و برنامه‌نویسی سرویس تحت وبی که با توجه به یافته‌های شش ماه گذشته کارهایی زیادی که من الان دستی انجام می‌دم رو اتوماتیک انجام بده. بعد از اینکار سراغ گسترش سرویس خواهم رفت که بحث در موردش نیاز به پست بلاگ جداگانه‌ای داره ولی آسیاب به نوبت.

اما این چالش برای من تجربه‌هایی به همراه داشت که در هیچ شرایطی دیگری امکانش نبود که بتونم اون‌ها رو بدست بیارم. روزهایی بوده که نا امید شدم، روزهای متمادی‌ای بوده که فکرهای متفاوت باعث شدن نتونم در مسیری ثابت حرکت کنم و در به در دنبال تمرکز بودم، شب‌هایی بود که به اشتباه‌ وارد بحث با کسانی شدم که مثل من فکر نمی‌کردند و سر این موضوع کلی وقت و انرژی تلف کردم، ساعت‌هایی که کلی در مورد انتخاب اسم برای استارتاپم زمان گذاشتم و … بسیاری موضوع دیگه که اگر در موردشون ننویسم آروم نمی‌گیریم.