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

Agility

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

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

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

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

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

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

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

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

چهارشنبه، مهر ۰۵، ۱۳۸۵

بازی بی‌رغبت

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

وقتی "بازی ِ* شوق‌آفرین و نشاط‌آور" آدمی، در نظر او خوار و ناچیز می‌شود که:

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

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

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

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

واکنش دوم سعی در بازگرداندن تدریجی ِ رغبت و ایجاد دوباره‌ی شور و شوق برای ادامه‌ی بازی، از طرق مختلف است.

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

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