Yak Shaving (پَشمتراشی گاومیش) به صورت خلاصه به مجموعهٔ دومینوواری از فعالیتهای ناخواسته گفته میشود که ممکن است برای انجام بسیاری از کارهای روزانهٔ خود درگیر آنها شده و پس از صرف زمان و هزینهٔ زیادی، متوجه شویم که بدون کسب نتیجهای مناسب، نه تنها از هدف اولیهٔ خود بسیار دور شدهایم، بلکه به انجام فعالیت کاملاً نامرتبطی مثل تراشیدن پشمهای یک گاومیش مشغول هستیم (لازم به ذکر است که معنی لغوی Yak گاومیش است.) سَندروم یاک شیوینگ به دلیل ارتباط بسیار زیاد اجزای زندگی امروزی با یکدیگر، چالشی است که بسیاری از افراد به صورت روزانه با آن مواجه میشوند که در این مقاله قصد داریم در قالب مثالهایی ملموس، مفهوم آن را بیشتر توضیح دهیم.
از آبیاری درختان باغچه تا تراشیدن پشم گاومیش!
فرض کنیم که امروز زمان آبیاری درختان باغچهٔ حیاط است و شما متوجه می شوید که شلنگ آب از زمستان گذشته دچار نشتیهای زیادی شده و ضروری است که یک شلنگ نو بخرید. برای این کار، باید به فروشگاه لوازم ساختمانی یکی از آشنایان خود در نقطهای از شهر بروید که ورود به آن ناحیه بدون مجوز طرح ترافیک، ممکن نیست؛ لذا تصمیم میگیرید که خودروی همسایهٔ خود (آقای بامرام) را از وی قرض بگیرید، اما بهتر است پیش از این کار، بالش آقای بامرام که از پیکنیک مشترک عید با ایشان دست شما جا مانده را به وی برگردانید.
مسلماً این کار به سادگی ممکن نیست زیرا قسمتی از این بالش به دلایلی نامعلوم آسیب دیده و پیش از تحویل، حتماً باید ترمیم شود و از آنجایی که این بالش با پشم گاومیش پُر شده بود، شما مجبور میشوید به این در و آن در زده تا یک Yak (گاومیش) یافته و مقداری پشم گاومیش برای این کار تهیه کنید؛ این در حالی است که روز به پایان رسیده و شما به جای آبیاری درختان، مشغول تراشیدن پشم گاومیش هستید!
گرچه این سناریو تا حدودی اغراقآمیز است، اما به نظر میرسد که بتواند مفهوم Yak Shaving را به خوبی منتقل کند. نیاز به توضیح نیست که در فرایند توسعهٔ نرمافزار نیز بسیاری از دولوپرها هر روز با چنین چالشی ممکن است مواجه شوند که برای روشنتر شدن این مسئله، در ادامه سناریویی دیگر را مد نظر قرار خواهیم داد.
شیوع سندرم Yak Shaving در میان دولوپرها
به طور مثال، فرض کنیم صبح روز شنبه است و قصد کار کردن روی یک پروژهٔ نرمافزاری جالب را داریم. به محض شروع به کدنویسی، در مورد یکی از دیزاینپَترنها برایمان سؤالی پیش میآید و با گوگل کردن سؤال خود، طبق معمول وارد سایت #استک اورفلو میشویم و پاسخ سؤال خود را مییابیم؛ اما در عین حال سؤال دیگری که یکی از کاربران این سایت پرسیده نیز نظرمان را به خود جلب میکند و آن هم اینکه چهطور فلان کار را میتوان در زبان #پایتون انجام داد.
در همین راستا، شروع به پاسخ دادن به سؤال مربوطه میکنیم و در همین اثنی متوجه میشویم فانکشنی که چند ماه پیش برای یک پروژهٔ شخصی نوشته بودیم را اگر اپنسورس کنیم، مسلماً هم نیاز این کاربر مرتفع میشود و هم ممکن است پاسخ به سؤال چند صد دولوپر دیگر باشد!
لذا تصمیم میگیریم وارد اکانت گیتهاب خود شویم اما از آنجا که مدت زمان زیادی است وارد گیتهاب نشدهایم، رمزعبور آن را فراموش کردهایم؛ لذا از قابلیت فراموشی رمزعبور استفاده میکنیم و در این میان متوجه میشویم که پسورد ایمیلمان را نیز در اولین پنجشنبهٔ ماه می و روز جهانی پسورد تغییر دادهایم و از آنجا که سعی کرده بودیم پسوردی دشوار و غیرقابلهَک انتخاب کنیم، آن را نیز به یاد نداریم!
خبر ناامیدوارکننده اینکه پاسخ هیچگونه از پرسشهای امنیتی را نیز به یاد نداریم، اما از آنجا که اَکانت ما نسخهٔ پریمیوم از یک سرویس ایمیل است، میتوانیم با ارائهٔ شماره کارت اعتباری، پسورد را ریست نماییم اما یادمان میآید که چون در زمان پرداخت کارت اعتباری نداشتیم و یکی از دوستتانمان این کار را برایمان انجام داده بود، پس تصمیم میگیریم با وی تماس بگیریم و ادامهٔ ماجرا ... (جالب است بدانیم که در فضای استارتاپی نیز این سندرم بسیار شایع است. پرداختن به فعالیتهایی که باعث میشود نسخهٔ اولیهٔ محصول پس از صرف هزینههای زیاد بسیار دیرتر از زمان متناسب با بازار به مخاطب ارائه شده و دیگر فرصتی برای ایجاد تغییرات اساسی در آن وجود نداشته باشد.)
برای درمان این سندروم چه میتوان کرد؟
همواره سعی کنید تا هدف اصلی با سادهترین و کمهزینهترین حالت ممکن (البته با کیفیت مناسب) و در سریعترین زمان محتمل محقق شود (در ارتباط با اولین مثال فرضی، شاید آبیاری درختان با سطل نیز میتوانست راهکار مناسبی باشد، زیرا در آن صورت هدف نهایی نیز به خوبی انجام شده بود.) همچنین به خاطر داشته باشید که پیشنیازهای غیرضروری را بدون تردید حذف کنید و سَبکترین حالت ممکن را انتخاب کنید به طوری که Eric Ries، کارآفرین آمریکایی و نویسندهٔ کتاب The Lean Startup، میگوید:
بزرگ فکر کن اما کوچک شروع کن!
به صورت خلاصه، شاید بتوان گفت مشخص کردن اولویتها در پروژه و پایبندی به آنها میتواند مناسبترین راهکار برای جلوگیری از یاک شیوینگ و اِتلاف زمان و منابع مالی باشد. نظر شما دربارهٔ این سندرم چیست و آیا تجربهای از این سندروم داشتهاید؟ نظرات، دیدگاهها و تجربیات خود را با دیگر کاربران سکان آکادمی به اشتراک بگذارید.