تصویری زیبا از بیانیه توسعه نرم افزار چابک

  • یوسف مهرداد بی‌بالان

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

گزیده:
سریعترین راه برای نیل به موفقیت دوبرابر کردن تعداد شکستها است.
توماس واتسون

یک خبر خوب بدهید!

  • یوسف مهرداد بی‌بالان

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

1- هفته پیش جشن عروسی برادرزاده‌ام در شمال بود. جای همه شما از جمله آقای مهندس، خالی بود. سه چهار روزی! که آن جا بودم هم فال بود، هم تماشا. بر خلاف عروسی‌های تهران که بیشتر به مهمانی شبیه است، آنجا واقعاً عروسی بود. در خانه، در فضای سرسبز حیاط خانه، با حضور بستگان و هم محلی‌ها(که خوشبخت بودم از دیدارشان)، با صدای موسیقی طبیعت: پرندگان و باران، با لباسها و رقصهای محلی گیلان.

2- سمینار «نیازمندی‌های چابک(agile requirements)» هم برگزار شد. اگر یاری دوستان و عزیزانم نبود، شاید به این خوبی برگزار نمی‌شد.

3- دوست عزیزم، حامد، خبر داده که چند قسمت از سریال محبوبمان را دریافت کرده و تا چند روز آینده به دستم خواهد رساند. لحظه‌شماری می‌کنم برای دیدنش ( نکته: به دلیل کم‌وقتی، فیلمها را سریالی می‌بینم، سریالها را …؟ )

گزیده یک:
« – بشنو از من. کودک من!
پيش چشم مرد فردا،
زندگانی – خواه تيره، خواه روشن –
هست زيبا، هست زيبا، هست زيبا. »
گلچین گیلانی

گزیده دو:
«انسان از آغاز وجود، خود را بسی کم شاد کرده‌است. برادران، «گناه نخستین» همین است و همین! هرچه بیشتر خود را شاد کنیم، آزردن دیگران و در اندیشهٔ آزار بودن را بیشتر از یاد می‌بریم.»
نیچه، چنین گفت زرتشت

سمینار نیازمندی‌های چابک (Agile Requirements) برگزار شد

  • یوسف مهرداد بی‌بالان

سمینار «نیازمندی‌های چابک(Agile Requirements)» برگزار شد. از همه شرکت‌کنندگان گرامی که قبول زحمت کردند، سپاسگزارم.

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

در سمنیار بخشی را اضافه کرده بودم با نام “آیا برای چابکی آماده‌اید؟(Are You Ready for Agile)” که در آگهی سمینار نبود. این بخش را بیش از همه دوست می‌داشتم.

فایل ارائه سمینار را می‌توانید از اینجا دریافت کنید.

گزیده:
همیشه در زندگیت جوری زندگی کن که “ای کاش” تکیه کلام پیریت نشود.

نیازمندی‌های چابک (Agile Requirements)

  • یوسف مهرداد بی‌بالان

سمینار «نیازمندی‌های چابک» (Agile Requirements) هفته آینده برگزار
خواهد شد. مسئولیت آماده‌سازی و برگزاری آن با دوست عزیزم، جناب آقای مهندس ایراف
است که صمیمانه از ایشان سپاسگزارم.
توضیحات بیشتر در این باره را در زیر
ملاحظه ‌فرمایید.

شرح و اهداف:در دهه گذشته، حرکت به سوی متدهای
چابک سرعت روزافزونی به خود گرفته است. در این سالها، واضعان این متدها با تفکرات
متفاوت اما همگرا و با تکیه بر تجربه­های مؤفق نشان دادند که اجرای این
متدها تأثیر به­سزایی در بهبود4 پارامتر بزرگ و مهم دارند: کارایی، کیفیت،
روحیه افراد و زمان ورود به بازار
.

