ساختار تیم‌های مدرن نرم‌افزاری

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

جلسات نرم‌افزاری: خوب، بد، زشت

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

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

جلسات نرم‌افزاری در تیم‌های مدرن

مجدداً نقل قولی که از موسس گیت‌هاب (تام پرستون) داشتیم را با هم نگاه کنیم:

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

این نگاه به کار به نظر شما چقدر واقعی است؟ چقدر از آن در ایران امکان‌پذیر است؟ واقعیت این است که حذف ۱۰۰ درصد جلسات امکان‌پذیر نیست اما شما می‌توانید با دو راهکار استفاده بهتری از جلسات ببرید:

۱- شفاف‌سازی از طریقی غیر از برگزاری جلسه
۲- برگزاری جلسه با دقت به عوامل بهبود بازدهی جلسه

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

شفاف سازی از طریق تخته فیزیکی

یکی از کارهایی که صرفنظر از روش مدیریت پروژه خود و حتی بدون توجه به اصول اسکرام می‌توانید انجام دهید، استفاده از یک تخته فیزیکی و sticky note برای نوشتن وظایف جاری و تعیین وضعیت آن‌هاست. روی این تخته‌ها معمولاً سه ستون ToDo, Doing و Done وجود دارد که هر وظیفه بین ‌‌آن‌ها جابجا می‌شود.

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

شفاف سازی از طریق کد

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

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

ادامه دارد…