سلام از شما به خاطر نظر های خوبی که می دهید ممنونم؛ خب با قسمت سوم از دوای درد تیم های نرم افزاری در خدمت شما هستم! البته قرار بود به زبان کوچه بازاری باشه ولی منظور من کوچه و بازار نرم افزار بود!!!!

توی این مقاله شما را با اصول و بیانیه ی اجایل و تفاوتش با روش RUP صحبت می کنم و آخرین وضعیتش در جهان را مشاهده می کنیم!

پس پیش به سوی چابک شدن!!!

برای چابک شدن باید در پروسه توسعه و یا حتی سطوح کلان سازمان مانند مدیریت منابع انسانی پروژه و یا هر سطحی ارزش های و اصول چابک رعایت شوند و در نظر گرفته شوند. به عبارتی باید همه سازمان چابک شود و نه فقط بخش یا واحد توسعه نرم افزار. به همین دلیل حرکت سازمان به سمت Agile را تغییر یا Change گفته نمی شود و از اصطلاح Transformation یا تحول استفاده می شود. یعنی باید سازمان در راه چابک شدن متحول شود.

اصول بیانیه چابک

ما از این اصول پیروی می کنیم :

بالاترین اولویت ما رضایت مشتری از طریق
تحویل به موقع و مداوم نرم افزار ارزشمند می باشد

پذیرائی از نیازهای در حال تغییر , حتی آن هایی
که در اواخر توسعه پدید آور می شوند. فرآیند های چابک
تغییرات را جهت رقابت بر سر مشتری مهار و کنترل می نمایند

تحویل نرم افزار کارکننده غالبا از چند هفته تا چند ماه
یک بار انجام می شود که زمانبندی کوتاه تر ترجیح داده می شود

ذینفعان تجاری و توسعه دهندگان باید هر روزه در
طول پروژه با هم کار کنند

پروژه ها را بر روی افراد با انگیزه بنا کنید. محیط لازم را
به آنها بدهید و از نیازهای آن ها پشتیبانی نمایید وبه
آنها اعتماد نمایید تا کارها را انجام بدهند

کارآمدترین و موثرترین روش برای انتقال و رساندن
اطلاعات به تیم توسعه , گفتگوی چهره به چهره و رودرو می باشد

نرم افزار کارکننده اصلی ترین معیار پیشرفت می باشد

فرآیند های چابک توسعه پایدار را ترویج می دهند.
حامیان مالی , توسعه دهندگان و کاربران باید قادر به
حفظ سرعت پیشرفت ثابتی براى یک مدت نامحدود باشند

توجه مداوم به برتری فنی و طراحی خوب باعث
افزایش چابکی می شود

اصل سادگی ضروری می باشد

بهترین معماری ها , نیاز مندی ها و طراحی ها از تیم های
خود سازمانده پدید آور می شود

در فواصل منظم , تیم برچگونگی موثرتر شدن تامل وتفکر می نماید
و سپس تیم رفتار خود را بر اساس بازتاب این تفکر تنظیم و هم سو می نماید


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

شاید دوست داشته باشید بدانید که تفاوت های Agile با Rup یا waterfall و یا هر متدولوژی دیگری چیست؟

پاسخ ساده است : اجایل یک متدولوژی نیست! اجایل یک تفکر است ...

امروز در سایت برنامه نویس یک پست از دوست گرامی حمید رضا متقیان دیدم , با مضمون زیر :

الان همکاران سیستم RUP رو بسیار حرفه ای داره کار میکنه و تیم های تحلیل و طراحی و کلا Leader های تیم هاش واقعا افراد مسلط و کاربلدی هستن.
من کاری به خروجی های همکاران سیستم ندارم که خوبه یا بد چون موارد زیادی علاوه بر دانش تیم توسعه بر کیفیت خروجی محصول تاثیرگذار میذاره که اونا در سیاست گذاری کلان شرکت ها هست و ربطی به من نداره…

به قول حمیدرضا , این ها خوب RUP دارند کار می کنند , نیروی خوبی در اختیار دارند ولی با این همه منابع آنها خروجی اشان قابل قبول نیست. البته مثل گفته حمید رضا  این فقط مربوط به تیم توسعه نمی شود که خروجی قابل قبول نیست و عوامل زیادی مانند مدیریت در سطح کلان تاثیر گذار این مسئله هستند.  اما آیا مشکل در RUP این شرکت یا شرکت های دیگر هست؟ به نظرم نه  (البته نه همه مشکلات) ,  زیراکه RUP منحصر به چرخه SDLC یا چرخه توسعه نرم افزار سازمان ها می شود و مثلا عاملی مثل مدیریت در سطح کلان را نمی توان داخل این چرخه دانست.

اگر نرم افزار باگ داشت می توان RUP را به زیر سوال برد و یا نیروی کار را مقصر دانست , ولی اگر نرم افزار کاربردی نبود و یا برای مشتری سودمند نبود چه کسی و یا چه چیزی مقصر هست؟ همانطور که قابل درک است , متدولوژی هایی مثل RUP فقط و منحصرا در خدمت پروسه توسعه نرم افزار می باشند و با دیگر بخش های سازمان کاری ندارند. آنها فقط و فقط یک چرخه توسعه نرم افزار می باشند. در آینده ایی نه چندان دور بعد در رابطه RUP به زبان بازاری خواهم نوشت!!

اما Agile اینگونه نیست. Agile تفکری و یا روحی هست که باید در کالبد سازمان دمیده شود و نه فقط تیم توسعه. بلی ما در مقالات می خوانیم در اسکرام تیم توسعه چنین و چنان می کند ولی Agile فراتر از تیم توسعه می باشد. به عبارت ساده تر کل سازمان باید چابک (Agile) شود و نه فقط یک تیم توسعه نرم افزار. یعنی نمی شود یک تیم توسعه چابک توسط یک مدیر غیر چابک اداره شود.کاملا امکان پذیر نیست . همه باید چابک شوند : چه مدیر سازمان ,  چه مدیر فروش ,  چه آبدارچی و چه تیم توسعه و… . و این مسئله ایی است که اکثر ما در شرکت های مختلف با آن مواجه هستیم!

پس مقایسه Agile با متدلوژی های موجود کاری سودمند نمی باشد زیرا آنها نه هم تراز می باشند و نه هم خانواده. حتی می توان در دل Agile   از RUP استفاده کرد ولی نه RUP آنها بلکه RUP سفارشی خودمان(سازمان). پس به جای مقایسه به این فکر باشیم که چگونه می توانیم چابک شویم.

و اما چه کسانی در جهان چابک هستند؟

9


در حوزه ابزار چابک، رتبه اول جیرا، رتبه دوم اکسل هستند. در ادامه رقابت مابین TFS و پراجکت مایکروسافت و ورژن وان است.

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


به امید سازمان های چابک، در مقاله بعدی شما را با اسکرام، یک چارچوب جذاب چابک آشنا خواهم کرد؛ چابک باشید!

با تشکر از دنیای چابک


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