مهندس نرم افزار در آسان پرداخت
چگونه در پروژه های Large Scale نرم افزاری؛ فشار و استرس خود را کنترل کنیم؟
قطعی یا عدم ارایه سرویس در برخی پروژه های نرم افزاری حتی به اندازه ی چند ثانیه ضررهای مالی و غیرمالی زیادی را می تواند برای سازمان ها ایجاد کند. در چنین پروژه هایی میزان استرس ممکن است نسبت به پروژه های دیگر تا حد زیادی بالاتر باشد، مخصوصا در زمان Down Time.
آیا شما آخرین قطعی سرویس جستجوی گوگل را به یاد می آوردید؟
یا آخرین قطعی سرویس gmail را به یاد می آورید.
البته گاها شاهد Down Time های مقطعی و منطقه ای در برخی از سرویس های مهم و بزرگ در سطح ایران و جهان بوده ایم. مثلا برخی از پیامرسان ها و شبکه های اجتماعی بوده اند که برای دقایقی و ساعاتی دچار قطعی و عدم سرویس دهی به کاربران شده اند.
برای پروژه هایی با این سطح از گستردگی جغرافیای و زمانی قطعی سرویس برابر با نارضایتی کاربران و ضررهای مالی خواهد بود، با فرض اینکه مشکل در سطح تیم نرم افزاری باشد، تک تک دقایق از لحظه وقوع این اتفاق حیاتی بوده و مدیریت تیمی و فردی در چنین شرایطی از اهمیت بسزایی برخوردار است.
از سوی مقابل در چنین شرایطی قطعا سطح استرس بالا بوده و مدیریت فردی اهمیت پیدا میکند. شاید یکی از تفاوت های یک مهندس سینیور و جونیور کنترل استرس در شرایط بحرانی باشد.
من در این ویدیو که با همکاری مجموعه سون لرن تهیه شده است از تجربیاتم در این مورد گفته ام. خوشحال خواهم شد که شما هم از تجریبات و نظراتتون در این حوزه برام بنویسید. در ادامه هم میتونید با من همراه باشید تا با اثرات استرس و راهکارها کنترلش اطلاعات بیشتری کسب کنید.
قبل از اینکه راهکارها را بررسی کنیم باید استرس را تعریف کنیم و ببنیم چگونه رخ می دهد و چه اثراتی روی موجودات زنده دارد.
در برابر شرایط استرس زا، ناگهانی و دشوار محیط اطراف، واکنش هایی در بدن جانداران تکامل یافته، که شانس بقا را افزایش دهد.
گورخری زخمی که یک شیر او را تعقیب میکند، ترشح هورمون استرس مجموعه تغییراتی را بدن او ایجاد میکند. برای خون رسانی بهتر تپش قلب افزایش می یابد، فعالیت سیستم گوارشی، معده، و همچنین فرآیندهای طولانی مثل رشد متوقف میشود. سیستم ایمنی بدن نیز در حالت آماده باش است. اکسیژن و گلوکز بیشتری به مغز می رسد تا هوشیاری بالا باشد. برای سبک شدن هنگام فرار، تخلیه غیر ارادی مثانه و حتی روده بزرگ ممکن است اتفاق بیفتد. تولید گلوکز از چربی افزایش پیدا می کند و تولید انسولین قطع می شود. مغز به سلولهای چربی فرمان می دهد که انسولین را نادیده بگیرند. تمامی این واکنشها به بیشترین شدن شانس گورخر زخمی کمک می کند.
تفاوت آدمی با حیوانات اینجاست که آدمی نه فقط برای بقا بلکه در اثر عوامل روانی و اجتماعی و حتی در نتیجه فکر کردن هم میتواند استرس را تجربه کند. فرایندی که میتواند مزمن و پرتکرار شود و به راحتی به تغییر تعادل بدن، اصطحلاک سیستم روانی و عصبی، به هم خوردن سیستم تنظیم چربی و قند خون و همچنین قلب و عروق، و بروز بیماریهایی که پیش زمینه آن وجود دارد منجر شود. وجود مستمر هورمون استرس، کورتیزول، سیستم کنترل قند خون و تعادل چربی/گلوکز را به هم میریزد و بسته به ژنتیک و خصوصیات فردی میتواند باعث چاقی یا لاغری شود.
فرد ممکن است به انسولین مقاوم شود و بدن برای جبران انسولین بیشتری تولید کند و شانس ابتلا به دیابت را افزایش دهد.
زخم معده ناشی از یک نوع باکتری است که بعد از ورود به سیستم گوارشی به تدریج در دیوارههای معده خراشهایی را ایجاد میکند که اسید معده وارد آن میشود.
در بسیاری این باکتری منجر به بیماری نمی شود اما استرس یکی از عواملی است که تاثیر بزرگی در شروع زخم معده دارد.
این نوشته از این لینک آمده که برگرفته از فصول اول کتاب Stress and Your Body است.
بنابراین برای کسانی که در شرایط های استرس زا و بحرانی مشغول به کار هستند کنترل استرس امری بسیار ضروری است. چرا که استرس هم باعث افت کارایی افراد می شود و هم اثرات مخربی بر سلامت انسان خواهد داشت. به طور خاص در پروژه های نرم افزاری اثرات استرس می تواند منجر به مشکلات زیر شود:
- کاهش تمرکز و خلاقیت
- افزایش خطاها و اشتباهات
- کاهش انگیزه و رضایت شغلی
- افزایش تعارضات و اختلافات
- اختلال در ارتباط و همکاری درست
- افزایش بیماریها و غیبتها
- کاهش اعتماد و اعتبار
- افزایش هزینهها و تاخیرها
و اگر شما با پروژه هایی با مشخصات زیر سر و کار دارید احتمالا در یک محیط استرس زا مشغول به کار هستید:
- پیچیدگی بالا و تعدد روابط بین اجزای نرمافزار
- نیازمندیهای متغیر و نامشخص
- محدودیتهای زمانی و هزینهای
- تعدد و تنوع ذینفعان و انتظارات آنها
- نوآوری و ابتکار فنی و تکنولوژیک
- رقابت و فشار بازار
- تغییرات محیطی و قانونی
هر فردی باید بررسی کند که کدام یک از مولفه های محیطی و فردی برای وی وجود دارد تا بتواند تا حدی آنها را کنترل کند، البته بخشی از آن به محیط بستگی دارد که سازمان ها و مدیران در آن نقش بیشتری دارند.
در ادامه بطور کلی در مورد کنترل استرس در دو سطح سازمانی، مدیریتی و سطح فردی بحث خواهیم کرد.
وظایف سازمانی و مدیریتی
برخی نکات در صورتیکه از قبل در سطح سازمان ها و تیم های نرم افزاری رعایت شوند امکان بروز شرایط استرس زا کاهش می یابد اما به صفر نخواهد رسید.
- وجود نقشه راه و پلن اجرایی برای پروژه ها در جهت تولید سیستم های با کیفیت
- ایجاد فرایند هایی همچون Postmortem
- داشتن انواع مختلف تست و درصد پوشش مناسب
- داشتن روش های مدیریت پروژه و مدیریت تسک مدون
- کنترل سلامت تیم و دریافت فیدبک از اعضای تیم
- تعیین وظایف و انتظارات بصورت شفاف برای افراد
- تعیین Deadline واقعی و کارشناسی شده
- ایجاد فرهنگ سازمانی و تیمی مناسب
- برگزاری رویدادهایی مانند Team Building در جهت بهبود ارتباطات بین فردی و بین تیمی
- ایجاد توازن بین کار و زندگی برای افراد سازمان
- ایجاد فرهنگ قدردانی در تیم ها و سازمان
- پرهیز از ایجاد فضای کاری پر فشار
- تدوین برنامه ها و رویدادهای توسعه فردی در سازمان
راهکار های فردی
باید بدانیم بخشی از استرس شرایط بحرانی طبیعی بوده و ماهیت شرایط استرس زا اینگونه است در نتیجه حذف کامل هیجان در چنین شرایطی بسیار سخت بوده و هدف ما کنترل شرایط، کاهش استرس و رفع مشکل در سریع ترین حالت ممکن می باشد
- تمرکز و تسلط : دقیقه 90 فینال لیگ قهرمانان اروپاست و یک ضربه پنالتی برای تیم شما اعلام شده که اگر گل بشه برنده اید. شما اگر طرفدار پروپاقرص باشید کافی ست یک ساعت هوشمند به دست ببندید و ببینید استرس شما در آخرین نقطه اش قرار داره. حالا فرض کنید اون بازیکنی که پشت توپه تا پنالتی بزنه چقدر استرس داره. با توجه به مواردی که از بخش های قبل بهش اشاره کردیم داشتن استرس برای این بازیکن برابر با کاهش بسیار زیاد کارایی بوده که موجب بروز اشتباه در انجام کار می شود و نتیجه ی آن ضرر تیمی و فردی است. شاید در یک سیستم نرم افزاری بزرگ هم با چنین شرایط مشابهی مواجه شویم. وظیفه مدیران تمرکز و تسلط و کنترل تیم و وظیفه اعضا کنترل وضعیت با تمرکز و تسلط بالای روی سیستم می باشد. زمانی که شما تمرکز بالایی دارید می توانید برنامه ریزی کنید، تصمیم درست بگیرید و عمل کنید. پس همیشه به یاد داشته باشید یکی از تفاوت های افراد سینیور و جونیور کنترل شرایط و تمرکز در سخت ترین موقعیت ها می باشد، چرا که در موقعیت های ساده همه ی افراد می توانند تمرکز و تسلط داشته باشند. مهارت افراد در این مورد با تمرین و کسب تجربه افزایش می یابد.
- برنامه ریزی و تقسیم وظایف: با توجه به محدودیت زمانی ممکن است در چنین شرایطی هماهنگی های تیمی کاهش یابد و در نتیجه برنامه ریزی دشوار خواهد بود. و در صورت عدم برنامه ریزی صحیح ممکن است برخی افراد روی بخش های یکسانی کار کنند یا از ظرفیت همه افراد به درستی استفاده نشود. لازم است افراد سینیور تیم در کنار راهبر تیم کنترل شرایط را در دست گرفته و یک برنامه ریزی مناسب و سریع برای شرایط بحرانی داشته باشند و طبق برنامه ریزی انجام شده و وظایف مشخص به سمت حل مشکلات حرکت کنیم.
- استفاده از تکنیک های ایجاد آرامش: برای آرام کردن ذهن و بدن خود و کاهش اثرات منفی استرس می توانید از تکنیک آرام سازی یا تمرین ذهن آگاهی استفاده کنید. همانطور که در بخش های قبلی اشاره کردیم در شرایط استرس زا نوع فعالیت بدن برای مقابله با شرایط بحرانی تغییر پیدا می کند و معمولا ضربان قلب بالا می رود. تمریناتی مانند تمرینات تنفسی می تواند به شما کمک کند تا سیستم عصبی خود را آرام کرده و ضربان قلب و فشار خون خود را کاهش دهید. می توانید انواع مختلفی از تمرینات تنفسی مانند تنفس عمیق، تنفس شکمی یا تنفس متناوب از سوراخ بینی را امتحان کنید.
- فضای حمایتی در تیم: یکی از مواردی که تا حدودی باعث کاهش استرس موجودات زنده در شرایط استرس زا می شود حمایت شدن است. همیشه این جمله را از افراد بزرگ شنیده ایم که در سخت ترین شرایط برخی حامیان روحی موجب شده اند که آنها بتوانند مسیر خود را ادامه دهند. در صورتی که فضای تیم به معنای واقعی حمایتگرانه باشد، هم استرس اعضا کمتر خواهد بود و هم اعضا انرژی بیشتری خواهند داشت. پس سعی کنید یک Supportive team member باشید.
- کنترل اشتباهات: در شرایط بحرانی به علت عدم وجود تمرکز کافی، امکان رخداد اشتباهات بعدی بسیار محتمل است. پس سعی کنید حالت های محتمل هر راه حل احتمالی را یک بار بررسی نموده و مطمئن شوید این راه حل درست بوده و مشکلات جدیدی ایجاد نخواهد شد.
- به دنبال مقصر نگردید: یکی از مواردی که در شرایط آشفته و بحرانی اتفاق می افتد این است که افراد به جای تمرکز روی حل مسئله و رسیدن به یک شرایط پایدار به دنبال مقصر می گردند. پیدا کردن مقصر در چنین وضعیتی نه تنها مشکلی را حل نمی کند بلکه در بین اعضای تیم احساس عدم اطمینان و اعتماد به نفس ایجاد می نماید، پس اولویت اول و آخر باید حل مشکل با تمام قدرت باشد.
- از اتفاقات درس بگیریم: در صورتی که ما از یک اتفاق و اشتباه درس نگیریم آن اتفاق تبدیل به تجربه نخواهد شد، به عقیده بسیاری از روانشناسان، انسان ها معمولا از سخت ترین اتفاقات بزرگترین درس ها را می گیرند. در واقع بین کسب تجربه و سختی اتفاق ارتباط مستقیم وجود دارد، این گزاره بدین معنا نیست که ما سعی کنیم مرتکب اشتباهات بزرگ شویم اما حتما باید از این اشتباهات درس بگیریم و حتی آن را مستند کنیم تا در صورت وقوع اتفاقات مشابه بتوانیم از تجریبات مشابه استفاده نماییم.
من در این مقاله سعی کردم تجربیات خود از شرایط استرس زا و بحرانی را با شما به اشتراک بگذارم. امیدوارم این مطلب برای شما مفید بوده باشد و دوست دارم شما هم مواردی که تجربه کرده اید را در بخش نظرات با من به اشتراک بگذارید.
مطلبی دیگر از این انتشارات
فریم ورک فلاتر (flutter) چیست و چه کاربردهایی دارد؟
مطلبی دیگر از این انتشارات
چرا زبان برنامه نویسی php را باید یاد بگیریم ؟
مطلبی دیگر از این انتشارات
نقش یک مهندس تست نرمافزار