استفاده از مفاهیم جدید تولید نرم‌افزار

روند طراحی و توسعه نرم‌افزار طی ده سال گذشته حتی در همین ایران خودمان هم تغییرات زیادی داشته. آن زمان یعنی حدود سال ۷۹ شمسی مردم تازه از شر FoxPro خلاص شده و به دیتابیس‌های مدرن‌تری مثل Access، MS SQL Server و Oracle رو آورده بودند. برنامه‌نویسی در عصر ویندوز راحت‌تر و منظم‌تر شده بود. تا قبل از آن عموماً کسی لذت Foreign Key و Delete/Update Cascade را کشف نکرده بود. طی این ده سال استفاده از Database Driver و ADO رواج زیادی پیدا کرد. در این دوره آنها که منظم‌تر بودند از نمودارهای ERD برای بیان ساختار دیتابیس، نرمال‌سازی، کلاس‌های مجزا برای دسترسی به دیتابیس (معماری سه لایه) و… استفاده می‌کردند.

اما اکنون آن دوران به سر آمده و ما خیلی وقت است که وارده دوران Domain Driven Design یا همان DDD شده‌ایم. در عصر DDD هیچکس مستقیماً به دیتابیس وصل نمی‌شود بلکه از ORM‌ استفاده می‌کند. روابط بین entityها به جای ERD با UML Class Diagram تعریف می‌شود و معماری‌های چندلایه‌ای با استفاده از DDD خیلی راحت‌تر شده و…

حال سوال این است که آیا لازم است ما هم صرفاً به خاطر همراهی با زمان یه سمت Domain Driven Design و Object Oriented برویم یا این که واقعاً نفعی برای ما و شرکت‌مان در آن وجود دارد؟ جواب این سوال هر دو است. چون اولاً وقتی که همه دنیا به این سبک جدید رو آورده‌اند خیلی سخت است که ما همان روش‌ها و ابزارهای قدیمی را نگه داریم و خلاف جریان آب شنا کنیم. ثانیاً عصر جدید امکانات بسیار خوبی را با خود به همراه آورده است و نباید آن را به این سادگی از دست بدهیم.

عصر جدید یعنی دنیای Domain Driven Design و Object Oriented که با استفاده از ORMها و UML محقق می‌شود به شما کمک می‌کند که:
‫۱- کد شما قابلیت نگهداری بالایی داشته باشد.
‫۲- پیدا کردن و برطرف کردن باگ‌ها راحت‌تر باشد.
‫۳- اگر طراحی درست انجام شده باشد، برنامه‌نویسی راحت‌تر خواهد بود.
‫۴- مزایای معرفی شده در Object Oriented به طور ملموسی در دسترس قرار خواهد گرفت. مفاهیمی مثل Inheritance باعث می‌شود حجم کد کاهش یابد.
‫۵- کدهای DDD خیلی منظم‌تر از کدهای تولید شده در دوران قبل هستند.
‫۶- تولید نرم‌افزارهای DDD هم‌خوانی بسیار بیشتری با متودولوژی‌های جدید اسکرام، XP و… دارد.
‫۷- …

در بین شرکت‌ها و تیم‌های نرم‌افزاری ایرانی تعداد قابل توجهی به روش‌های عصر جدید رو آورده‌اند. یعنی از ORM استفاده می‌کنند، کل کار را به صورت Object Oriented جلو می‌برند، Documentation آنها بر اساس UML است و … اما متاسفانه هنوز خیلی‌ها هستند که خود را از لذت و کارایی عصر جدید محروم کرده‌اند. به نظر من تنها عاملی که باعث می‌شود این طور افراد همچنان به استفاده از روش‌های قدیمی ادامه دهند عدم آگاهی نسبت به روش‌های جدید است. چون هیچ مدیر پروژه یا رییس شرکتی دوست ندارد کاری را که می‌شود در شش ماه انجام داد در هشت ماه انجام دهد و نهایتاً هم کدی را تحویل بگیرد که نگهداری و توسعه آن خیلی هم سخت باشد. به همین خاطر به این طور افراد توصیه می‌گردد اگر هم از روش‌های قدیمی خیلی هم راضی هستند اقلاً مطالعه‌ای در مورد روش‌های جدید و مزایای آن داشته باشند.

‫ کتاب Scrum and XP from the Trenches

اگر می‌خواهید اسکرام یاد بگیرید و پروژه‌هایتان را با روش اسکرام مدیریت کنید، اگر می‌خواهید در تولید نرم‌افزار از روش‌های جذاب XP استفاده کنید و اگر نمی‌خواهید درگیر مسائل تئوری شوید و می‌خواهید مستقیماً از روش اسکرام استفاده کنید، یک منبع خوب وجود دارد: خواندن و به کار بردن کتاب Scrum and XP from the Trenches. این کتاب به کار بردن اسکرام و XP را با زبانی بسیار ساده به شما توضیح می‌دهد. کتاب حجم بسیار کمی دارد. این موضوع برای کسانی که کمبود دائمی وقت دارند و کسانی که حوصله خواندن کتاب‌های حجیم را ندارند خیلی مفید است. علاوه بر این، کتاب انگلیسی بسیار ساده و روانی دارد و اصلاً خواننده غیر انگلیسی زبان را اذیت نمی‌کند.

کتاب تمامی جزییات اسکرام را از جمله جلسات، جزییات آنها، تقسیم کار، نقش‌ها، نمودارها، نحوه تست و روش ترکیب XP با اسکرام را به خوبی پوشش می‌دهد. کتاب حتی موضوعات ریزی مثل چگونگی انتخاب Backlog Itemها برای یک اسپرینت نوعی را هم تشریح می‌کند. خواندن کتاب علاوه بر Scrum Masterها نکات خوبی را به دیگر اعضای تیم نیز یاد می‌دهد.

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

سورپرایز آخر این که نویسنده کتاب یعنی «هنریک نیبرگ» علی‌الظاهر اواخر سال میلادی جاری (۲۰۱۰) برای برگزاری یک سری دوره Scrum Mastering به ایران خواهد آمد.