چرا همیشه پروژه جدید شروع میکنیم اما پروژههای قبلی را رها میکنیم؟
ماهان زندی
توسعه دهنده نرم افزار

مدتی است متوجه یک الگوی تکراری در کار خودم شدهام.
برای یک پروژه چند هفته یا حتی چند ماه وقت میگذارم. از طراحی و انتخاب تکنولوژی گرفته تا پیادهسازی، رفع باگ و انتشار، همه چیز را جلو میبرم. در نهایت پروژه به جایی میرسد که میتوانم آن را منتشر کنم و بگویم: «تمام شد.»
اما دقیقاً همینجا یک اتفاق جالب میافتد.
به جای اینکه روی همان پروژه بمانم، آن را رها میکنم و سراغ ایده بعدی میروم.
یک تکنولوژی جدید، یک ایده جذاب، یک محصول متفاوت یا حتی یک مشکل جدید که دلم میخواهد حلش کنم.
و دوباره همه چیز از اول شروع میشود.
بعد از مدتی متوجه میشوم چندین پروژه ساختهام، اما تعداد کمی از آنها واقعاً رشد کردهاند.
این مسئله باعث شد از خودم بپرسم:
چرا شروع کردن پروژه برایم راحتتر از ادامه دادن آن است؟
شروع کردن، جذابتر از ادامه دادن است
یکی از دلایلی که باعث میشود مدام سراغ پروژه جدید برویم، تفاوت بین «ساختن» و «اداره کردن» یک پروژه است.
در ابتدای یک پروژه تقریباً همه چیز جدید است.
انتخاب تکنولوژی، طراحی معماری، ساخت کامپوننتها، پیادهسازی UI، اتصال API، حل مشکلات فنی و دیدن اینکه یک ایده خام کمکم تبدیل به محصول میشود، حس پیشرفت زیادی ایجاد میکند.
هر روز چیزی ساخته میشود.
اما بعد از انتشار، جنس کار تغییر میکند.
دیگر قرار نیست هر روز یک قابلیت بزرگ بسازیم.
ممکن است بخش زیادی از زمان صرف کارهایی مثل این شود:
بررسی رفتار کاربران
رفع باگهای کوچک
بهبود Performance
بهینهسازی SEO
نوشتن محتوا
پشتیبانی
بررسی آمار
بهبود تجربه کاربری
پیدا کردن روشهای جذب کاربر
تست کردن تغییرات کوچک
اصلاح قابلیتهایی که قبلاً ساختهایم
این کارها لزوماً هیجان ساخت یک محصول جدید را ندارند.
اینجاست که یک پروژه جدید میتواند بسیار جذابتر به نظر برسد.
پروژه جدید، همیشه به معنی فرصت بهتر نیست
یکی از اشتباهاتی که ممکن است مرتکب شویم این است که هر ایده جدید را یک فرصت جدید در نظر بگیریم.
مثلاً وسط کار روی یک محصول، ناگهان ایدهای برای یک اپلیکیشن جدید به ذهنمان میرسد.
ذهن شروع میکند به ساختن سناریو:
«اگر این را بسازم شاید کاربر بیشتری بگیرد.»
«این ایده از پروژه فعلی بهتر است.»
«این تکنولوژی را هم میتوانم روی آن امتحان کنم.»
«این یکی شاید درآمد بیشتری داشته باشد.»
و ناگهان پروژه فعلی که ماهها برایش زمان گذاشتهایم، در مقایسه با ایده جدید کسلکننده به نظر میرسد.
در حالی که یک نکته مهم را فراموش میکنیم:
ما معمولاً پروژه فعلی را با واقعیت آن و پروژه جدید را با بهترین سناریوی ذهنی آن مقایسه میکنیم.
پروژه فعلی پر از باگ، محدودیت، کارهای عقبافتاده و مشکلات واقعی است.
اما پروژه جدید هنوز فقط یک ایده است.
در ذهن ما همه چیز تمیز، ساده و جذاب است.
چرخه شروع کردن و رها کردن
اگر این رفتار چند بار تکرار شود، ممکن است وارد یک چرخه مشخص شویم:
ایده → هیجان → شروع → ساخت → یادگیری → انتشار → کاهش هیجان → ایده جدید → رها کردن پروژه قبلی
مشکل این چرخه این است که هر بار احساس میکنیم در حال پیشرفت هستیم.
در هر پروژه چیز جدیدی یاد میگیریم.
تکنولوژی جدید امتحان میکنیم.
کد بیشتری مینویسیم.
محصول جدیدی منتشر میکنیم.
اما در نهایت ممکن است خروجی واقعی ما با مقدار زمانی که صرف کردهایم متناسب نباشد.
دانش زیادی جمع کردهایم، اما محصولات کمی را به مرحله رشد واقعی رساندهایم.
وقتی یادگیری تبدیل به فرار از ادامه دادن میشود
یادگیری یکی از جذابترین بخشهای برنامهنویسی است.
اما یک مشکل زمانی ایجاد میشود که یادگیری بهانهای برای شروع پروژههای جدید شود.
مثلاً:
«میخواهم Next.js را بهتر یاد بگیرم، پس یک پروژه جدید میسازم.»
بعد:
«حالا میخواهم معماری جدید را امتحان کنم.»
بعد:
«این بار میخواهم AI را وارد پروژه کنم.»
و چند ماه بعد، چند پروژه داریم که هرکدام بخش کوچکی از یک تکنولوژی یا ایده را به ما یاد دادهاند.
یادگیری اتفاق افتاده است، اما محصولی که قرار بود از این یادگیری ارزش واقعی ایجاد کند، فرصت کافی برای رشد پیدا نکرده است.
به نظرم اینجا باید بین دو چیز تفاوت قائل شد:
پروژه برای یادگیری
و
پروژه برای ساختن یک محصول واقعی
هر دو ارزشمند هستند، اما نباید انتظار یکسانی از آنها داشته باشیم.
اگر هدف یک پروژه یادگیری است، میتوانیم بعد از رسیدن به هدف آموزشی آن را کنار بگذاریم.
اما اگر هدف ساخت یک محصول واقعی است، انتشار نسخه اول پایان پروژه نیست؛ شروع مرحله بعدی آن است.
مشکل فقط فنی نیست
وقتی درباره رها کردن پروژه صحبت میکنیم، معمولاً اولین چیزی که به ذهنمان میرسد مدیریت زمان یا نظم شخصی است.
اما همیشه مسئله این نیست.
گاهی مشکل این است که معیار موفقیت ما فقط «ساختن» تعریف شده است.
مثلاً میگوییم:
«اپلیکیشن را ساختم.»
«سایت را منتشر کردم.»
«نسخه اول آماده شد.»
و بعد احساس میکنیم کار تمام شده است.
در حالی که اگر هدف ما ایجاد یک محصول واقعی باشد، اینها بیشتر شبیه نقطه شروع هستند.
یک محصول بعد از انتشار تازه وارد مرحلهای میشود که باید مشخص شود آیا واقعاً کسی به آن نیاز دارد یا نه.
انتشار، پایان پروژه نیست
برای یک پروژه شخصی، میتوان این مسیر را در نظر گرفت:
ایده → ساخت MVP → انتشار → دریافت بازخورد → اصلاح → جذب کاربر → اندازهگیری → بهبود → رشد
بسیاری از ما روی بخش اول این مسیر انرژی زیادی میگذاریم.
اما بخشهای بعدی را کمتر جدی میگیریم.
ممکن است برای ساخت MVP دو ماه زمان بگذاریم، اما فقط دو هفته برای بررسی رفتار کاربران وقت بگذاریم.
در حالی که شاید ارزش واقعی پروژه دقیقاً در همین مرحله مشخص شود.
چرا پروژههای نیمهتمام خطرناک هستند؟
یک پروژه نیمهتمام فقط یک پوشه در کامپیوتر نیست.
هر پروژهای که شروع میکنیم بخشی از توجه ذهنی ما را هم اشغال میکند.
وقتی چند پروژه همزمان داشته باشیم، همیشه بخشی از ذهنمان درگیر این سؤالهاست:
«این پروژه را کی ادامه بدهم؟»
«آن قابلیت را هنوز نساختم.»
«فلان پروژه هم باید دوباره بررسی شود.»
«ایده جدیدی که داشتم چی شد؟»
در نتیجه ممکن است هیچ پروژهای واقعاً تمام نشده باشد، حتی اگر از نظر فنی نسخه قابل انتشار داشته باشد.
به همین دلیل گاهی کم کردن تعداد پروژهها از شروع کردن پروژههای بیشتر ارزشمندتر است.
ایدههای جدید را نباید کشت
البته راهحل این نیست که دیگر ایده جدید نداشته باشیم.
برای یک برنامهنویس یا سازنده محصول، ایده داشتن بخشی از فرایند خلاقیت است.
مشکل از جایی شروع میشود که هر ایده جدید بلافاصله تبدیل به یک پروژه جدید شود.
یک راه ساده این است که بین «ایده» و «اجرا» فاصله ایجاد کنیم.
مثلاً یک لیست جداگانه برای ایدهها داشته باشیم.
هر ایدهای که به ذهنمان رسید در آن ثبت شود، اما همان لحظه پروژه جدیدی ایجاد نکنیم.
بعد از مدتی میتوانیم دوباره به آن ایدهها نگاه کنیم.
بعضی از آنها هنوز جذاب خواهند بود.
بعضی دیگر دیگر اهمیتی نخواهند داشت.
این فاصله کمک میکند بفهمیم آیا واقعاً به آن ایده علاقه داریم یا فقط هیجان لحظهای باعث شده بود جذاب به نظر برسد.
یک پروژه اصلی، نه ده پروژه فعال
یکی از تغییراتی که میتواند کمککننده باشد، محدود کردن تعداد پروژههای فعال است.
به جای اینکه همزمان روی چند پروژه اصلی کار کنیم، یک پروژه را به عنوان پروژه اصلی انتخاب کنیم.
پروژههای دیگر میتوانند در وضعیتهای مختلف باشند:
ایده
در انتظار
آزمایشی
متوقفشده
آرشیو
اما فقط یک یا دو پروژه اجازه داشته باشند که بخش اصلی زمان و انرژی ما را مصرف کنند.
این محدودیت شاید در ابتدا سخت به نظر برسد.
اما یک مزیت مهم دارد:
به جای اینکه انرژی خود را بین چند مسیر تقسیم کنیم، امکان عمیق شدن در یک مسیر را پیدا میکنیم.
باید برای پروژه، بعد از انتشار هم هدف داشته باشیم
یکی از چیزهایی که میتواند باعث رها شدن پروژه شود، نداشتن برنامه بعد از انتشار است.
اگر تمام هدف پروژه این باشد که «نسخه اول را بسازم»، طبیعی است که بعد از انتشار انگیزه کاهش پیدا کند.
اما اگر هدفهای مشخصی برای مرحله بعد وجود داشته باشد، پروژه هنوز مسیر دارد.
مثلاً:
مرحله اول
ساخت و انتشار MVP
مرحله دوم
پیدا کردن اولین کاربران
مرحله سوم
بررسی بازخورد و رفتار کاربران
مرحله چهارم
بهبود تجربه کاربری
مرحله پنجم
ساخت مدل درآمدی
مرحله ششم
بهینهسازی و رشد
در این حالت انتشار دیگر خط پایان نیست.
فقط یک milestone در مسیر است.
همه پروژهها قرار نیست موفق شوند
این قسمت را هم باید پذیرفت.
ادامه دادن یک پروژه به این معنی نیست که باید تا ابد روی آن کار کنیم.
ممکن است بعد از چند ماه مشخص شود ایدهای که داشتیم تقاضای کافی ندارد.
ممکن است مدل درآمدی جواب ندهد.
ممکن است هزینه نگهداری بیشتر از ارزش پروژه باشد.
در چنین شرایطی متوقف کردن پروژه شکست محسوب نمیشود.
تفاوت مهم اینجاست:
رها کردن آگاهانه با رها کردن از روی بیحوصلگی یکی نیست.
اگر بر اساس داده، بازخورد، هزینه و اهداف خود تصمیم بگیریم پروژهای را متوقف کنیم، در واقع یک تصمیم گرفتهایم.
اما اگر فقط به خاطر جذابتر بودن یک ایده جدید پروژه را کنار بگذاریم، ممکن است دوباره همان چرخه قبلی را تکرار کنیم.
شاید مشکل من کمبود ایده نیست
وقتی به پروژههایی که در طول این مدت ساختهام نگاه میکنم، به این نتیجه میرسم که مشکل من کمبود ایده یا حتی کمبود انگیزه نیست.
اتفاقاً ایده زیاد است.
انگیزه برای شروع هم وجود دارد.
چالش اصلی برای من این است که یاد بگیرم بعد از تمام شدن هیجان اولیه، همچنان روی یک پروژه بمانم.
ساختن برایم جذاب است.
اما اگر قرار باشد یک محصول واقعاً به نتیجه برسد، باید بتوانم از مرحله ساخت عبور کنم و وارد مرحله نگهداری، اندازهگیری و رشد شوم.
شاید پروژهای که قرار است نتیجه واقعی ایجاد کند، لزوماً پروژهای نباشد که ایده جذابتری دارد.
شاید پروژهای باشد که به اندازه کافی فرصت پیدا میکند تا از یک پروژه کوچک به یک محصول واقعی تبدیل شود.
از این به بعد چه چیزی را میخواهم تغییر بدهم؟
قرار نیست دیگر هیچ پروژه جدیدی شروع نکنم.
قرار نیست ایدههای جدید را نادیده بگیرم.
و قرار نیست خودم را مجبور کنم همیشه روی یک پروژه کار کنم.
اما میخواهم قبل از شروع هر پروژه جدید، یک سؤال از خودم بپرسم:
آیا واقعاً به پروژه جدید نیاز دارم، یا فقط از ادامه دادن پروژه فعلی خسته شدهام؟
و شاید سؤال مهمتر این باشد:
اگر همین پروژه فعلی را به جای رها کردن، شش ماه دیگر ادامه بدهم، چه چیزی میتواند تبدیل به آن شود؟
هنوز جواب قطعی این سؤالها را ندارم.
اما فکر میکنم برای من، مرحله بعدی رشد فقط یاد گرفتن تکنولوژی جدید نیست.
یاد گرفتنِ ماندن روی یک پروژه هم یک مهارت است.