هدف اصلی متدهای چابک تحویل سریع­تر نرم­افزار و کسب اطمینان از
پوشش نیازهای در حال تغییر مشتری است. بطور کلی این متدها بر چهار موضوع انسانها
و تعاملات بین آنها، پذیرش تغییرات نیازمندی­ها، تحویل زود به زود
نرم­افزار قابل استفاده و همکاری نزدیک مشتری و توسعه­دهندگان
تأکید
دارند.

تفاوت بین رویکرد متدهای چابک و مهندسی نیازمندی­ها(RE)- که هدف آن
شناسایی، تحلیل، مستندسازی و صحه­گذاری نیازمندی­های سیستم است، این حوزه
را به یکی از چالشهای پذیرش و استقرار این متدها تبدیل کرده است. این سمینار به
معرفی متدهای چابک و رویکردشان به نیازمندی­های
نرم­افزاریمی­پردازد.

سرفصل مطالب سمینار عبارتند از:
· تعریف چابکی و تاریخچه متدهای
چابک

· مدل اطلاعاتی نیازمندی­های چابک

· رویکرد متدهای چابک به نیازمندی­ها

· راهنمای تدوین نیازمندی­ها در متدهای
چابک:کارکردی/غیرکارکردی/قواعد کسب­وکار

· مقایسه داستان کاربر(User Story) با موردکاربرد(Use Case)

· جایگاه تحلیل­گر سیستم در تیم­های چابک

زمان و مکان برگزاری:

سه شنبه 13/04/1391

ساعت 15:00 اا 18:00

تهران خیابان سهروردی شمالی، خیابان خرمشهر(آپادانا)، خیابان شهید
عربعلی(نوبخت)، کوچه نهم، شماره 13، سازمان نظام صنفی رایانه‌ای کشور. تلفن:
88734499، سرکار خانم محمدلو

اندر فواید پروتوتایپ در تحلیل نیازمندی‌ها

  • یوسف مهرداد بی‌بالان
پیش‌گفتار: تکنیک نمونه‌سازی(پروتوتایپ) در استخراج نیازمندی‌ها

اندر فواید پروتوتایپ در تحلیل نیازمندی‌ها

  • یوسف مهرداد بی‌بالان
پیش‌گفتار: تکنیک نمونه‌سازی(پروتوتایپ) در استخراج نیازمندی‌ها

چابکی یا چالاکی – بخش چهار

  • یوسف مهرداد بی‌بالان

نظر یکی از دوستان را درباره نوشته‌های دنباله‌دار «چالاکی یا چابکی» جویا شدم. گفت: خواندن و فهمیدنش خیلی دشوار بود. کمی برایش توضیح دادم و موضوعات کمی روشن‌تر شد. تصمیم گرفتم بخشی از آن توضیحات را در اینجا بیاورم.

خلاصه بخش اول:
ابتدا مفهوم چالاکی از چابکی جدا شد. چالاکی یعنی آن چه که از تیم یا سازمان ایده‌آل انتظار می‌رود و چابکی یعنی نتیجه اجرای متدهای چابک. این نام-چالاکی-، خودساخته است برای تفکیک مفاهیم.

خلاصه بخش دوم:
نوشته این بخش برگرفته از کتاب آقای ایکاف با نام «بازآفرینی سازمان» است و بر این نکته تأکید دارد که مسائل و لوازمِ سازمانی که بتواند در قرن بیست‌ویکم دوام بیاورد، موضوع ساده‌ای نیست بلکه موضوعی است پیچیده(Complex) و در عین حال دشوار فهم(Complicated). در این کتاب تأکید شده بود که «جست‌وجو برای راه‌حلهای ساده – اگر نگوییم ساده‌انگارانه – برای مسایل پیچیده، حاصل ناتوانی در رویارویی مؤثر با مشکلات پیچیده است. این ناکارایی موجب ساده‌سازی واقعیت و راههای برخورد با آن می‌شود».
این که انتظار داشته باشیم با یک راه حل، همه موانع چالاکی مرتفع گردد، موضوعی است که به سختی بتوان باور کرد. متدهای چابک نیز به عنوان یک راه حل از این قاعده مستثنی نیستند. دستمایه شدن حل مسائل سازمانها وکسب‌وکار در جهت تبلیغ متدهای چابک(با وجود نیت و اراده راستین و صداقت گفتار)، فقط منجر به بالابردن سطح انتظارات مخاطبان و در پایان، برباد رفتن تلاشهای مبلغان خواهد گردید.

