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

کنترل فشار در پروژه های نرم افزاری

اسم ددلاین که میاد استرس می‌گیرین؟
اسم ددلاین که میاد استرس می‌گیرین؟


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

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


اجتناب از فشار

بهترین راه برای آروم موندن هنگام فشار ، دوری کردن از موقعیت هاییه که موجب فشار میشن.(بهترین راه از جلوگیری طلاق ازدواج نکردنه :) ). این اجتناب ممکنه فشار رو کاملا حذف نکنه اما میتونه قدمی موثر برای حداقل کردن و کوتاه کردن دوره های فشار بالا ، باشه.


تعهدات

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

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


تمیز ماندن

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


انضباط بحرانی

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

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


مدیریت فشار

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


وحشت نکنید

اضطراب خودتون رو مدیریت کنین. بی خوابی های شبونه ، به شما کمک نمی‌کنه که کار رو سریع تر انجام بدین. نشستن و کج خلقی کردن هم کمکی نخواهد کرد و بدترین کاری که میتونین انجام بدید عجله کردنه!

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


ارتباط برقرار کنید

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


به روش های خود اتکا کنید

وقتی شرایط دشوار بشه ، به روش های خودتون اعتماد کنید. علت اینکه شما روش هایی داریم ، اینه که در زمان هایی با فشار بالا ، شما رو هدایت کنن . این زمان‌ها، زمان هایی هستن که باید توجه خاصی به تموم روش هاتون ، داشته باشین. نه اینکه زمان هایی برای پرسش در مورد روش ها یا ترک کردن اونا باشن . به جای اینکه به دنبال ترس وحشت باشین ، دنبال هرچیزیب بگردین که به سریع تر انجام دادن شما کمک کنه، سنجیده تر عمل و خودتون رو وقف پیروی از روش های انتخابیتون کنین. اگر از TDD پیروی می‌کنین ،حتی بیشتر از حالت عادی ، تست بنویسید. اگر پیرو ریفکتور بی رحمانه (Mericiless refactor) ، حتی بیشتر ریفکتور کنید. اگه توابع خودتون رو کوچیک نگه میدارین، در شرایط دشوار ، حتی اونا رو کوچیک‌تر کنید. تنها راه برای عبور از کوره فشار ، اتکا به چیزی هست که از قبل میدونین کار میکنه، یعنی روش هاتون.


کمک بگیرید

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

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


نتیجه گیری

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

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


این مطلب برگرفته از کتاب کدنویس تمیز از عموباب است.



اینجا میتونین مطالب بیشتری بخونین

در پایان اگه نظر یا پیشنهادی دارین خوشحال میشم در زیر این پست بخونم :)



مدیریتنرم‌افزارپروژهاسترساضطراب
برنامه نویس اندروید و علاقه مند به تکنولوژی
شاید از این پست‌ها خوشتان بیاید