سید مسیح سجادی
سید مسیح سجادی
خواندن ۸ دقیقه·۴ سال پیش

از رؤیا تا محصول؛ داستان متولدشدن «مای‌دُنگ»

مای‌دنگ | حساب‌کتاب راحت و سریع دنگ
مای‌دنگ | حساب‌کتاب راحت و سریع دنگ


پرده اول: ایجاد چالش

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


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

چند ماه گذشت و به پایان ترم رسیدیم، ما بودیم و دو برگ کاغذ پشت و رو که پرشده بود از خرج‌های روزانه!

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

https://media.giphy.com/media/eChf44Gyj2VrO/giphy.gif


پرده دوم: دستیابی به راه حل

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


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

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

این ماجرا گذشت تا سر و کله کرونا توی اسفند۹۸ پیدا شد. تعطیلی دانشگاه همان و بدست اووردن چندین ساعت وقت آزاد روزانه همان!

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

مای‌دنگ | حساب‌کتاب راحت و سریع دنگ
مای‌دنگ | حساب‌کتاب راحت و سریع دنگ



پرده سوم: که عشق آسان نمود اول!


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

    خلاصه سرتون رو درد نیارم، فشار درس‌های دانشگاه به همه چالش‌های قبلی اضافه شد و باعث شد مدتی کارکردن با وقفه مواجه بشه و درنهایت فرایند توسعه و تولید محصول اولیه بیشتر از ۳ ماه طول بکشه!‌ تا الان هم برای بهبود و کاربردی‌تر کردن سرویس در حدود ۱۰ماه وقت گذاشتیم. اگر بخوام دلایل این اتفاق رو ذکر کنم، میتونم به موارد زیر اشاره کنم:
  • عدم در نظرگرفتن چالش‌های فنی و مدت‌زمانی که حل کردنشون زمان می‌بره
  • عدم تعادل و برنامه‌ریزی غلط بین کارکردن و تفریح و زندگی شخصی برای اعضای تیم، که خیلی مهمه و رعایت‌نکردنش توسط یکی از افراد تیم باعث وقفه خیلی زیادی در فرایند توسعه شد.
  • کرونا و عدم امکان جلسات حضوری. جالبه بدونید ما تا حالا حتی «یک دقیقه» هم جلسه حضوری با هیچ کدوم از اعضای تیم نداشتیم و تمامی کارها و هماهنگی‌ها از طریق جلسات آنلاین و ابزارهای مدیریت پروژه آنلاین بوده. همین موضوع برای مدتی باعث ایجاد چالش، کاهش بازدهی و اختلال در هماهنگی‌ها شد و کمی کار رو برامون سخت کرد.
  • درنظرگرفتن زمانی که باید برای دانشگاه بذاریم و تاثیری که روی توسعه محصول میذاره.
  • و همونطور که گفتم، در نظر نگرفتن فرایند زمان‌بر تست و دیباگ برای رسیدن به محصول پایدار، دلیل بعدی برای بروز مشکل در زمان‌بندی نهایی پروژه شد.


با کمی تکرار و تحقیق، به یک‌سری راهکارها برای حل چالش‌های بالا رسیدیم که اون‌هارو می‌تونید توی «پرده پنجم: چالش‌ها و راهکارها» بخونید.


پرده چهارم: و بالاخره...

و بالاخره الان (در بهمن‌ماه۹۹)، بعد از چندماه فعالیت تیم روی پروژه، «ایده اولیه» من به سرویس «مای‌دنگ» تبدیل شده که امکانات زیر رو در اختیارتون قرار میده:

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


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

مایدنگ|حساب‌کتابراحتوسریعدنگبامایدنگسریعوراحتدنگ‌هاتونروحسابکنید.خرج‌هاتونروثبتکنیدوببینیدکیچقدربدهکارهیاطلبکاره.ازطریقمایدنگمی‌تونیدنتیجهحساب‌کتاب‌هاتونروهمباهماشتراکبذاریدوکاملارایگانبرایهمپیامککنید.mydong.ir


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


پرده پنجم: چالش‌ها و راهکارها

من یک مدیر نیستم! ولی صرفا به عنوان بخشی از تیم و پروژه، بنظرم رعایت کردن موارد پایین می‌تونه مراحل توسعه رو راحت‌تر کنه.

۱. داشتن جلسات روتین هفتگی یا روزانه؛ به نسبت میزان فشرده‌بودن کارها، برگزاری جلسات روزانه یا هفتگی با حضور همه اعضای تیم، کمک میکنه تا:
- افراد پیشرفت همدیگه رو رصد کنن و از همین طریق هر هفته با انگیزه مضاعفی کارهاشون رو ادامه بدن.
- همچنین توی جمع فیدبک‌ها و نظراتشونو بگن تا نقاط کور مشخص بشه، پیشفرض‌های ذهنی یکسان بشه و برنامه‌های هفتگی مرور بشه تا از قلم نیوفته و تکمیل بشه.

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

۳. برقراری تعادل بین زندگی و کار: اگر مثل ما دورکاری می‌کنید یا فریلنسر هستید، این موضوع اهمیت دوچندانی پیدا می‌کنه و شاید نیاز باشه بطور مشخص فقط ساعت‌های معینی از روز رو به کارکردن اختصاص بدید. یا در مقابل اون و مهم‌تر از اون، مشخص کنید که چه ساعت‌هایی در روز رو نمیخواید کار کنید و کارکردن رو توی اون ساعات برای خودتون قدغن کنید تا تداخل بین کار و زندگی باعث بروز مشکل نشه.

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


همچنین برای آگاهی بیشتر راجع‌به متدهای مدیریت و پیش‌برد پروژه می‌تونید در مورد «اجایل» و «اسکرام» جستجو کنید.


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

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

متشکرم که وقت گذاشتید و این یادداشت رو مطالعه کردید؛ اگر این مطلب براتون مفید بود، خوشحال میشم پست رو لایک کنید و با بقیه به اشتراک بگذارید.

برنامه نویسیایدهدنگاستارتاپزندگی
توسعه‌دهنده جاوااسکریپت. عاشق یادگیری و حل‌کردن چالش‌های مختلف. آدرس شبکه‌های اجتماعی: @theMasix
شاید از این پست‌ها خوشتان بیاید