کتاب Head First Software development – مفهوم iteration


کتاب طراحی نرم افزار - علیرضا پیر

 

سری کتاب های Head First همواره سعی می کند با زبانی متفاوت و به شکلی جدید مفاهیم پیچیده را به خوانندگان آموزش دهد، در این کتاب، ما روند پیاده سازی یک پروژه نرم افزاری را از صفر فراخواهیم گرفت.

 

حتی بهترین دولوپر ها هم شاهد شکست خوردنِ بعضی از پروژه های خوبشان هستند. معمولا به خاطر اینکه مشتری نیازمندی های خود را تغییر می دهد، یا اینکه کاربر نهایی نمی داند چطور از نرم افزاری که ساختید استفاده کند. به جای گیج شدن با این مشکلاتِ متداول، کتابِ Head First Software Development با استفاده از بهترین تمرین های ممکن برای توسعه نرم افزار شما را راهنمایی می کند. قبل از اینکه بدانید، آن شکست ها که قبلا اتفاق می افتاد، فقط مربوط به گذشته خواهند بود.

با شیوه ی آموزش دیداری و جدید، این کتاب تمام درس های سختی را که توسط توسعه دهندگان حرفه ای فرا گرفته شده است را جمع آوری کرده. شما اطلاعات ضروری برای هریک از مراحل توسعه نرم افزار را – requirements, design, coding, testing, implementing, maintenance فرا خواهید گرفت. و می فهمید روند های توسعه متفاوت، چرا و چطور عمل می کنند.

 

(تکه متنِ بالا در توضیح در مورد کلیت کتاب، ترجمه از طریق روخوانی سریع بنده از صفحه مربوط در سایت ناشر این کتاب است)

 

فصل اول : Great Software Development (تولید نرم افزار عالی)

 

اولین نکته ای که در این کتاب و در این فصل به آن اشاره می شود، این است که: “اگر مشتری از نرم افزار نوشته شده ناراضی باشد، همه ناراضی هستند”.

 

کتاب های Head First همواره با آوردن مثال هایی مفاهیم خود را آموزش می دهد.

در بخش بعدی، کتاب فردی به اسمِ تام را مثال می زند که وسایل کوه نوردی به فروش می رساند، به دلیل برگذاری یک کنفرانس که به زودی برگذار می شود، تام قصد دارد تا وبسایتی را برای فروش آنلاین محصولات خود راه اندازی و در کنفرانس از آن رونمایی کند. و از شما می خواهد که اینکار را انجام دهید.

 

در مجموع در اجرای پروژه های نرم افزاری، دو مورد باید مورد توجه قرار گیرد:

1- بودجه مورد نیاز برای اجرای پروژه (در این مثال تام هرچه بخواهیم به ما پرداخت می کند)

2- زمان موردنیاز برای انجام پروژه ( در این مثال تام تا آخر ماه جاری، خروجی کار را از شما میخواهد)

 

در ادامه، دو رویکرد برای انجام پروژه ها را عنوان می کند.

 

رویکرد اول، رویکرد Big Bang است (این نامی است که خودِ این کتاب برای این متد گذاشته است، منظور همان روش Waterfall یا آبشاری می باشد)، در این رویکرد شما شروع به کار می کنید، کد می زنید، کد می زنید و کد می زنید.

و بعد از چندین روز با محصولی که پیچیده است و همه اجزای آن با هم کار می کند بر میگردید.

اما این روش اصلا روش خوبی نیست، همانطور که در این مثالِ ما، تام از نتیجه کار با این روش ناراضی است و محصولی که به او نشان داده شده، اصلا چیزی نیست که میخواست.

 

اگر مشتری ناراضی باشد، شما نرم افزار اشتباهی را ساخته اید!

 

نکته اینجاست که “شما” کسی هستید که فکر می کنید نرم افزار و کار بر روی آن را تمام کرده اید، در صورتی که مشتری ممکن است با شما هم نظر نباشد.

 

اگر مطمئن نیستید که مشتری دقیقا چه میخواهد، و یا حداقل فکر می کنید که مطمئنید، همیشه برگردید و از مشتری سوال کنید.

 

نرم افزار عالی، نرم افزاری است که، آنچه که نیاز مشتری است را در زمان و بودجه مشخص خودش به مشتری تحویل داده شود.

حالا چطور به این هدف برسیم؟
با Iteration (تکرار).

معنیِ iteration در تولید نرم افزار، تکرار مراحل کلیِ تولید نرم افزار، در بازه های کوتاه کمتر از یک ماهه، برای اطمینان از رسیدن به بهترین نرم افزار است. یعنی بر خلافِ رویکرد اول، در این رویکرد مراحل requirements, design, coding, test هر ماه یک بار تکرار می شوند.

Iteration- Alireza Pir

 

اصلا اهمیتی ندارد که چقدر پروژه شما یا تیم شما بزرگ است، Iteration همیشه یک چیزِ کلیدی برای رسیدنِ شما به هدفتان است.

 

هر iteration بعد از تمام شدن، یک نرم افزار قابل اجرا به دست می دهد که میتواند به مشتری نشان داده شود.

 

حالا می آییم با این روش دوباره کار تام را انجام دهیم. اینبار به جای رفتن و با نرم افزار برگشتن، یک اتدِ اولیه از سایت می زنیم و به تام نشان می دهیم تا ببینیم کلیت کار آنچیزی هست که او بخواهد یا خیر، و این فید بک ها را دوباره وارد پروسه تولید می کنیم.

 

در ادامه، روشی برای تنظیم کردنِ این iteration ها ذکر می شود.

ابتدا تمام requirement ها را یادداشت می کنیم، سپس از مشتری میخواهیم که این نیازمندی ها را از 10 تا 50 شماره گذاری کند، 10 به معنی مهمترین، و 50 به معنیِ کم اهمیت ترین، سپس شما برای هر کدام از نیازمندی ها تعداد روز مشخص می کنید (اینکه چند روز طول می کشد تا انجام شود). سپس بر این اساس و با توجه به اولویت های مشخص شده، iteration ها را تنظیم کنید.

توجه کنید که هر iteration نباید بیش از حدود 20 روز طول بکشد.

 

 


یک دیدگاه بگذارید