خطانامه ۷ - اهمیت جلسه‌های مرور و برنامه‌ریزی

فرآیندهای تولید چابک (Agile Methodologies) در تیم‌های بازی‌سازی نیز نهادینه شده‌اند و بیشتر سازندگان بازی، این روزها، از نوعی خاص از SCRUM پیروی می‌کنند. همه ما می‌دانیم که در این‌گونه از متدولوژی‌ها، کارهای لازم برای یک دوره یا اسپرینت (Sprint)، تعریف می‌شوند. در انتهای این دوره، لازم است که کارهای انجام شده بررسی شوند و سپس برنامه‌ریزی برای دوره بعدی انجام شود.این فعالیت بسیار ساده، یعنی بررسی کارهای یک دوره و برنامه‌ریزی دوره بعدی، به راحتی ممکن است با کیفیت لازم انجام نشود و مشکلات زیادی را در روند اجرای پروژه بوجود آورد. در تجربه ساخت بازی فرزندان مورتا نیز ما بارها دچار این خطا شدیم. دو بخش این فعالیت، بررسی کارهای انجام شده و برنامه‌ریزی برای دوره بعد، ممکن است در یک جلسه انجام شود ولی روش بهتر آن است که در دو جلسه مجزا انجام شوند. نکته مهم این است که در تیم‌هایی که ساختار سلسله مراتبی ندارند، حضور تمام اعضای تیم در این جلسه‌ها لازم است.جلسه مرور دوره قبلدر این جلسه تمام کارهای انجام شده باید بررسی شوند و دلایل ناقص ماندن کارها به‌صورت دقیق بررسی شود به نحوی که در آینده بتوان برنامه‌ریزی بهتری داشت. در کل، کیفیت بالای این جلسه باعث می‌شود که برنامه‌ریزی ما در هر دوره دقیق‌تر شود. برخی از چالش‌هایی که در این جلسه مرور ممکن است پیش بیایند (که ما هم بسیار تجربه کردیم) به قرار زیر است:۱ - نبودن تمام اعضای تیم در جلسهطبیعتا عدم حضور شخص مسوول یک کار (Task)، باعث می‌شود که هم از آخرین وضعیت آن کار مطلع نشویم و هم از دلیل کامل نشدن آن. این کار در وضعیت نامشخصی روی تخته (Board) نرم‌افزاری و یا فیزیکی باقی خواهد ماند و مشخص نخواهد بود که چه زمانی باید بررسی شود.۲ - انجام شدن کار ولی نیاز به تست و بررسی بیشترکل فرآیند بازی‌سازی چرخشی و تکراری (iterative) است و خیلی سخت است که بگوییم یک کار کاملا تمام شده است. به عنوان مثال ممکن است رفتار حرکت کاراکتر دشمن و تمام انیمیشن‌های آن پیاده‌سازی شده باشد ولی نیاز به تست و بررسی بیشتر باشد تا کارهای بیشتر روی آن مشخص شود. در این‌گونه موارد خیلی راحت نمی‌توان یک کار (Task) را انجام شده دانست. در واقع شاید بتوان مشکل این اتفاق را از عدم انجام جلسه برنامه‌ریزی با کیفیت دانست که در ادامه در مورد آن صحبت می‌کنیم.۳ - عدم امکان تشخیص تمام شدن کارگاهی غیر ممکن است که بتوانیم بگوییم کاری تمام شده است. دلیلی اصلی این موضوع ممکن است این باشد که کار خیلی کلی تعریف شده باشد. به عنوان مثال: اقلام هنری لازم برای مرحله سوم. در این‌صورت این فعالیت ممکن است در طی ۵ دوره انجام شود و این کار در تخته برنامه‌ریزی ما لازم باشد که برای چند دوره بماند که اصلا کار مناسبی نیست و پشنهاد صریح SCRUM این است که واحد کار برای یک دوره حتما به نحوی باشد که در آن دوره بتواند تمام شود و قابل اندازه‌گیری دقیق باشد. در صورتی‌که زمان لازم و انرژی کافی را برای جلسه مرور دوره قبل نگذاریم، مشکلاتی مانند موارد بالا برطرف نمی‌شوند و ادامه برنامه‌ریزی را برای ما دشوار می‌کنند. هدف این بوده است که هر جلسه ما را در برنامه‌ریزی قوی ‌تر کند و اطلاعات بهتری از تیم خود داشته باشیم در صورتی‌که بد انجام دادن این جلسه باعث ضعیف شدن برنامه‌ریزی و همچنین کم توجهی و بی اعتمادی اعضای تیم به کل فرآیند و متدولوژی می‌شود.با توجه به تجربه‌ای که داشتیم، حتی تخصیص نیمی از روز به این فعالیت می‌تواند بسیار ارزشمند باشد. معمولا تصور می‌کنیم که زودتر باید این جلسات تمام شوند تا به اصل کار (انجام دادن کارها) بپردازیم، غافل از این‌که چقدر این مرور دقیق کارها می‌تواند به ما کمک کند که بهینه‌تر کار کنیم.جلسه برنامه‌ریزی برای دوره بعدبلافاصله پس از بررسی دوره قبل، لازم است که برای دوره بعدی برنامه‌ریزی کنیم. دوره‌هایی که ما انتخاب می‌کردیم عموما دو هفته‌ای و یا یک هفته‌ای بودند. عدم تخصیص زمان و انرژی لازم به این جلسه نیز مشکلات بسیاری را بوجود می‌آورد. برخی از چالش‌های این جلسه نیز به قرار زیر است:۱ - عدم مشورت با اعضای تیم برای تخصیص کارحتما لازم است که با تک تک اعضای تیم که درگیر یک کار خواهند شد صحبت کنیم تا مطمین شویم این کار هم از نظر فنی و هم از نظر زمانی شدنی است. اگر اعضای تیم در این جلسه حضور نداشته باشند و یا به دلیل زمان‌بر شدن، این کار را نکنیم، برنامه‌ریزی دقیقی برای دوره نخواهیم داشت. تخصیص عدد انرژی کار برای هر شخص هم کمک می‌کند که به یک عضو تیم بیش از اندازه کار ندهیم و هم دید خوبی از وضعیت انجام کارها (مثلا با Burn-down Chart) به ما می‌دهد. مشاهده این عددها برای برنامه‌ریزی آینده هم بسیار لازم است. ۲ - عدم بررسی دقیق پیش‌نیازهای کاریکارها به هم وابسته‌اند و در بسیاری از مواقع ما امکان انجام کار خود را نداریم به این دلیل که پیش‌نیاز آن باید توسط شخص دیگری در تیم انجام شود. بررسی دقیق این موضوع ممکن است زمان‌گیر باشد ولی حتما در این جلسه بسیار مهم باید انجام شود.۳ - فراموش کردن اولویت‌هامهم‌ترین موضوعی که پس از تعریف یک کار باید بدانیم آن است که اولویت آن در پروژه در کجا قرار می‌گیرد؟ با توجه به هزاران نیازی که در پروژه وجود دارد و کارهایی که همه اعضای تیم درگیر آن هستند، شناخت اولویت کارهای جدید نیازمند توجه و تمرکز ویژه‌ای است. در بسیاری از مواقع برای برنامه‌ریزی سریع، از میان لیستی از کارهای لازم که شاید همان Backlog پروژه باشد، مقداری کار را برای دوره بعدی انتخاب می‌کنیم در صورتی‌که توجه نکردن به اولویت‌ها به راحتی باعث هدر رفتن وقت و انرژی تیم و عقب افتادن پروژه می‌شود. مفید کار کردن تیم بدون در نظر گرفتن اولویت‌ها بی‌‌فایده‌ است.انواع چالشی که برای برنامه‌ریزی وجود دارد که در بالا به چند نمونه از آن اشاره شد باعث می‌شود که جلسه برنامه‌ریزی نیازمند صرف وقت و انرژی جدی باشد. متقاعد کردن همه اعضای تیم برای فعالیت موثر در این جلسه کار ساده‌ای نیست ولی بسیار حیاتی است.شاید بتوان این دو جلسه را نوعی سرمایه‌گذاری در پروژه دانست. نخست به نظر می‌رسد که این جلسات زمان‌گیر هستند و وقت تیم را تلف می‌کنند ولی این هزینه‌ای است که باعث می‌شود در روزهای دیگر، همه تیم راحت‌تر کارهایشان را انجام دهند و هماهنگ‌تر باشند. در انتهای دوره‌ نیز تیم احساس مفید بودن خواهد کرد و به جای از دست دادن باورشان به متدولوژی و برنامه‌ریزی‌ها، خود نقش فعال‌تری در اجرای فرآیند خواهند داشت و برنامه‌ریزی هم تبدیل به مهمترین ابزار تیم خواهد شد.استواری این جلسات نیز با اهمیت است. ممکن است گاهی ضعیف برگزار شوند و یا انجام نشوند، ولی همواره باید بازگشت و مجددا این جلسات را قوی برگزار کرد.