مقدمه:

اصل هشتم بیانیه چابک می‌گوید که فرآیندهای چابک، از «توسعه‌ی پایا» (Sustainable Development) حمایت کرده و آن را ترویج می‌کنند:

Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

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

تعاریف:

ابتدا به بررسی دو کلید واژه موجود در متن، بپردازیم:

1-   واژه Sustainable

واژه‌نامه کمبریج، درباره واژه sustainable آورده:

Able to continue over a period of time. Causing little or no damage to the environment and therefore able to continue for a long time.

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

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

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

2- Pace

ویکی پدیا در مدخل Pace آورده:

Pace, also called rhythm or tempo, is the rate of activity or movement, such as in running or the flow of events in an entertainment piece. (Wikipedia)

با این توصیف، می‌توان فهمید که معادل مناسب برای واژه Pace، ضرب آهنگ یا ریتم است و با «سرعت» متفاوت است. (گاهی دیده شده که برای ترجمه Pace از معادل «سرعت» استفاده شده که صحیح نیست).

از واژه Pace در توصیف ریتم پدیده های تناوبی طبیعی مانند گردش زمین، تغییر فصول، ضربان قلب و ... استفاده می شود. همچنین در سینما برای توصیف توالی رخدادهای فیلم و فراز و فرودهای داستان، از Pacing، ریتم یا ضرب آهنگ استفاده می شود.

ضرباهنگ ثابت (Constant Pace) رمز تحقق توسعه ی پایدار (Sustainable Development)

در متدولوژی XP توصیه شده که تیم توسعه، از یک ضرب آهنگ پایدار، قابل اندازه گیری و قابل پیش بینی پیروی کند. بر همین اساس اعضای تیمی که به کار بلند مدت می‌پردازند، نباید به گونه‌ای کار کنند که در یک مقطع سرشار از انرژی برای انجام کارها باشند ولی مدتی بعد، انرژی و شور و اشتیاق آنها فروکش کند. لذا باید مراقب بود که نحوه انجام فعالیت‌ها به نحوی سازماندهی شود که تیم همواره سرحال، قبراق و خلاق باشد و توسعه دهندگان بتوانند بین زندگی شخصی و کارشان تعادل برقرار کنند. می‌توان مفهوم Constant Pace را بیانی دیگر از این ضرب المثل شیرین فارسی دانست که می‌گوید: «رهرو آن نیست که گهی تند و گهی خسته رود / رهرو آن است که آهسته و پیوسته رود.»

اضافه کاری: استقبال یا اجتناب؟

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

کنت بک تعریف قابل توجهی از اضافه کاری ارایه داده است:

"Every hour at the office that you don't want to be there is overtime"

-Kent Beck

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

کریستوفر بودسون در اینجا به بررسی اهمیت این موضوع پرداخته است. او می‌گوید: «اگر در ساعت‌های اضافه‌کاری به فعالیت حساسی مانند توسعه نرم‌افزار بپردازیم چه اتفاقی می‌افتد؟ مطالعات زیادی نشان داده‌اند که هر چند میزان بهره‌وری تیم در اولین هفته اضافه کاری افزایش می‌یابد اما در هفته دوم، بهره‌وری به طور قابل ملاحظه‌ای افت پیدا می‌کند و حتی از میزان بهره‌وری موثر در شرایط 40 ساعت کار در هفته کمتر می‌شود. افراد در شرایط اضافه کاری، متوجه کاهش سطح توانایی‌های خود نمی‌شوند و این باعث می‌شود تا اشتباهات افزایش یافته و بر کیفیت فعالیت، اثر منفی بگذارد.»

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

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

توسعه نرم افزار به دو امدادی شبیه تر است و متدهای چابک به این معضل توجه دارند که فرآیند توسعه برای اعضای تیم، خسته کننده و فرسایشی نشود. به همین دلیل، ایده ی محدود کردن زمان توسعه به حداکثر 40 ساعت کار در هفته مطرح شده است.

Becoming over worked today steals development progress from the future. (+)

در این رابطه نقل قولی از Ron Jeffries (یکی از بنیانگذاران XP) وجود دارد با این مضمون که اگر در شرایطی مجبور شدید تا چند ساعت بیشتر کار کنید، حتما به نحوی آن زمان را، در زندگی شخصی خودتان جبران کنید. مثلا کودکتان را به پارک ببرید، برای همسرتان که آن چند ساعت در کنارش نبوده‌اید، گل/هدیه بخرید؛ برای خودتان یک غذای جدید سفارش دهید؛ زمان بیشتری را در باشگاه به ورزش بپردازید یا به هر نحوی که می‌توانید آن زمان اضافه کاری را در زندگی شخصی خودتان جبران کنید.

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

به همین دلیل هم در بیانیه آمده است که:

The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

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

قهرمان بازی:

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

جمع بندی:

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

منابع:

·         https://www.infoq.com/news/2008/05/sustainable-pace

·         https://en.wikipedia.org/wiki/Pace_(speed)

·         https://www.agilealliance.org/glossary/sustainable/

·         https://www.scrumalliance.org/community/articles/2011/may/is-sustainable-pace-nice-to-have-think-again!

·         http://www.agilebuddha.com/agile/sustainable-pace-does-culture-play-any-role-at-all/

·         https://www.infoq.com/news/2013/08/sustainable-pace-achieve-improve

·         http://www.extremeprogramming.org/rules/overtime.html

·         http://www.sustainablepace.net/what-is-sustainable-pace

·         http://www.scrumalliance.org/system/slides/62/original/maximizing sustainable pace.pdf