خلاصه بخش سوم:
در این بخش تعریفی از چالاکی در سازمانها و کسب‌وکارها ارائه گردید. تعریف واژه، علاوه بر آشنایی خواننده کمک خواهد کرد تا قسمتی از مرز بین چالاکی و چابکی مشخص گردد.
چالاکی بدین گونه تعریف شد: چالاکی نتیجه یکپارچه‌سازی هشیاری به تغییرات (فرصتها و چالشها) – داخلی و محیطی- با توانایی استفاده از منابع برای پاسخگویی به موقع، منعطف، مقرون به صرفه و مناسب (پیش‌گیرانه یا واکنشی) به تغییرات است.
اجزای چالاکی نیز عبارتند از:
یک: هشیاری شامل دوراندیشی استراتژیک و بینش سیستماتیک
دو: توانایی پاسخگویی شامل ارزیابی ارزش، هماهنگی و یکپارچگی، یادگیری سازمانی و بازپیکربندی

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

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

این بررسی(تعریف چالاکی) کمک خواهد کرد تا انتظارات از چابکی به درستی تبیین شده، اگر برخی لوازم چالاکی در متدهای چابک نیست، برای خواننده شفاف‌سازی شود و از ایجاد “شتاب زدگی-یا بهتر بگویم جو زدگی” (نقل قول از جناب آقای مهندس واحد) جلوگیری گردد.
در بررسی‌های انجام شده بر روی متدهای چابک، تطابق نداشتن مفهوم چابکی در این متدها با بخشهایی از مفهوم متناظر آن در سایر کسب‌وکارها یکی از ایرادات موجود در آنها شمرده شده است. واژه‌ها یکسان، ولی تعابیر متفاوت است
این موضوع ممکن است خواننده را که در پی دست‌یابی به «کسب‌وکار چابک/چالاک» است به سمت «متدهای چابک» بکشاند و در پایان، به دلیل دست نیافتن به خواسته‌اش، غمزده و دلزده کند.

در ادامه هم به معرفی متدهای چابک خواهیم پرداخت.

———————————————————————————————————

اما چرا به جای معرفی متدهای چابک و توانایی و ناتوانی‌های آنها، مبحث بدین گونه پیش برده شد:پاسخ آن خیلی ساده است: یادآوری گذشته.
متدها و متدولوژی‌ها بسیار دوست‌داشتنی‌اند، قداست ندارند، ولی کاربردی‌اند. با همه علاقه‌مندی، تصمیم بر آن شد که از دریچه‌ای متفاوت، معرفی آنها انجام شود. به شخصه، بیشتر از آن که فنون مهندسی را از متدهای چابک و نظم‌(دیسیپلین)گرا آموخته باشم، «انسانیت» و «ارزشهای انسانی» را آموخته‌ام. چندسال پیش در یکی از گروه‌هایی که عضو بودم، مشاجره‌ای درگرفت. چون مسئولیتی در آنجا داشتم، اعضا خواستند تا نظرم را ابراز کنم:
«حسن عزيزم، همان طور كه مي‌داني تخصص من مهندسي نرم‌افزار است. در ايجاد نرم افزار، مجموعه‌اي از اصول براي همكاري اعضاي تيم وجود دارد كه برخی از آنها را مي‌شمارم، شايد در اين جامعه كوچك نيز كاربرد داشته باشد. توجه داشته باشيد كه اين اصول ايراني نيست بلكه مربوط به دنياي مدرن است[معمولاً دنیای مدرن به خلاف این موضوع شناخته می‌شود]:

