زمانبندی چیزیست که بیشتر برنامهنویسان نمیخواهند آن را انجام دهند و سعی در فرار از آن را دارند و از همان عدهی کمی هم که برنامهی زمانبندی برای پیشبرد کارشان تهیه میکنند، بیشترشان فقط از آن به این دلیل که رئیسشان آنها را مجبور به رعایت زمانبندی میکند استفاده میکنند.
هیچ کس به صورت واقعی عقیدهای به زمانبندی ندارد، به جز مدیران ارشد که البته در مواردی بر این عقیده اند: «هیچ پروژهی نرمافزاریای به موقع آماده نمیشود.»
چرا هیچ کس برنامهی زمانبندی درست نمیکند؟
به دو دلیل اصلی
۱) زمانبندی فقط یک دردسر و زحمت است.
۲) به عقیدهی برنامهنویسان زمانبندی اصلاً چیز با ارزشی نیست.
حسی وجود دارد که برنامهریزیهایی که به صورت ثابت میباشند اشتباه هستند و با گذشت زمان بدتر میشوند پس چرا برای هیچ خودشان را به دردسر بیاندازند؟ اگر قرار نیست که این زمانبندی درست کار کند چرا با کار کردن بر اساس برنامه زمانبندی خودشان را دچار مشکل کنند؟
راههایی ساده و آسان برای درست کردن برنامه زمانبندی وجود دارد که واقعاً درست کار میکند:
۱) از Microsoft Excel استفاده کنید. از ابزار نامناسبی مانند Microsoft Project هرگز استفاده نکنید. مشکل Microsoft Project این است که طوری تنظیم شده که شما باید زمان زیادی را صرف رابطهها کنید. رابطه یا وابستگی به این معنی است که شما دو Task دارید و تا زمانی که یکی از آنها کامل نشود شما اجازه شروع Task بعدی را نخواهید داشت. در صورتی که در کار نرمافزار رابطهها واضح و آشکار هستند و دلیلی برای محدود شدن آنها وجود ندارد.
مشکل دیگر Microsoft Project این است که طوری در نظر گرفته شده که شما بتوانید با فشردن یک دکمهی کوچک زمانبندی را مجدداً تنظیم کنید. به این معنی که تمام موارد را دوباره مرتب میکند و کارهای مختلف را به افراد دیگری اختصاص میدهد. در صورتی که چنین سبکی برای نرمافزار به هیچ عنوان جالب نیست، برنامهنویسان که قابل جابجایی و تعویض نیستند. به طور مثال برای برنامهنویسان برطرف کردن Bugهای یک برنامهنویس دیگر ۷ برابر بیشتر وقت میگیرد یا مثلاً اگر بخواهید برنامهنویس User Interfaceتان را درگیر یک مسأله Winsock کنید او باید یک هفته وقت صرف کند تا به سرعت برنامهنویسان Winsock برسد.
در نهایت اینکه Microsoft Project برای یک ساختار اداری طراحی شده نه برای نرمافزار.
۲) ساده بگیرید. فرمت استانداردی که من برای زمانبندی استفاده میکنم خیلی ساده است که میتوانید آن را به راحتی به خاطر بسپارید. با ۷ ستون زیر شروع کنید:
اگر چندین تولیدکننده نرمافزار دارید، میتوانید برای هر تولیدکننده یک برگهی جدا درست کنید یا اینکه یک ستون با نام همان شخص در جدول ایجاد نمایید.
۳) هر ترکیبی باید شامل چندین Task باشد. یک ترکیب چیزی است شبیه اضافه کردن Spell Checker به برنامهتان. اضافه کردن Spell Checker شامل تعدادی Task مجزا است که برنامهنویس باید آنها را انجام دهد. مهمترین قسمت در ایجاد یک برنامهی زمانبندی، درست کردن این فهرست از Taskها است. قواعد اساسی عبارتند از:
۴) فقط برنامهنویسی که قرار است کد را بنویسد میتواند آن را زمانبندی کند. هر سیستمی که مدیریت، برنامه زمانبندی آن را تهیه میکند و به دست برنامهنویس میدهد محکوم به شکست است. فقط برنامهنویسی که قرار است کار را انجام دهد میتواند تشخیص دهد چه مراحلی برای پیادهسازی Feature (ترکیب) لازم است و تنها اوست که میتواند تخمین بزند هر Task چقدر زمان میبرد.
۵) Taskهای خیلی کوچک را برگزینید. این مرحله مهمترین قسمتی است که زمانبندی شما را عملی میسازد. Taskهای شما باید در مقیاس ساعتها باشند نه روزها (وقتی میبینم یک زمانبندی در مقیاس روز یا هفته درست شده میفهمم که واقعی نیست). حالا ممکن است فکر کنید که یک زمانبندی با Taskهای کوچک به تنهایی خیلی دقیق است و این کاملاً اشتباه است! وقتی کار را با زمانبندی یک Task خیلی بزرگ شروع میکنید در مییابید که نتیجه کلاً متفاوت است با وقتی که همان Task را به Taskهای کوچکتر تقسیم میکنید.
منبع: Painless Software Schedules – Joel Spolsky
مترجم: مهندس زهره احمدی
2 دیدگاه
بخش دیدگاه بسته است.
شما به چه چیزایی دقت دارین.جالبه!راستی اول
یک نکته بسیار مهم در مدیریت زمان بندی پروژه، تعیین buffer یا “زمان نفس کشیدن” در بین دو مرحله پیاپی است. این محدوده زمانی بایستی با گشاده دستی تعیین شود بطوریکه از هر گونه برخورد و تلاقی آن دو مرحله جلوگیری کند. ضمنن باشما در مورد عدم استفاده از Microsoft Project در سطح کدنویسی کاملن موافقم.