پنجشنبه، مهر ۰۶، ۱۳۸۵

Agility

زمانی نوشتم که درباره‌ی Agile خواهم نوشت، البته اگر تقاضایی وجود داشته باشد؛ اما هیچ تقاضایی وجود نداشت. با این حال دلم نیامد خودم را از نوشتن درباره‌ی آن محروم کنم. و این نمونه‌یِ والایِ در نظر گرفتن سلایق خوانندگان بید! در هر حال، قضا را چه دیدی؟ شاید چشم کسی را گرفت و خوانده هم شد.

درباره‌ی این واژه که این چند ساله‌ی اخیر در دنیایِ نرم‌افزار خیلی مهُم شده، و گویا در خیلی از صنایع دیگر نیز باب شده است، به‌طور خلاصه می‌توانم بگویم که "فلسفه‌ای دارد عکس همه‌ی مفاهیم رسمی‌ای که تاکنون باب بوده و تدریس می‌شده". در زیر اهم وجوه آن، در زمینه‌ی نرم‌افزار، فهرست شده است.

ز تعارف کم کن و...
در دهه‌ی 90 در دنیای نرم‌افزار باب شده بود که توجه عجیبی به مستندسازی شود و بسیاری اساسی‌ترین بخش توسعه‌ی نرم‌افزار را همین مستندسازی‌ها قلمداد می‌کردند. دقت و عظمت یک نرم‌افزار را مستندات آن تعیین می‌کرد، یعنی نوشته‌جاتی که در باره‌ی آن نوشته می‌شود، یا نقشه‌ها و طرح‌های اولیه‌ای که برای آن ارائه می کردند. گاهی این‌ها چنان عظیم و گسترده می‌شدند و به بیراهه می‌رفتند، که روند اجرایِ اصلیِ کار را غیرممکن می‌ساختند. در رویکردِ Agile توجهِ اصلی بر مسئله‌ی ساخت است و مستندات هم تا حدی که واقعاً در ساخت به‌کار بیایند، تهیه و تنظیم می‌شوند. نرم‌افزاری اهمیت دارد که کارکند ونه مستنداتی که دقت زیادی در آن‌ها مبذول شده است. البته این به معنی کار بی‌نظم و بنیاد نیست. مستنداتی که برای نظم‌بخشیدن به کار و پی‌ریزی روند اصولی آن لازم باشند، حتماً باید تهیه شوند.

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

کمی‌ صمیمی‌تر
یک امر مهم دیگر تلاش برای خارج کردن روابط متقابلِ اعضای شرکت‌ از نظام سلسله‌مراتبی و بنیادِ دستور-اطاعتی، به نظام افقی و بنیاد همفکری-همکاری است. جز این، در رویکرد Agile این افراد هستند که مهم‌اند. آن‌ها هستند که با توانایی‌ها و خلاقیت‌هایشان می‌توانند یک کار را به سرانجام برسانند. در اینجا به عکس راهکارهای قبلی، حرکتِ کاملاً دقیق، بر مبنای یک فرآیندِ از پیش تعیین‌شده، آنچنان اهمیت ندارد. اسلوبِ کلیِ فرآیندِ حرکت، مشخص است، اما جزئیاتِ آن با توجه به موقعیتی که کار با آن روبه‌روست، تعیین می‌شود. علاوه بر این داشتن ابزارهای قوی، عاملی در جهت تضمین موفقیت به حساب نمی‌آیند؛ این افراد قوی، خلاق و حرفه‌ای هستند که موفقیت را تضمین می‌کنند.

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

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

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

هیچ نظری موجود نیست:

پست کردن نظر