احتمالا برای شما هم اتفاق افتاده که پروژه های مختلفی رو شروع کردید، اما به دلایل مختلفی، نتونستید اونارو تمومش کنید. این پروژه ها میتونن ، پروژها های برنامه نویسی، باگ بانتی، دیدن یک دوره و … باشه.
برای اینجور مشکلات اغلب کتابهای روان شناسی و نظم و مدیریت در کار رو پیشنهاد میدن اما اغلب راهکارهای این کتابها هم حداقل در ایران خیلی جوابگو نیست.
در این پست رفتیم سراغ حل این مشکل، و مقاله اخیر نوشته شده توسط Tomas Stropus رو بررسی کردیم. ایشون یک مهندس نرم افزار و داده باتجربه هستن که در فنلاند مشغول به کار هستن.
بعد از ظهر شنبه، آرومی هستش. با یک فنجان قهوه و اشتیاقی برای شیرجه زدن در یک پروژه جدید، چند ساعتی رو برای کدنویسی در نظر گرفتم. ترمینال رو باز میکنم اما با یک چالش آشنا مواجه هستم: روی کدوم یک از پروژه های نیمه تمام خودم، کار کنم.
وارد دایرکتوری پروژه هام میشم و با گورستانی از ایدههای نیمهاجرا شده و پروژههای راکد مواجه میشم. هر کدوم از اونا نشوندهنده یک مشکل متفاوت هستن که سعی کردم حل کنم، یک تکنولوژی متفاوت که تلاش کردم رو اون مسلط بشم. همه اونا جالب هستن، هر کدومشون هدف و پتانسیل مختص خودشون رو دارن. اما هنگام مرور اونا، احساس میکنم که شور و هیجانم در حال کاهش هستش. میدونم که هر کدوم رو انتخاب کنم، نه تنها با مشکل اصلی که میخواستم حلش کنم، مواجه خواهم شد، بلکه با یک مشکل پیچیده تر یعنی درک کدهایی که آخرین بار زدم هم مواجه خواهم شد.
پس از اندکی بررسی، یکی رو انتخاب و IDE خودم رو اجرا میکنم. در حالیکه آخرین تغییرات رو دریافت میکنم و شروع به کاوش در تاریخچه کامیتهام میکنم. خودم رو برای چیزی که میدونم باهاش مواجه میشم، آماده میکنم. خب اینجا: یک کار نیمه تمام فرانت دارم، بیشتر شبیه یک wireframe هستش تا یک رابط کاربری تکمیل شده. یا شاید یک اضافه کردن یک کتابخونه ی خارجی ویژه هستش که به محدودیتهایی برخورد کرده که پیشبینی نکرده بودم. یا یک معماری پیچیده رو برای حل یک مشکلی ساختم، که میتونست با یک اسکریپت ساده حل بشه.
آستینهام رو بالا میزنم و با عزم راسخ برای پیشرفت، به کارم ادامه میدم. چند ساعت آینده در طوفانی از فعالیتها غوطه ور میشم : بازسازی کد، رفع اشکال مسائل ادغام، یا دست و پنجه نرم کردن با CSS برای درست تراز کردن اون مؤلفه. جوری کار میکنم که اصلا نفهمیدم اون زمانی که برای کدنویسی در نظر گرفته بودم، تموم شده.
در حالیکه آماده میشم از میز کارم دور بشم، نمیتونم احساس ناامیدی رو کنار بذارم. جلسه رو با خوشبینی شروع کردم، آماده برای پیشرفت قابل توجه. اما حالا، با احساس آزاردهندهای از ناکافی بودن تمومش میکنم. با وجود تلاشهام، احساس میکنم که به سختی عقربه رو حرکت دادم. پایگاه کد همچنان یک هزارتوی از نظرات TODO و ویژگیهای نیمهاجرا شده هستش. هیدرای توسعه نرمافزار، برای هر یک که موفق به رسیدگی شدم، دو سر جدید ایجاد کرده. (هیدرا: موجودی افسانهای با چندین سر که اگه یکی از اونارو قطع کنن، دو سر دیگه به جاش رشد میکنه.)
این چرخه شور و هیجان، مبارزه و ناامیدی، بسیار آشنا شده. این اثر پروژه هیدراست: صرف نظر از پیشرفتی که کسب میکنم، همیشه به نظر میرسه چالشهای جدیدی به جای اون جوانه میزنن. اما در حالیکه این الگو ممکنه غیرقابل شکستن به نظر برسه، من مصمم هستم راهی برای رام کردن این هیولا پیدا کنم.
در این پست، استراتژیهایی رو برای خارج شدن از این چرخه شروعهای بیپایان و بخش های ناراضی رو بررسی خواهم کرد. زمان اون رسیده که هنر تموم کردن رو یاد بگیریم، این هیدرا رو یک بار برای همیشه بکشیم و سرانجام رضایت یک پروژه تکمیل شده رو تجربه کنیم.
جذابیت پروژه های ناتمام:
در قلمرو امکانات بیپایان، راحتی خاصی وجود داره. زمانیکه یک پروژه در حال انجام هستش، میتونه هر چیزی باشه. این یک پروژه شرودینگر هستش. با این حال برخلاف گربه، اغلب پروژه های ناتمام نه زنده هستن و نه مرده، اونا فقط فضایی رو در هارد درایور ما اشغال میکنن. همزمان کامل و ناقص تا زمانی که واقعاً اونو تمام کنیم و به بیرون عرضه کنیم. لحظه ای که پروژه ای رو “تمام شده” اعلام میکنید، اونو برای انتقاد، هم خارجی و هم داخلی، باز میکنید. چی میشه اگه به اندازه کافی خوب نباشه؟ چی میشه اگه چیز مهمی رو از دست داده باشم؟
این ترس از نهایی شدن، همراه با هیجان ایدههای جدید، یک محیط ایدهآل برای تعویق پروژهها ایجاد میکنه. همیشه شروع کردن چیزی جدید آسونتر از پشت سرگذاشتن مراحل نهایی و اغلب خستهکننده تکمیل یک پروژه هستش. اما این موضوع فقط ترس نیست.
یک پروژه ناتمام پر از پتانسیل مست کننده هستش. این میتونه چیز بزرگ بعدی، یک ایده انقلابی یا اثر بزرگ شما باشه. این پتانسیل اغلب هیجانانگیزتر از واقعیت یک محصول تموم شده احساس میشه. همچنین در قلمرو آشنای یک پروژه در حال انجام، راحتی وجود داره. شما پایگاه کد رو میشناسید، مشکلات رو درک میکنید و در محیط خودتون هستید. شروع کردن چیزی جدید به معنای مواجهه با ناشناخته هاست، که میتونه دلهرهآور باشه.
توهم بهرهوری هم نقش قابل توجهی داره. تا زمانی که روی چیزی کار میکنید، احساس بهرهوری میکنید. پریدن از یک پروژه به پروژه دیگه، یک جریان ثابت از “انرژی پروژه جدید” رو به شما میده که میتونه نسبت به تلاش برای تکمیل یک پروژه واحد، نشاطبخشتر باشه. این راهی برای اجتناب از تصمیمات دشوار هستش که با تکمیل همراه هستش. آیا ویژگی رو که هفتهها روی اون کار کردید، اما درست نیست، حذف میکنید؟ آیا اکنون منتشر میکنید یا یک ماه دیگه رو صرف تکمیل کردنش میکنید؟ با ادامه پروژهها، میتونید این انتخابهای چالشبرانگیز رو کنار بذارید.
عدم وجود ضربالاجل در پروژههای شخصی لایه دیگه ای به این پیچیدگی اضافه میکنه. این پدیده ارتباط نزدیکی با قانون پارکینسون داره که میگه «کار به گونهای گسترش میابه که، زمان در دسترس، برای تکمیل تون پر بشه». در پروژه های شخصی، زمان در دسترس اغلب بی نهایت هستش که منجر به گسترش بی پایان میشه.
بدون فشار بیرونی یک تاریخ سررسید، بسیار آسونه که در دام کمالگرایی گرفتار بشید. ما خودمون رو در حال تنظیم و اصلاح بیپایان قرار میدیم، همیشه در حال تعقیب اون “راه حل کامل” هستیم. تناقض اینه که این تعقیب کمال اغلب منجر به نتایج ناکامل یا هیچ نتیجهای میشه.
در زندگی شغلی ما، ضربالاجلها ما رو مجبور به اولویتبندی و تصمیمگیری عملی میکنن. اما در پروژههای شخصی، لوکس بودن زمان نامحدود، میتونه به یک نفرین تبدیل بشه، به ما اجازه میده تا ساعتها، روزها یا حتی هفتهها رو صرف جزئیات جزئی کنیم که در واقع تأثیر کمی بر موفقیت یا کارایی کلی پروژه دارن. این یک یادآوری واضحه که گاهی اوقات، “به اندازه کافی خوب” واقعاً کامل هستش، به خصوص زمانیکه جایگزین اون هرگز تمام نشدن هستش.
هزینه ی هرگز تموم نشدن:
اما این چرخه شروعهای بیپایان با یک قیمت سنگین همراه هستش. رضایت منحصر به فردی در دیدن تکمیل یک پروژه وجود داره که هیچ مقدار شروع، نمیتونه با اون رقابت کنه. علاوه بر این، پروژههای ناتمام یک وزن ذهنی دارن. اونا در پس ذهن شما باقی میمونن و به آرامی انرژی ذهنی و اشتیاق شما رو تخلیه میکنن.
شاید از همه مهمتر، ما از تکمیل پروژهها درسهای متفاوتی یاد میگیریم، تا از شروع اونا. شروع کردن به ما در مورد ایدهپردازی و اجرای اولیه آموزش میده. تکمیل، از سوی دیگه، به ما در مورد پایداری، توجه به جزئیات و هنر دونستن زمان آموزش میده. این مهارتهای ارزشمندی هستن که فقط میتونیم اونارو از طریق عمل تکمیل بهبود ببخشه.
هزینههای عدم تکمیل بسیار فراتر از فرصتهای از دست رفته هستش. در حالیکه شروع پروژهها ممکنه شما رو در معرض فناوریها یا مفاهیم جدید قرار بده، اما در تکمیل، حل آخرین مشکلات، پیچیدهترین مشکلات، اغلب رشد مهارت واقعی رو نشون میده. هر پروژه ناتمام میتونه به اعتماد به نفس شما آسیب بزنه. با گذشت زمان، ممکنه شروع به شک در توانایی خودتون برای تکمیل هر چیز قابل توجهی کنید، و یک پیشگویی خودپنداری ناتمام برای خودتون ایجاد کنید.
مراحل پایانی یک پروژه اغلب شامل بهینهسازی، بازسازی و واقعاً درک پیچیدگیهای کد شما میشه. با ناتمام گذاشتن، این تجربیات ارزشمند یادگیری رو از دست میدید.
در محیطهای شغلی، شناخته شدن به عنوان کسی که چیزها رو شروع میکنه اما اونارو تموم نمیکنه، میتونه برای حرفه شما مضر باشه. کارفرمایان و مشتریان افرادی رو که میتونن پروژههای تکمیل شده رو تحویل بدن، براشون ارزش قائل هستن، و توانایی تکمیل، یک مهارت شغلی حیاتی هستش.
هر پروژه ناتمام فضای ذهنی رو اشغال میکنه. این مانند داشتن دهها تب مرورگر باز هستش، هر کدوم کمی از RAM ذهنی شما رو استفاده میکنن و ظرفیت شما رو برای ایدههای جدید و کار متمرکز کاهش میدن. این بهم ریختگی ذهنی میتونه تخلیه قابل توجهی برای خلاقیت و بهرهوری شما باشه.
شاید از همه مهمتر، اینه که شما خودتون رو از احساس بینظیر رضایت هنگام انتشار یک پروژه تمام شده در جهان محروم میکنید. در منتشر کردن شادی وجود داره که نمیشه اونو با شروع چیزی جدید تکرار کرد. پروژههای تمام شده همچنین دعوت به بازخورد میکنن، و بدون انتشار، شما فرصت دریافت بینشهای ارزشمند از کاربران یا همتایان رو از دست میدید که میتونه مهارتها و پروژههای آینده شما رو به طور قابل توجهی بهبود ببخشه.
درک جذابیت پروژههای بیپایان و هم هزینه عدم تکمیل، حیاتی هستش. این موضوع در مورد از دست دادن، هیجان شروعهای جدید نیست، بلکه در مورد یافتن تعادل هستش. یادگیری هدایت این شور و شوق اولیه به کار، به اندازه دیدن همه چیز تا تکمیل شدن، مهم هستش. با تشخیص این الگوها در خودتون، میتونید شروع به توسعه استراتژیهایی برای غلبه بر اونا و سرانجام کشتن هیدرای پروژه خودتون کنید.
استراتژیهایی برای مبارزه با پروژه های هیدرا:
خب چطوری این چرخه رو بشکنیم؟ چطوری یاد بگیریم، کاری که شروع کردیم رو تمومش کنیم؟ در اینجا نویسنده چندین استراتژی رو که خودش برای مهار هیدرا استفاده میکنه رو بیان کرده:
- از ابتدا “تمام شده” رو تعریف کنید: قبل از غوطهور شدن در یک پروژه، به وضوح تعریف میکنم که “تمام شده” به چه معناست. چه ویژگیهای اصلی، یک پروژه کامل رو تشکیل میده؟ اونارو مینویسم و در برابر اصرار به گسترش این لیست مقاومت میکنم. این از گسترش دامنه جلوگیری میکنه و یک هدف واضح برای هدفگیری به شما میده.
- MVP رو بپذیرید: به جای هدفگیری کمال، هدفگیری “به اندازه کافی خوب” رو انجام میدم. یک نسخه پایه که کارآمد هستش رو منتشر میکنم. بعدا میتونم این پروژه رو بهبود بدم. این رویکرد به حفظ حرکت کمک میکنه و فرصتهای بازخورد اولیه رو فراهم کنه.
- پروژههای خودتون رو از لحاظ زمانی محدود کنید : برای خودم یک ضربالاجل تعیین میکنم. نیازی نیست کوتاه باشه، اما باید محدود باشه. داشتن یک تاریخ پایان، فوریت ایجاد میکنه و به من کمک میکنه تا از گسترش بینهایت ویژگیها جلوگیری کنم. متوجه شدم که تقسیم پروژههای بزرگتر به فازهای کوچکتر و محدود زمانی، به حفظ احساس پیشرفت کمک میکنه.
- تمرین تکمیل چیزهای کوچک: من “عضله تکمیل” خودم رو با تکمیل منظم پروژهها یا وظایف کوچک میسازم. من تشخیص میدم که مهارت تکمیل مانند هر مهارت دیگه هستش، با تمرین بهبود پیدا میکنه. این میتونه به سادگی تکمیل یک پست وبلاگ یا انجام یک چالش کوچک کدنویسی هر هفته باشه.
- ایدهپردازی رو از اجرا جدا کنید: من یک دفترچه ایده جداگانه دارم. هنگامی که ویژگیهای جدید یا ایدههای پروژه در حین اجرا، ظاهر میشن، اونارو برای بررسی در آینده یادداشت میکنم تا بلافاصله روی اونا کار نکنم. این به حفظ تمرکز روی پروژه فعلی در حالیکه همچنان ایدههای بالقوه ارزشمند رو ثبت میکنم، کمک میکنه.
- تکمیلها رو جشن بگیرید: من تکمیل رو به یک موضوع بزرگ تبدیل میکنم. زمانیکه یک پروژه رو تکمیل میکنم، جشن میگیرم، صرف نظر از اینکه چقدر کوچک باشه. این تقویت مثبت میتونه به تغییر ذهنیت من به سمت تکمیل کمک کنه. چه با پذیرایی از خودم با یک شام خوب یا به سادگی به اشتراک گذاشتن دستاورد خود با دوستان، قدردانی از این پیروزیها انگیزه رو برای پروژههای آینده افزایش میده.
- مسئولیتپذیری رو بپذیرید: من راههایی برای مسئولیتپذیری خودم برای تکمیل پروژهها پیدا میکنم. این میتونه شامل پیدا کردن یک شریک مسئولیتپذیر، انجام تعهدات عمومی در مورد نقاط عطف پروژه یا پیوستن به یک گروه از توسعهدهندگان همکار باشه. مسئولیتپذیری خارجی، انگیزه و پشتیبانی رو به پروژههای شخصی اضافه میکنه. یک مطالعه توسط American Society of Training and Development نشون داده که افراد در صورت تعهد به شخص دیگه ای، 65 درصد شانس رسیدن به هدف رو دارن. این شانس زمانی به 95٪ افزایش پیدا میکنه که اونا یک قرار ملاقات مسئولیت پذیری خاص، با شخصی که به اون متعهد شدن داشته باشن.
این استراتژیها نقشه راه شخصی من برای غلبه بر چالشهای پروژه هیدرا هستن. با اجرای مداوم اونا، امیدوارم عادات بهتری رو توسعه داده و شانس خودم رو برای تکمیل پروژهها افزایش بدم. این در مورد ایجاد یک ساختار حمایتی در اطراف کار من، ایجاد تعادل بین انگیزه درونی با مسئولیت پذیری بیرونی و ایجاد تدریجی مهارت تکمیل هستش.
البته استراتژیها فقط شروع کار هستن. چالش واقعی در اعمال مداوم این رویکردها، در کار من هستش. این یک فرآیند آزمون و خطاست، یادگیری اینکه چه چیزی برای سبک شخصی من و الزامات خاص هر پروژه بهترین عملکرد رو داره. اما با هر پیروزی کوچک، با هر پروژهای که کمی نزدیکتر به تکمیل میشه، من عادات و ذهنیت لازم برای سرکوب نهایی پروژه هیدرا رو میسازم.
مسیر رو به جلو:
مسیر پیش رو چالشبرانگیز خواهد بود. میدونم که تغییر عادات ریشهدار و الگوهای فکری زمان و تلاش مداوم نیاز داره. احتمالاً در طول مسیر موانعی وجود خواهد داشت. لحظاتی که جذابیت یک پروژه جدید، من از تکمیل پروژه فعلی دور میکنه یا ترس از نقص من در اعلام چیزی به عنوان “انجام شده” مردد میکنه. اما من متعهد هستم که از این موانع عبور کرده و “عضله پایان دادن” خودم رو بسازم.
این سفر فقط در مورد تکمیل کد نیست؛ بلکه در مورد رشد به عنوان یک توسعهدهنده و خالق هستش. هر پروژه تمام شده، هرچند کوچک، یک قدم به سمت تبدیل شدن به کسی هستش که نه تنها با اشتیاق شروع میشه، بلکه با رضایت به پایان میرسه.
پروژه هیدرا برای مدت طولانی روی کار من سایه انداخته. با مجهز شدن به استراتژیهای جدید و عزم راسخ، آماده هستم تا مستقیماً با این هیولا روبرو بشم. زمان آن رسیده که برنامهریزی رو متوقف کنیم و شروع به انجام کار کنیم.
اکنون، اگه اجازه بدید، من یک پروژه برای تکمیل دارم و این بار، قصد دارم اونو تا پایان انجامش بدم.
نظر خاصی ندارم ولی این کامنت رو میذارم نویسنده این پست بدونه پستش خونده شده و از نظر شخصی بنده خیلی مفیده بوده
مرسی
سپاس. ممنون.