روش توسعه سیستمهای پویا یا DSDM چیست؟
مدتهاست که استفاده از روشهای چابک در توسعه نرم افزار، به جای روشهای سنتی، در حال گسترش است. با استفاده از این روشها میتوانید به افزایش میزان رضایتمندی کارکنان و مشتریان خود امیدوار باشید. امروز به معرفی و بررسی یکی از چارچوبهای چابک به نام روش توسعه سیستمهای پویا (DSDM) میپردازیم. این مطلب را تا انتها بخوانید تا به شما بگوییم متد DSDM چیست و بر اساس کدام اصول و تکنیکها فعالیت میکند.
چارچوب DSDM چیست؟
DSDM، فرم کوتاه عبارت Dynamic Systems Development Method و به معنی روش توسعه سیستمهای پویاست. این روش، یک چارچوب پروژه چابک مبتنی بر روش توسعه تکراری است که در دهه 1990 پس از ظهور رویکرد توسعه سریع برنامه (RAD) مطرح شد وتوسعه یافت. این روش، برای توسعه سیستم و نرم افزار، بر انطباق روشهای مدیریت پروژه سنتی مانند متدولوژی آبشار متمرکز بود.
هر چند رویکرد RAD در تلاش خود برای چابک سازی پروژههای نرم افزاری موفق بود، اما ساختار مناسبی برای رشد نداشت. از این رو، کنسرسیوم DSDM برای اینکه کارشناسان بتوانند بهترین روشها و متدها را برای ایجاد یک چارچوب چابک کارآمد و مناسب به اشتراک بگذارند، تاسیس شد.
پس از مدتی، متدهای توسعه سیستمهای دینامیک DSDM، تمرکز خود را بر پروژههای فناوری اطلاعات از دست داد و به یک چارچوب مدیریت پروژه چابک عمومی با نام DSDM Atern تبدیل شد و گسترش یافت.
سایت wikipedia، سوال DSDM چیست، را به صورت زیر پاسخ میدهد:
روش توسعه سیستمهای پویا (DSDM)، یک چارچوب برای تحویل پروژههای نرم افزاری به روش چابک است که در سال 1994 و به منظور رفع برخی مشکلات در روش توسعه سریع نرم افزار منتشر شد. DSDM، یک روش تکرار شونده و افزایشی است که قوانین موجود در روش چابک (توسعه پروژه با دخالت مشتری در پروژه) را در بر میگیرد.
متدولوژی DSDM یا روش توسعه سیستم های پویا، مواردی مانند هزینه، کیفیت و زمان را با استفاده از روش اولویت بندی موسکو ارائه میدهد تا بتوانید با در نظر گرفتن محدودیت زمانی اعلام شده از سوی مشتری، پروژه را در زمان مناسبی تحویل دهید.
اوایل شروع به کار، این سیستم به دنبال ایجاد نظم و انضباط در روش توسعه سریع برنامههای کاربردی (RAD) بود. در نسخههای بعدی، چارچوب پروژه چابک DSDM مورد بازنگری قرار گرفت و به عنوان یک رویکرد عمومی برای مدیریت پروژه و ارائه راه حل مطرح شد. پس از مدتی، DSDM از یک راه حل خاص نرم افزاری به یک ابزار فراگیر و عمومی برای مدیریت پروژه تبدیل شد.
خوب است بدانید برخی ویژگیهای این متد، مانند پوشش دادن طیف وسیعی از فعالیتها در کل چرخه عمر پروژه، آن را از سایر روشهای چابک متمایز میکند.
کلیک کنید تا با سیستم مدیریت چابک و ویژگیهای آن آشنا شوید.
مراحل چارچوب DSDM چیست؟
چارچوب توسعه سیستم های پویا DSDM به سه مرحله تقسیم میشود:
1. مرحله پیش پروژه (Pre-project phase)
در این مرحله باید پروژهها را برای کار انتخاب کنید، بودجه موجود و بودجه مورد نیاز راثبت کنید و تعهدات پروژه را تعیین کنید.
2. چرخه عمر پروژه (Project life cycle)
چرخه عمر پروژه، مراحل امکان سنجی و تحقیقات بازار، مدل عملکردی، تکرار نمونه اولیه، طراحی ساختار، تکرار ساختار و اجرا را شامل میشود.
3. مرحله پست پروژه (Post project phase)
هدف این مرحله، اطمینان از کارآمد بودن محصول و مطابقت آن با نیازهای سازمان و کاربران است. این مرحله نیاز به تعمیر، نگهداری، اصلاح و بهبود عملکرد دارد. به دلیل ماهیت تکراری چرخه عمر پروژه، یک چرخه برای تکمیل توسعه محصول کافی نیست و محصول برای پالایش باید مجددا مورد بررسی و آزمایش قرار گیرد.
اصول کلیدی روش DSDM چیست؟
چارچوب DSDM بر اساس 8 اصل کلیدی ساخته شده است:
1. بر نیازهای تجاری تمرکز کنید
تیمهای DSDM باید یک مورد تجاری معتبر ایجاد کنند و از پشتیبانی سازمانی در سراسر پروژه مطمئن شوند. چرا که یک پروژه موفق، همیشه از یک مورد تجاری واقعی و محکم ایجاد میشود. این پروژه باید به شما کمک کند تا به اهداف بلند مدت برسید و با استراتژیهای سازمان خود هماهنگ باشید.
بنابراین، مهم است که همیشه در نظر داشته باشید که پروژه باید به چه چیزی منجر شود و چگونه باید الزامات و ویژگیها را اولویت بندی کنید. چارچوب DSDM برای اطمینان از مرتبط ماندن پروژه و انجام یک هدف از ابزارهایی مانند روش اولویت بندی MoSCoW استفاده میکند. بر این اساس، ویژگیها به 4 دسته تقسیم میشوند:
- باید داشته باشد: ویژگیهای اساسی که بدون آنها پروژه به پایان نمیرسد. آنها حداقل محصول پذیرفتنی (MVP) را تشکیل میدهند.
- باید داشته باشد: این ویژگیها چندان ضروری نیستند، اما همچنان تاثیر مثبت زیادی دارند.
- میتواند داشته باشد: این نیازها تنها تاثیر حاشیهای بر موفقیت پروژه خواهند داشت.
- نخواهد داشت: ویژگیهایی که وجود آنها به نفع پروژه نیست.
2. نتایج را به موقع تحویل دهید
فعالیتها باید قابل پیش بینی باشند و با زمان بندی منظم انجام شوند. ارائه نتایج به موقع، برای ایجاد یک اعتماد بین مشتریان و تیم پروژه بسیار مهم است. برای این منظور میتوانید از تکنیکهای جعبه زمانی استفاده کنید.
ارائه نتایج به موقع برای ایجاد یک رابطه اعتماد بین مشتری و تیم پروژه مهم است. برای رسیدن به ضرب الاجل به طور مداوم، از تکنیک های جعبه زمانی (Timeboxing) استفاده کنید. جعبه زمانی یک ایده بسیار ساده است و به معنی تعیین محدودیتهای زمانی برای وظایف خود از قبل است. به عنوان مثال، تصمیم بگیرید که میخواهید چه مدتی را به برگزاری یک جلسه اختصاص دهید. به این ترتیب، میتوانید به طور موثرتر برای وظایف برنامه ریزی کنید.
تا آنجا که ممکن است این کار را به طور مداوم انجام دهید و سطوح اولویت هوشمند را با استفاده از ابزارهایی مانند ماتریس آیزنهاور تعیین کنید تا هرگز از برنامه عقب نمانید.
اینجا به طور مفصل راجع به ماتریس آیزنهاور صحبت کردهایم.
3. روحیه همکاری را تقویت کنید
همکاری، کلیدی برای موفقیت هر پروژه است. تیم، باید یک واحد منسجم باشد که برای یک هدف مشترک و مشخص سازماندهی شده است. اعضای تیم نیز باید بتوانند برای تصمیم گیری به یکدیگر اعتماد کنند. تیمهای DSDM باید ذینفعان را در سراسر پروژه درگیر کرده و همه اعضای تیم را برای فرآیند تصمیمگیری توانمند کنند. از آنجا که همکاری با همه ذینفعان مورد نیاز است، پس مطمئن شوید که همه افراد مربوطه را برای جمع آوری بازخورد در طول فرآیند توسعه درگیر کردهاید.
4. کیفیت را حفظ کنید
کیفیت، نباید به عنوان متغیری برای انطباق با شرایط پیش بینی نشده استفاده شود، بلکه باید آن را همیشه و در هر شرایطی رعایت کنید. پس بهتر است برای اطمینان از کیفیت بالا، در همان ابتدای پروژه در مورد سطح کیفیت به توافق برسید. همه افراد درگیر باید در مورد استاندارهای کیفیت توافق داشته و در طول پروژه به آنها پایبند باشند. این امر از طریق آزمایش، بررسی و مستند سازی مستمر انجام میشود.
به خاطر داشته باشید، از آنجا که DSDM بر بهبود مستمر تأکید دارد: سطح کیفیت باید در طول چرخه توسعه بررسی و بازبینی شود، نه تنها در پایان پروژه.
5. به صورت تدریجی پایههای محکم بسازید
درست مانند سایر رویکردهای چابک مانند Scrum ، متد DSDM بر ارائه ارزش اولیه و ایجاد پیشرفت در هر مرحله تمرکز دارد. هر چند در شروع پروژه تعیین دقیق محدوده و نیازهای آن تضمین میکند که همه یک دیدگاه مشترک دارند، اما انتشار تدریجی ویژگیهای جدید به شما امکان میدهد تا بدون اتلاف وقت بر روی جزئیات، بررسی کنید که پروژه در مسیر درست قرار دارد یا نه. در واقع، تیمهای توسعه باید از قبل، به تدریج و به اندازه کافی کار طراحی انجام دهند تا مطمئن شوند که دقیقا چه چیزی باید بسازند. به خاطر داشته باشید که این کار نباید آنقدر کند انجام شود که روند توسعه را با تاخیر روبرو کند.
6. توسعه را تکرار کنید
توسعه باید بر اساس یک رویکرد تکراری باشد. ویژگیهای جدید در سراسر پروژه منتشر شده و آزمایش میشوند. سپس در نسخههای بعدی با توجه به بازخوردهای ارائه شده توسط مشتری و آزمایش کنندگان، بهینه سازی میشوند.
7. ارتباط واضح و مداوم ایجاد کنید
برقراری ارتباط با ذینفعان میتواند یک پروژه را به سمت موفقیت ببرد یا آن را شکست دهد. این به شما امکان میدهد تا انتظارات ذینفعان را مدیریت کرده و مطمئن شوید که در مسیر با هیچ مانعی مواجه نمیشوید.
مواردی مانند: جلسات روزانه، تشویق ارتباطات غیر رسمی، برگزاری کارگاهها، ساخت نمونههای اولیه و… از ابزارهای کلیدی DSDM برای ارتباطات واضح، روشن و مستمر به شمار میروند.
8. نظارت و کنترل بر پروژه را نشان دهید
کنترل پروژه به این معنی است که بتوانید پیشرفتهای آن را با استفاده از شاخصهای کلیدی عملکرد (KPI) مرتبط، ردیابی و نظارت کنید. برای یادگیری یا به اشتراک گذاشتن بهترین شیوههای کنترلی، باید از یک سو، سایر افراد را از برنامهها و پیشرفتهای خود مطلع کرده و بر تحویل موفقیتآمیز پروژه تمرکز کنید و از سوی دیگر، اشتباهات را مرور کرده و سایر افراد را از آنها مطلع کنید.
تکنیکها و روشهای چارچوب DSDM چیست؟
آنچه DSDM را از سایر روشهای توسعه سیستم متمایز میکند، تکنیکهایی است که در ادامه به آنها اشاره میکنیم:
Timeboxing
این تکنیک بر استانداردهای زمان بندی دقیق متمرکز است. برای استفاده از آن باید کل پروژه را به بخشهای کوچکتر که هر کدام دارای بودجه و چارچوب زمانی ثابتی هستند، تقسیم کنید. سپس الزامات را اولویت بندی کنید. در صورتی که زمان یا بودجه در حال اتمام باشد، کمترین اولویتها حذف میشوند و فقط موارد ضروری برای رسیدگی باقی میماند.
MoscoW
نوعی چارچوب اولویت بندی است که برای رتبه بندی اقلام از بالاترین سطح اهمیت به پایینترین سطح اهمیت مورد استفاده قرار میگیرد. گروههای اولویت بندی عبارتند از: Must Have، Should Have، Could Have و Won’t Have.
مطلب روش MoscoW را بخوانید تا با این روش تحلیل و اولویت بندی به طور کامل آشنا شوید.
مدل سازی و توسعه تکراری
فرآیند مدل سازی به شما امکان میدهد تا در طول مسیر پروژه بتوانید ابعاد مختلف آن را به راحتی تجسم کنید. این امر با کمک به ارائه بازخوردهای منظم و بهبود اجرا، امکان توسعه تکراری را نیز فراهم میکند.
نمونه سازی
نمونه سازی اولیه، مانند بسیاری از متدولوژیهای چابک برای اجرای آزمایشی پروژه در مراحل مفهومی و اولیه ضروری است. این روش برای مواردی مانند: ترسیم عملکردهای اساسی، پیدا کردن نقاط ضعف، اجازه به کاربران برای اجرای آزمایشی نرم افزار، کاربرد دارد.
کارگاه ها
کاربران و ذینفعان دور هم جمع میشوند تا الزامات، مسائل، آزمایشات و نتایج را مورد بحث و بررسی قرار دهند. از آنجا که DSDM به سطوح بالای تعامل کاربران متکی است، آزمایشات برای این چارچوب اهمیت زیادی دارد، چرا که نتایج با کیفیت بالا را تضمین میکند.
مراحل چرخه حیات پروژه DSDM چیست؟
حالا باید فاز چرخه عمر پروژه با روش توسعه سیستمهای پویا را مورد بررسی قرار دهیم. چرخه عمر پروژه دارای مراحل زیر است:
امکان سنجی و تحقیقات بازار
مطالعه الزامات موفقیت، ضرورتها و محدودیتهای پروژه، بخشی از فرآیند ارزیابی و امکان سنجی برنامه برای رویکرد DSDM و توانایی آن برای برآورده کردن نیازهای تجاری است.
مدل عملکردی و تکرار نمونه اولیه
این مرحله شامل تولید مدلهای عملیاتی و نمونههای اولیه در سطوح مختلف و آزمایش آنها برای جمع آوری بازخورد است. آزمایشات تکراری به اصلاح نمونه اولیه در هر سطح کمک میکند. به این ترتیب، نمونههای اولیه برای توسعه به سمت محصول قابل تحویل واقعی حرکت میکنند.
طراحی و تکرار ساختار
این مرحله برای اطمینان از اینکه عملکردهای ساخته شده مطابق با انتظارات کاربران هستند، طراحی شده است و مواردی مانند شناسایی نمونه اولیه، طراحی، زمان بندی، ایجاد نمونه اولیه و بررسی از طریق آزمایشات تکراری را در بر میگیرد.
پیاده سازی
اکنون محصول نهایی در دسترس کاربران نهایی قرار میگیرد. از آنجا که کاربران برای مواردی همچون: اجرای محصول، ارائه بازخورد و مطرح کردن مسائل مربوط به تجربه محصول، آموزش دیدهاند، میتوانید مطمئن باشید که به برتری محصول دست پیدا میکنید.
مزایای استفاده از روش DSDM چیست؟
- چارچوب DSDM، یک فرآیند چابک است.
- دو عامل همکاری و ارتباط از نکات کلیدی DSDM هستند. بنابراین، طراحان محصول میتوانند برای دریافت بازخورد، به راحتی به کاربران نهایی متصل شوند.
- این سیستم به زمان بندی تحویل پروژه کاملا پایبند است، در حالی که انعطاف پذیری پروژه را نیز حفظ میکند.
- با استفاده از این متد میتوانید پیشرفت را در سراسر سازمان به راحتی درک کنید.
- از آنجا که موارد تجاری در هسته مدل DSDM قرار دارند، میتوانید مطمئن باشید که پروژههای تحویل داده شده دارای ارزش تجاری واقعی هستند.
معایب استفاده از روش DSDM چیست؟
- اجرای DSDM هزینه نسبتا زیادی دارد و ممکن است برای کسب و کارهای کوچک چندان مناسب نباشد.
- از آنجا که پروژههای مبتنی بر DSDM، دقیقا همانطور که مشخص شده تکمیل میشوند، این متدولوژی میتواند تا حدودی محدود کننده باشد، چرا که خلاقیت توسعه دهندگان را مهار میکند.
آیا متد DSDM برای کسب و کار شما مناسب است؟
اکنون میدانیم چارچوب DSDM چیست و فعالیت آن مبتنی بر کدام اصول و تکنیکهاست. اما آیا استفاده از این متدولوژی برای پروژههای شما مناسب است؟
هر کدام از روشهای توسعه دارای نقاط قوت و ضعف مخصوص به خود هستند. اگر برای تیم توسعه شما پیش بینی پذیری، ثبات و کنترل دقیق هزینهها مهم و با ارزش تلقی میشود، استفاده از DSDM راهکار مناسبی است. اما همان طور که اشاره کردیم، با استفاده از این چارچوب، خلاقیت و انعطاف پذیری خود را از دست خواهید داد. این موضوع برای کسب و کارهای کوچک چندان مناسب نیست.
تفاوت Scrum و DSDM چیست؟
هر چند که Scrum و DSDM شباهتهای زیادی به هم دارند، اما نمیتوانید تفاوتهای آنها را نادیده بگیرید.
هر دو روش DSDM و Scrum بر اهمیت بهبودهای افزایشی و انتشارات تکراری تاکید دارند. اما تفاوت بین دو روش DSDM و Scrum در این است که چارچوب DSDM رویکرد جامعتری برای مدیریت پروژه ارائه میدهد، زیرا این چارچوب، شامل طیف گستردهای از نقشهاست که حاکمیت پروژه را در بر میگیرد. در حالی که Scrum بیشتر بر روی تیمهای عملیاتی متمرکز است.
و در انتها…
امروزه کسب و کارها در یک محیط کاملا رقابتی تکامل پیدا میکنند، بنابراین نیاز به چابکی بیشتر در تمامی صنایع احساس میشود. متد DSDM به عنوان یکی از اولین چارچوبهای استاندارد چابک، توسعه نرم افزار را متحول کرده و به روشی پرکاربرد در مدیریت پروژه تبدیل شده شده است.
امروز ضمن پاسخ به سوال DSDM چیست، اصول اساسی، ویژگیها و تکنیکهای آن را نیز بیان کردیم و سپس به بررسی تفاوت آن را با روش Scrum پرداختیم.