الف: ارتباطات: هيچ چيز نمي‌تواند جاي ارتباطات بین انسان‌ها را بگيرد. ارتباطات و همكاريِ اعضاي تيم است كه منجر به نرم‌افزار كارا و باكيفيت مي‌گردد.

ب: بازخورد: همه اعضاي تيم بايد از ديگران بخواهند كه نسبت به كارها و نظراتشان بازخورد داشته باشند. بازخورد لازمه پويايي و رشد و بهبود فردي و تيمي است.

ج: شجاعت: اعضاي تيم بايد در اظهار نظراتشان شجاع باشند. در اعلام اشتباهات خود و ساير اعضا شجاع باشند و با شجاعت اشتباهات خود را بپذيرند. پذيرش اشتباهات لازمه تصحيح آن و بلوغ فردي و گروهي است.

د: احترام: تيمي مي‌تواند نرم‌افزار كارا و با كيفيت توليد كند كه اعضاي آن به همديگر احترام بگذارند.»

سرخورده می‌شوم وقتی این دید زیبا و دوست‌داشتنی به ادبیات و مفاهیم پیش‌پا افتاده مهندسی ترجمه شده و اصل و بنیاد موضوع به فراموشی سپرده می‌شود.

در تیمهای تولید نرم‌افزار مشکلات متعددی وجود دارد. هر از گاهی واژه‌ای از اینترنت مانند نسیمی وارد جامعه‌مان می‌شود، با تبلیغات همه‌گیر می‌شود، همه به امید بهشت موعود به سویش کشیده می‌شویم و در انتها چون به درستی درک نشده و لوازمش آماده و مهیا نبوده، به درستی جذب نمی‌شود و از آن پس موج مخالفتها با اشاره به موارد شکست خورده شروع شده و گسترش می‌یابد. از این دست، نمونه‌های بسیاری را می‌توان شمرد.

آیا قرار است با متدهای چابک نیز چنین کنیم؟ متدهای چابک ایجاد نرم‌افزار قبل از سال دو هزار میلادی ارائه شده‌اند. بیش از 19 سال از تولد آنها می‌گذرد. پرسش این است که چرا در این مدت کسی به فکر جااندازی آنها در سازمانها و تیمهای ایرانی نبوده است، مسلماً بی‌اطلاعی دلیل آن نیست؟ آنهایی که این روشها را به کار گرفته‌اند، با چه مشکلاتی روبرو بوده‌اند؟ مسائل و مشکلات ما در استقرار متدهای چابک زیربنایی و گاه فرهنگی است.

برای خنده:
این نوشته (RUP بهتر است يا Agile؟) را لطفاً مطالعه کنید: «هفته پيش من جايی بودم و در مورد پروژه‌ای مشاوره می‌دادم. تأکيد من بر اين بود که می‌شود سيستم را بدون بازنويسی، با Refactoring در سطح مطلوبی بازسازی کرد. يکی از دوستان که در جلسه بود گفت: فکر می‌کردم که شما به جای RUP متمايل به XP method شده‌ايد» اگر دوست عزیزم را طی چند روز آینده دیدار کنم خواهد گفت:«شنیده‌ام مخالف Agile شده‌ای؟».

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

در پایان آرزو دارم که تلاش همه خوبان و عزیزان با پایانی خوش و رستگاری همراه باشد.
خدایا چنان کن که پایان کار توخوشنود باشی و ما رستگار

گزیده:
سه راه براي رسيدن به شناخت وجود دارد: نخست، انديشيدن كه بهترين راه است. دومي تقليد كه آسانترين است و سومي تجربه كه تلخ ترين است. كنفوسيوس
مرجع: اس.جی.

برای خروج از جستجو کلید ESC را بفشارید