تله‌های زمان که توسعه‌دهندگان نرم‌افزار با آن مواجه می‌شوند

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

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

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

تله 1. کمال‌گرایی در حین کدنویسی

تحسین‌برانگیز است تا تمام وقت را با بهترین کیفیت ارائه دهیم. اما ممکن است این کار "بیش از حد" انجام شود. هنگام کدنویسی، می‌توانیم در باتلاق گرایش‌های کمال‌گرایی فرو رویم.

یک اتفاق معمول کمال‌گرایی اصرار داشتن مداوم به بهینه‌سازی کد، فراتر از ضرورت، است. بهینه‌سازی معمولا دو جنبه دارد: عملکرد یا تمیزسازی کد.

ما اشتباه نمی‌کنیم، کد خوانا و کارآمد خیلی مهم است. به طوری که می‌توان گفت کاش کتاب Clean Code را در مهدکودک به ما آموزش می‌دادند.

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

همین امر برای پاک‌سازی کد نیز وجود دارد. هیچ پایانی برای تمیزسازی کد نیست. شما همیشه می‌توانید به تمیزسازی کد بپردازید.

راه‌حل:

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

چگونه متوجه شویم که چه وقت تلاش برای بهینه‌سازی کد را متوقف کنیم. در اینجا چند جنبه برای بررسی وجود دارد:

نوع نرم‌افزاری که در حال ساخت آن هستیم: منطقی است که برای سیستم‌های تولیدی نسبت به نمونه‌های اولیه کم مصرف تلاش بیشتری را انجام دهیم.

طول عمر کد: بدیهی است باید فکر و زمان بیشتری را به یک ویژگی که باید برای سال‌های زیادی اجرا شود اختصاص دهیم.

افزایش مهارت: اگر شما با سیستم یا زبان برنامه‌نویسی آشنا نیستید ممکن است بخواهید به منظور بهینه‌سازی مهارت‌های خود سرمایه‌گذاری بیشتری را انجام دهید.

تله 2. ارائه معماری برای آینده

طراحی معماری یک سیستم نرم‌افزاری یک تلاش زمان‌بر است. درست مانند برنامه‌نویسی، ممکن است وقتی با معماری روبه‌رو می‌شوید زمان زیادی را صرف کنید.

فکر کردن در مورد توسعه‌پذیری و نگهداری معماری بخشی از کار است. ما می‌توانیم زمان زیادی را برای ساخت معماری که به طور واضح عمومی باشد، با امید به ارائه آن در آینده، صرف کنیم.

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

ما به سادگی نمی‌توانیم آینده را ببینیم. الزامات آینده می‌تواند به عنوان نتیجه‌ای از بازخورد بازار یا تغییر در استراتژی مدیریت محصول تغییر کند.

راه‌حل:

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

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

ما باید تمایز روشنی بین مدیریت موارد مرزی و موارد آتی برقرار کنیم. اغلب این دو با یکدیگر اشتباه گرفته می‌شوند. این امر یک راه خوب برای مجددا بررسی کردن الزامات خاص است.

مورد مرزی یک احتمال واقعی است که می‌تواند در پارامترهای مورد نیاز فعلی رخ دهد. مورد آتی فرضیه‌ای است که ممکن است رخ دهد.

تله 3. مرسومات انجام کارها

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

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

گاهی اوقات فرآیندها ارزش‌هایی که از قبل تعیین شده است را ارائه نمی‌دهند. دلایل ممکن می‌تواند تغییرات در استراتژی محصول، تغییرات در صلاحیت یا تغییرات سازمانی باشد. دنبال کردن کورکورانه این  فرآیندها به دلیل اینکه مرسوم شده‌اند، اتلاف منابع است.

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

راه‌حل:

برای حذف مرسوماتی که ما را در باتلاق می‌اندازند، ابتدا باید آن‌ها را شناسایی کنیم. یکی از راه‌های سریع شناسایی فرآیندهایی که دیگر ارزش ارائه ندارند، گوش دادن به مکالمات اطرافیان‌مان است.

به همکاران‌تان وقتی در مورد فرآیند شکایت می‌کنند گوش دهید. آیا آن‌ها از اینکه گرفتار یک فرآیند بیهوده شده‌اند ناراضی هستند؟ آیا آن‌ها اظهار می‌کنند که این فرآیند طول می‌کشد؟

هنگام گوش دادن به شکایات مهم است که بین واقعیت‌ها و نظرات غیرواقع‌بینانه تمایز قائل شوید. بعضی‌ها شکایت می‌کنند چون شرایط نامطلوب است. این ورودی ارزشمندی است و شما می‌توانید از آن استفاده کنید. بعضی‌ها شکایت می‌کنند چون آن‌ها کلا شاکی هستند. این‌‌ها را نادیده بگیرید.

از بهینه‌سازی فرآیند به دلیل بهینه‌سازی اجتناب کنید. این امر غیرضروری است و خود یک تله زمانی محسوب می‌شود!

تله 4. جلسات اشتراک‌گذاری اطلاعات اختیاری

شرکت‌های فناوری منابع زیادی را برای اطمینان از اینکه کارکنان اطلاعات لازم را دارند، سرمایه‌گذاری می‌کنند. یکی از راه‌های اصلی انتشار اطلاعات، سازمان‌دهی جلسات اشتراک اطلاعات است.

این جلسات به طور معمول به یکی از دو دسته زیر تقسیم می‌شوند:

اطلاعات در مورد رهبری و استراتژی شرکت

اشتراک‌گذاری دانش

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

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

راه‌حل:

شما باید در انتخاب این جلسات احتیاط کنید. بنابراین سوال این است: چگونه متوجه شویم که جلسات به ما مربوط می‌شوند.

در حال حاضر ما  از معیارهای زیر برای فیلتر کردن جلسات استفاده می‌کنیم:

ارتباط با شغل فعلی: آیا برای اینکه کار فعلی من به بهترین استانداردها برسد به این جلسه نیاز دارم؟

مربوط به مسیر شغلی: آیا این اطلاعات مربوط به کارهایی است که من می‌خواهم در شغلم انجام دهم.

علاقه: آیا این موضوع با وجود اینکه به کار من مستقیما مربوط نیست، برای من جالب است؟

تغییر دیدگاه: آیا این جلسه می‌تواند به من یک دیدگاه تازه در مورد نحوه نگاه کردن به مسائل بدهد؟ آیا امکان دستیابی به اطلاعات جدید وجود دارد که می‌تواند مفاهیم و باورهای فعلی مرا به چالش بکشد؟

تله 5. حواس‌پرتی

حواس‌پرتی یک تله زمان است. واضح و ساده.

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

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

طول می‌کشد تا وظایف خود را تکمیل کنید.

قبل از اینکه وظایف دیگری را انجام دهید طول می‌کشد تا حالتان بهبود یابد.

راه‌حل:

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

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

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

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

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

برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.