الگو اسکرام
الگو اسکرام
اسکرام یک روش چابکِ تکرارشونده و افزایشی برای مدیریت پروژه است که معمولاً در الگوی تولید نرمافزار چابک به عنوان نوعی متدولوژی توسعه نرمافزار دیده میشود. با اینکه روش اسکرام در واقع برای مدیریت محصولات تولید و توسعه پروژهها پیشنهاد شده بود، اما استفاده آن در مدیریت پروژههای تولید نرمافزار متمرکز شد؛ همچنین امکان دارد جهت مدیریت تیم نگهداری نرمافزار، مدیریت پروژهها یا برنامههای عمومی مدیریت خط مشیها استفاده شود.
الگوهای بهبودسازی
الگوی تکامل قابلیت یکپارچه سازی (CMMI)
الگوی تکامل قابلیت یکپارچهسازی (CMMI) یکی از الگوهای پیشنهادی و تکنیکهای پیشتاز است. ارزیابی سازمانهای مستقل و رتبهبندی در مورد کیفیت چگونگی تعریف فرایندهای آن سازمانها را دنبال میکند، نه بر کیفیت خود فرایندها یا نرمافزار تهیه شده است. الگوی CMMI جایگزین الگوی CMM شده است.
ایزو ۹۰۰۰
ایزو ۹۰۰۰ یک استاندارد رسمی سازماندهی فراینده ساخت محصولات و روشی برای مدیریت و نظارت پیشرفت کارهاست. در اصل این استاندارد برای بخش تولید وساخت(صنعتی) ایجاد شد.ایزو ۹۰۰۰ همچنین برای فرایند تولید نرمافزار نیز به خوبی استفاده شده.مانند الگو CMMI مدرک ایزو ۹۰۰۰ هیچ تضمینی راجع به کیفیت نتایج نهایی ندارد و فقط فرایندهای کاری را فرموله و قالب استاندارد رسمی می دهد.
ایزو ۱۵۵۰۴
ایزو ۱۵۵۰۴ که با عنوان فرایند تشخیص و تعیین بهبود قابلیت نرمافزار (به انگلیسی: Software Process Improvement and Capability Determination)(مخفف انگلیسی: SPICE) نیز شناخته میشود، چارچوبی برای ارزیابی فرایندهای نرمافزار است. این استاندارد تنظیمات قالب روشنی برای مقایسه فرایندها به شمار میرود. SPICE خیلی شبیه CMMI استفاده میشود. فرایندهای این الگو برای مدیریت، کنترل، راهنمایی و نظارت تولید نرمافزار است. این الگو جهت سنجش سازماندهی تولید و توسعه یا تیم پروژه بصورت واقعی در طول مدت تولید نرمافزار استفاده میشود. تجزیه و تحلیل این اطلاعات برای شناسایی نقاط ضعف و حرکت به سمت بهبود پروژه استفاه میشود. همچنین برای تشخیص نقاط قوت پروژه که می تواند برای سازمان یا تیم پروژه ادامه پیدا کند یا برای امور مشترک یکپارچه شود.
برنامهریزی
برنامه ریزی، فرایندی برای رسیدن به اهداف است. بسته به فعالیتها، هر برنامه می تواند که بلند مدت، میان مدت یا کوتاه مدت باشد. برای مدیرانی که در جستجوی حمایتهای بیرونی هستند، برنامه ریزی، مهمترین و کلیدیترین سند برای رشد است.برنامه ریزی می تواند، نقش مهمی در کمک به جلوگیری از اشتباهات یا تشخیص فرصتهای پنهان بازی کند. برنامه ریزی به پیش بینی آینده و ساختن آینده تا حدودی قابل تصور کمک می کند. آن پلی است بین آنجایی که هستیم و آنجایی که می خواهیم برویم. برنامه ریزی به آینده می نگرد.
برنامهریزی یا طرحریزی یعنی اندیشیدن از پیش. متخصصین از زوایای متعدد برای برنامهریزی تعاریف متعددی ارائه کردهاند که برخی از آنها از این قرار است:
تعیین هدف، یافتن و ساختن راه وصول به آن،
تصمیمگیری در مورد اینکه چه کارهایی باید انجام گیرد،
تجسم و طراحی وضعیت مطلوب در آینده و یافتن و ساختن راهها و وسایلی که رسیدن به آن را فراهم کند،
طراحی عملیاتی که شیئی یا موضوعی را بر مبنای شیوهای که از پیش تعریف شده، تغییر بدهد.
برنامه ریزی، نوعی پدیده عینی اجتماعی است و خصوصیت های ویژه خود را دارد در عین حال، یک رویداد منحصربهفرد نیست که دارای یک ابتدا و انتهای مشخص باشد بلکه یک فرایند مستمر و دائمی و منعکس کننده تغییرات و در صدد رسیدن به اهداف است. در سازمان های پیچیده امروزی، بدون برنامه ریزی های دقیق، امکان ادامه حیات نیست و برنامه ریزی، مستلزم آگاهی از فرصت ها و تهدیدهای آتی و پیش بینی شیوه مواجهه با آنها است.
مدیران، برنامه ریزی و تصمیم گیری
تصمیم گیری، رکن اساسی تمام وظایف مدیریتی و در عین حال، مبنای برنامه ریزی است چرا که نمی توان گفت برنامه ای وجود دارد مگر اینکه تصمیمی اتخاذ شده باشد. به عبارت بهتر، تصمیم گیری، هسته مرکزی مدیریت است که در تمامی وظایف دیگر، نموددارد، به همین دلیل برخی (مانند هربرت سایمون) مدیریت و تصمیم گیری را دو واژه مترادف می دانند!
به جرأت می توان گفت برنامه ریزی و تصمیم گیری، برای نیل به اهداف سازمان مکمل اند اما نوع اتخاذ تصمیم نیز نقش به سزایی ایفا می کند با وجودی که تصمیم گیری به کلیه وظایف مدیریتی مربوط می شود، اما اساس برنامه ریزی به شمار می آید و نمی توان گفت برنامه ای وجود دارد بدون اینکه تصمیمی گرفته شده باشد. از این رو، تصمیم گیری از ارکان اساسی فعالیت های مدیریتی به شمار می رود چرا که هر مدیری برای اجرای هریک از وظایف خود، همواره با مواردی مواجه می شود که نیاز به تصمیم گیری دارد.
برنامه ریزی به عنوان وظیفه مدیران
برنامه ریزی از وظایف بسیار مهم مدیران است و با سایر وظایف آنها ارتباطی تنگاتنگ دارد. اگر نگرش مبتنی بر برنامه ریزی در سراسر زندگی فردی و سازمانی تسری یابد، نوعی تعهد به عمل بر مبنای تعقل و تفکر آینده نگر و عزم راسخ بر استمرار آن ایجاد می شود. به نوعی، تحقق اهداف فردی و سازمانی، مستلزم برنامه ریزی است. نیاز به برنامه ریزی از آنجا است که همه سازمان ها با فعالیت در محیطی پویا، مترصد آن هستند که منابع محدودشان را برای رفع نیازهای متنوع و فزاینده خود صرف نمایند و این پویایی محیط و وجود تلاطم و عدم اطمینان ناشی از تغییرات محیطی، بر ضرورت انکار ناپذیر برنامه ریزی می افزاید.
با پذیرفتن اصول پنج گانه مدیریتی، و مبنای برنامه ریزی برای این اصول، به این اجماع نظر می رسیم که برنامه ریزی، فرایندی است دارای مراحل مشخص و بهم پیوسته برای تولید یک خروجی منسجم در قالب سیستمی هماهنگ از تصمیم هاکه در این فرایندی، مراحل مشخص و بهم پیوستهای برای تولید یک خروجی منسجم در قالب سیستمی هماهنگ از تصمیم ها وجود دارد. طی این فرایند، به پیش بینی و تدوین فعالیت هایی پرداخته می شود که باید در جهت نیل به اهداف سازمانی صورت گیرد. به عبارت بهتر در فرایند برنامه ریزی، به: چه کسی؟ کجا؟ کِی؟ چه چیزی؟ چرا؟ چگونه؟ پرداخته می شود و پاسخ به این پرسش ها به انتخاب مأموریت ها، هدف ها و اقداماتی برای نیل به آنها می انجامد که مستلزم تصمیم گیری و انتخاب از میان راه های مختلف است. برنامه ریزی می تواند، نقش مهمی در کمک به جلوگیری از اشتباهات یا تشخیص فرصت های پنهان بازی کند. برنامه ریزی به پیش بینی آینده و ساختن آینده تا حدودی قابل تصور کمک می کند. آن پلی است بین آنجایی که هستیم و آنجایی که می خواهیم برویم. برنامه ریزی به آینده می نگرد.
تعریف برنامه ریزی
نگاهی به واژه نامه های عمومی و تخصصی، کافی است تا تعاریفی از این دسته را پیش روی ما قرار دهد. اغلب واژه نامه های عمومی برنامه ریزی را کار یا فعالیت برنامه ریز؛ شکل گیری برنامه ها؛ ساخت یا ترسیم یک طرح یا نمودار؛ کشیدن طرح، طراحی، تدبیر کردن دانستهاند واژه نامه های تخصصی نیز آن را، شیوه و فرایند سیستماتیک و گام به گامی دانسته اند که به تعریف، ایجاد و ترسیم فعالیت های ممکنی می پردازد که با نیازها، علایق و مشکلات موجود یا آینده مطابقت داشته باشند
به عبارت دیگر، برنامه ریزی فرایندی است منظم مداوم وحساب شده ومنطقی جهت دار و دورنگر به منظورهدایت وارشاد فعالیتهای جمعی برای رسیدن به هدف مطلوب است .برنامه ریزی بایدمداومت داشته باشد. اهداف برنامه ریزی به شرح زیراست 1)پیش بینی آینده: برنامه آینده نگر 2)برنامه ساختن وشکل دادن به آینده: برنامه آینده ساز 3)برنامه برای انتخاب یک شکل خاص برای آینده :آینده گزین.
متخصصین ، برنامه ریزی را با توجه به حوزه ی فعالیت خود تعریف نموده اند. این واژه، در زمینه علوم و فنون بیشتر با واژه طراحی (designing) عجین شده. هر چند که:این برداشت تقلیل گرایانه و البته این واژه در متون مدیریتی جایگاهی ندارد!
مزایای برنامه ریزی
برخی از مزایای برنامه ریزی عبارتند از:
افزایش احتمال تحقق اهداف سازمان
ایجاد فرصتِ اجرای منظم تصمیم ها
صرفه اقتصادی
انطباق با شرایط متغیر محیطی
استفاده صحیح از منابع
فراهم شدن ابزارهای کنترل
امکان سنجش میزان پیشرفت
آگاهی کارکنان از اهداف سازمان و نقش خود
تقویت کار گروهی
رسیدن به اهداف شخصی
چالش های برنامه ریزی:
چالش های عمده برنامه ریزی از دید برخی منتقدان این امر عبارتند از:
1. حوادث غیر منتظره ای که می تواند تمام پیش بینی ها را نقش بر آب کند! 2.عوض شدن فکر
تغییر رویه هایی که ممکن است مقاومت ایجاد نماید.
1. صرف هزینه و وقت. 2. محدودیت های کوتاه مدت و مقطعی.
تصمیم گیری
واژه تصمیم در لغت به معنای عزم و اراده به انجام کاری است و از دید علم مدیریت، به معنای انتخاب یک راه از راه های مختلف و در حقیقت، انتخاب بهترین راه برای نیل به اهداف است. تصمیم گیری، بیش از آنکه کاری ساده باشد، فرایندی مرحله دار است.
گونه شناسی تصمیم گیری
گونه های مختلفی از تصمیم گیری را از دیدگاه های مختلف می توان شناسایی نمود. برخی از این گو نه ها عبارتند از:
تصمیم گیری به اعتبار برنامه (برنامه ریزی شده و برنامه ریزی نشده)
تصمیم گیری به اعتبار میزان اطلاعات
تصمیم گیری به اعتبار تصمیم گیرنده (فردی و گروهی)
تصمیم گیری به اعتبار درجه استقلال
تصمیم گیری به اعتبار میزان ساختار یافتگی
سایر موارد
مراحل تصمیم گیری
برآیند نسبتاً کلی از مراحلی که برای فرایند تصمیم گیری در متون مختلف طرح شده است را می توان در موارد زیر خلاصه نمود:
اطمینان از وجود نیاز به تصمیم
تعیین معیارهای تصمیم گیری
تشخیص میزان اهمیت معیارها
کشف راه حل ها
ارزیابی راه حل ها
انتخاب بهترین راه حل
برنامهسازی مفرط
برنامهسازی مفرط (به انگلیسی: extreme programming) که به اختصار XP نیز خوانده میشود، یک متدولوژی توسعه نرمافزار است که در آن هدف افزایش کیفیت نرمافزار و پاسخگویی به نیازمندیهای در حال تغییر کاربر است. به عنوان گونهای از توسعه چابک نرمافزار (agile software development) از انتشار (release)های متناوب در چرخههای کوتاه توسعه با هدف بهبود قابلیت تولید و معرفی نقاط کنترلی (Check Point) برای تطابق با نیازمندیهای جدید کاربر، دفاع میکند.
اسکرام
چارچوب یا فرایند مدل اسکرام یک چارچوب تکرارپذیر و افزایشی برای کنترل پروژه (مدیریت نرمافزار) است که معمولاً در زیر شاخه مدل فرایند تولید نرمافزار چابک و سریع است. و یک نوع مدل تولید نرمافزار در مهندسی نرمافزار بحساب میرود.اسکرام یک چارچوب تولید نرمافزار از سری روشهای تفکر چابک (Agile) میباشد. اسکرام یک چارچوب یا فرایند؟ مسئله این است، دراین موضوع کاملاً بین متخصصان اسکرام دوگانگی وجود دارد. اشخاصی مانند کن شوئبر (مبدع اسکرام) دائماً از لفظ چارچوب(framework) استفاده میکنند و تاکید مینمایند که همه باید این مورد را قبول داشته باشند ولی بعضی دیگر از دوستان از لفظ فرایند و یا متدولوژی برای اسکرام استفاده میکنند.
تاریخچه
این روش در سال ۱۹۸۶ توسط هیروتاکا تاکوچی و ایکوجیرو نوناکا بعنوان یک خط مشی جدید برای تولید نرمافزارهای تجاری که باید قابلیت سرعت در تولید و انعطاف پذیری را داشته باشند، عرضه شده گردید. اسم اسکرام از یک نوع بازی در فوتبال راگبی آمده است
اسکرام (Scurm) یک متدولوژی افزایشی (Incremental) برای مدیریت پروژههای نرمافزاری است و از رده متدولوژیهای Agile محسوب میشود. این متدولوژی اولین بار در ژاپن اختراع شد و بعدها در سال ۱۹۹۱ توسط Stahl و Degrace توسعه داده شد. درسال ۱۹۹۵ این متدولوژی توسط Ken Schwober و Jeff Stherland بعنوان یک متدولوژی رسمی برای تولید نرمافزار بکار گرفته شد.
مشخصات
با اینکه روش اسکرام در واقع یک روش برای کل فرایند تولید نرمافزار در پروژهها به شمار میرود اما اختصاصاً برای کنترل پروژه نرمافزار استفاده میگردد، همچنین امکان استفاده از این روش در نگهداری و پشتیبانی نرمافزار به عنوان برنامه و خط مشی عمومی وجود دارد.
اسکرام دربردارنده مجموعهای از روش (Practice)ها و نقشهای از قبل تعریف شده است اما سه ویژگی است که پایههای وجودی اسکرام هستند:
۱- شفافیت و روشنی Transparency: یعنی اینکه تمام جنبههای مختلف فرایند که بر خروجی آن اثر میگذارد بایستی برای آنهایی که فرایند را کنترل میکنند مشهود و قابل دید باشد. نه فقط این جنبهها باید شفاف باشد بلکه بایستی مشخص و معلوم هم باشند یعنی اگر کسی که فرایند را ممیزی میکند تشخیص دهد که چه چیزی انجام شده، این باید مطابق با تعریف انجام شده Done از دید تمام افراد درگیر در پروژه باشد. اگر توافقی بین همه طرفهای درگیر در پروژه بر سر معانی و مفاهیم نباشد، مشهود بودن اینکه یک قابلیت یا ویژگی انجام شده یا خیر، دیگر محلی از اعراب ندارند.
۲- ممیزی و وارسی Inspection: جنبههای مختلف فرایند تولید نرمافزار بایستی مدام به اندازهای در حال وارسی و چک باشند که انحرافات فرایند قابل تشخیص باشد.
۳- انطباق Adaption: اگر بازرس و ممیز فرایند پس از بازرسی فرایند، تشخیص داد که یک یا چند جنبه از فرایند خارج از حدود قابل قبول است و باعث غیر قابل پذیرش شدن محصول تولیدی میشود، آن شخص باید فرایند یا آنچه که فرایند بر روی آن انجام میشود را تنظیم و تعدیل کند. این کار باید در سریعترین زمان ممکنه انجام شود تا از انحرافات بیشتر جلوگیری شود.
نقشها
نقشهای عمده در اسکرام عبارتند از:
ScrumMaster که وظیفه نگهداری و حفظ فرایند را برعهده دارد.
Product Owner که نماینده ذینفعان (Stakeholders)های پروژه و business است.
Team Member عضوی از یک گروه cross-function است که معمولاً بیش از ۷ نفر نیستند. این افراد عملیات تحلیل٫ طراحی٫ پیاده سازی، تست و... را انجام میدهند.
تعریف هر نوع نقش یا سمت به جز سه نقش گفته شده در اسکرام ممنوع است. به عنوان مثال اعضای تیم نمیتوانند سمتهای متفاوتی داشته باشند.
روند کار اسکرام
مثل تمام متدولوژیهای Incremental و Iterative اینجا هم ما دورههای زمانی یا iteration داریم که در طی آنها محصول نهایی پروژه بتدریج تکمیل میشود. این دورههای زمانی را در اسکرام اصطلاحاً sprint نامیده میشوند.
در طی یک Sprint که معمولاً یک دوره دو تا چهار هفته است (طول دوره را تیم مشخص میکند) اعضاء تیم یک محصول بالقوه قابل ارائه و قابل استفاده را تدریجاً تولید میکنند. بطور رسمی دوره هر sprint یک ماه یا سی روز در نظر میگیرند.
مجموعه ویژگیهایی از محصول نهایی پروژه که در یک sprint محقق میشود از یک Requirements Repository بنام Sprint Backlog استخراج میشود.
اصطلاح Product Backlog نامی است که به بانک اطلاعاتی نیازمندهای عملیاتی و غیر عملیاتی کل یک پروژه اطلاق میشود و در حقیقت مجموعهای اولویت بندی شده از نیازمندیهای سطح بالای سیستمی است که در نهایت بایستی تحویل داده شود.
Sprint Planning Meeting
مواردی از Product Backlog که در طی یک sprint بایستی انجام شود در طول جلسه برنامه ریزی sprint مشخص میشود. اصطلاحاً این جلسه را Sprint Planning Meeting مینامند.
در طول این جلسه، Product Owner اعضاء تیم را دربارهٔ مواردی از Product Backlog محصولی که میخواهند تکمیل شود، آگاه میکند. سپس اعضاء تیم مشخص میکنند که چه مقدار از موارد مشخص شده توسط Product Owner را میتوانند در این sprint انجام دهند و چه میزان از آنرا در sprintهای بعدی.
مواردی از Product Backlog که قرار است در یک Sprint انجام شود را اصطلاجاْ Sprint Backlog مینامند. مفاد Sprint Backlog در واقع توافقی است بین اعضاء تیم و Product Owner برای انجام بخشی از نیازمندیهای پروژه در طول sprint جاری و بهرحال طبیعی است که بعد از تصویب شدن مفاد یک sprint، هیچکس نمیتواند آنرا در طول sprint تغییر دهد. در طول دوره، نیازمندیهای لحاظ شده در Sprint Backlog از Product Backlog بر داشته میشوند. اما امکان دارد به دلایلی که در ادامه میآید این نیازمندیهای دوباره به Product Backlog برگردد.
مانند تمام متدولوژیهای iterative توسعه نرمافزار در اسکرام نیز Time Boxed است، به این معنی که sprint بایستی دقیقاً سروقت تمام شود و اگر نیازمندیهای اشاره شده در Spring Backlog به هر علتی تکمیل نشده باشند آنها را کنار گذاشته و دوباره وارد Product Backlog میکنند.
بعد از خاتمه یک sprint، اعضاء تیم طی جلسهای به Product Owner و سایر ذینفعان پروژه نشان میدهند که چکار کردهاند و چطور از نسخه جاری نرمافزار میشود استفاده کرد.
در سادهترین روش معمولاً از نرمافزارهای صفحه گستره (Spread Sheet) همچون LibreOffice Calc یا Microsoft Excel برای ساختن و نگهداری Product Backlog و Sprint Backlog استفاده میشود، اما میتوان از طیف وسیعی از ابزارهای نرمافزاری که برای استفاده در تیمهای Agile نوشته شدهاند نیز استفاده کرد.
توسعهدهنده نرمافزار
تولیدکننده نرمافزار یا توسعهدهنده نرمافزار (به انگلیسی: Software developer) در مبحث توسعهٔ نرمافزار به هر کسی اطلاق میشود که بخشی از فرایند تولید نرمافزار را برعهده داشته باشد. یعنی هر یک از موقعیتهای زیر جزو توسعهدهندگان محسوب میشوند:
مدیر پروژهٔ نرمافزار
تحلیلگر کسب و کار نرمافزار
طراح نرمافزار
برنامهنویس
آزمونگر نرمافزار
برای هر برنامه یا نرمافزاری ممکن است تمام یا بخشی از اعضای این تیم حاضر باشند.
توسعه نرمافزاری چابک
توسعه چابک نرمافزار یا توسعه نرمافزاری چابک گروهی از متدهای توسعهٔ نرمافزار مبتنی بر تکرار و به شکل تدریجی است که در آنها، راهحلها از طریق خودسازماندهی و همکاری بین تیمهای مختلف کاری، انجام میشوند. این روش برنامهریزی تطبیقی، توسعه و تحویل تکاملی و رویکرد زمان بستهبندیِ تکرارشونده را ارتقا میبخشد و پاسخهای سریع و انعطافپذیر برای انجام تغییرات را تقویت میکند. در واقع چابکسازی یک چارچوب مفهومی است که پیشبینی تعاملات در سراسر چرخهٔ توسعه را بهبود میبخشد. مانیفست چابک در سال ۲۰۰۱ این اصطلاح را معرفی کرد.
تاریخچه
سوابق
متدهای توسعهٔ افزایشی نرمافزار به سال ۱۹۵۷ برمیگردند. در سال 1974، E.A. Edmonds در مقالهای فرایند توسعهٔ تطبیقی نرمافزار را معرفی کرد. همزمان و به طور مستقل متدهای مشابه توسعه یافت و توسط مرکز توسعهٔ سیستمهای شرکت تلفن نیویورک زیر نظر Dan Gielan گسترش یافت. اوایل دههٔ 1970، Tom Gilb شروع به انتشار مفاهیمی در مورد کنترل تحولی پروژه (EVO) کرد، که به مهندسی رقابتی توسعه یافت. در طول نیمه تا انتهای دههٔ 1970 Gielan به طور گسترده در ایالات متحده در مورد این متدولوژی، تجارب و فواید آن سخنرانیهایی ارائه داد.
متدهای توسعهٔ به اصطلاح چالاک و چابک نرمافزار اواسط دههٔ ۱۹۹۰ به صورت یک عکسالعمل در مقابل متدهای سنگین آبشاری مطرح شد، که توسط منتقدان آن به صورت یک مدل توسعهٔ به شدت منظم، دستهبندیشده، میکرو مدیریتی و آبشاری توصیف شده است. استدلالکنندگان متدهای چالاک و چابک ادعا میکنند، این متدها به منزلهٔ بازگشت به تجارب توسعهٔ نرمافزار در اوایل تاریخ هستند. پیادهسازیهای اولیهٔ متدهای چابک، شامل Rational Unified Process (1994)، Scrum (1995)، Crystal Clear، برنامهنویسیExtreme (1996)، توسعهٔ تطبیقی نرمافزار، توسعهٔ ویژگیمحور و متد توسعهٔ سیستمهای دینامیک (DSDM، 1995) میشود. بعد از انتشار مانیفست چابک در سال ۲۰۰۱، اکنون اینها به طور معمول به متدولوژیهای چابک برمیگردند.
مانیفست چابک
در فوریهٔ ۲۰۰۱، تعداد ۱۷ توسعهدهندهی نرمافزار، در Snowbird یوتا ملاقاتی داشتند تا در مورد متدهای توسعهی چالاک گفتگو کنند.
آنها برای توصیف رویکردی که اکنون به عنوان «توسعهی چابک نرمافزار» شناخته میشود، مانیفستی برای توسعهی چابک نرمافزار منتشر کردند. بعضی از نویسندگان این مانیفست اتحاد Agile را ایجاد کردند ، یک سازمان غیرانتفاعی که توسعهی نرمافزار را بر اساس اصول مانیفست ترویج میدهند.
تمام مانیفست چابک به شرح زیر است:
ما با توسعه نرمافزار و کمک به دیگران در انجام آن، در حال کشف راه های بهتری برای توسعه نرمافزار هستیم. از این کار به ارزش های زیر میرسیم :
۱- افراد و تعاملات بالاتر از فرایندها و ابزارها
۲- نرمافزار کار کننده بالاتر از مستندات جامع
۳- مشارکت مشتری بالاتر از قرارداد کاری
۴- پاسخگویی به تغییرات بالاتر از پیروی از یک برنامه
با آنکه موارد سمت چپ ارزشمند هستند ولی ما برای موارد سمت راست ارزش بیشتری قائل هستیم.
معنی آیتمهای سمت راست مانیفست در مفهوم توسعهی چابک نرمافزار در زیر توضیح داده شده است:
افراد و تعاملات بالاتر از فرایندها و ابزارها
افراد مهمترین نقش را در پیروزی یک پروژه دارند. یک فرایند عالی بدون نیروی مناسب منجر به شکست میگردد و بر عکس افراد قوی تحت فرایند ضعیت ناکارآمد خواهند بود.
یک نیروی قوی لازم نیست که برنامه نویسی عالی باشد، بلکه کافیست که یک برنامه نویسی معمولی با قابلیت همکاری مناسب با سایر اعضای تیم باشد. کار کردن با دیگران، تعامل درست و سازنده با سایر اعضای تیم خیلی مهمتر از این که یک برنامه نویس با هوش باشد. برنامه نویسان معمولی که تعامل درستی با یکدیگر دارند به مراتب موفقتر هستند از تعداد برنامه نویسی عالی که قدرت تعامل مناسب با یکدیگر را ندارند.
در انتخاب ابزارها آنقدر وقت نگذارید که کار اصلی و تیم را فراموش کنید. به عنوان مثال میتوانید در شروع به جای بانک اطلاعاتی از فایل استفاده کنید، به جای ابزار کنترل کد گرانقیمت از برنامه رایگان کد باز استفاده کنید. باید به هیچ ابزاری عادت نکنید و صرفاً به آنها به عنوان امکانی جهت تسهیل فرایندها نگاه کنید.
نرمافزار کار کننده بالاتر از مستندات جامع
نرمافزار بدون مستندات، فاجعه است. کد برنامه ابزار مناسبی برای تشریح سیستم نرمافزاری نیست. تیم باید مستندات قابل فهم مشتری بسازد تا ابعاد سیستم از تجزیه تحلیل تا طراحی و پیاده سازی آن را تشریح نماید.
با این حال، مستندات زیاد از مستندات کم بدتر است. ساخت مستندات زیاد نیاز به وقت زیادی دارد و وقت بیشتری را می گیرد تا آن را با کد برنامه به روز نمایید. اگر آنها با یکدیگر به روز نباشند باعث درک اشتباه از سیستم می شوند.
بهتر است که همیشه مستندات کم حجمی از منطق و ساختار برنامه داشته باشید و آن را به روز نماید. البته آنها باید کوتاه و برجسته باشند. کوتاه به این معنی که ۱۰ تا ۲۰ صفحه بیشتر نباشد و برجسته به این معنی که طراحی کلی و ساختار سطح بالای سیستم را بیان نماید.
اگر فقط مستندات کوتاه از ساختار و منطق سیستم داشته باشیم چگونه می توانیم اعضای جدید تیم را آموزش دهیم؟ پاسخ کار نزدیک شدن به آنها است. ما دانش خود را با نشستن در کنار آنها و کمک کردن به آنها انتقال میدهیم. ما آنها را بخشی از تیم میکنیم و با تعامل نزدیک و رو در رو به آنها آموزش میدهیم.
مشارکت مشتری بالاتر از قرارداد کاری
نرمافزار نمیتواند مثل یک جنس سفارش داده شود. شما نمیتوانید یک توصیف از نرمافزاری که می خواهید را بنویسید و آنگاه فردی آن را بسازد و در یک زمان معین با قیمت مشخص به شما تحویل دهد. بارها و بارها این شیوه با شکست مواجه شده است.
این قابل تصور است که مدیران شرکت به اعضای تیم توسعه بگویند که نیازهای آنها چیست، سپس اعضای تیم بروند و بعد از مدتی برگردند و یک سیستمی که نیازهای آنها را برآورده می کند، بسازند. اما این تعامل به کیفیت پایین نرمافزار و در نهایت شکست آن می انجامد. پروژه های موفق بر اساس دریافت بازخورد مشتری در بازه های زمانی کوتاه و مداوم است. به جای وابستگی به قرارداد یا دستور کار، مشتری به طور تنگاتنگ با تیم توسعه کار کرده و مرتباً اعمال نظر میکند.
قراردادی که مشخص کننده نیازمندیها، زمانبندی و قیمت پروژه است، اساساً نقص دارد. بهترین قرارداد این است که تیم توسعه و مشتری با یکدیگر کار کنند.
پاسخگویی به تغییرات بالاتر از پیروی از یک برنامه
توانایی پاسخ به تغییرات اغلب تعیین کننده موفقیت یا شکست یک پروژه نرمافزاری است. وقتی که طرحی را میریزیم باید مطمئن شویم که به اندازه کافی انعطاف پذیر است و آمادگی پذیرش تغییرات در سطح بیزنس و تکنولوژی را دارد.
مسیر یک پروژه نرمافزاری نمیتواند برای بازه زمانی طولانی برنامه ریزی شود. اولاً احتمالاً محیط تغییر میکند و باعث تغییر در نیازمندی ها میشود. ثانیاً همین که سیستم شروع به کار کند مشتریان نیازمندیهای خود را تغییر می دهند. بنابراین اگر بدانیم که نیازها چیست و مطمئن شویم که تغییر نمیکنند، قادر به برآورد مناسب خواهیم بود، که این شرایط بعید است.
یک استراتژی خوب برای برنامه ریزی این است که یک برنامه ریزی دقیق برای یک هفته بعد داشته باشیم و یک برنامه ریزی کلی برای سه ماه بعد.
اصول چابک
بر اساس نظرات Kent Beck، مانیفست چابک، بر ۱۲ اصل استوار است:
رضایت مشتری از طریق تحویل سریع نرمافزار مفید؛
استقبال از تغییرات نیازمندیها، حتی در اواخر توسعه؛
نرمافزار کار زود به زود تحویل میشود (هفتگی به جای ماهانه)؛
نرمافزار کار مقیاس اصلی پیشرفت است؛
توسعهی پایدار، قادر به حفظ سرعت ثابت است؛
همکاری نزدیک و روزانه بین افراد کسبوکار و تیم توسعه؛
مکالمهی رو در رو بهترین شکل ارتباطات است (محل مشترک)؛
پروژهها در اطراف افراد باانگیزه، که باید به آنها اعتماد کرد، شکل میگیرند؛
توجه مستمر به برتری فنی و طراحی خوب؛
سادگی- هنر به حداکثر رساندن کارهای انجامنشده- ضروری است؛
تیمهای خودسازماندهی؛
انطباق با تغییرات محدودیتها به طور منظم.
در سال ۲۰۰۵، گروهی به ریاست Alistair Cockburn و Jim Highsmith ضمیمهای تحت عنوان «اعلامیهی وابستگی» برای اصول مدیریت پروژه نوشتند، که مدیریت پروژههای نرمافزاری را بر اساس متدهای توسعهی نرمافزار پیش ببرد..
مشخصات
متدهای توسعهی چابک مشخص زیادی وجود دارند، که بیشترشان توسعه، کار تیمی، همکاری و سازگاری فرایند در چرخهی حیات پروژه را ترفیع میدهند. متدهای چابک وظایف را به گامهای کوچک با کمترین میزان برنامهریزی میشکنند که به طور مستقیم با برنامهریزیهای طولانیمدت درگیر نیستند. تکرارها فریمهای (بستههای زمانی) کوتاهمدتی هستند که معمولاً بین یک تا چهار هفته طول میکشند. هر تکرار دارای یک تیم متقابل عملکردی در تمام مأموریتها است: تحلیل نیازمندیها، طراحی، کدنویسی، واحد تست، و قبولی در تست. در پایان هر تکرار یک محصول کاری به ذینفعان نشان داده میشود. این، ریسک کلی را به حداقل رسانده و اجازه میدهد پروژه خیلی سریع با تغییرات منطبق شود. ممکن است یک تکرار قابلیت کافی برای تضمین پخش در بازار را نیفزاید، اما هدف، انتشار در دسترس (با حداقل شکاف) در پایان هر تکرار است. شاید تکراهای چندگانه نیاز به انتشار یک محصول یا ویژگیهای جدید داشته باشند. ترکیب تیم در یک پروژهی چابک معمولاً عملکردی متقابل و خودسازماندهی است، بدون توجه به هرگونه سلسلهمراتب شرکتی یا نقشهای شرکتی اعضای تیم. اعضای تیم به طور معمول مسئولیت وظایفی را که قابلیت نیازهای تکرار را ارائه میدهد، بر عهده میگیرند. آنها به صورت جداگانه تصمیم میگیرند که چگونه با نیازمندیهای یک تکرار مواجه شوند.
متدهای چابک، وقتی تیمها با هم در یک مکان هستند، بر ارتباطات رو در رو برای تمام مستندات نوشتهشده تأکید دارد. بیشتر تیمهای چابک در یک دفتر تکواحدی (به نام bullpen) کار میکنند، که چنین ارتباطاتی را تسهیل میکند. به منظور ساده کردن ارتباطات و همکاری تیمی، گروه معمولاً کوچک (بین 5 تا 9 نفره) است. پروژههای بزرگ توسعه میتوانند توسط تیمهای کاری چندگانه در راستای یک هدف رایج یا در بخشهای متفاوت یک پروژه تحویل شوند. ممکن است این امر نیاز به هماهنگی اولویتهای تمام تیمها داشته باشد. وقتی تیمی در مکانهای مختلفی کار میکند، افراد ارتباط روزانهشان را از طریق ویدئو کنفرانس، صدا، ایمیل و... حفظ میکنند.
مهم نیست چه دیسیپلینهای توسعهای لازم است، هر تیم چابک، یک پاسخگوی مشتری دارد. این شخص توسط ذینفعان به نمایندگی انتخاب میشود و یک تعهد فردی ایجاد میکند که برای پاسخگویی به سؤالات اواسط تکرار، در دسترس توسعهدهندگان باشد. در انتهای هر تکرار، ذینفعان و نمایندهی مشتریان پیشرفت را بررسی میکنند، اولویتها را با دید بهینهسازی بازگشت سرمایه (ROI) مجدداً میسنجند و از انطباق نیازهای مشتری با اهداف شرکت اطمینان حاصل میکنند. بیشتر پیادهسازیهای چابک از ارتباطات غیر رسمی، روزانه و رو در رو در میان اعضای تیم بهره میگیرند. این به طور خاص شامل نمایندهی مشتری و هر کدام از ذینفعان علاقهمند به عنوان ناظر میشود. در یک جلسهی مختصر، هر کدام از اعضای تیم گزارش میدهند که در روز گذشته چه کردهاند، قصد دارند در روز جاری چه کارهایی انجام دهند و موانع پیش رویشان کدامند. این ارتباطات رو در رو مشکلات را به محض بروز، افشا میکند. «این جلسات روزانه، گاهی به صورت ایستاده یا نشستهای اسکرام هر روز در یک زمان و مکان ثابت برگزار میشوند و نباید بیش از 15 دقیقه طول بکشند. معمولاً جلسات ایستاده این نقش را دارند.»
توسعهی چابک بر کار نرمافزار به عنوان مقیاس اصلی پیشرفت تأکید دارد، که با مزیت ارتباطات رو در رو در هم آمیخته شده، و نسبت به سایر متدها مستندات مکتوب کمتری تولید میشود. متد چابک ذینفعان را به اولویتبندی «خواستهها» با نتایج حاصل از سایر تکرارها، بر اساس ارزش کسبوکار مشاهدهشده در ابتدای تکرار (که با عنوان ارزشمحور شناخته میشود) ترغیب میکند.
ابزارها و تکنیکهای خاص، مانند یکپارچهسازی مستمر، تست اتوماتیک یا xUnit، برنامهنویسی دوجزئی، توسعهی آزمونمحور، الگوهای طراحی، طراحی دامنهمحور، code refactoring و دیگر تکنیکها اغلب برای بهبود کیفیت و افزایش چابکی پروژه به کار میروند.
توسعهی کمیچابک (LAD) چاشنی متدولوژی چابک است که تکنیکهای دستچین را (از طیف وسیعتری از پروژههای چابک) برای شرکتهای مناسب مختلف، تیمها، موقعیتها و محیطهای توسعه به کار میبندد. یکی دیگر از جنبههای کلیدی LAD متمایل به کاربرمحور بودن است، در درجهی اول بر تجارب کاربر و واسطهای نرمافزاری قابلاستفاده تمرکز میکند و برای تحویل آنها متدولوژیهای چابک را به کار میبندد. بیشتر پیادهسازیهای چابک دنیای واقعی در عمل واقعاً LAD هستند، چون ارزش اصلی متدولوژی به انعطافپذیری، معقول بودن و تمرکز بر کارهایی که انجام شده، است.
در توسعهی چابک نرمافزار، یک رادیاتور اطلاعات، صفحهنمایشی فیزیکی (معمولاً بزرگ) واقع در صدر دفتر کار است، جایی که رهگذران بتوانند آن را ببینند. این صفحهنمایش خلاصهای از آخرین وضعیت محصول(های) نرمافزاری را نمایش میدهد. این نام توسط Alistair Cockburn ابداع و در کتاب «توسعهی چابک نرمافزار» در سال 2002 توصیف شد. ممکن است یک نشانگر نوری برای آگاه کردن اعضای تیم در مورد وضعیت فعلی پروژهشان به کار رود.
اسکرام یک روش چابکِ تکرارشونده و افزایشی برای مدیریت پروژه است که معمولاً در الگوی تولید نرمافزار چابک به عنوان نوعی متدولوژی توسعه نرمافزار دیده میشود. با اینکه روش اسکرام در واقع برای مدیریت محصولات تولید و توسعه پروژهها پیشنهاد شده بود، اما استفاده آن در مدیریت پروژههای تولید نرمافزار متمرکز شد؛ همچنین امکان دارد جهت مدیریت تیم نگهداری نرمافزار، مدیریت پروژهها یا برنامههای عمومی مدیریت خط مشیها استفاده شود.
الگوهای بهبودسازی
الگوی تکامل قابلیت یکپارچه سازی (CMMI)
الگوی تکامل قابلیت یکپارچهسازی (CMMI) یکی از الگوهای پیشنهادی و تکنیکهای پیشتاز است. ارزیابی سازمانهای مستقل و رتبهبندی در مورد کیفیت چگونگی تعریف فرایندهای آن سازمانها را دنبال میکند، نه بر کیفیت خود فرایندها یا نرمافزار تهیه شده است. الگوی CMMI جایگزین الگوی CMM شده است.
ایزو ۹۰۰۰
ایزو ۹۰۰۰ یک استاندارد رسمی سازماندهی فراینده ساخت محصولات و روشی برای مدیریت و نظارت پیشرفت کارهاست. در اصل این استاندارد برای بخش تولید وساخت(صنعتی) ایجاد شد.ایزو ۹۰۰۰ همچنین برای فرایند تولید نرمافزار نیز به خوبی استفاده شده.مانند الگو CMMI مدرک ایزو ۹۰۰۰ هیچ تضمینی راجع به کیفیت نتایج نهایی ندارد و فقط فرایندهای کاری را فرموله و قالب استاندارد رسمی می دهد.
ایزو ۱۵۵۰۴
ایزو ۱۵۵۰۴ که با عنوان فرایند تشخیص و تعیین بهبود قابلیت نرمافزار (به انگلیسی: Software Process Improvement and Capability Determination)(مخفف انگلیسی: SPICE) نیز شناخته میشود، چارچوبی برای ارزیابی فرایندهای نرمافزار است. این استاندارد تنظیمات قالب روشنی برای مقایسه فرایندها به شمار میرود. SPICE خیلی شبیه CMMI استفاده میشود. فرایندهای این الگو برای مدیریت، کنترل، راهنمایی و نظارت تولید نرمافزار است. این الگو جهت سنجش سازماندهی تولید و توسعه یا تیم پروژه بصورت واقعی در طول مدت تولید نرمافزار استفاده میشود. تجزیه و تحلیل این اطلاعات برای شناسایی نقاط ضعف و حرکت به سمت بهبود پروژه استفاه میشود. همچنین برای تشخیص نقاط قوت پروژه که می تواند برای سازمان یا تیم پروژه ادامه پیدا کند یا برای امور مشترک یکپارچه شود.
برنامهریزی
برنامه ریزی، فرایندی برای رسیدن به اهداف است. بسته به فعالیتها، هر برنامه می تواند که بلند مدت، میان مدت یا کوتاه مدت باشد. برای مدیرانی که در جستجوی حمایتهای بیرونی هستند، برنامه ریزی، مهمترین و کلیدیترین سند برای رشد است.برنامه ریزی می تواند، نقش مهمی در کمک به جلوگیری از اشتباهات یا تشخیص فرصتهای پنهان بازی کند. برنامه ریزی به پیش بینی آینده و ساختن آینده تا حدودی قابل تصور کمک می کند. آن پلی است بین آنجایی که هستیم و آنجایی که می خواهیم برویم. برنامه ریزی به آینده می نگرد.
برنامهریزی یا طرحریزی یعنی اندیشیدن از پیش. متخصصین از زوایای متعدد برای برنامهریزی تعاریف متعددی ارائه کردهاند که برخی از آنها از این قرار است:
تعیین هدف، یافتن و ساختن راه وصول به آن،
تصمیمگیری در مورد اینکه چه کارهایی باید انجام گیرد،
تجسم و طراحی وضعیت مطلوب در آینده و یافتن و ساختن راهها و وسایلی که رسیدن به آن را فراهم کند،
طراحی عملیاتی که شیئی یا موضوعی را بر مبنای شیوهای که از پیش تعریف شده، تغییر بدهد.
برنامه ریزی، نوعی پدیده عینی اجتماعی است و خصوصیت های ویژه خود را دارد در عین حال، یک رویداد منحصربهفرد نیست که دارای یک ابتدا و انتهای مشخص باشد بلکه یک فرایند مستمر و دائمی و منعکس کننده تغییرات و در صدد رسیدن به اهداف است. در سازمان های پیچیده امروزی، بدون برنامه ریزی های دقیق، امکان ادامه حیات نیست و برنامه ریزی، مستلزم آگاهی از فرصت ها و تهدیدهای آتی و پیش بینی شیوه مواجهه با آنها است.
مدیران، برنامه ریزی و تصمیم گیری
تصمیم گیری، رکن اساسی تمام وظایف مدیریتی و در عین حال، مبنای برنامه ریزی است چرا که نمی توان گفت برنامه ای وجود دارد مگر اینکه تصمیمی اتخاذ شده باشد. به عبارت بهتر، تصمیم گیری، هسته مرکزی مدیریت است که در تمامی وظایف دیگر، نموددارد، به همین دلیل برخی (مانند هربرت سایمون) مدیریت و تصمیم گیری را دو واژه مترادف می دانند!
به جرأت می توان گفت برنامه ریزی و تصمیم گیری، برای نیل به اهداف سازمان مکمل اند اما نوع اتخاذ تصمیم نیز نقش به سزایی ایفا می کند با وجودی که تصمیم گیری به کلیه وظایف مدیریتی مربوط می شود، اما اساس برنامه ریزی به شمار می آید و نمی توان گفت برنامه ای وجود دارد بدون اینکه تصمیمی گرفته شده باشد. از این رو، تصمیم گیری از ارکان اساسی فعالیت های مدیریتی به شمار می رود چرا که هر مدیری برای اجرای هریک از وظایف خود، همواره با مواردی مواجه می شود که نیاز به تصمیم گیری دارد.
برنامه ریزی به عنوان وظیفه مدیران
برنامه ریزی از وظایف بسیار مهم مدیران است و با سایر وظایف آنها ارتباطی تنگاتنگ دارد. اگر نگرش مبتنی بر برنامه ریزی در سراسر زندگی فردی و سازمانی تسری یابد، نوعی تعهد به عمل بر مبنای تعقل و تفکر آینده نگر و عزم راسخ بر استمرار آن ایجاد می شود. به نوعی، تحقق اهداف فردی و سازمانی، مستلزم برنامه ریزی است. نیاز به برنامه ریزی از آنجا است که همه سازمان ها با فعالیت در محیطی پویا، مترصد آن هستند که منابع محدودشان را برای رفع نیازهای متنوع و فزاینده خود صرف نمایند و این پویایی محیط و وجود تلاطم و عدم اطمینان ناشی از تغییرات محیطی، بر ضرورت انکار ناپذیر برنامه ریزی می افزاید.
با پذیرفتن اصول پنج گانه مدیریتی، و مبنای برنامه ریزی برای این اصول، به این اجماع نظر می رسیم که برنامه ریزی، فرایندی است دارای مراحل مشخص و بهم پیوسته برای تولید یک خروجی منسجم در قالب سیستمی هماهنگ از تصمیم هاکه در این فرایندی، مراحل مشخص و بهم پیوستهای برای تولید یک خروجی منسجم در قالب سیستمی هماهنگ از تصمیم ها وجود دارد. طی این فرایند، به پیش بینی و تدوین فعالیت هایی پرداخته می شود که باید در جهت نیل به اهداف سازمانی صورت گیرد. به عبارت بهتر در فرایند برنامه ریزی، به: چه کسی؟ کجا؟ کِی؟ چه چیزی؟ چرا؟ چگونه؟ پرداخته می شود و پاسخ به این پرسش ها به انتخاب مأموریت ها، هدف ها و اقداماتی برای نیل به آنها می انجامد که مستلزم تصمیم گیری و انتخاب از میان راه های مختلف است. برنامه ریزی می تواند، نقش مهمی در کمک به جلوگیری از اشتباهات یا تشخیص فرصت های پنهان بازی کند. برنامه ریزی به پیش بینی آینده و ساختن آینده تا حدودی قابل تصور کمک می کند. آن پلی است بین آنجایی که هستیم و آنجایی که می خواهیم برویم. برنامه ریزی به آینده می نگرد.
تعریف برنامه ریزی
نگاهی به واژه نامه های عمومی و تخصصی، کافی است تا تعاریفی از این دسته را پیش روی ما قرار دهد. اغلب واژه نامه های عمومی برنامه ریزی را کار یا فعالیت برنامه ریز؛ شکل گیری برنامه ها؛ ساخت یا ترسیم یک طرح یا نمودار؛ کشیدن طرح، طراحی، تدبیر کردن دانستهاند واژه نامه های تخصصی نیز آن را، شیوه و فرایند سیستماتیک و گام به گامی دانسته اند که به تعریف، ایجاد و ترسیم فعالیت های ممکنی می پردازد که با نیازها، علایق و مشکلات موجود یا آینده مطابقت داشته باشند
به عبارت دیگر، برنامه ریزی فرایندی است منظم مداوم وحساب شده ومنطقی جهت دار و دورنگر به منظورهدایت وارشاد فعالیتهای جمعی برای رسیدن به هدف مطلوب است .برنامه ریزی بایدمداومت داشته باشد. اهداف برنامه ریزی به شرح زیراست 1)پیش بینی آینده: برنامه آینده نگر 2)برنامه ساختن وشکل دادن به آینده: برنامه آینده ساز 3)برنامه برای انتخاب یک شکل خاص برای آینده :آینده گزین.
متخصصین ، برنامه ریزی را با توجه به حوزه ی فعالیت خود تعریف نموده اند. این واژه، در زمینه علوم و فنون بیشتر با واژه طراحی (designing) عجین شده. هر چند که:این برداشت تقلیل گرایانه و البته این واژه در متون مدیریتی جایگاهی ندارد!
مزایای برنامه ریزی
برخی از مزایای برنامه ریزی عبارتند از:
افزایش احتمال تحقق اهداف سازمان
ایجاد فرصتِ اجرای منظم تصمیم ها
صرفه اقتصادی
انطباق با شرایط متغیر محیطی
استفاده صحیح از منابع
فراهم شدن ابزارهای کنترل
امکان سنجش میزان پیشرفت
آگاهی کارکنان از اهداف سازمان و نقش خود
تقویت کار گروهی
رسیدن به اهداف شخصی
چالش های برنامه ریزی:
چالش های عمده برنامه ریزی از دید برخی منتقدان این امر عبارتند از:
1. حوادث غیر منتظره ای که می تواند تمام پیش بینی ها را نقش بر آب کند! 2.عوض شدن فکر
تغییر رویه هایی که ممکن است مقاومت ایجاد نماید.
1. صرف هزینه و وقت. 2. محدودیت های کوتاه مدت و مقطعی.
تصمیم گیری
واژه تصمیم در لغت به معنای عزم و اراده به انجام کاری است و از دید علم مدیریت، به معنای انتخاب یک راه از راه های مختلف و در حقیقت، انتخاب بهترین راه برای نیل به اهداف است. تصمیم گیری، بیش از آنکه کاری ساده باشد، فرایندی مرحله دار است.
گونه شناسی تصمیم گیری
گونه های مختلفی از تصمیم گیری را از دیدگاه های مختلف می توان شناسایی نمود. برخی از این گو نه ها عبارتند از:
تصمیم گیری به اعتبار برنامه (برنامه ریزی شده و برنامه ریزی نشده)
تصمیم گیری به اعتبار میزان اطلاعات
تصمیم گیری به اعتبار تصمیم گیرنده (فردی و گروهی)
تصمیم گیری به اعتبار درجه استقلال
تصمیم گیری به اعتبار میزان ساختار یافتگی
سایر موارد
مراحل تصمیم گیری
برآیند نسبتاً کلی از مراحلی که برای فرایند تصمیم گیری در متون مختلف طرح شده است را می توان در موارد زیر خلاصه نمود:
اطمینان از وجود نیاز به تصمیم
تعیین معیارهای تصمیم گیری
تشخیص میزان اهمیت معیارها
کشف راه حل ها
ارزیابی راه حل ها
انتخاب بهترین راه حل
برنامهسازی مفرط
برنامهسازی مفرط (به انگلیسی: extreme programming) که به اختصار XP نیز خوانده میشود، یک متدولوژی توسعه نرمافزار است که در آن هدف افزایش کیفیت نرمافزار و پاسخگویی به نیازمندیهای در حال تغییر کاربر است. به عنوان گونهای از توسعه چابک نرمافزار (agile software development) از انتشار (release)های متناوب در چرخههای کوتاه توسعه با هدف بهبود قابلیت تولید و معرفی نقاط کنترلی (Check Point) برای تطابق با نیازمندیهای جدید کاربر، دفاع میکند.
اسکرام
چارچوب یا فرایند مدل اسکرام یک چارچوب تکرارپذیر و افزایشی برای کنترل پروژه (مدیریت نرمافزار) است که معمولاً در زیر شاخه مدل فرایند تولید نرمافزار چابک و سریع است. و یک نوع مدل تولید نرمافزار در مهندسی نرمافزار بحساب میرود.اسکرام یک چارچوب تولید نرمافزار از سری روشهای تفکر چابک (Agile) میباشد. اسکرام یک چارچوب یا فرایند؟ مسئله این است، دراین موضوع کاملاً بین متخصصان اسکرام دوگانگی وجود دارد. اشخاصی مانند کن شوئبر (مبدع اسکرام) دائماً از لفظ چارچوب(framework) استفاده میکنند و تاکید مینمایند که همه باید این مورد را قبول داشته باشند ولی بعضی دیگر از دوستان از لفظ فرایند و یا متدولوژی برای اسکرام استفاده میکنند.
تاریخچه
این روش در سال ۱۹۸۶ توسط هیروتاکا تاکوچی و ایکوجیرو نوناکا بعنوان یک خط مشی جدید برای تولید نرمافزارهای تجاری که باید قابلیت سرعت در تولید و انعطاف پذیری را داشته باشند، عرضه شده گردید. اسم اسکرام از یک نوع بازی در فوتبال راگبی آمده است
اسکرام (Scurm) یک متدولوژی افزایشی (Incremental) برای مدیریت پروژههای نرمافزاری است و از رده متدولوژیهای Agile محسوب میشود. این متدولوژی اولین بار در ژاپن اختراع شد و بعدها در سال ۱۹۹۱ توسط Stahl و Degrace توسعه داده شد. درسال ۱۹۹۵ این متدولوژی توسط Ken Schwober و Jeff Stherland بعنوان یک متدولوژی رسمی برای تولید نرمافزار بکار گرفته شد.
مشخصات
با اینکه روش اسکرام در واقع یک روش برای کل فرایند تولید نرمافزار در پروژهها به شمار میرود اما اختصاصاً برای کنترل پروژه نرمافزار استفاده میگردد، همچنین امکان استفاده از این روش در نگهداری و پشتیبانی نرمافزار به عنوان برنامه و خط مشی عمومی وجود دارد.
اسکرام دربردارنده مجموعهای از روش (Practice)ها و نقشهای از قبل تعریف شده است اما سه ویژگی است که پایههای وجودی اسکرام هستند:
۱- شفافیت و روشنی Transparency: یعنی اینکه تمام جنبههای مختلف فرایند که بر خروجی آن اثر میگذارد بایستی برای آنهایی که فرایند را کنترل میکنند مشهود و قابل دید باشد. نه فقط این جنبهها باید شفاف باشد بلکه بایستی مشخص و معلوم هم باشند یعنی اگر کسی که فرایند را ممیزی میکند تشخیص دهد که چه چیزی انجام شده، این باید مطابق با تعریف انجام شده Done از دید تمام افراد درگیر در پروژه باشد. اگر توافقی بین همه طرفهای درگیر در پروژه بر سر معانی و مفاهیم نباشد، مشهود بودن اینکه یک قابلیت یا ویژگی انجام شده یا خیر، دیگر محلی از اعراب ندارند.
۲- ممیزی و وارسی Inspection: جنبههای مختلف فرایند تولید نرمافزار بایستی مدام به اندازهای در حال وارسی و چک باشند که انحرافات فرایند قابل تشخیص باشد.
۳- انطباق Adaption: اگر بازرس و ممیز فرایند پس از بازرسی فرایند، تشخیص داد که یک یا چند جنبه از فرایند خارج از حدود قابل قبول است و باعث غیر قابل پذیرش شدن محصول تولیدی میشود، آن شخص باید فرایند یا آنچه که فرایند بر روی آن انجام میشود را تنظیم و تعدیل کند. این کار باید در سریعترین زمان ممکنه انجام شود تا از انحرافات بیشتر جلوگیری شود.
نقشها
نقشهای عمده در اسکرام عبارتند از:
ScrumMaster که وظیفه نگهداری و حفظ فرایند را برعهده دارد.
Product Owner که نماینده ذینفعان (Stakeholders)های پروژه و business است.
Team Member عضوی از یک گروه cross-function است که معمولاً بیش از ۷ نفر نیستند. این افراد عملیات تحلیل٫ طراحی٫ پیاده سازی، تست و... را انجام میدهند.
تعریف هر نوع نقش یا سمت به جز سه نقش گفته شده در اسکرام ممنوع است. به عنوان مثال اعضای تیم نمیتوانند سمتهای متفاوتی داشته باشند.
روند کار اسکرام
مثل تمام متدولوژیهای Incremental و Iterative اینجا هم ما دورههای زمانی یا iteration داریم که در طی آنها محصول نهایی پروژه بتدریج تکمیل میشود. این دورههای زمانی را در اسکرام اصطلاحاً sprint نامیده میشوند.
در طی یک Sprint که معمولاً یک دوره دو تا چهار هفته است (طول دوره را تیم مشخص میکند) اعضاء تیم یک محصول بالقوه قابل ارائه و قابل استفاده را تدریجاً تولید میکنند. بطور رسمی دوره هر sprint یک ماه یا سی روز در نظر میگیرند.
مجموعه ویژگیهایی از محصول نهایی پروژه که در یک sprint محقق میشود از یک Requirements Repository بنام Sprint Backlog استخراج میشود.
اصطلاح Product Backlog نامی است که به بانک اطلاعاتی نیازمندهای عملیاتی و غیر عملیاتی کل یک پروژه اطلاق میشود و در حقیقت مجموعهای اولویت بندی شده از نیازمندیهای سطح بالای سیستمی است که در نهایت بایستی تحویل داده شود.
Sprint Planning Meeting
مواردی از Product Backlog که در طی یک sprint بایستی انجام شود در طول جلسه برنامه ریزی sprint مشخص میشود. اصطلاحاً این جلسه را Sprint Planning Meeting مینامند.
در طول این جلسه، Product Owner اعضاء تیم را دربارهٔ مواردی از Product Backlog محصولی که میخواهند تکمیل شود، آگاه میکند. سپس اعضاء تیم مشخص میکنند که چه مقدار از موارد مشخص شده توسط Product Owner را میتوانند در این sprint انجام دهند و چه میزان از آنرا در sprintهای بعدی.
مواردی از Product Backlog که قرار است در یک Sprint انجام شود را اصطلاجاْ Sprint Backlog مینامند. مفاد Sprint Backlog در واقع توافقی است بین اعضاء تیم و Product Owner برای انجام بخشی از نیازمندیهای پروژه در طول sprint جاری و بهرحال طبیعی است که بعد از تصویب شدن مفاد یک sprint، هیچکس نمیتواند آنرا در طول sprint تغییر دهد. در طول دوره، نیازمندیهای لحاظ شده در Sprint Backlog از Product Backlog بر داشته میشوند. اما امکان دارد به دلایلی که در ادامه میآید این نیازمندیهای دوباره به Product Backlog برگردد.
مانند تمام متدولوژیهای iterative توسعه نرمافزار در اسکرام نیز Time Boxed است، به این معنی که sprint بایستی دقیقاً سروقت تمام شود و اگر نیازمندیهای اشاره شده در Spring Backlog به هر علتی تکمیل نشده باشند آنها را کنار گذاشته و دوباره وارد Product Backlog میکنند.
بعد از خاتمه یک sprint، اعضاء تیم طی جلسهای به Product Owner و سایر ذینفعان پروژه نشان میدهند که چکار کردهاند و چطور از نسخه جاری نرمافزار میشود استفاده کرد.
در سادهترین روش معمولاً از نرمافزارهای صفحه گستره (Spread Sheet) همچون LibreOffice Calc یا Microsoft Excel برای ساختن و نگهداری Product Backlog و Sprint Backlog استفاده میشود، اما میتوان از طیف وسیعی از ابزارهای نرمافزاری که برای استفاده در تیمهای Agile نوشته شدهاند نیز استفاده کرد.
توسعهدهنده نرمافزار
تولیدکننده نرمافزار یا توسعهدهنده نرمافزار (به انگلیسی: Software developer) در مبحث توسعهٔ نرمافزار به هر کسی اطلاق میشود که بخشی از فرایند تولید نرمافزار را برعهده داشته باشد. یعنی هر یک از موقعیتهای زیر جزو توسعهدهندگان محسوب میشوند:
مدیر پروژهٔ نرمافزار
تحلیلگر کسب و کار نرمافزار
طراح نرمافزار
برنامهنویس
آزمونگر نرمافزار
برای هر برنامه یا نرمافزاری ممکن است تمام یا بخشی از اعضای این تیم حاضر باشند.
توسعه نرمافزاری چابک
توسعه چابک نرمافزار یا توسعه نرمافزاری چابک گروهی از متدهای توسعهٔ نرمافزار مبتنی بر تکرار و به شکل تدریجی است که در آنها، راهحلها از طریق خودسازماندهی و همکاری بین تیمهای مختلف کاری، انجام میشوند. این روش برنامهریزی تطبیقی، توسعه و تحویل تکاملی و رویکرد زمان بستهبندیِ تکرارشونده را ارتقا میبخشد و پاسخهای سریع و انعطافپذیر برای انجام تغییرات را تقویت میکند. در واقع چابکسازی یک چارچوب مفهومی است که پیشبینی تعاملات در سراسر چرخهٔ توسعه را بهبود میبخشد. مانیفست چابک در سال ۲۰۰۱ این اصطلاح را معرفی کرد.
تاریخچه
سوابق
متدهای توسعهٔ افزایشی نرمافزار به سال ۱۹۵۷ برمیگردند. در سال 1974، E.A. Edmonds در مقالهای فرایند توسعهٔ تطبیقی نرمافزار را معرفی کرد. همزمان و به طور مستقل متدهای مشابه توسعه یافت و توسط مرکز توسعهٔ سیستمهای شرکت تلفن نیویورک زیر نظر Dan Gielan گسترش یافت. اوایل دههٔ 1970، Tom Gilb شروع به انتشار مفاهیمی در مورد کنترل تحولی پروژه (EVO) کرد، که به مهندسی رقابتی توسعه یافت. در طول نیمه تا انتهای دههٔ 1970 Gielan به طور گسترده در ایالات متحده در مورد این متدولوژی، تجارب و فواید آن سخنرانیهایی ارائه داد.
متدهای توسعهٔ به اصطلاح چالاک و چابک نرمافزار اواسط دههٔ ۱۹۹۰ به صورت یک عکسالعمل در مقابل متدهای سنگین آبشاری مطرح شد، که توسط منتقدان آن به صورت یک مدل توسعهٔ به شدت منظم، دستهبندیشده، میکرو مدیریتی و آبشاری توصیف شده است. استدلالکنندگان متدهای چالاک و چابک ادعا میکنند، این متدها به منزلهٔ بازگشت به تجارب توسعهٔ نرمافزار در اوایل تاریخ هستند. پیادهسازیهای اولیهٔ متدهای چابک، شامل Rational Unified Process (1994)، Scrum (1995)، Crystal Clear، برنامهنویسیExtreme (1996)، توسعهٔ تطبیقی نرمافزار، توسعهٔ ویژگیمحور و متد توسعهٔ سیستمهای دینامیک (DSDM، 1995) میشود. بعد از انتشار مانیفست چابک در سال ۲۰۰۱، اکنون اینها به طور معمول به متدولوژیهای چابک برمیگردند.
مانیفست چابک
در فوریهٔ ۲۰۰۱، تعداد ۱۷ توسعهدهندهی نرمافزار، در Snowbird یوتا ملاقاتی داشتند تا در مورد متدهای توسعهی چالاک گفتگو کنند.
آنها برای توصیف رویکردی که اکنون به عنوان «توسعهی چابک نرمافزار» شناخته میشود، مانیفستی برای توسعهی چابک نرمافزار منتشر کردند. بعضی از نویسندگان این مانیفست اتحاد Agile را ایجاد کردند ، یک سازمان غیرانتفاعی که توسعهی نرمافزار را بر اساس اصول مانیفست ترویج میدهند.
تمام مانیفست چابک به شرح زیر است:
ما با توسعه نرمافزار و کمک به دیگران در انجام آن، در حال کشف راه های بهتری برای توسعه نرمافزار هستیم. از این کار به ارزش های زیر میرسیم :
۱- افراد و تعاملات بالاتر از فرایندها و ابزارها
۲- نرمافزار کار کننده بالاتر از مستندات جامع
۳- مشارکت مشتری بالاتر از قرارداد کاری
۴- پاسخگویی به تغییرات بالاتر از پیروی از یک برنامه
با آنکه موارد سمت چپ ارزشمند هستند ولی ما برای موارد سمت راست ارزش بیشتری قائل هستیم.
معنی آیتمهای سمت راست مانیفست در مفهوم توسعهی چابک نرمافزار در زیر توضیح داده شده است:
افراد و تعاملات بالاتر از فرایندها و ابزارها
افراد مهمترین نقش را در پیروزی یک پروژه دارند. یک فرایند عالی بدون نیروی مناسب منجر به شکست میگردد و بر عکس افراد قوی تحت فرایند ضعیت ناکارآمد خواهند بود.
یک نیروی قوی لازم نیست که برنامه نویسی عالی باشد، بلکه کافیست که یک برنامه نویسی معمولی با قابلیت همکاری مناسب با سایر اعضای تیم باشد. کار کردن با دیگران، تعامل درست و سازنده با سایر اعضای تیم خیلی مهمتر از این که یک برنامه نویس با هوش باشد. برنامه نویسان معمولی که تعامل درستی با یکدیگر دارند به مراتب موفقتر هستند از تعداد برنامه نویسی عالی که قدرت تعامل مناسب با یکدیگر را ندارند.
در انتخاب ابزارها آنقدر وقت نگذارید که کار اصلی و تیم را فراموش کنید. به عنوان مثال میتوانید در شروع به جای بانک اطلاعاتی از فایل استفاده کنید، به جای ابزار کنترل کد گرانقیمت از برنامه رایگان کد باز استفاده کنید. باید به هیچ ابزاری عادت نکنید و صرفاً به آنها به عنوان امکانی جهت تسهیل فرایندها نگاه کنید.
نرمافزار کار کننده بالاتر از مستندات جامع
نرمافزار بدون مستندات، فاجعه است. کد برنامه ابزار مناسبی برای تشریح سیستم نرمافزاری نیست. تیم باید مستندات قابل فهم مشتری بسازد تا ابعاد سیستم از تجزیه تحلیل تا طراحی و پیاده سازی آن را تشریح نماید.
با این حال، مستندات زیاد از مستندات کم بدتر است. ساخت مستندات زیاد نیاز به وقت زیادی دارد و وقت بیشتری را می گیرد تا آن را با کد برنامه به روز نمایید. اگر آنها با یکدیگر به روز نباشند باعث درک اشتباه از سیستم می شوند.
بهتر است که همیشه مستندات کم حجمی از منطق و ساختار برنامه داشته باشید و آن را به روز نماید. البته آنها باید کوتاه و برجسته باشند. کوتاه به این معنی که ۱۰ تا ۲۰ صفحه بیشتر نباشد و برجسته به این معنی که طراحی کلی و ساختار سطح بالای سیستم را بیان نماید.
اگر فقط مستندات کوتاه از ساختار و منطق سیستم داشته باشیم چگونه می توانیم اعضای جدید تیم را آموزش دهیم؟ پاسخ کار نزدیک شدن به آنها است. ما دانش خود را با نشستن در کنار آنها و کمک کردن به آنها انتقال میدهیم. ما آنها را بخشی از تیم میکنیم و با تعامل نزدیک و رو در رو به آنها آموزش میدهیم.
مشارکت مشتری بالاتر از قرارداد کاری
نرمافزار نمیتواند مثل یک جنس سفارش داده شود. شما نمیتوانید یک توصیف از نرمافزاری که می خواهید را بنویسید و آنگاه فردی آن را بسازد و در یک زمان معین با قیمت مشخص به شما تحویل دهد. بارها و بارها این شیوه با شکست مواجه شده است.
این قابل تصور است که مدیران شرکت به اعضای تیم توسعه بگویند که نیازهای آنها چیست، سپس اعضای تیم بروند و بعد از مدتی برگردند و یک سیستمی که نیازهای آنها را برآورده می کند، بسازند. اما این تعامل به کیفیت پایین نرمافزار و در نهایت شکست آن می انجامد. پروژه های موفق بر اساس دریافت بازخورد مشتری در بازه های زمانی کوتاه و مداوم است. به جای وابستگی به قرارداد یا دستور کار، مشتری به طور تنگاتنگ با تیم توسعه کار کرده و مرتباً اعمال نظر میکند.
قراردادی که مشخص کننده نیازمندیها، زمانبندی و قیمت پروژه است، اساساً نقص دارد. بهترین قرارداد این است که تیم توسعه و مشتری با یکدیگر کار کنند.
پاسخگویی به تغییرات بالاتر از پیروی از یک برنامه
توانایی پاسخ به تغییرات اغلب تعیین کننده موفقیت یا شکست یک پروژه نرمافزاری است. وقتی که طرحی را میریزیم باید مطمئن شویم که به اندازه کافی انعطاف پذیر است و آمادگی پذیرش تغییرات در سطح بیزنس و تکنولوژی را دارد.
مسیر یک پروژه نرمافزاری نمیتواند برای بازه زمانی طولانی برنامه ریزی شود. اولاً احتمالاً محیط تغییر میکند و باعث تغییر در نیازمندی ها میشود. ثانیاً همین که سیستم شروع به کار کند مشتریان نیازمندیهای خود را تغییر می دهند. بنابراین اگر بدانیم که نیازها چیست و مطمئن شویم که تغییر نمیکنند، قادر به برآورد مناسب خواهیم بود، که این شرایط بعید است.
یک استراتژی خوب برای برنامه ریزی این است که یک برنامه ریزی دقیق برای یک هفته بعد داشته باشیم و یک برنامه ریزی کلی برای سه ماه بعد.
اصول چابک
بر اساس نظرات Kent Beck، مانیفست چابک، بر ۱۲ اصل استوار است:
رضایت مشتری از طریق تحویل سریع نرمافزار مفید؛
استقبال از تغییرات نیازمندیها، حتی در اواخر توسعه؛
نرمافزار کار زود به زود تحویل میشود (هفتگی به جای ماهانه)؛
نرمافزار کار مقیاس اصلی پیشرفت است؛
توسعهی پایدار، قادر به حفظ سرعت ثابت است؛
همکاری نزدیک و روزانه بین افراد کسبوکار و تیم توسعه؛
مکالمهی رو در رو بهترین شکل ارتباطات است (محل مشترک)؛
پروژهها در اطراف افراد باانگیزه، که باید به آنها اعتماد کرد، شکل میگیرند؛
توجه مستمر به برتری فنی و طراحی خوب؛
سادگی- هنر به حداکثر رساندن کارهای انجامنشده- ضروری است؛
تیمهای خودسازماندهی؛
انطباق با تغییرات محدودیتها به طور منظم.
در سال ۲۰۰۵، گروهی به ریاست Alistair Cockburn و Jim Highsmith ضمیمهای تحت عنوان «اعلامیهی وابستگی» برای اصول مدیریت پروژه نوشتند، که مدیریت پروژههای نرمافزاری را بر اساس متدهای توسعهی نرمافزار پیش ببرد..
مشخصات
متدهای توسعهی چابک مشخص زیادی وجود دارند، که بیشترشان توسعه، کار تیمی، همکاری و سازگاری فرایند در چرخهی حیات پروژه را ترفیع میدهند. متدهای چابک وظایف را به گامهای کوچک با کمترین میزان برنامهریزی میشکنند که به طور مستقیم با برنامهریزیهای طولانیمدت درگیر نیستند. تکرارها فریمهای (بستههای زمانی) کوتاهمدتی هستند که معمولاً بین یک تا چهار هفته طول میکشند. هر تکرار دارای یک تیم متقابل عملکردی در تمام مأموریتها است: تحلیل نیازمندیها، طراحی، کدنویسی، واحد تست، و قبولی در تست. در پایان هر تکرار یک محصول کاری به ذینفعان نشان داده میشود. این، ریسک کلی را به حداقل رسانده و اجازه میدهد پروژه خیلی سریع با تغییرات منطبق شود. ممکن است یک تکرار قابلیت کافی برای تضمین پخش در بازار را نیفزاید، اما هدف، انتشار در دسترس (با حداقل شکاف) در پایان هر تکرار است. شاید تکراهای چندگانه نیاز به انتشار یک محصول یا ویژگیهای جدید داشته باشند. ترکیب تیم در یک پروژهی چابک معمولاً عملکردی متقابل و خودسازماندهی است، بدون توجه به هرگونه سلسلهمراتب شرکتی یا نقشهای شرکتی اعضای تیم. اعضای تیم به طور معمول مسئولیت وظایفی را که قابلیت نیازهای تکرار را ارائه میدهد، بر عهده میگیرند. آنها به صورت جداگانه تصمیم میگیرند که چگونه با نیازمندیهای یک تکرار مواجه شوند.
متدهای چابک، وقتی تیمها با هم در یک مکان هستند، بر ارتباطات رو در رو برای تمام مستندات نوشتهشده تأکید دارد. بیشتر تیمهای چابک در یک دفتر تکواحدی (به نام bullpen) کار میکنند، که چنین ارتباطاتی را تسهیل میکند. به منظور ساده کردن ارتباطات و همکاری تیمی، گروه معمولاً کوچک (بین 5 تا 9 نفره) است. پروژههای بزرگ توسعه میتوانند توسط تیمهای کاری چندگانه در راستای یک هدف رایج یا در بخشهای متفاوت یک پروژه تحویل شوند. ممکن است این امر نیاز به هماهنگی اولویتهای تمام تیمها داشته باشد. وقتی تیمی در مکانهای مختلفی کار میکند، افراد ارتباط روزانهشان را از طریق ویدئو کنفرانس، صدا، ایمیل و... حفظ میکنند.
مهم نیست چه دیسیپلینهای توسعهای لازم است، هر تیم چابک، یک پاسخگوی مشتری دارد. این شخص توسط ذینفعان به نمایندگی انتخاب میشود و یک تعهد فردی ایجاد میکند که برای پاسخگویی به سؤالات اواسط تکرار، در دسترس توسعهدهندگان باشد. در انتهای هر تکرار، ذینفعان و نمایندهی مشتریان پیشرفت را بررسی میکنند، اولویتها را با دید بهینهسازی بازگشت سرمایه (ROI) مجدداً میسنجند و از انطباق نیازهای مشتری با اهداف شرکت اطمینان حاصل میکنند. بیشتر پیادهسازیهای چابک از ارتباطات غیر رسمی، روزانه و رو در رو در میان اعضای تیم بهره میگیرند. این به طور خاص شامل نمایندهی مشتری و هر کدام از ذینفعان علاقهمند به عنوان ناظر میشود. در یک جلسهی مختصر، هر کدام از اعضای تیم گزارش میدهند که در روز گذشته چه کردهاند، قصد دارند در روز جاری چه کارهایی انجام دهند و موانع پیش رویشان کدامند. این ارتباطات رو در رو مشکلات را به محض بروز، افشا میکند. «این جلسات روزانه، گاهی به صورت ایستاده یا نشستهای اسکرام هر روز در یک زمان و مکان ثابت برگزار میشوند و نباید بیش از 15 دقیقه طول بکشند. معمولاً جلسات ایستاده این نقش را دارند.»
توسعهی چابک بر کار نرمافزار به عنوان مقیاس اصلی پیشرفت تأکید دارد، که با مزیت ارتباطات رو در رو در هم آمیخته شده، و نسبت به سایر متدها مستندات مکتوب کمتری تولید میشود. متد چابک ذینفعان را به اولویتبندی «خواستهها» با نتایج حاصل از سایر تکرارها، بر اساس ارزش کسبوکار مشاهدهشده در ابتدای تکرار (که با عنوان ارزشمحور شناخته میشود) ترغیب میکند.
ابزارها و تکنیکهای خاص، مانند یکپارچهسازی مستمر، تست اتوماتیک یا xUnit، برنامهنویسی دوجزئی، توسعهی آزمونمحور، الگوهای طراحی، طراحی دامنهمحور، code refactoring و دیگر تکنیکها اغلب برای بهبود کیفیت و افزایش چابکی پروژه به کار میروند.
توسعهی کمیچابک (LAD) چاشنی متدولوژی چابک است که تکنیکهای دستچین را (از طیف وسیعتری از پروژههای چابک) برای شرکتهای مناسب مختلف، تیمها، موقعیتها و محیطهای توسعه به کار میبندد. یکی دیگر از جنبههای کلیدی LAD متمایل به کاربرمحور بودن است، در درجهی اول بر تجارب کاربر و واسطهای نرمافزاری قابلاستفاده تمرکز میکند و برای تحویل آنها متدولوژیهای چابک را به کار میبندد. بیشتر پیادهسازیهای چابک دنیای واقعی در عمل واقعاً LAD هستند، چون ارزش اصلی متدولوژی به انعطافپذیری، معقول بودن و تمرکز بر کارهایی که انجام شده، است.
در توسعهی چابک نرمافزار، یک رادیاتور اطلاعات، صفحهنمایشی فیزیکی (معمولاً بزرگ) واقع در صدر دفتر کار است، جایی که رهگذران بتوانند آن را ببینند. این صفحهنمایش خلاصهای از آخرین وضعیت محصول(های) نرمافزاری را نمایش میدهد. این نام توسط Alistair Cockburn ابداع و در کتاب «توسعهی چابک نرمافزار» در سال 2002 توصیف شد. ممکن است یک نشانگر نوری برای آگاه کردن اعضای تیم در مورد وضعیت فعلی پروژهشان به کار رود.
دسترسی
رایجترین زبان برای ارتباطات در اینترنت زبان انگلیسی است. این ممکن است ناشی از زادگاه اینترنت و همچنین نقش زبان انگلیسی به عنوان زبان بینالمللی باشد. ناتوانی رایانههای اولیه - که اغلب در امریکا ساخته میشدند - در پردازش نویسه (کاراکتر)های به جز گونه انگلیسی الفبای لاتین نیز ممکن است با این موضوع مرتبط باشد. پس از انگلیسی(۲۸٪ از بازدیدکنندگان وب)، پرخواهان ترین زبانها در وب جهان گستر عبارنتد از : چینی ۲۳٪، اسپانیایی ۸٪، ژاپنی ۵٪، پرتغالی و آلمانی (هر کدام ۴٪)، عربی و فرانسه و روسی (هرکدام ۳٪)و کرهای ۳٪.بر پایه منطقه، ۴۲٪ از کاربران اینترنت در آسیا، ۲۴٪ در اروپا،۱۴٪ در امریکای شمالی، ۱۰٪ در امریکای لاتین و کارائیب، ۵٪ در آفریقا، ۳٪ در خاورمیانه و ۱٪ در استرالیا/اقیانوسیه.
فناوریهای اینترنت در سالهای اخیر بویژه در زمینه استفاده از یونیکد، به حد کافی گسترش یافتهاند و امکانات مناسبی برای ارتباط در بسیاری از زبانهای دنیا در دسترس میباشد، اما همچنان مسائلی مانند موجیباکه (نمایش نادرست برخی نویسههای یک زبان) باقی هستند.
روشهای معمول دسترسی به اینترنت در خانهها شامل دسترسی با شمارهگیری (dial-up)، خطوط زمینی پهن باند(از طریق کابل کواکسیال، فیبر نوری و یا سیم مسی)، وای-فای (Wi-Fi)، ماهواره و فناوری ۳G تلفن همراه میباشد. اماکن عمومی که میتوان در آنها از اینترنت استفاده نمود شامل کتابخانهها و کافینتها که در آنها رایانههایی با اتصال به اینترنت مهیاست.همچنین کیوسکهای اینترنت در بسیاری از اماکن عمومی مانند سالن فرودگاه و کافی شاپها موجودند که بعضی از آنها برای استفادههای کوتاه و سرپایی در نظرگرفته شدهاند.واژههای گوناگونی برای نامیدن این ترمینالها به کار میرودف از جمله : کیوسک عمومی اینترنت و یا پایانه دسترسی عمومی.
این ترمینالها به گستردگی برای کاربردهایی چون رزرو بلیط، سپرده گذاری بانکی، پرداخت برخط مورد استفاده قرار میگیرد. وای-فای(Wi-Fi) دسترسی بی سیم به شبکههای رایانهای و در نتیجه به اینترنت را فراهم میکند. نقاط داغ (Hotspots) به مکانهایی گفته میشود که دسترسی به اینترنت بی سیم در آن نقاط امکانپذیر است و کاربران میتوانند با لپ تاپ و یا دستیار دیجیتال شخصی(PDA) خود به اینترنت متصل شوند. گاهی این سرویسهای بیسیم برای عموم و یا حداقل برای مشتریان رایگان ارائه میشود. یک نقطه داغ محدوده مکانی مشخصی را شامل میشود مثل محوطه یک دانشگاه، پارک و یا حتی سراسر نقاط یک شهر. سرویسهای تجاری Wi-Fi که کل شهر را پوشش میدهند هم اکنون در شهرهای لندن، وین، تورنتو، سانفرانسیسکو، فیلادلفیا، شیکاگو و پیتسبورگ ارائه میشوند. در این شهرها مشترکین میتوانند در هر نقطهای از شهر به شبکه وای-فای متصل شوند
.علاوه بر وای-فای، آزمایشهایی نیز در زمینه شبکههای بی سیم متحرک اختصاصی مانن ریکوچت و سرویسهای دادهای پرسرعت بر روی تلفنهای همراه، و شبکههای بی سیم ثابت انجام شدهاست. تلفنهای همراه پیشرفته مثل تلفنهای همراه هوشمند (Smartphone) همگی با قابلیت اتصال به اینترنت از طریق شبکه تلفن عرضه میشوند. مرورگرهای وب مثل اپرا معمولاً نسخهای برای این دستگاههای جیبی پیشرفته دارند.
آثار اجتماعی
اینترنت به دلیل خصوصیاتی چون قابلیت استفاده و دسترسی گسترده آن، اشکال کاملاً جدیدی از تعاملات، فعالیتها، و سازماندهیهای اجتماعی را پدید آوردهاست. وبگاههای شبکههای اجتماعی چون فیسبوک، توییتر و مایاسپیس روشهای جدیدی برای معاشرت و تعامل خلق کردهاند. کاربران این سایتها قادرند اطلاعات گوناگونی به صفحات خود بیفزایند، علایق مشترکی را دنبال کنند و به دیگران مرتبط شوند. وبگاههایی مثل لینکداین به پرورش ارتباطات حرفهای و تجاری میپردازد. یوتیوب و فلیکر هم در زمینه ویدیوها و تصاویر کاربران تخصص دارند.
دهه اول سده بیست و یکم، شاهد پرورش اولین نسلی است که در شرایطی رندگی میکنند که اینترنت به گستردگی در دسترس میباشد. این مسایل و نگرانیهایی را به دنبال دارد از جمله مسئله حفظ حریم خصوصی و هویت و توزیع غیر مجاز مواردی که تحت قانون کپی رایت محافظت میشوند. این بومیان دیجیتال با انبوهی از مسایلی مواجه میشوند که در مورد نسلهای قبلی وجود نداشت.
اینترنت کاربرد جدیدی به عنوان بک ابزار سیاسی یافتهاست مه این منجر به سانسوراینترنت میشود. نمونه استفاده سیاسی از اینترنت، مبارزه انتخاباتی هاوارد دین در سال ۲۰۰۴ در ایالات متحده بود که به دلیل جمع آوری کمکهای مردمی از طریق اینترنت شایان توجه بود. بسیاری از گروههای سیاسی از اینترنت برای سازماندهی در انجام ماموریت خود استفاده میکنند. برخی از دولتها مانند ایران، کره شمالی، میانمار، چین وعربستان، آنچه را که مردم میتوانند از طرق اینترنت ببینند، به ویژه در مورد مسایل سیاسی و مذهبی محدود مینمایند.
این کار از طریق نرمافزارهایی که دامنه و محتوا را فیلتر میکنند صورت میپذیرد. در نروژ، دانمارک، فنلاند و سوئد، ارائه دهندگان اصلی خدمات اینترنت به صورت داوطلبانه و احتمالاً برای اجتناب از قانون شدن فیلترینگ، قبول کردهاند که دسترسی به سایتهایی که توسط مقامات مسوول لیست شدهاست را محدود نمایند. اگرچه قرار بر این است که این آدرسهای ممنوع شده تنها شامل وبگاههای هرزه نگاری کودکان باشد، اما محتوای این لیست مخفی است.
در بسیاری از کشورها مانند ایالات متحده امریکا، اگرپه قوانینی در ممنوعیت پخش موارد دربردارنده هرزه نگاری کودک تصویب نمودهاند اما استفاده از نرم افرارهای فیلترینگ را اجباری نکردهاند. نرمافزارهای تجاری و یا رایگان بسیاری تحت عنوان نرمافزار کنترل محتوا در دسترس هستند که کاربران از طریق آنها میتوانند وبگاههای مستهجن را در رایانه شخصی و یا شبکه محلی مسدود نمود تا از دسترسی کودکان به مواد هرزه نگاری و یا خشونت نگاری جلو گیری نمود.
اینترنت از آغاز پیدایش همواره وسیله مناسبی برای فعالیتهای تفریحی بودهاست. بسیاری از انجمنهای اینترنتی بخشهایی برای بازی و ویدیوهای خنده دار و کارتونهای کوتاه در قالب انیمیشنهای فلش(Flash) دارند. بیش از ۶ میلیون نفر در اینترنت از وب نوشتها و تختههای پیام برای برقراری ارتباط استفاده میکنند. صنایع هرزه نگاری و قمار از اینترنت سود میجویند تا وبگاههایی بسازند که منبع کلان تبلیغات برای سایر وبگاهها میباشند.
اگرچه بسیاری از دولتها برای محدود سازی استفاده این دو صنعت ازاینترنت تلاش کردهاند اما در جلوگیری از گسترش محبوبیت آنها چندان موفق نبودهاند.یکی از فعالیتهای تفریحی اصلی در اینترنت، بازیهای چند نفره است. این شکل تفریح اجتماعاتی را بوجود میآورد که در آن افراد از هر سن و نژادی از دنیای بازیهای چندنفره کامپیوتری لذت میبرند. اگرچه بازیهای برخط از سال ۱۹۷۰ وجود داشتهاند،
اما گونه مدرن این بازیها با خدمات اشتراکی مانند گیماسپای و MPlayer آغاز شد. غیر مشترکین محدود به بازیهای خاص و یا زمان بازی خاص بودند. بسیاری از مردم از اینترنت برای دسترسی و بارگیری(download) موسیقی و فیلم و سایر آثار استفاده میکنند. این خدمات به هر دو صورت رایگان و پولی، با استفاده ازسرورهای مرکزی و یا فناوریهای نظیر-به-نظیر توزیع شده ارائه میشوند.برخی از این منابع توجه بیشتری نسبت به سایرین در زمینه حقوق مولفین اصلی نشان دادهاند.
بسیاری از مردم از اینترنت برای دسترسی به اخبار، پیش بینی آب وهوا، گزارشهای ورزشی و جستجوی مطالب در مورد علاقهمندیهای خود استفاده میکنند. آنها از گپ برخط، پیام رسان فوری و پست الکترونیک برای در تماس بودن با دوستان خود در سراسر دنیا و به شیوهای شبیه به دوست مکاتبهای که در قدیم رواج داشت، استفاده میکنند. اینترنت شاهد شمار رو به افزایش میزکارهای وب که در آن کاربران به فایلها و تنظیمات خود دسترسی پیدا میکنند، بودهاست."کم کاری سایبری" (Cyberslacking) محل اتلاف جدی منابع سازمانهاست. کارمندان انگلیسی به طور میانگین ۵۷٪ از وقت خود را به وب گردی در حین کار میپردازند.
تاثیرات ذهنی
بر روی آثار اینترنت بر مغز انسان مطالعات زیادی انجام شدهاست. نیکلاس کار(به انگلیسی: Nicholas Carr) ادعا میکند که اینترنت تفکر عمیق را که عامل خلاقیت واقعی است کاهش میدهد. او همچنین میگوید که پیوندهای فرامتن و تحریک بیش از حد، به این معنی است که مغز باید بیشتر توجهش را بر روی تصمیمات کوتاه متمرکز کند. او همچنین بیان میکند که اینترنت مغز را غرق در اندیشه میکند که باعث آسیب رسیدن به حافظه بلند مدت میگردد. شمار فراوان محرکها در اینترنت منجر به بار شناختی(Cognitive Load) سنگینی برای مغز میشود که یادآوری هرچیزی را مشکل میسازد.استیون پینکر (به انگلیسی: Steven Pinker)، روانشناس، نظری مخالف دارد. او به این نکته اشاره میکند که افراد بر روی آنچه انجام میدهند کنترل دارند وبنابراین این پژوهش و استدلال هرگز طبیعت انسان را در نظر نداشتهاست. او میگوید "تجربه ظرفیتهای پردازش اطلاعات مغز را عوض نمیکند" و ادعا میکند که اینترنت باعث باهوشتر شدن انسانها شدهاست.
تاریخ اینترنت
اتحاد جماهیر شوروی آن زمان موشکی با نام «اسپونیک» (Spotnik) را به فضا میفرستد و نشان میدهد دارای قدرتی است که میتواند شبکههای ارتباطی آمریکا را توسط موشکهای بالستیک و دوربرد خود از بین ببرد. آمریکاییها در پاسخگویی به این اقدام روسها، موسسه پروژههای تحقیقی پیشرفته “ARPA” را بهوجود آوردند. هدف از تاسیس چنین موسسهای پژوهش و آزمایش برای پیدا کردن روشی بود که بتوان از طریق خطوط تلفنی، کامپیوترها را به هم مرتبط نمود. به طوری که چندین کاربر بتوانند از یک خط ارتباطی مشترک استفاده کنند. در اصل شبکهای بسازند که در آن دادهها به صورت اتوماتیک بین مبدا و مقصد حتی در صورت از بین رفتن بخشی از مسیرها جابهجا و منتقل شوند. در اصل هدف “ARPA” ایجاد یک شبکه اینترنتی نبود و فقط یک اقدام احتیاطی در مقابل حمله احتمالی موشکهای اتمی دوربرد بود. هر چند اکثر دانش امروزی ما درباره شبکه بهطور مستقیم از طرح آرپانت “ARPPA NET” گرفته شدهاست. شبکهای که همچون یک تار عنکبوت باشد و هر کامپیوتر ان از مسیرهای مختلف بتواند با همتایان خود ارتباط دااشته باشد واگر اگر یک یا چند کامپیوتر روی شبکه یا پیوند بین انها از کار بیفتادبقیه باز هم بتوانستند از مسیرهای تخریب نشده با هم ارتباط بر قرار کنند.
این ماجرا با وجودی که بخشی از حقایق بهوجود آمدن اینترنت را بیان میکند اما نمیتواند تمام واقعیات مربوط به آن را تشریح کند. باید بگوییم افراد مختلفی در تشکیل اینترنت سهم داشتهاند آقای “Paul Baran” یکی از مهمترین آنهاست. آقای باران که در دوران جنگ سرد زندگی میکرد میدانست که شبکه سراسری تلفن آمریکا توانایی مقابله با حمله اتمی شوروی سابق را ندارد. مثلاً اگر رییس جمهور وقت آمریکا حمله اتمی متقابل را دستور دهد، باید از یک شبکه تلفنی استفاده میکرد که قبلاً توسط روسها منهدم شده بود. در نتیجه طرح یک سیستم مقاوم در مقابل حمله اتمی روسها ریخته شد.آقای باران (Baran) تشکیل و تکامل اینترنت را به ساخت یک کلیسا تشبیه کرد و معتقد بود، طی سالهای اخیر هر کس سنگی به پایهها و سنگهای قبلی بنا اضافه میکند و انجام هر کاری وابسته به کارهای انجام شده قبلی است. بنابراین نمیتوان گفت، کدام بخش از کار مهمترین بخش کار بودهاست و در کل پیدایش اینترنت نتیجه کار و تلاش گروه کثیری از دانشمندان است. داستان پیدایش اینترنت با افسانه و واقعیت در هم آمیخته شدهاست.
در اوایل دهه ۶۰ میلادی آقای باران طی مقالاتی پایه کار اینترنت امروزی را ریخت. اطلاعات و دادهها به صورت قطعات و بستههای کوچکتری تقسیم و هر بسته با آدرسی که به آن اختصاص داده میشود به مقصد خاص خود فرستاده میشود. به این ترتیب بستهها مانند نامههای پستی میتوانند از هر مسیری به مقصد برسند. زیرا آنها شامل آدرس فرستنده و گیرنده هستند و در مقصد بستهها مجدداً یکپارچه میشوند و به صورت یک اطلاعات کامل درمیآیند.
آقای باران (Baran) طی مقالاتی اینچنینی ساختمان و ساختار اینترنت را پیشگویی کرد. او از کار سلولهای مغزی انسان به عنوان الگو استفاده کرد، او معتقد بود: وقتی سلولهای مغزی از بین بروند، شبکه عصبی از آنها دیگر استفاده نمیکند و مسیر دیگری را در مغز انتخاب میکند. از دیدگاه وی این امکان وجود دارد که شبکهای با تعداد زیادی اتصالات برای تکرار ایجاد شوند تا در صورت نابودی بخشی از آن، همچنان به صورت مجموعهای به هم پیوسته کار کند. تا نیمه دهه ۶۰ میلادی کسی به نظرات او توجهای نکرد. تا اینکه در سال ۱۹۶۵ نیروی هوایی آمریکا و«آزمایشگاههای بل» به نظرات او علاقهمند شدند و پنتاگون با سرمایهگذاری در طراحی و ساخت شبکهای براساس نظریات او موافقت کرد.
ولی آقای باران (Baran) بنابر دلایلی حاضر با همکاری با نیروی هوایی آمریکا نشد. در این میان دانشمندی با نام تیلور (Tailon) وارد موسسه آرپا (ARPA) شد. او مستقیماً به آقای هرتسفلد رییس موسسه پیشنهاد کرد: (ARPA) آرپا هزینه ایجاد یک شبکه آزمایشی کوچک با حداقل چهار گره را تامین کند که بودجه آن بالغ بر یک میلیون دلار میشد. با این پیشنهاد تیلور تجربهای را آغاز کرد که منجر به پیدایش اینترنت امروزی شد. او موفق شد در سال ۱۹۶۶، دو کامپیوتر را در شرق و غرب آمریکا به هم متصل کند. با این اتصال انقلابی در نحوه صدور اطلاعات در دنیای ارتباطات رخ داد که نتیجه آن را امروز همگی شاهد هستیم. این شبکه به بستههایی (packet) از دادهها که به وسیله کامپیوترهای مختلف ارسال میشدند اتکا داشت. پس از انکه ازمایشها سودمندی انرا مشخص کردند سایر بخشهای دولتی و دانشگاهها پژوهشی تمایل خود را به وصل شدن به ان اعلام کردند . ارتباطات الکترونیکی به صورت روشی موثر برای دانشمندان و دیگران به منظور استفاده مشترک از دادهها در امد. در همان زمان که ARPAnet در حال رشد بود تعدادی شبکه پوشش محلی (LAN) در نقاط مختلف آمریکا به وجود امد. مدیران LANها نیز به وصل کردن کامپیوترهای شبکههای خود به شبکههای بزرگتر اقدام کردند . پروتوکل اینترنت ARPAnet IP زبان استاندارد حکمفرما برای برقراری ارتباط کامپیوترهای شبکههای مختلف به یکدیگر شد.تاریخ تولد اینترنت به طور رسمی اول سپتامبر ۱۹۶۹ اعلام شدهاست. زیرا که اولین “IMP” در دانشگاه “UCLA” واقع در سانتاباربارا در این تاریخ بارگذاری شدهاست.
از اوایل دهه ۱۹۹۰ رشد استفاده از اینترنت به صورت تصاعدی افزایش یافت . یکی از علل چنین استقبالی ابزار جستجویی مانند Gopher و archie بودهاست اما اینها در سال ۱۹۹۱ تحت تاثیر word wide web قرار گرفتند که به وسیله CERN یا ازمایشگاه فیزیک هستهای اروپا ساخته شد . با ان که اینترنت از ابتدا طوری بود که مبادله اطلاعات برای تازه واردان بسیار ساده باشد. بزرگترین جهش در وب در سال ۱۹۹۳ با عرضه نرمافزار موزاییک mosaic که نخستین برنامه مرورگر وب گرافیکی بود به وجود امد. برنامه موزاییک محصول تلاش دانشجویان و استادان بخش "مرکز ملی کاربردهای ابر کامپیوتر " در دانشگاه ایلینویز آمریکا بود. برای نخستین بار موزاییک امکانات اشاره و کلیک (به وسیله موش) را فراهم کرد. کاربران میتوانستند صفحات وب (web page) یا مجموعهای از متن و گرافیک را کنار هم بگذارند تا هر کسی که میخواست انها را بتواند روی اینترنت ببیند. وقتی با موش روی کلمهها یا تصاویر خاصی که hyper link نامیده میشد کلیک میکردند برنامه موزاییک به طور خود کار یک صفحه دیگر باز میکرد که به کلمه یا تصویر خاص و کلیک شده اختصاص داشت. بهترین بخش این سیستم انجا بود که hyper linkها میتوانستند به صفحاتی روی همان کامپیوتر یا هر کامپیوتر دیگر اینترنت با خدمات وب اشاره کنند. صفحات وب هر روز متولد میشدند و مفهوم موج سواری یا surfing روی وب متولد شد. اواسط سال ۱۹۹۴ سه میلیون کامپیوتر به اینترنت وصل شده بود و در ان هنگام اجرای عملیات اهسته نشده بود. صفحات جدید وب که شامل همه چیز از اسناد دولتی تا مدارک شرکتها و مدلهای جدید لباس بود در سراسر دنیا چندین برابر شد . موزاییک و جانشینان ان مانند navigator محصول شرکت " نت اسکیپ " اینترنت را از قلمرو علمی به میان مردم اوردند. طبق اخرین امار ۵۱ درصد کاربران بعد از سال ۱۹۹۵ وارد این محیط شدهاند. میلیونها انسانی که از اینترنت استفاده میکنند نیازی ندارند که نکات فنی مانند TCP/IP را بدانند . امروزه شرکتهای خدمات دهنده اینترنت یا ISP این کار را به عهده دارند.رشد روز افزون ان و ساده تر شدن استفاده ان همچنان ادامه دارد . هر چه تعداد مردم بیشتری به اینترنت رجوع کنند تعداد شرکتهای سازنده برنامههای اینترنت بیشتر میشود.با انکه بعضی از عاشقان اینترنت ان را نوعی شیوه زندگی میدانند. در نظر بیشتر کاربران منبع سرگرمی اطلاعات است ولی بیشترین مصرف ان پست الکترونیکی یا همان email است که یکی از ابزارهای ارتباطی کار امد به شمار میرود. پیامها از کامپیوتری به کامپیوتر دیگر با سرعت پرواز میکنند و منتظر میمانند تا شخص فرصت خواندن انها را پیدا کند . وب امکانات خوبی برای کپی از نرمافزارهای مجاز از لحاظ کپی فراهم میسازد. وقتی که میبینیم که در مدت کوتاهی اینترنت به چنین رشدی نایل آمده است، مطمئناً دشوار خواهد بود که آینده او را پیش بینی کنیم. طبق نظر کارشناسان ماهانه ۱۰ درصد به تعداد کاربران اینترنت افزوده میشود ولی تعداد دقیق کاربران که روزانه از آن استفاده میکنند مشخص نیست. هرچند که پارهای از کارشناسان تعداد آنها را تا ۹۰۰ میلیون نفر حدس میزنند. تعداد رسمی کاربران اینترنتی را در سال ۲۰۰۰ کارشناسان ۵۰۰ میلیون نفر اعلام کرده بودند.
قطعاً در سالهای آینده تحولات شگرفی را در زمینه شبکههای اینترنتی شاهد خواهیم بود. بهوسیله اینترنت انسان به راههای جدیدی دست پیدا کرد. در کنار این شانس جدید توسط اینترنت، باید بگوییم خطراتی نیز در رابطه با سیاست و اقتصاد و علم به دنبال خواهد داشت. فرم امروزی اینترنت مدیون همکاری تمام کاربران اینترنت در سرتاسر گیتی است که با این تصور که اطلاعات موجود در سطح جهان را به راحتی با یکدیگر مبادله کنند. این تصوری بود که آقای باران(Baran) از اینترنت داشت و امیدواریم در آینده نیز تکامل اینترنت در این مسیر باشد.
رایجترین زبان برای ارتباطات در اینترنت زبان انگلیسی است. این ممکن است ناشی از زادگاه اینترنت و همچنین نقش زبان انگلیسی به عنوان زبان بینالمللی باشد. ناتوانی رایانههای اولیه - که اغلب در امریکا ساخته میشدند - در پردازش نویسه (کاراکتر)های به جز گونه انگلیسی الفبای لاتین نیز ممکن است با این موضوع مرتبط باشد. پس از انگلیسی(۲۸٪ از بازدیدکنندگان وب)، پرخواهان ترین زبانها در وب جهان گستر عبارنتد از : چینی ۲۳٪، اسپانیایی ۸٪، ژاپنی ۵٪، پرتغالی و آلمانی (هر کدام ۴٪)، عربی و فرانسه و روسی (هرکدام ۳٪)و کرهای ۳٪.بر پایه منطقه، ۴۲٪ از کاربران اینترنت در آسیا، ۲۴٪ در اروپا،۱۴٪ در امریکای شمالی، ۱۰٪ در امریکای لاتین و کارائیب، ۵٪ در آفریقا، ۳٪ در خاورمیانه و ۱٪ در استرالیا/اقیانوسیه.
فناوریهای اینترنت در سالهای اخیر بویژه در زمینه استفاده از یونیکد، به حد کافی گسترش یافتهاند و امکانات مناسبی برای ارتباط در بسیاری از زبانهای دنیا در دسترس میباشد، اما همچنان مسائلی مانند موجیباکه (نمایش نادرست برخی نویسههای یک زبان) باقی هستند.
روشهای معمول دسترسی به اینترنت در خانهها شامل دسترسی با شمارهگیری (dial-up)، خطوط زمینی پهن باند(از طریق کابل کواکسیال، فیبر نوری و یا سیم مسی)، وای-فای (Wi-Fi)، ماهواره و فناوری ۳G تلفن همراه میباشد. اماکن عمومی که میتوان در آنها از اینترنت استفاده نمود شامل کتابخانهها و کافینتها که در آنها رایانههایی با اتصال به اینترنت مهیاست.همچنین کیوسکهای اینترنت در بسیاری از اماکن عمومی مانند سالن فرودگاه و کافی شاپها موجودند که بعضی از آنها برای استفادههای کوتاه و سرپایی در نظرگرفته شدهاند.واژههای گوناگونی برای نامیدن این ترمینالها به کار میرودف از جمله : کیوسک عمومی اینترنت و یا پایانه دسترسی عمومی.
این ترمینالها به گستردگی برای کاربردهایی چون رزرو بلیط، سپرده گذاری بانکی، پرداخت برخط مورد استفاده قرار میگیرد. وای-فای(Wi-Fi) دسترسی بی سیم به شبکههای رایانهای و در نتیجه به اینترنت را فراهم میکند. نقاط داغ (Hotspots) به مکانهایی گفته میشود که دسترسی به اینترنت بی سیم در آن نقاط امکانپذیر است و کاربران میتوانند با لپ تاپ و یا دستیار دیجیتال شخصی(PDA) خود به اینترنت متصل شوند. گاهی این سرویسهای بیسیم برای عموم و یا حداقل برای مشتریان رایگان ارائه میشود. یک نقطه داغ محدوده مکانی مشخصی را شامل میشود مثل محوطه یک دانشگاه، پارک و یا حتی سراسر نقاط یک شهر. سرویسهای تجاری Wi-Fi که کل شهر را پوشش میدهند هم اکنون در شهرهای لندن، وین، تورنتو، سانفرانسیسکو، فیلادلفیا، شیکاگو و پیتسبورگ ارائه میشوند. در این شهرها مشترکین میتوانند در هر نقطهای از شهر به شبکه وای-فای متصل شوند
.علاوه بر وای-فای، آزمایشهایی نیز در زمینه شبکههای بی سیم متحرک اختصاصی مانن ریکوچت و سرویسهای دادهای پرسرعت بر روی تلفنهای همراه، و شبکههای بی سیم ثابت انجام شدهاست. تلفنهای همراه پیشرفته مثل تلفنهای همراه هوشمند (Smartphone) همگی با قابلیت اتصال به اینترنت از طریق شبکه تلفن عرضه میشوند. مرورگرهای وب مثل اپرا معمولاً نسخهای برای این دستگاههای جیبی پیشرفته دارند.
آثار اجتماعی
اینترنت به دلیل خصوصیاتی چون قابلیت استفاده و دسترسی گسترده آن، اشکال کاملاً جدیدی از تعاملات، فعالیتها، و سازماندهیهای اجتماعی را پدید آوردهاست. وبگاههای شبکههای اجتماعی چون فیسبوک، توییتر و مایاسپیس روشهای جدیدی برای معاشرت و تعامل خلق کردهاند. کاربران این سایتها قادرند اطلاعات گوناگونی به صفحات خود بیفزایند، علایق مشترکی را دنبال کنند و به دیگران مرتبط شوند. وبگاههایی مثل لینکداین به پرورش ارتباطات حرفهای و تجاری میپردازد. یوتیوب و فلیکر هم در زمینه ویدیوها و تصاویر کاربران تخصص دارند.
دهه اول سده بیست و یکم، شاهد پرورش اولین نسلی است که در شرایطی رندگی میکنند که اینترنت به گستردگی در دسترس میباشد. این مسایل و نگرانیهایی را به دنبال دارد از جمله مسئله حفظ حریم خصوصی و هویت و توزیع غیر مجاز مواردی که تحت قانون کپی رایت محافظت میشوند. این بومیان دیجیتال با انبوهی از مسایلی مواجه میشوند که در مورد نسلهای قبلی وجود نداشت.
اینترنت کاربرد جدیدی به عنوان بک ابزار سیاسی یافتهاست مه این منجر به سانسوراینترنت میشود. نمونه استفاده سیاسی از اینترنت، مبارزه انتخاباتی هاوارد دین در سال ۲۰۰۴ در ایالات متحده بود که به دلیل جمع آوری کمکهای مردمی از طریق اینترنت شایان توجه بود. بسیاری از گروههای سیاسی از اینترنت برای سازماندهی در انجام ماموریت خود استفاده میکنند. برخی از دولتها مانند ایران، کره شمالی، میانمار، چین وعربستان، آنچه را که مردم میتوانند از طرق اینترنت ببینند، به ویژه در مورد مسایل سیاسی و مذهبی محدود مینمایند.
این کار از طریق نرمافزارهایی که دامنه و محتوا را فیلتر میکنند صورت میپذیرد. در نروژ، دانمارک، فنلاند و سوئد، ارائه دهندگان اصلی خدمات اینترنت به صورت داوطلبانه و احتمالاً برای اجتناب از قانون شدن فیلترینگ، قبول کردهاند که دسترسی به سایتهایی که توسط مقامات مسوول لیست شدهاست را محدود نمایند. اگرچه قرار بر این است که این آدرسهای ممنوع شده تنها شامل وبگاههای هرزه نگاری کودکان باشد، اما محتوای این لیست مخفی است.
در بسیاری از کشورها مانند ایالات متحده امریکا، اگرپه قوانینی در ممنوعیت پخش موارد دربردارنده هرزه نگاری کودک تصویب نمودهاند اما استفاده از نرم افرارهای فیلترینگ را اجباری نکردهاند. نرمافزارهای تجاری و یا رایگان بسیاری تحت عنوان نرمافزار کنترل محتوا در دسترس هستند که کاربران از طریق آنها میتوانند وبگاههای مستهجن را در رایانه شخصی و یا شبکه محلی مسدود نمود تا از دسترسی کودکان به مواد هرزه نگاری و یا خشونت نگاری جلو گیری نمود.
اینترنت از آغاز پیدایش همواره وسیله مناسبی برای فعالیتهای تفریحی بودهاست. بسیاری از انجمنهای اینترنتی بخشهایی برای بازی و ویدیوهای خنده دار و کارتونهای کوتاه در قالب انیمیشنهای فلش(Flash) دارند. بیش از ۶ میلیون نفر در اینترنت از وب نوشتها و تختههای پیام برای برقراری ارتباط استفاده میکنند. صنایع هرزه نگاری و قمار از اینترنت سود میجویند تا وبگاههایی بسازند که منبع کلان تبلیغات برای سایر وبگاهها میباشند.
اگرچه بسیاری از دولتها برای محدود سازی استفاده این دو صنعت ازاینترنت تلاش کردهاند اما در جلوگیری از گسترش محبوبیت آنها چندان موفق نبودهاند.یکی از فعالیتهای تفریحی اصلی در اینترنت، بازیهای چند نفره است. این شکل تفریح اجتماعاتی را بوجود میآورد که در آن افراد از هر سن و نژادی از دنیای بازیهای چندنفره کامپیوتری لذت میبرند. اگرچه بازیهای برخط از سال ۱۹۷۰ وجود داشتهاند،
اما گونه مدرن این بازیها با خدمات اشتراکی مانند گیماسپای و MPlayer آغاز شد. غیر مشترکین محدود به بازیهای خاص و یا زمان بازی خاص بودند. بسیاری از مردم از اینترنت برای دسترسی و بارگیری(download) موسیقی و فیلم و سایر آثار استفاده میکنند. این خدمات به هر دو صورت رایگان و پولی، با استفاده ازسرورهای مرکزی و یا فناوریهای نظیر-به-نظیر توزیع شده ارائه میشوند.برخی از این منابع توجه بیشتری نسبت به سایرین در زمینه حقوق مولفین اصلی نشان دادهاند.
بسیاری از مردم از اینترنت برای دسترسی به اخبار، پیش بینی آب وهوا، گزارشهای ورزشی و جستجوی مطالب در مورد علاقهمندیهای خود استفاده میکنند. آنها از گپ برخط، پیام رسان فوری و پست الکترونیک برای در تماس بودن با دوستان خود در سراسر دنیا و به شیوهای شبیه به دوست مکاتبهای که در قدیم رواج داشت، استفاده میکنند. اینترنت شاهد شمار رو به افزایش میزکارهای وب که در آن کاربران به فایلها و تنظیمات خود دسترسی پیدا میکنند، بودهاست."کم کاری سایبری" (Cyberslacking) محل اتلاف جدی منابع سازمانهاست. کارمندان انگلیسی به طور میانگین ۵۷٪ از وقت خود را به وب گردی در حین کار میپردازند.
تاثیرات ذهنی
بر روی آثار اینترنت بر مغز انسان مطالعات زیادی انجام شدهاست. نیکلاس کار(به انگلیسی: Nicholas Carr) ادعا میکند که اینترنت تفکر عمیق را که عامل خلاقیت واقعی است کاهش میدهد. او همچنین میگوید که پیوندهای فرامتن و تحریک بیش از حد، به این معنی است که مغز باید بیشتر توجهش را بر روی تصمیمات کوتاه متمرکز کند. او همچنین بیان میکند که اینترنت مغز را غرق در اندیشه میکند که باعث آسیب رسیدن به حافظه بلند مدت میگردد. شمار فراوان محرکها در اینترنت منجر به بار شناختی(Cognitive Load) سنگینی برای مغز میشود که یادآوری هرچیزی را مشکل میسازد.استیون پینکر (به انگلیسی: Steven Pinker)، روانشناس، نظری مخالف دارد. او به این نکته اشاره میکند که افراد بر روی آنچه انجام میدهند کنترل دارند وبنابراین این پژوهش و استدلال هرگز طبیعت انسان را در نظر نداشتهاست. او میگوید "تجربه ظرفیتهای پردازش اطلاعات مغز را عوض نمیکند" و ادعا میکند که اینترنت باعث باهوشتر شدن انسانها شدهاست.
تاریخ اینترنت
اتحاد جماهیر شوروی آن زمان موشکی با نام «اسپونیک» (Spotnik) را به فضا میفرستد و نشان میدهد دارای قدرتی است که میتواند شبکههای ارتباطی آمریکا را توسط موشکهای بالستیک و دوربرد خود از بین ببرد. آمریکاییها در پاسخگویی به این اقدام روسها، موسسه پروژههای تحقیقی پیشرفته “ARPA” را بهوجود آوردند. هدف از تاسیس چنین موسسهای پژوهش و آزمایش برای پیدا کردن روشی بود که بتوان از طریق خطوط تلفنی، کامپیوترها را به هم مرتبط نمود. به طوری که چندین کاربر بتوانند از یک خط ارتباطی مشترک استفاده کنند. در اصل شبکهای بسازند که در آن دادهها به صورت اتوماتیک بین مبدا و مقصد حتی در صورت از بین رفتن بخشی از مسیرها جابهجا و منتقل شوند. در اصل هدف “ARPA” ایجاد یک شبکه اینترنتی نبود و فقط یک اقدام احتیاطی در مقابل حمله احتمالی موشکهای اتمی دوربرد بود. هر چند اکثر دانش امروزی ما درباره شبکه بهطور مستقیم از طرح آرپانت “ARPPA NET” گرفته شدهاست. شبکهای که همچون یک تار عنکبوت باشد و هر کامپیوتر ان از مسیرهای مختلف بتواند با همتایان خود ارتباط دااشته باشد واگر اگر یک یا چند کامپیوتر روی شبکه یا پیوند بین انها از کار بیفتادبقیه باز هم بتوانستند از مسیرهای تخریب نشده با هم ارتباط بر قرار کنند.
این ماجرا با وجودی که بخشی از حقایق بهوجود آمدن اینترنت را بیان میکند اما نمیتواند تمام واقعیات مربوط به آن را تشریح کند. باید بگوییم افراد مختلفی در تشکیل اینترنت سهم داشتهاند آقای “Paul Baran” یکی از مهمترین آنهاست. آقای باران که در دوران جنگ سرد زندگی میکرد میدانست که شبکه سراسری تلفن آمریکا توانایی مقابله با حمله اتمی شوروی سابق را ندارد. مثلاً اگر رییس جمهور وقت آمریکا حمله اتمی متقابل را دستور دهد، باید از یک شبکه تلفنی استفاده میکرد که قبلاً توسط روسها منهدم شده بود. در نتیجه طرح یک سیستم مقاوم در مقابل حمله اتمی روسها ریخته شد.آقای باران (Baran) تشکیل و تکامل اینترنت را به ساخت یک کلیسا تشبیه کرد و معتقد بود، طی سالهای اخیر هر کس سنگی به پایهها و سنگهای قبلی بنا اضافه میکند و انجام هر کاری وابسته به کارهای انجام شده قبلی است. بنابراین نمیتوان گفت، کدام بخش از کار مهمترین بخش کار بودهاست و در کل پیدایش اینترنت نتیجه کار و تلاش گروه کثیری از دانشمندان است. داستان پیدایش اینترنت با افسانه و واقعیت در هم آمیخته شدهاست.
در اوایل دهه ۶۰ میلادی آقای باران طی مقالاتی پایه کار اینترنت امروزی را ریخت. اطلاعات و دادهها به صورت قطعات و بستههای کوچکتری تقسیم و هر بسته با آدرسی که به آن اختصاص داده میشود به مقصد خاص خود فرستاده میشود. به این ترتیب بستهها مانند نامههای پستی میتوانند از هر مسیری به مقصد برسند. زیرا آنها شامل آدرس فرستنده و گیرنده هستند و در مقصد بستهها مجدداً یکپارچه میشوند و به صورت یک اطلاعات کامل درمیآیند.
آقای باران (Baran) طی مقالاتی اینچنینی ساختمان و ساختار اینترنت را پیشگویی کرد. او از کار سلولهای مغزی انسان به عنوان الگو استفاده کرد، او معتقد بود: وقتی سلولهای مغزی از بین بروند، شبکه عصبی از آنها دیگر استفاده نمیکند و مسیر دیگری را در مغز انتخاب میکند. از دیدگاه وی این امکان وجود دارد که شبکهای با تعداد زیادی اتصالات برای تکرار ایجاد شوند تا در صورت نابودی بخشی از آن، همچنان به صورت مجموعهای به هم پیوسته کار کند. تا نیمه دهه ۶۰ میلادی کسی به نظرات او توجهای نکرد. تا اینکه در سال ۱۹۶۵ نیروی هوایی آمریکا و«آزمایشگاههای بل» به نظرات او علاقهمند شدند و پنتاگون با سرمایهگذاری در طراحی و ساخت شبکهای براساس نظریات او موافقت کرد.
ولی آقای باران (Baran) بنابر دلایلی حاضر با همکاری با نیروی هوایی آمریکا نشد. در این میان دانشمندی با نام تیلور (Tailon) وارد موسسه آرپا (ARPA) شد. او مستقیماً به آقای هرتسفلد رییس موسسه پیشنهاد کرد: (ARPA) آرپا هزینه ایجاد یک شبکه آزمایشی کوچک با حداقل چهار گره را تامین کند که بودجه آن بالغ بر یک میلیون دلار میشد. با این پیشنهاد تیلور تجربهای را آغاز کرد که منجر به پیدایش اینترنت امروزی شد. او موفق شد در سال ۱۹۶۶، دو کامپیوتر را در شرق و غرب آمریکا به هم متصل کند. با این اتصال انقلابی در نحوه صدور اطلاعات در دنیای ارتباطات رخ داد که نتیجه آن را امروز همگی شاهد هستیم. این شبکه به بستههایی (packet) از دادهها که به وسیله کامپیوترهای مختلف ارسال میشدند اتکا داشت. پس از انکه ازمایشها سودمندی انرا مشخص کردند سایر بخشهای دولتی و دانشگاهها پژوهشی تمایل خود را به وصل شدن به ان اعلام کردند . ارتباطات الکترونیکی به صورت روشی موثر برای دانشمندان و دیگران به منظور استفاده مشترک از دادهها در امد. در همان زمان که ARPAnet در حال رشد بود تعدادی شبکه پوشش محلی (LAN) در نقاط مختلف آمریکا به وجود امد. مدیران LANها نیز به وصل کردن کامپیوترهای شبکههای خود به شبکههای بزرگتر اقدام کردند . پروتوکل اینترنت ARPAnet IP زبان استاندارد حکمفرما برای برقراری ارتباط کامپیوترهای شبکههای مختلف به یکدیگر شد.تاریخ تولد اینترنت به طور رسمی اول سپتامبر ۱۹۶۹ اعلام شدهاست. زیرا که اولین “IMP” در دانشگاه “UCLA” واقع در سانتاباربارا در این تاریخ بارگذاری شدهاست.
از اوایل دهه ۱۹۹۰ رشد استفاده از اینترنت به صورت تصاعدی افزایش یافت . یکی از علل چنین استقبالی ابزار جستجویی مانند Gopher و archie بودهاست اما اینها در سال ۱۹۹۱ تحت تاثیر word wide web قرار گرفتند که به وسیله CERN یا ازمایشگاه فیزیک هستهای اروپا ساخته شد . با ان که اینترنت از ابتدا طوری بود که مبادله اطلاعات برای تازه واردان بسیار ساده باشد. بزرگترین جهش در وب در سال ۱۹۹۳ با عرضه نرمافزار موزاییک mosaic که نخستین برنامه مرورگر وب گرافیکی بود به وجود امد. برنامه موزاییک محصول تلاش دانشجویان و استادان بخش "مرکز ملی کاربردهای ابر کامپیوتر " در دانشگاه ایلینویز آمریکا بود. برای نخستین بار موزاییک امکانات اشاره و کلیک (به وسیله موش) را فراهم کرد. کاربران میتوانستند صفحات وب (web page) یا مجموعهای از متن و گرافیک را کنار هم بگذارند تا هر کسی که میخواست انها را بتواند روی اینترنت ببیند. وقتی با موش روی کلمهها یا تصاویر خاصی که hyper link نامیده میشد کلیک میکردند برنامه موزاییک به طور خود کار یک صفحه دیگر باز میکرد که به کلمه یا تصویر خاص و کلیک شده اختصاص داشت. بهترین بخش این سیستم انجا بود که hyper linkها میتوانستند به صفحاتی روی همان کامپیوتر یا هر کامپیوتر دیگر اینترنت با خدمات وب اشاره کنند. صفحات وب هر روز متولد میشدند و مفهوم موج سواری یا surfing روی وب متولد شد. اواسط سال ۱۹۹۴ سه میلیون کامپیوتر به اینترنت وصل شده بود و در ان هنگام اجرای عملیات اهسته نشده بود. صفحات جدید وب که شامل همه چیز از اسناد دولتی تا مدارک شرکتها و مدلهای جدید لباس بود در سراسر دنیا چندین برابر شد . موزاییک و جانشینان ان مانند navigator محصول شرکت " نت اسکیپ " اینترنت را از قلمرو علمی به میان مردم اوردند. طبق اخرین امار ۵۱ درصد کاربران بعد از سال ۱۹۹۵ وارد این محیط شدهاند. میلیونها انسانی که از اینترنت استفاده میکنند نیازی ندارند که نکات فنی مانند TCP/IP را بدانند . امروزه شرکتهای خدمات دهنده اینترنت یا ISP این کار را به عهده دارند.رشد روز افزون ان و ساده تر شدن استفاده ان همچنان ادامه دارد . هر چه تعداد مردم بیشتری به اینترنت رجوع کنند تعداد شرکتهای سازنده برنامههای اینترنت بیشتر میشود.با انکه بعضی از عاشقان اینترنت ان را نوعی شیوه زندگی میدانند. در نظر بیشتر کاربران منبع سرگرمی اطلاعات است ولی بیشترین مصرف ان پست الکترونیکی یا همان email است که یکی از ابزارهای ارتباطی کار امد به شمار میرود. پیامها از کامپیوتری به کامپیوتر دیگر با سرعت پرواز میکنند و منتظر میمانند تا شخص فرصت خواندن انها را پیدا کند . وب امکانات خوبی برای کپی از نرمافزارهای مجاز از لحاظ کپی فراهم میسازد. وقتی که میبینیم که در مدت کوتاهی اینترنت به چنین رشدی نایل آمده است، مطمئناً دشوار خواهد بود که آینده او را پیش بینی کنیم. طبق نظر کارشناسان ماهانه ۱۰ درصد به تعداد کاربران اینترنت افزوده میشود ولی تعداد دقیق کاربران که روزانه از آن استفاده میکنند مشخص نیست. هرچند که پارهای از کارشناسان تعداد آنها را تا ۹۰۰ میلیون نفر حدس میزنند. تعداد رسمی کاربران اینترنتی را در سال ۲۰۰۰ کارشناسان ۵۰۰ میلیون نفر اعلام کرده بودند.
قطعاً در سالهای آینده تحولات شگرفی را در زمینه شبکههای اینترنتی شاهد خواهیم بود. بهوسیله اینترنت انسان به راههای جدیدی دست پیدا کرد. در کنار این شانس جدید توسط اینترنت، باید بگوییم خطراتی نیز در رابطه با سیاست و اقتصاد و علم به دنبال خواهد داشت. فرم امروزی اینترنت مدیون همکاری تمام کاربران اینترنت در سرتاسر گیتی است که با این تصور که اطلاعات موجود در سطح جهان را به راحتی با یکدیگر مبادله کنند. این تصوری بود که آقای باران(Baran) از اینترنت داشت و امیدواریم در آینده نیز تکامل اینترنت در این مسیر باشد.