پیشتر درباره چشم انداز جهان ما در آغاز عصر هوش مصنوعی مطلبی را به فارسی برگردان کرده بودم. در این نوشتار دیدگاه تازهای از Henrik Kniberg را برای مخاطبان انتخاب کردهام. لازم به ذکر است همکار دیجیتال با حوصلهام (Chat GPT) مقاله را به فارسی کد زده و من بیشتر ریویو و دیباگ کردهام!
اسکرام بیش از ۳۰ سال و اصول اجایل بیش از ۲۰ سال دارند و ما در حال ورود به عصر هوش مصنوعی هستیم، دنیای جدید و عجیبی که هوش به عنوان یک خدمت در دسترس است. چگونه هوش مصنوعی بر اجایل و روشها و چارچوبهای مشهوری مانند اسکرام تأثیر میگذارد؟
بیشتر اصول و روشهای اجایل بر پایه فرضیاتی درباره رفتار انسانها و بهرهوری تیمها هستند. برخی از این فرضیات هنوز هم صحیح هستند، اما برخی دیگر نیازمند به چالش کشیده شدن و ارزیابی مجدد دارند، که قطعا بر روی روشها تأثیر خواهند گذاشت.
این نوشتار ترکیبی از مشاهدات و پیشبینی است که شامل آنچه که من تاکنون دیدهام و برخی از حدس و گمانهایی درباره آنچه که فکر میکنم در آینده نزدیک اتفاق میافتد؛ میشود.
به عنوان یک خواننده، نکته برداشتنی اصلی این است: برای تغییر آماده باشید! من دقیقاً نمیدانم چه چیزهایی و چگونه تغییر میکنند (این مقاله فقط برخی از حدسهای من است)، اما اطمینان زیادی دارم که اجایل در دوران هوش مصنوعی با دوره قبل از آن تفاوت خواهد داشت. بنابراین یک گام به عقب بردارید، با دقت به نحوه کار کردن خود نگاه کنید و همه چیز را به پرسش بکشید.
توسعه به صورت چابک معمولاً توسط تیمهای کوچک، خودسازمانده و فراوظیفهای (Cross Functional) انجام میشود. فراوظیفهای بودن به این معنی است که اعضای تیم دارای مهارتهای مختلفی هستند که یکدیگر را تکمیل میکنند. تصویر زیر فراوظیفه بودن را با استفاده از دایرهها برای نمایش مشترکات دانش و مهارتهای هر عضو تیم نشان میدهد.
پیش فرض پایهای در اینجا این است که تیمها نیاز به ترکیبی از مهارتهای تکمیلی دارند و در صورت نداشتن تمام توانمندیهای مورد نیاز، نمیتوانند هر آنچه که باید بسازند را به انجام برسانند. یک تیم فراوظیفهای تمام مهارتهایی را که برای ساخت یک محصول قابل حمل و افزودن به آن به طور خودمختار نیاز هست با حداقل وابستگی به تیمهای دیگر را داراست. تداخل مهارتهای تکمیلی ضروری برای این کار است.
اما با Generative AI، هر شخص به طور موثر دارای یک همکار هوش مصنوعی است که بسیار سریع هر زبان برنامهنویسی، چارچوب کاری مشهور، و یا هر الگوی طراحی را میشناسد و دارای دانشی بسیار قوی در مقایسه با همکار دیگرش هست. با استفاده از همان متافور تصویری قبلی، اضافه کردن یک عضو تیم هوش مصنوعی به معنای اضافه کردن یک دایره دانش است که به طور قابل توجهی بزرگتر از هر یک از دایرههای انسانی است (اگرچه هنوز برخی از دانش انسانی را مدل هوش مصنوعی ندارد).
مدلهای هوش مصنوعی هنوز کامل نیستند، آنها به نیاز به نظارت انسانی نیاز دارند، اما یک یا دو نفر با مهارتهای مهندسی قوی و دسترسی به یک مدل هوش مصنوعی قوی میتوانند بهتر از یک تیم فراوظیفهای چابک ـ هم از نظر سرعت و هم از منظر کیفیت ـ عمل کنند. من خودم این را به طور منظم تجربه میکنم. با یک همکار هوش مصنوعی میتوانم در چند ساعت کارهایی را انجام دهم که بدون او انجامش روزها زمان میبرد، و در طی چند روز کارهایی را انجام بدهم که در حالت عادی هفتهها زمان میبرد تا به انجام برسد.
بنابراین با اینکه تیمهای فراوظیفهای عالی هستند، اما به اندازه گذشته دارای اهمیت نیستند، زیرا دیگر بدنه و گستره دانش واقعاً مانع اصلی برای موفقیت نیست. یک تیم ۱-۲ نفره به همراه یک همکار هوش مصنوعی دسترسی به بیشینه دانشی که تیم نیازمند آن است را داراست.
اما چرا ۲ نفر؟ و نه فقط یک نفر؟ چون به نظر خوب است که بتوانید با یک انسان دیگر معاشرت کنید، و مواردی مانند تعطیلات و مرخصیها را آسانتر مدیریت کنید!!
بنابراین واقعاً چه اتفاقی میافتد وقتی که اندازه تیم به ۲ نفر کوچکتر میشود؟ آیا دیگر اعضای تیم را باید اخراج کرد؟ نه، من فکر میکنم که شرکتهای هوشمند همه افراد را به وسیله هوش مصنوعی تقویت خواهند کرد، به جای اینکه چند نفر را تقویت کرده و سایرین را اخراج کنند. اخراج یک گروه از مردم به این دلیل خطر ایجاد فرهنگ ترس از نوآوری، آنها را به خطر میاندازد زیرا افراد تشویق نمیشوند که به این فناوری بیشتر بپردازند، زیرا بهبود کارایی منجر به اخراج بیشتر افراد میشود!
بنابراین بگذارید بگوییم که اگر به عنوان مثال در ابتدا ۲ تیم کراس فانکشنال ۵ نفره داشتیم. اکنون ممکن است این ترکیب به ۵ تیم ۲ نفره به علاوه یک همکار هوش مصنوعی تقسیم شود.
در این حالت تیمهای کوچک جدید باید بر چه کارهایی تمرکز کنند؟ این واقعا به شرایط بستگی دارد و یک مسأله لوکس به نظر میرسد: "ما اکنون ظرفیت توسعه را افزایش دادهایم، حالا چه کاری با آن انجام بدهیم؟!".
بیایید بگوییم دو تیم بزرگتر در حال کار روی یک محصول بودند و بر روی بخشهای مختلف ویژگی تمرکز میکردند. اکنون ما 5 تیم کوچکتر داریم، که هرکدام موثرتر از یک تیم بزرگ قبلی عمل میکنند. میتوانیم تمام 5 تیم جدید را بر روی همان محصول قبلی متمرکز نگه داریم. همانطور که پیش از این هم روی بخشهای مختلف همان محصول کار میکردند. در نتیجه این کار بیشتری بر روی آن محصول میتوان انجام داد. یا شاید بتوان 3 تیم را بر روی محصول فعلی نگه داشته و 2 تیم دیگر را به یک محصول جدید تخصیص بدهیم. به این ترتیب بهرهوری کل شرکت را بیشتر میکنیم.
یکی از پیامدهای تیمهای هوش مصنوعی این است که احتمالاً تیمهای کوچکتر و تعداد بیشتر از آنها خواهیم داشت. تیمهای کوچکتر به این معناست که نیاز کمتری به جلسات و مناسک هماهنگی داخلی دارند. اگر کنار یکدیگر (فیزیکی یا دیجیتالی) بنشینند و هر زمانی نیاز دارند به طور غیررسمی صحبت کنند، آنها تقریباً نیازی به هیچ جلسه رسمی داخلی (مثلا دیلی استنداپ یا دیلی اسکرام) در تیم ندارند چون میتوانند هر زمانی به طور مستقیم با همدیگر صحبت کنند. با این حال، آنها ممکن است به دلیل نیاز به معاشرت اجتماعی با همدیگر این کار را انجام دهند.
اما از سوی دیگر، چون تیمهای بیشتری نسبت به قبل داریم؛ نیاز به هماهنگی میان تیمها افزایش مییابد. حداقل زمانی که این تیمها بر روی یک محصول واحد کار میکنند و وابستگیهایی به همدیگر دارند. در واقع، اگر آنها بر روی همان محصول کار میکنند، شاید هر تیم را بتوان به عنوان یک عضو تیمی در یک "تیم بزرگتر" یا چیزی شبیه به آن دید و مناسکی مانند رترو و جلسات پلنینگ اسپرینت را در سطح تیمی از تیمها انجام داد؟
به هر حال، با اینکه اعتقاد دارم که اکثر شرکتها در نهایت به یک نوع جلسه همگامسازی روزانه و یک نوع جلسه برنامهریزی هر چند هفته یکبار میرسند؛ اما ساختار جلسات با روشهای چابک فعلی متفاوت خواهد بود، به عنوان مثال احتمالاً جلسات ممکن است جلسات تیمهای متقابل باشند به جای داخلی تیم، و جلسات برنامهریزی احتمالاً بیشتر بر روی تصویر کلی تمرکز خواهند داشت تا موارد خاص لیستی از کارهای موجود در بک لاگ.
شفافسازی: من دقیقا نمیدانم به کدام نقطه مقصد خواهیم رسید. اما اطمینان زیادی دارم که چیزهایی تغییر خواهند کرد، زیرا فرضیات پایهای بسیاری از روشهای چابک فعلی با ظهور هوش مصنوعی واژگون خواهند شد.
یک روند واضح این است که مدلهای هوش مصنوعی بیوقفه در حال بهتر شدن در کدنویسی هستند. درست است که هنوز کامل نیستند، اما همین الان هم به اندازه کافی خوب هستند که منطقی به نظر برسد که همکار هوش مصنوعی شما بیشترین بخش کد را بنویسد. این تغییری اساسی در نقش دولوپر هست. به عنوان یک مهندس نرمافزار، شما هنوز نیاز دارید تا مسئول باشید، درباره معماری فکر کنید، پرامپتها را بنویسید، نتایج را بررسی کنید و مسئولیت کیفیت کد را بپذیرید. اما کدنویسی واقعی را میتوانید در بیشتر اوقات به هوش مصنوعی که این کار را سریعتر و بهتر از شما انجام میدهد محول نمایید. این تا حدی امروزه درست است، و در عرض یک سال احتمالاً تا 90٪ اوقات صحیح خواهد بود. یک توسعهدهنده نرمافزار که اصرار دارد که همه کد را به صورت دستی در عصر هوش مصنوعی بنویسد، احتمالاً به عنوان یک مانع و منبعی برای تولید باگها تبدیل خواهد شد!
اگر بخواهیم از ادبیات اسکرام استفاده کنیم، در واقع توسعهدهندگان نرمافزار به مالک محصول کوچک تبدیل میشوند و وظیفه اصلی آنها این است که تصمیم بگیرند کدی که نیاز به نوشتن دارد چیست، نه نوشتن آن. این شبیه وضعیت فعلی است که کدهای سطح بالا را با استفاده از یک زبان برنامهنویسی مدرن مینویسید و کامپایلر آن را به زبان ماشین تبدیل میکند. اکنون داریم آن را یک سطح بالاتر بالا میبریم و مدل هوش مصنوعی کدهای سطح بالا را هم به جای ما مینویسد.
حتی همکار هوش مصنوعی شما میتواند در پسزمینه کار کند. تصور کنید که این گفتگو بین باب، لیزا و همکار هوش مصنوعی آنها، آقای فیکسیت، در طول قهوه صبحگاهی است:
این گفتگو امروز خیلی عجیب و غریب به نظر میرسد، اما به طور حتم در یک سال آینده فکر میکنم که رویه معمولی برای بسیاری از تیمها خواهد بود.
نتیجه: کدنویسی دیگر مانعی برای توسعه نرمافزار نیست. پس دیگر چه نیازی به مفاهیمی مانند اسپرینتها (دورههای زمانبندی شده معمولاً ۲-۳ هفتهای) برای ایجاد تمرکز برای تیم در توسعه هست؟ اگر کاری که معمولاً یک هفته طول میکشد اکنون یک روز طول میکشد و کاری که معمولاً یک روز طول میکشد اکنون یک ساعت طول میکشد، آیا ما هنوز نیاز به اسپرینتها داریم؟
حدس من این است که اسپرینتها به تدریج به شدت کوتاهتر خواهند شد و یا حتی به طور کامل ناپدید خواهند شد. شاید اسپرینتهای یک روزه را همچنان بتوان داشت. با یک جلسه همگامسازی سریع با همکار انسانی و هوش مصنوعی در شروع روز، تصمیم بگیریم که امروز بر چه چیزی تمرکز کنیم، سپس کار را تمام و در پایان روز آن را ریلیز کرده، و قبل از خروج از محل کار یک ریویوی سریع هم انجام بدهیم. جلسات دیلی و پلنینگ اسپرینت در واقع به یک ایونت کوتاه تبدیل میشوند.
با وجود چندین تیم که با هم کار میکنند، همچنان نیاز به یک جلسه همگامسازی در سطح بالاتر (شاید یک بار در هفته) وجود خواهد داشت، تا اطمینان حاصل شود که آنها با هم هماهنگ هستند. این مورد بدون هوش مصنوعی هم صادق است، اما نیاز به آن هنگامی که به سمت تیمهای کوچکتر به جای تیمهای بزرگتر حرکت میکنیم، افزایش مییابد. همانطور که اشاره کردم، فکر میکنم هنوز نیاز انسانی به نوعی جلسه همگامسازی و برنامهریزی چند هفتهای وجود دارد. اما هدف و ساختار آن جلسه هنگامی که به چرخههای کوتاهتر توسعه منتقل میشویم (و در آن دیگر نیازی به تجمیع کردن کارها برای چند هفته وجود ندارد) تغییر خواهد کرد.
چه بر سر نیروهای مشترک بین تیمها میآید؟ بگذارید بگویم که تیمهای ما همچنان با پایگاههای داده و ثبات سر و کار دارند و نیازمند دانش متخصصان این موضوعات هستند. به طور سنتی، ما همیشه اطمینان حاصل میکردیم که هر تیم کراس فانکشنال حداقل یک نفر با مهارتهای دیتابیس داشته باشد. در یک تیم 2 نفره که با هوش مصنوعی توانمند شدهاند، انسانها در برخی از مهارتها کمبود خواهند داشت و وابستگی بیشتری به همکار هوش مصنوعی خود خواهند داشت. آیا این کافی خواهد بود؟ برای کارهای روتین، احتمالاً بله. اما گاهی برای تسکهای پیشرفتهتر، نیاز به یک متخصص انسانی وجود خواهد داشت، به عنوان مثال برای نوشتن کوئری در پایگاه داده و یا ارزیابی نتیجه آن و یا شاید برای ساخت ابزارهایی برای این کار. فرد متخصص انسانی همچنین میتواند کمک کند تا بتوان تعیین کرد که کدام مدلها و ابزارهای هوش مصنوعی برای تسک جاری مناسب هستند و یا حتی مدلها را با توجه به دانش تخصصیاش بهبود.
حدس من این است که ما متخصصهای گردشی و یا مشترک را خواهیم داشت. این رویکرد جدید نیست، برخی از تیمهای چابک در حال حاضر هم همین کار را انجام میدهند. اما فکر میکنم که این موضوع رایجتر خواهد شد.
به عنوان مثال با 5 تیم بالا، بگذارید بگویم که همه آنها از پایگاههای داده استفاده میکنند. شاید یک یا دو تیم واقعیتاً یک تخصص دیتابیس داشته باشند، زیرا آنها تیمهایی هستند که بیشترین کار را با دیتابیس انجام میدهند. اما آن افراد گاهی اوقات به تیمهای دیگر هم کمک میکنند.
یک جایگزین این است که نیروهای مشترکی را داشته باشیم که به هیچ تیم خاصی تعلق ندارند، و به صورت دورهای به تیمی که در آن لحظه بیشترین نیاز به آنها را دارد میروند. برای روشن شدن این موضوع، مدلهای هوش مصنوعی باید بیشترین دانش تخصصی مورد نیاز را داشته باشند، اما متخصص انسانی به عنوان تکمیل کننده وقتی که به محدودیتهای هوش مصنوعی برخورد میکنیم یا نیاز به یک جفت چشم اضافی انسانی برای ارزیابی نتیجه داریم، وجود دارد.
اگر نقشی مانند اسکرام مستر یا مربی چابک یا مشابه آن را دارید، در این صورت به طور معمول وظایف وی شامل آموزش و راهنمایی تیم در مواردی مانند چگونگی به طور موثر تقسیم یک داستان کاربری، چگونگی اجرای موثر یک جلسه رترو و چگونگی کار کردن موثر به عنوان یک تیم میشود.
یک تیم به علاوه همکار هوش مصنوعی اگر نیاز باشد همه این دانشها و تخصصها را از قبل دارد. بنابراین نقش شما بیشتر یک مربی و کمتر از جنس منتوری است. اگر تیم میخواهد بداند چگونه یک داستان را تقسیم کند، با آنها بنشینید و یک پرسش را در Chat GPT (یا مدل دیگری) بنویسید. شما میدانید که آن ضربالمثل محبوب اینجا کاربرد دارد: "اگر میخواهی به آنها ماهی بده اما این فقط برای یک روز آنهاست. بهتر است به آنها ماهیگیری آموزش دهید، که برای یک عمر به کارشان میآید". اکنون که تیمها خودشان ماهی را میگیرند، شما زمان بیشتری برای مربیگری و کمک به تیمهای بیشتر دارید، و به آنها کمک کنید تا بفهمند چگونه از آن ابزارهای ماهیگیری استفاده کنند.
بازخورد کاربران همچنان یک بخش بحرانی از توسعه به صورت چابک است، حتی در دوران هوش مصنوعی هم این چالش پابرجاست. با این حال، جزئیات مربوطه تغییر میکند. ما قادر خواهیم بود که نسخههای بیشتری از محصول را ریلیز کنیم؛ بنابراین مشتریان و کاربران نهایی باید آماده باشند که به جای بروزرسانیهای بزرگ بیشتر تغییرات کوچک را دریافت کنند. در نتیجه، آنها میتوانند در توسعه محصول نقش فعالتری داشته باشند. برخی از آنها این وضعیت را تحسین میکنند، برخی هم ممکن است مخالف آن باشند.
اگر کاربران به اندازه لازم در دسترس نباشد، ما میتوانیم با درخواست از یک مدل هوش مصنوعی برای بازیگری نقش یک نوع خاص کاربر، کاربران ماک شده ایجاد کنیم. ما میتوانیم با استفاده از این روش user research ماک انجام دهیم، و احتمالاً بزودی قادر خواهیم بود که از کاربر ماک بخواهیم که سیستم ما را مستقیماً استفاده کنند و به ما بازخورد بدهند. فیدبک کاربر ماک ممکن است به اندازه بازخورد واقعی از کاربران واقعی مفید نباشد، اما از طرف دیگر ما میتوانیم بازخورد را سریعتر و بیشتر و یافته شده از زاویه دید بیشتری دریافت کنیم، بنابراین ممکن است یک مکمل خوب باشد. این میتواند به تیم کمک کند مشکلات طراحی مهمتر را بیشتر کشف کند.
فقط به عنوان یک سرگرمی، من تمام مقاله فوق را به Claude Opus (آخرین مدل ژنهوش از آنتروپیک) دادم و از او خواستم که نکات اضافی را که باید اضافه شود، پیشنهاد دهد. در ادامه پاسخ بدون ویرایش او را مشاهده میکنید که فکر میکنم بسیار خوب بود:
تأثیر بر backlog محصول و اولویتبندی: با تیمهای مجهز به هوش مصنوعی که سریعتر تحویل میدهند، لیست backlog محصول ممکن است نیاز به بهروزرسانیهای بیشتری داشته باشد. نقش مالک محصول ممکن است برای تمرکز بیشتر بر روی اولویتبندی استراتژیک و مدیریت سهامداران تکامل یابد.
تغییرات در ارزیابی و برنامهریزی: تکنیکهای ارزیابی پیشین، مانند استوری پوینت و یا روزهای ایدهآل، ممکن است کم اهمیت بشوند زیرا هوش مصنوعی میتواند سرعت توسعه را به طور چشمگیری شتاب ببخشد. تیمها ممکن است نیاز به انتخاب روشهای جدید برنامهریزی و پیشبینی داشته باشند.
تطبیقات در چارچوبهای چابک: چارچوبهای محبوب چابک مانند اسکرام، کانبان یا SAFe ممکن است نیاز به تطبیق داشته باشند تا تغییراتی که هوش مصنوعی به همراه میآورد را پذیرفته و در خود بگنجاند. به عنوان مثال، مدت و فراوانی رویدادهایی مانند برنامهریزی اسپرینت، دیلی اسکرام و ریویو و رتروی اسپرینت ممکن است نیاز به تنظیم مجدد داشته باشند.
تأثیر بر دینامیک و همکاری تیم: در حالی که هوش مصنوعی میتواند به بهرهوری کمک کند، ضروری است تأثیر آن بر دینامیسم و همکاری تیم را در نظر بگیریم. تیمها ممکن است نیاز به یافتن راههای جدید برای تقویت ارتباط انسانی، خلاقیت و نوآوری در یک محیط مبتنی بر هوش مصنوعی داشته باشند.
یادگیری مداوم و توسعه مهارت: هنگامی که هوش مصنوعی وظایف خاصی را برعهده میگیرد، اعضای تیم ممکن است نیاز به تمرکز بر توسعه مهارتهای جدید، مانند مهندسی کوئری، انتخاب مدل هوش مصنوعی و ارزیابی نتایج داشته باشند. یادگیری مداوم و بهروزسانی مهارتها در دوران هوش مصنوعی اهمیت بیشتری پیدا میکند.
ملاحظات اخلاقی و شفافیت: تیمها باید در مورد ملاحظات اخلاقی مربوط به هوش مصنوعی، مانند بایاسها، عدالت و شفافیت، بیشتر وارد عمل بشوند. شیوههای چابک ممکن است نیاز به تکامل داشته باشند تا توسعه و پیادهسازی مسئولانه هوش مصنوعی را تضمین کنند.
(خب، این من، انسان، دوباره نوشتهام)
دوست من کنت بک این پست را توییت کرد:
"تا به حال از امتحان کردن Chat GPT میترسیدم. امروز (18 آوریل 2023) از آن تردید دست کشیدم. حالا میفهمم چرا میترسیدم. ارزش 90٪ مهارتهایم به صفر رسیده است. امکانات برای 10٪ باقیمانده 1000 برابر شده است. باید بازنگری کنم."
فکر میکنم کنت جوهر مسئلهی ما را درک کرده است، در تمام نقشها و حرفهها. ما باید بازنگری کنیم که وقت خودمان را چگونه صرف میکنیم. به چه معنی دولوپر، اسکرام مستر، مالک محصول، چپترلید و غیره هستیم؟
همینطور با اجایل: ما باید روشهای اجایل خودمان را بازنگری کنیم. این با خوداندیشی شروع میشود. وقتمان را برای چه چیزهایی صرف میکنیم؟ مناسک، نقشها، و آرتیفکتهایمان چیست؟ چه چیزهایی باید مورد چالش، تغییر یا ارزیابی مجدد قرار بگیرد وقتی که وارد عصر هوش مصنوعی میشویم؟
نظرات خود را با ما به اشتراک بگذارید!
مقاله اصلی: