آیا شلوار Agile هنوز برای سازمان های ایرانی گشاد است؟
همانطور که در پست های متعدد مانند پست خروجی کارآ در Agile اشاره شد نرم افزار کارآ یا Working Software یکی از ارزش های چهارگانه توسعه نرم افزار چابک می باشد ولی سوالی که قابل طرح است این است که آیا سازمان ها یا شرکت های توسعه نرم افزار ایرانی آمادگی دست یابی به این ارزش را دارا می باشند؟
به طور خلاصه نرم افزار کارآ به محصولی اطلاق می شود که نیازهای جاری مشتری را رفع نماید و قابل گسترش برای پوشش نیازهای بعدی او نیز باشد. اما آیا واقعا در ایران هدف صنعت نرم افزار برآورد کردن نیازهای مشتری است! آیا خروجی های ما در طی این مدت (مثلا ۱۰ سال گذشته) کارآ بوده اند؟
بزرگترین مانع در دست یابی به یک محصول کارآ به نظر من قراردهای بسته می باشد. قراردادهایی وابسته به یک نیاز سنجی اولیه و تخمین زمانی اغلب نادرست. مثلا Aو B را باید در ۱ ماه انجام بدهید. انجام A و B در یک ماه حالا با یک تلرانس ۱ هفته ای طی یک پروژه , عرضه کننده محصول کارآ نخواهد بود زیرا ما مکلف به تکمیل درخواست ها هستیم و نه ارائه محصول کارآ. همین دید باعث می شود اگر زمانی نیاز باشد B به C تبدیل شود شاهد اختلافات بزرگی باشیم.
در قراردادهای بسته معمولا عامل های دامنه , هزینه و زمان پروژه بسته تعریف می شوند و این خود آغازی بر پایان خروجی کارآ خواهد بود. یعنی من مکلفم این موارد را در این زمان با این هزینه تکمیل نمایم و موارد بعدی ربطی به من ندارد.
در بحث خروجی کارآ همانطور که اشاره شد ما باید رفته رفته و طی Iterative ها یاد بگیریم که خروجی کارآی این پروژه چیست و مسیر خود را به سمت خروجی کارآ تغییر دهیم. اما در یک قراداد بسته بدلیل بسته بودن عامل های دامنه , هزینه و زمان پروژه امکان انجام چنین چیزی وجود نخواهد داشت.
اما بحث قرارداد بیشتر یک بحث فرهنگی می باشد تا یک بحث فنی. همیشه در قرارداد باید حداقل دو طرف وجود داشته باشند : ۱- مشتری ۲-مجری قرارداد. هر دو طرف این قرارداد باید به یک سطح فرهنگی و شعوری برسند که من مشتری برای رسیدن به خروجی کارآ باید هزینه کنم و من مجری باید خروجی کارآ ارائه نمایم و اسم این سطح شعوری را می توان چابکی نامید.مشتری چابک و مجری چابک خواهند توانست آغاز گر یک پروژه با خروجی کارآ باشند.
اما این فقط آغاز یک پروژه خوب خواهد بود و علاوه بر این در طی این پروژه مشتری و مجری باید دائما به صورت چهره به چهره ارتباط داشته باشند. باید اینها با هم یاد بگیرند , نوع آوری کنند, نیازهای جدید را استخراج نمایند و کلا خروجی کارآ را کشف نمایند و اینگونه خواهد شد که گوشی مانند iPhone پدید خواهد آمد.
اما هنوز هم برای خلق یک محصول کارآ آماده نیستیم زیرا هنوز تیم های ما از Technical Excellence برخودار نیستند. برای دست یابی به خروجی کارآ سطح فنی تیم های ما باید بالا باشد و به عبارتی در سطح فنی عالی باید باشند.
به نظر من یک تیم خود سازمانده با سطح فنی خوب در یک پروژه چابک خواهد توانست خروجی کارآ عرضه نماید و این است ارزش اصلی چابک شدن و بودن.
اینها یک سری مواردی بودند که برای به وجود آوردن و خلق محصول کارآ حیاتی می باشند و نتیجه گیری اینکه سازمان های ما می توانند خروجی کارآ ارائه نمایند بر عهده خود شما می باشد.
چابک شوید و چابک بمانید.
یاشیاسیز
8 نظر
وقتی با در یک شرکت دولتی با چند میلیارد سرمایه بعد از دو سال با شما قرارداد ۳ ماه میبندند و حتی یک نسخه چیزی که امضا کرده اید را یه شما نمیدهند . فکر نمیکنی بهتر است آدم ایجل بلد باشد و هر وفت که خواست ایجل باشد و هر وفت که خواست برعکس و درست برعکسش عمل کند و حقشان را کف دستشان بگزارد !
وقتی با در یک شرکت دولتی با چند میلیارد سرمایه بعد از دو سال با شما قرارداد ۳ ماه میبندند و حتی یک نسخه چیزی که امضا کرده اید را یه شما نمیدهند . فکر نمیکنی بهتر است آدم ایجل بلد باشد و هر وفت که خواست ایجل باشد و هر وفت که خواست برعکس و درست برعکسش عمل کند و حقشان را کف دستشان بگزارد !
چند نکته
ابتدا این که همیشه نوشته میشود توسعه نرمافزار، ترجمهای بیمعنی از لغت Development است که در واقع معنی درست برای آن ایجاد نرمافزار است. چون کار برنامهساز، اغلب ایجاد امکاناتی در برنامه است که وجود نداشتند و این کار نوعی خلق است. به نظر میرسد این ترجمهی نادرست از جاهایی مانند «کشورهای در حال توسعه» آمده است که در آنجا معنی develop متفاوت است.
دیگر آن که پیشنهاد میکنم برای مدلهای جالب و ابتکاری از قرارداد به کتاب Agile Software Development: The cooperative game، نسخهی دوم نوشتهی آقای کوبرن مراجعه نمائید.
در نهایت نیز متوجه نمیشوم ساختن یک گوشی تلفن چه ارتباطی با ایجاد نرمافزار دارد؟ در اپل محصولات همواره محرمانه هستند و تا آخرین روزها به کسی نشان داده نمیشوند. دلیل موفقیت اپل ارتباطی با روشمندی چابک در فرآیند نرمافزار نمیتواند داشته باشد.
تبلیغ برای راهکارهای مبتنی بر چابکی درست است اما تبلیغات غلط انداز را نباید مخلوط بحث نمود.
چند نکته
ابتدا این که همیشه نوشته میشود توسعه نرمافزار، ترجمهای بیمعنی از لغت Development است که در واقع معنی درست برای آن ایجاد نرمافزار است. چون کار برنامهساز، اغلب ایجاد امکاناتی در برنامه است که وجود نداشتند و این کار نوعی خلق است. به نظر میرسد این ترجمهی نادرست از جاهایی مانند «کشورهای در حال توسعه» آمده است که در آنجا معنی develop متفاوت است.
دیگر آن که پیشنهاد میکنم برای مدلهای جالب و ابتکاری از قرارداد به کتاب Agile Software Development: The cooperative game، نسخهی دوم نوشتهی آقای کوبرن مراجعه نمائید.
در نهایت نیز متوجه نمیشوم ساختن یک گوشی تلفن چه ارتباطی با ایجاد نرمافزار دارد؟ در اپل محصولات همواره محرمانه هستند و تا آخرین روزها به کسی نشان داده نمیشوند. دلیل موفقیت اپل ارتباطی با روشمندی چابک در فرآیند نرمافزار نمیتواند داشته باشد.
تبلیغ برای راهکارهای مبتنی بر چابکی درست است اما تبلیغات غلط انداز را نباید مخلوط بحث نمود.
نکته جالب این مقاله “سازمانها” است. میشه ۱۰ تا از این سازمانهای نرم افزاری را که بشود بهشون گفت سازمان (با تعاریف استاندارد سازمانی) نام ببرید. اصلا قصد جسارت ندارم. فقط خیلی کنجکاو هستم.
ممنون.
نکته جالب این مقاله “سازمانها” است. میشه ۱۰ تا از این سازمانهای نرم افزاری را که بشود بهشون گفت سازمان (با تعاریف استاندارد سازمانی) نام ببرید. اصلا قصد جسارت ندارم. فقط خیلی کنجکاو هستم.
ممنون.