Event Storming چیست؟!
Event Storming چیست؟!
اگر تا حالا فکر کردهاید که برنامهنویسها چطور سیستمهای بزرگ را طراحی میکنند، این مقاله برای شما است. یکی از روشهای محبوب و البته جالب برای طراحی نرمافزار، Event Storming نام دارد. این روش آنقدر ساده و لذتبخش است که شبیه یک بازی است! با فلسک دولوپر همراه باشید تا با این روش آشنا شوید.
Event چیست؟
قبل از اینکه درباره Event Storming صحبت کنیم، باید اول بفهمیم Event یا «رویداد» چیست. باید بدانیم که در تحلیل نرم افزار ما با رویدادها یا همان ایونت ها، کامندها یا دستورات، موجودیت ها و بازیگران یا اکتورها سرو کار داریم. اما از همه مهمتر شناخت ایونت هاست چراکه
رویداد به چیزی میگویند که در سیستم ما اتفاق میافتد. مثلاً وقتی در یک فروشگاه اینترنتی خرید میکنید، این رویدادها اتفاق میافتند:
- ثبت سفارش
- پرداخت موفق
- ارسال کالا
- تحویل کالا به مشتری
مثلاً به جای اینکه بگوییم «سفارش ثبت میشود»، میگوییم «سفارش ثبت شد». چون وقتی داریم درباره Event صحبت میکنیم، یعنی کار انجام شده است.
Event Storming چیست؟
حالا که فهمیدیم Event چیست، بیایید Event Storming را یاد بگیریم.
Event Storming یک جلسه گروهی است که در آن افراد مختلف (برنامهنویسها، مدیرها، کارشناسان کسبوکار) دور هم جمع میشوند و با استفاده از برچسبهای رنگی، فرآیندهای سیستم را روی دیوار میچسبانند.
این روش را یک نفر به نام آلبرتو براندولینی ابداع کرد. او متوجه شد که روشهای سنتی طراحی نرمافزار خیلی رسمی و خستهکننده هستند. پس یک روش بازیگونه و جذاب invented کرد!
چرا Event Storming جذاب است؟
روشهای قدیمی طراحی نرمافزار اینطور بود که یک نفر مینشست و تمام روز روی کاغذ نقشه میکشید. بعد همه باید از همان نقشه پیروی میکردند. این روش مشکلات زیادی داشت:
- خستهکننده بود
- همه را درگیر نمیکرد
- زمان زیادی میبرد
- گاهی اشتباهات بزرگ پیدا میشد
Event Storming این مشکلات را حل کرده است:
- همه شرکت میکنند: برنامهنویس، مدیر، کارشناس فروش، همه با هم فکر میکنند
- سریع است: در چند ساعت کل سیستم را کشف میکنید
- بازیگونه است: شبیه بازی کردن است نه کار کردن
- نتیجه واقعی دارد: همانجا روی دیوار میبینید چه باید بسازید
وسایل مورد نیاز
برای Event Storming به چیزهای خیلی سادهای نیاز دارید:
- یک دیوار بزرگ یا تخته سفید
- برچسبهای رنگی (یا کاغذهای رنگی)
- ماژیک
- چند نفر آدم (۲ تا ۸ نفر)
برچسبهای رنگی
در Event Storming از رنگهای مختلف استفاده میکنیم:
مثال عملی: فروشگاه اینترنتی
بیایید با یک مثال ساده Event Storming را یاد بگیریم. فرض کنید میخواهیم یک فروشگاه اینترنتی بسازیم.
مرحله ۱: پیدا کردن رویدادهااز آخر شروع میکنیم. آخر کار چه اتفاقی میافتد؟
کالا به دست مشتری میرسد. پس رویداد اول: «کالا تحویل داده شد»
قبل از آن چه بود؟ کالا ارسال شد. رویداد: «کالا ارسال شد»
قبل از آن چه بود؟ پرداخت موفق شد. رویداد: «پرداخت موفق بود»
و اول از همه: سفارش ثبت شد. رویداد: «سفارش ثبت شد»
مرحله ۲: پیدا کردن دستوراتحالا میپرسیم: چه کسی این کارها را انجام داد؟
سفارش ثبت شد ← چه کسی؟ مشتری! پس دستور: «ثبت سفارش»
پرداخت موفق بود ← چه کسی؟ سیستم پرداخت! دستور: «پرداخت»
کالا ارسال شد ← چه کسی؟ انباردار! دستور: «ارسال کالا»
مرحله ۳: پیدا کردن موجودیتهاحالا میپرسیم: این رویدادها روی چه چیزی تأثیر گذاشتند؟
سفارش ثبت شد ← روی سفارش
پرداخت موفق بود ← روی فاکتور
کالا ارسال شد ← روی موجودی انبار
چطور جلسه Event Storming برگزار کنیم؟
اگر میخواهید Event Storming را امتحان کنید، این مراحل را دنبال کنید:
- آماده شوید: وسایل را آماده کنید و افراد را دعوت کنید
- شروع کنید: از آخر فرآیند شروع کنید و به اول برگردید
- بحث کنید: هر کسی نظرش را بگوید
- مرتب کنید: برچسبها را به ترتیب زمان بچینید
- نتیجه بگیرید: عکس بگیرید و بعداً استفاده کنید
Event Storming به چه دردی میخورد؟
Event Storming در واقع به شما کمک میکند:
- فرآیندهای کسبوکار را بهتر درک کنید
- مشکلات و ابهامات را زود پیدا کنید
- همه تیم را درگیر کنید
- یک نقشه واضح از سیستم بسازید
- سریعتر و بهتر کد بنویسید
نتیجهگیری
Event Storming یکی از سادهترین و جذابترین روشهای طراحی نرمافزار است. با این روش دیگر نیاز نیست ساعتها پشت کامپیوتر بنشینید و فکر کنید. کافیست چند نفر را دور هم جمع کنید، برچسبهای رنگی بردارید، و شروع به چسباندن رویدادها روی دیوار کنید.
این روش آنقدر مؤثر است که امروزه در شرکتهای بزرگ دنیا استفاده میشود. پس اگر میخواهید یک تیم عالی داشته باشید، Event Storming را امتحان کنید!