Ticket

Ticket یه بخش کوچیک و مستقل از پروژه‌ست که طوری طراحی میشه تا توی یه Session کامل انجام بشه و در کنار بقیه Ticket ها کل پروژه رو جلو ببره.

Ticket یه کار مشخص و کوچیکه که طوری تعریف میشه تا توی یه Session کامل انجام بشه.

اگه Spec رو نقشه کلی پروژه در نظر بگیری، Ticket ها تیکه‌های کوچیک اون نقشه هستن، یعنی هر Ticket یه بخش از پروژه رو جلو می‌بره.

نکته مهم اینه که یه Ticket نباید اونقدر بزرگ باشه که مدل وسط کار از Smart zone خارج بشه.

اگه برای انجام یه Ticket مجبور میشی چندین Session پشت سر هم باز کنی، یعنی اون Ticket زیادی بزرگه و باید به چند Ticket کوچیک‌تر تقسیمش کنی.

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

یه Ticket خوب باید مستقل باشه.

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

برای همین معمولا داخلش هدف کار، معیارهای موفقیت ( Acceptance Criteria ) و Context pointerهایی به فایل‌ها، تصمیم‌ها یا داکیومنت‌های مرتبط نوشته میشه تا Session جدید بدون سردرگمی کارش رو شروع کنه.

تیکت ها معمولا بهم وابسته هستن، یعنی یه Ticket ممکنه منتظر تموم شدن یه Ticket دیگه بشه و این وابستگی‌ها باعث میشن ترتیب انجام کارها به‌صورت طبیعی مشخص بشه.

از طرف دیگه، هر Ticket ـی که به بقیه وابسته نیست، می‌تونه همزمان با بقیه انجام بشه.

برای همین اگه چند Agent داشته باشی، می‌تونی به هرکدوم یه Ticket مستقل بدی تا همزمان روی پروژه کار کنن و سرعت توسعه خیلی بیشتر بشه.