در چالش این هفتهی DDD Plus که شمارهی سوم این سری از چالشها است، سراغ Team Topologyمیرویم. این چالش، قسمت تیمسازی چالش مطرح شده در DDD Plus3 را زیر ذرهبین قرار خواهد داد.
⬅جهت مشاهدهی چالش هفتهی قبل اینجا کلیک کنید.
پیشزمینه:
همانطور که در بالا اشاره شد در این شماره DDD Plus جنبه تیمسازی را در سناریوی مطرح شده در چالش DDD Plus 2 مطرح خواهیم کرد. جهت سادگی دنبال کردن مسئله صورت مسئله یکبار دیگه در پایین بصورت کامل مطرح میشود.
فرض کنید به عنوان توسعهدهنده بر روی یک سیستم ERP مشغول به کار هستید. مفهوم “Product” یک مفهوم پایهای و بسیار مهم در سیستمهای ERP محسوب میشود که بکبن بسیاری از ماژولهای یک سیستمERP را شامل میشود. به عنوان مثال در تمامی ماژولهای فروش، انبار، تامین کالا، تولید، توزین و… مفهوم product نقش بسیار پررنگی بازی میکند. به عنوان مثال سیستم فروش بر پایه فروش محصول سوار شده است. ماژول انبار بر پایه مدیریت موجودی product بنا نهاده شده است. و یا سیستم تامین جهت مدیریت سفارشات و خرید product از تامین کنندگان توسعه داده میشود.
در حقیقت ارتباط این ماژولها بر اساس تمرکز آنها بر مفهوم product میباشد. از همین رو هم این ماژولها از طریق همین مفهوم product با یکدیگر صحبت و تعامل میکنند. ماژول فروش به ماژول انبار برای داشتن اطلاعات دقیق و آنلاین از موجودی کالاها نیازمند است. از طرف دیگر ماژول تامین سطح موجودی کالا در انبار را مانیتور کرده و سعی میکند با ثبت سفارش و تامین به موقع هر کالا، موجودی آن کالا در انبار را همیشه در سطح معینی نگه دارد.
فرض کنید مالک محصول با داستان کاربری زیر سراغتان میآید:
As a Sales Manager, I want the ERP system to provide a comprehensive and streamlined product modeling capability across the Sales, Inventory, and Purchase Order modules, ensuring accurate stock management, pricing consistency, and efficient procurement processes.
سناریو:
فرض کنید ۱۰ برنامهنویس با سطح توانایی متفاوت جهت توسعه این سیستم در اختیار دارید. این افراد دارای مهارتهای توسعه محصول در بخش front-end و back-end رو دارند. از این نظر دارای محدودیت نمیباشید.
صورت مسئله:
- با توجه به افراد در دسترس بالا، تیمهای توسعهی محصولات فروش، انبارداری و تامین کالا را تشکیل دهید؟
- یک context map برای این سه BC بکشید؟ در این context map الگوهای ارتباطی بین این تیم(ها) را شرح دهید؟
- Ownership مفهوم کالا را در بین تیمهای تشکیل داده شرح دهید؟