می خواهم خیلی ساده و به زبان بازاری راجع به تفکر چابک یا اجایل (Agile) با شما صحبت کنم؛ دانستن این مطلب به شما کمک می کند موفق تر از قبل باشید، قبل از اینکه چیزی به اسم نرم افزار یا کامپیوتر (به معنای امروزی) وجود داشته باشه شرکت ها و صنعت گرانی مثل فورد یا تویوتای ژاپن با چالش هایی در زمینه تولید محصولات مشتری پسند و با کیفیت مواجه بودند. اونا سعی می کردند که با هزینه پایین و کیفیت بالا یک روش تولید کشف کنند.خب طبیعیه که روش های زیادی را ساختن و پاکش کردند! و ناگهان کامپیوتر ها به دنیا آمدند یعنی ببخشید پا به خانه ها و سازمان های ما گشودند که صنعتی جدید به اسم توسعه نرم افزار به وجود آمد، هر جا سخن از محصول است پای یک مشتری در میان است ( بعله) و نتیجه صنعت طراحی و توسعه نرم افزار تولید محصولات نرم افزاری است. هر جا پای مشتری در میان باشد حق هم با او خواهد بود. با به وجود آمدن این صنعت شرکت های زیادی وارد این صنعت شدند و این معادل با تولید محصولات زیاد بود، آیا محصولات با کیفیت بودند؟ آیا مشتریان خوشحال بودند؟ آیا توسعه گران نرم افزار ها از کار خود راضی بودند؟ و …


و بدینگونه شد که پس از جمع آوری متدهای تحول دیگر صنایع و بومی سازی آن در صنعت نرم افزار تفکر Agile به وجود آمد. تفکر Agile در سال 2001 توسط 17 نفر از متخصصین نرم افزار طی بیانیه چابک رسما مطرح شد و اکنون به عنوان یک الگوی موفق در سرتاسر جهان مورد استفاده قرار گرفته است.

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

اجایل (Agile) چرا خلق شد؟

شکست در پروژه ها Agile را بوجود آورد!

طبق تحیقات انجام شده توسط سازمان IEEE، حدود نیمی از پروژه های نرم افزاری با شکست مواجه میشوند یا اصطلاحا Failed میشوند. عمده دلایل شکست پروژه های نرم افزاری عبارتند از :

۱- زمانبندی نا مناسب
۲- کیفیت پائین در تولید نرم افزار
۳- ارتباط نداشتن با مشتری
۴- تحلیل نادرست نیازمندی ها
۵- کمبود در تست کردن نرم افزار

بعد از پیدا کردن دلایل شکست پروژه، Agile راه کارهای مناسب جهت توسعه مناسب آن را ارائه می دهد. از دیدگاه این متدولوژی، مشتری یکی از مهمترین افراد در تولید پروژه است، زیرا اصلا پروژه برای مشتری است و تنها کسی که از نیازمندی های واقعی نرم افزار مطلع است، در واقع خود اوست. برای رفع مشکل تحلیل نادرست نیازمندی ها، از دیدگاه Agile نیازمندی های مشتری توسط تیم توسعه باید به یک ویژگی در نرم افزار تبدیل شود تا بتوان بوسیله این ویژگی ها، امکان سنجی صحیحی برای آن انجام داد.

آیا اجایل (Agile) برای تیم های کوچک است؟

خیر! متأسفانه خیلی از افراد بخاطر کمال گرایی یا کامل گرایی که دارند هیچوقت موفق نمی شوند که کاری رو دست به انجامش بزنند و به اتمام برسوننش.

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

پس یکی از فواید استفاده از سیستم اجایل اینه که ما می توانیم بدون داشتن وسواس در کاری اون رو انجام بدیم. برای استفاده از اجایل حتما نیاز نیست تیم کوچکی داشته باشید! در مقالات تیم سازی به این موضوع بیشتر اشاره خواهم کرد.


http://blog.scrum.ir/wp-content/uploads/2017/07/clean-code-3-728-816x400.jpg




در مقاله بعدی تفاوت ها ومزیت های اجایل و روش سنتی را  را به شما معرفی می کنیم، البته شاید بهتر باشد بیشتر صبر کنید! :-)

Agile دوای درد تیم ها - قسمت دوم