نوشته‌ها

درست سپردن کار به هوش مصنوعی

مشکل این نیست که هوش مصنوعی نمی‌تونه کار رو انجام بده؛ مشکل اینه که ما کار رو درست بهش نسپردیم.

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

حسین می‌گفت اگر می‌خوای یک کار درست جلو بره، باید حداقل این ۵ مورد رو شفاف کنی:

  1. ۱.دقیقاً چه کاری باید انجام بشه؟
  2. ۲.تا چه زمانی باید انجام و تحویل داده بشه؟
  3. ۳.کیفیت مورد انتظار یا معیار تمام‌شدن کار چیه؟
  4. ۴.اولویت این کار نسبت به بقیه کارها چقدره؟
  5. ۵.چه کارهایی نباید انجام بشه؟

برای مورد سوم معمولاً از این اصطلاح استفاده می‌کنیم:

Definition of Done

ولی کار همین‌جا تموم نمی‌شه.

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

Read Back

یعنی مطمئن بشیم:

  • چیزی که گفتیم واقعاً شنیده شده؟
  • درست فهمیده شده؟
  • طرف مقابل کار رو پذیرفته؟
  • و دقیقاً می‌دونه چه چیزی رو، چه زمانی قراره تحویل بده؟

بعد از این مراحل تازه اجرای کار شروع می‌شه.

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

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

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

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

و این یعنی اتلاف زمان و هزینه.

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

برای کارهای توسعه‌ای به یک روند رسیدم که برای من خیلی بهتر جواب داده.

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

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

/grill-with-docs

بعد خروجی رو می‌خونم و وارد چیزی شبیه همون بازخوانی می‌شم.

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

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

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

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

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

/to-spec

/to-ticket

و تازه بعد از این مراحل می‌رم سراغ پیاده‌سازی.

/implement

برای من این روش خیلی بهتر از حالتی جواب داده که فقط نیازمندی رو توضیح بدم و بگم:

«خب، حالا خودت همه‌ش رو انجام بده.»

چیزی که از این تجربه برای خودم گرفتم اینه که:

کار کردن مؤثر با هوش مصنوعی بیشتر از اینکه شبیه دستور دادن به یک ابزار باشه، شبیه درست سپردن یک کاره.

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

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

مهارت‌هایی که در این روند استفاده کردم رو از این مخزن برداشتم:

https://github.com/mattpocock/skills