تکنیک مدیریت پروژه نرم افزاری
یک پروژه مهندسی نرم افزار معمولی شامل جمعآوری نیازمندیها، توسعه و تست نرم افزار و نگهداری منظم محصول نرم افزاری است.
فهرست مطالب
- تعدادی تکنیک مدیریت پروژه نرم افزاری عبارتند از:
- تکنیک مدیریت پروژه نرم افزاری ۱: فرآیند یکپارچه منطقی (RUP)
- تکنیک مدیریت پروژه نرم افزاری ۲: مدیریت پروژه چابک (Agile)
- تکنیک مدیریت پروژه نرم افزاری ۳: روش اسکرام
- تکنیک مدیریت پروژه نرم افزاری ۴: برنامه نویسی سریع (XP)
- نکات مدیریت پروژه نرم افزاری
- استفاده از مدیریت پروژه آنلاین بهتایم برای مدیریت بهتر پروژههای نرم افزاری
تعدادی تکنیک مدیریت پروژه نرم افزاری عبارتند از:
- فرآیند یکپارچه منطقی – Rational Unified Process (RUP)
- مدیریت پروژه چابک – Agile
- روش اسکرام – Scrum
- برنامه نویسی سریع – Extreme Programming (XP)
درباره سایر متدولوژیهای مدیریت پروژه بیشتر بخوانید.
تکنیک مدیریت پروژه نرم افزاری 1: فرآیند یکپارچه منطقی (RUP)
این تکنیک مدیریت پروژه نرم افزاری تکراری و در عین حال چابک است. تکراری است، زیرا فعالیتها در طول پروژه تکرار میشوند و چابک است زیرا میتوان آنها را متناسب با نیازهای نرمافزاری تنظیم کرد.
فرآیند یکپارچه منطقی (RUP) چیست؟
فرآیند یکپارچه منطقی یک ساختار مدیریتی چابک برای تیمهای توسعه نرمافزار است که باعث میشود یک پروژه در طول زمان در ۴ مرحله متمایز: آغاز، توسعه، ساخت و انتقال آشکار شود. هر یک از ۴ مرحله دارای یک هدف اصلی است و شامل ۶ رشته توسعه است: مدلسازی کسب و کار، الزامات، تحلیل و طراحی، پیادهسازی، تست و استقرار. تا زمانی که با موفقیت به هدف اصلی مرحله قبل نرسید، نمیتوانید به مرحله بعدی بروید.
برخی از رشتههای توسعه اهمیت بیشتری نسبت به سایرین دارند، بنابراین زمان بیشتری نسبت به سایرین میگیرند.
چگونه از فرآیند یکپارچه منطقی (RUP) استفاده کنیم؟
همانطور که قبلا ذکر کردیم، برای استفاده موثر از تکنیک RUP، نرم افزار باید ۴ مرحله توسعه را طی کند:
آغاز
از آنجایی که این مرحلهای است که برنامه توسعه پروژه را مشخص میکند، باید یک مورد تجاری ایجاد کنید که شامل یک طرح پروژه با توضیحات، ارزیابیهای مدیریت ریسک، محیط کسب و کار و عوامل موفقیت باشد. با در نظر گرفتن این موارد، ذینفعان تصمیم میگیرند که پروژه را ادامه دهند یا خیر. مرحله آغازین اولین نقطه عطف پروژه است. در صورتی که پروژه موفق به گذراندن این مرحله نشود، میتوان آن را لغو یا طراحی مجدد کرد.
توسعه
در این مرحله، باید ریسکهای فنی پروژه را در نظر بگیرید، اینکه آیا قادر به ساخت یک سیستم کارآمد هستید یا خیر. این دومین نقطه عطف در پروژه بوده و بسیار مهم است، زیرا ریسک بالایی دارد و ایجاد تغییرات بعداً دشوار است.
ساخت
اینجا جایی است که اجزا و ویژگیهای اصلی با کدگذاری و تست توسعه مییابند. این مرحله منجر به راهنمای کاربر[۱] و یک نسخه بتا[۲] از سیستم میشود که نیاز به ارزیابی دارد. اگر محصول در تست شکست بخورد، مرحله بعدی یعنی مرحله انتقال باید به تعویق بیفتد.
انتقال
هدف اصلی این مرحله عرضه موفقیتآمیز یک محصول است و این آخرین نقطه عطف در پروژه است.
تاریخچه مختصری از فرآیند یکپارچه منطقی (RUP)
Rational Unified Process توسط شرکت Rational Software در سال ۲۰۰۳ پایهگذاری شد.
فرآیند یکپارچه منطقی (RUP) برای چه پروژههایی بهتر است؟
پروژههای توسعه نرم افزار با چارچوب زمانی مشخص برای تکمیل پروژه و همینطور بودجه نهایی قابل پیشبینی.
نمایش تصویری فرآیند یکپارچه منطقی (RUP)
در نمایش تصویری زیر، میتوانید هر چهار فاز توسعه پروژه را درRUP مشاهده کنید. همچنین میتوانید متوجه شوید که برخی از فازها (توسعه، ساخت و انتقال) تکرارهای بیشتری دارند که بر تولید محصولات فنی برای دستیابی به هدف هر فاز تمرکز میکنند.
تکنیک مدیریت پروژه نرم افزاری ۲: مدیریت پروژه چابک (Agile)
این تکنیک مدیریت پروژه نرم افزاری انعطافپذیری و سازگاری را برای تطبیق آسان با تغییرات در چرخه عمر پروژه پیشنهاد میکند. خود کلمه “چابک” به معنای توانایی تغییر، یعنی سازگاری است.
مدیریت پروژه چابک چیست؟
مدیریت پروژه چابک روشی برای توسعه نرم افزار است که بر خود سازماندهی و عملکرد متقابل در یک تیم و همچنین جلب رضایت مشتری تاکید دارد.
چگونه از مدیریت چابک استفاده کنیم؟
برای استفاده موفقیت آمیز از مدیریت چابک در پروژههای خود چندین اصل وجود دارد که باید رعایت کنید:
این تکنیک به جای:
- اجرای فرآیندها و ابزارهای خاص، بر تعاملات بین افراد در یک تیم تاکید دارد.
- گردآوری مستندات جامع برای محصول، بر ایجاد یک نرم افزار کاملاً کارآمد تأکید دارد.
- تمرکز بر مذاکرات قرارداد، بر استفاده از همکاری مشتری برای تسهیل روند توسعه تاکید دارد.
- پیروی از یک برنامه دقیق پروژه، بر بهترین روشهایی که تیم میتواند به تغییرات پروژه پاسخ دهد، تأکید میکند.
برای درک بهتر این تکنیک مدیریت پروژه نرم افزاری مراحل زیر را دنبال کنید:
- ابتدا، پروژهها را به اسپرینتهای[۳] کوتاه تقسیم کنید.
- برنامههای پروژه خود را حین کار تطبیق دهید و به دنبال بهبود مستمر باشید.
- تیم را به سمت خودسازمانیابی[۴] تشویق کنید.
- هدف شما تولید حداکثر ارزش و کارآییِ خدمات یا محصولی است که میخواهید ارائه دهید.
تاریخچه مختصری از مدیریت پروژه چابک
مدیریت پروژه چابک به طور رسمی در سال ۲۰۰۱ به عنوان بخشی از مانیفست چابک توسعه یافت.
مدیریت پروژه چابک برای چه پروژههایی بهتر است؟
- پروژههایی که سررسیدهای دقیقی نداشته، اما ایدهای کلی از نتیجه یا محصول نهایی دارند.
- آن پروژههایی که آمادگی تغییرات غیرمنتظره دارند.
- آنهایی که به جای برنامهریزی پروژه به همکاری تیمی کارآمد بستگی دارند.
نمایش تصویری مدیریت چابک
همانطور که میبینید، مدیریت چابک یک فرآیند تکراری است که هدف نهایی آن پاسخگویی به تغییرات است.
درباره مدیریت پروژه چابک بیشتر بخوانید.
تکنیک مدیریت پروژه نرم افزاری ۳: روش اسکرام
این یکی دیگر از تکنیکهای مدیریت پروژه انعطافپذیر است که مبتنی بر فرآیندهای تکراری، اعمال تنظیمات و یادگیری مستمر است.
روش اسکرام چیست؟
درست مانند کانبان، اسکرام یکی دیگر از زیرشاخههای محبوب متدولوژی مدیریت پروژه چابک است. هدف آن کمک به تیمهای توسعه نرمافزار است تا بتوانند نرمافزارهای کارآمد را به کمک روشهای تکراری ارائه دهند.
پیشرفت پروژه با دنبال کردن توالی دورههای کوتاه و محدود به زمانی به نام اسپرینت اندازهگیری میشود. پایان هر اسپرینت باید به معنای تکمیل یک مقدار برنامهریزیشده از کار باشد.
چگونه از روش اسکرام استفاده کنیم؟
در ادامه ۶ مرحله برای اجرای یک پروژه با استفاده از روش اسکرام آورده شده است:
تعیین تیم
اول از همه، شما باید افرادی را که توسعه، تولید یا هر مسئولیت دیگری را برای ایجاد یک محصول نهایی انجام میدهند، مشخص کنید (اسکرام مستر، مالک محصول و غیره).
ایجاد بک لاگ[۵] محصول
فهرستی از کارهایی که باید انجام شوند تهیه کنید. این کارها به عنوان stories هم شناخته میشوند.
ایجاد اسپرینت
اسپرینت یک دوره زمانی کوتاه است که در آن کار به اجزای قابل مدیریتتر تقسیم میشود. کارهای بکلاگ را اینجا اضافه کنید.
میزبانی یک جلسه
این یک جلسه روزانه کوتاه است که به آن جلسه “scrum روزانه” یا “stand up” میگویند. کل تیم در مورد پیشرفت صحبت میکنند و در صورت وجود مشکلات، آنها را حل میکنند.
میزبانی یک جلسه بررسی اسپرینت
این جلسه در پایان یک اسپرینت انجام میشود. همه ذینفعان حیاتی باید برای بحث در مورد نتایج، جمعآوری دادهها و برنامهریزی برای بهبود یا تغییرات حضور داشته باشند.
تکرار
باید دو مرحله قبلی را تکرار کنید تا زمانی که اسپرینت نهایی را کامل کنید و موارد قابل تحویل را ایجاد کنید.
تاریخچه مختصری از روش اسکرام
در ساخت نرم افزار، متدولوژی اسکرام یکی از محبوبترین و سادهترین چارچوبها برای کاربرد اصول Agile است. با این حال، اولین بار با این نام توسط Hirotaka Takeuchi و Ikujiro Nonaka در سال ۱۹۸۶ در مقاله آنها معرفی شد.
روش اسکرام برای چه پروژههایی بهتر است؟
پروژههای پیچیده و مبهم.
این روش به طور سنتی برای پروژههای توسعه نرم افزار استفاده میشد، اما اسکرام میتواند یک رویکرد کارآمد برای پروژههای بازاریابی و تیمهای رهبری باشد.
نمایش تصویری روش اسکرام
مراحل اجرای موفق پروژه اسکرام در تصویر زیر همراه با سایر فعالیتهای مورد نیاز برای تکمیل پروژه ارائه شده است.
درباره اسکرام بیشتر و کاملتر بخوانید.
تکنیک مدیریت پروژه نرم افزاری ۴: برنامه نویسی سریع (XP)
تکنیک مدیریت پروژه نرم افزاری برنامه نویسی سریع (XP) یک تکنیک همکاری است که کار گروهی را تشویق میکند و پیشنهاد میکند پروژههای پیچیده به چندین نسخه کوچکتر و قابل مدیریت تقسیم شوند.
برنامهنویسی سریع (XP) چیست؟
(XP) یک چارچوب توسعه نرم افزار چابک خاص است که هدف اصلی آن کمک به تیم در تولید نرم افزار با کیفیت بالاتر و در عین حال صرف زمان کمتر برای مدیریت خروجی پروژهها و برآوردن نیازهای مشتریان است.
برنامهنویسی سریع (XP) فعالیتها و اصول زیر را الزامی میداند:
ارتباط مستمر را حفظ کنید.
با تاکید بر گفتگوهای رو در رو.
سادهترین کاری را که جواب میدهد، انجام دهید.
با تاکید بر انجام کارهای ضروری و پرداختن به نیازهای فعلی پروژه.
بازخورد منظم ارائه دهید.
با تاکید بر چرخه کاری “ساخت، جمع آوری، تغییر”. تیم یک ویژگی ایجاد میکند، بازخورد مربوط به ویژگی را جمعآوری میکند و سپس ویژگی را بر اساس بازخورد تغییر میدهد.
با شجاعت عمل کنید.
با تاکید بر پذیرش مشکلات، عمل به بازخورد، واکنش سریع و پرسیدن سوالات بحث برانگیز در صورت لزوم.
احترام را ترویج دهید.
با تاکید بر ارائه بازخورد محترمانه به دیگران و پذیرش بازخورد از دیگران با حفظ احترام آنها.
چگونه از برنامهنویسی سریع (XP) استفاده کنیم؟
مراحل زیر را دنبال کنید:
برنامهریزی.
مرحله اولیه جایی است که برنامهریزی انجام میشود، یعنی جایی که مشتری داستان کاربر یا user stories را مینویسد: توضیح مختصری در مورد نیازهای مشتری برای ویژگیهای خاص.
برقراری ارتباط.
از آنجایی که مدیریت پروژه ۹۰٪ ارتباطات است، گام بعدی جایی است که مدیر پروژه باید یک تیم با قابلیت اجرایی بالا تشکیل دهد.
بازسازی.
ابتدا از سادهترین طرح شروع کنید و به سراغ طرحهای پیچیده بروید. باید اجزای کوچکتر و قابل مدیریتتری ایجاد کنید تا کد خود را مختصر اما جامع نگه دارید. فراموش نکنید که spike solutions ایجاد کنید. یعنی آزمایشهای کوچکی که میتوانند به شما در یافتن پاسخ به مسائل طراحی سخت کمک کنند.
کدنویسی
اکنون زمان اجرای کد است. از آنجایی که XP از مدل مالکیت جمعی استفاده میکند، به توسعهدهندگان مجزا وابسته نیست، و مالکیت کد به صورت جمعی است. یعنی هر عضو تیمی که متوجه مشکلی در کد میشود باید در کوتاهترین زمان این مشکل را برطرف کند.
بررسی و تست
در نهایت، هر مرحله از فرآیند باید قبل از انتشار کد، از طریق تستهای متعدد بررسی شود.
تاریخچه مختصری از برنامهنویسی سریع (XP)
برنامهنویسی سریع (XP) اولین بار در دهه ۱۹۹۰ توسط Kent Beck که این تکنیک را در پروژه حقوق و دستمزد C3 پیادهسازی کرد، ابداع شد.
برنامهنویسی سریع (XP) برای چه پروژههایی بهتر است؟
- پروژههای توسعه نرم افزار پویا و در حال تغییر
- تیمهای توسعه مشترک (Co-located)
- پروژههای با ریسک بالا و با بازههای زمانی ثابت
نمایش تصویری برنامهنویسی سریع (XP)
میتوانید مراحل توضیح داده شده را در این نمایش بصری مشاهده کنید که شامل آخرین مرحله یعنی برنامه نویسی دونفره[۶] هم هست. قبلاً گفتیم که XP از کار تیمی و همکاری پشتیبانی میکند، بنابراین برنامه نویسی دونفره انجام میشود تا اعضای تیم بتوانند به صورت دونفره در یک رایانه واحد کار کنند. این امر مالکیت جمعی را تقویت میکند، و چه چیزی بهتر از اینکه هر دو عضو تیم از یکدیگر یاد بگیرند.
نکات مدیریت پروژه نرم افزاری
۱. تمام الزامات پروژه را مستند کنید.
زمانی که متوجه شدید چه اهدافی را میخواهید انجام دهید و چه وظایف و مراحلی را باید انجام دهید تا به اهداف مذکور برسید. زمان آن رسیده است که این دادهها را برای مراجعات بعدی مستند کنید، هم به خاطر تیم خود و هم به خاطر سرمایهگذاران پروژههای آینده.
۲. پروژهها را با سایر تعهدات خود هماهنگ کنید.
ممکن است شرکت شما در یک دوره زمانی به طور همزمان بر روی چندین پروژه کار کند. بنابراین، هنگام تعیین سررسیدها و مسئولیتها، باید سایر پروژهها و تعهدات تیم خود را هم در نظر بگیرید.
۳. حجم کار را به دقت مدیریت کنید.
آیا مطمئن هستید که وظایف، نقشها و مسئولیتها را عادلانه تخصیص دادهاید؟ یا اینکه یکی از اعضای تیم روی ۵ کار مختلف کار میکند، در حالی که یکی دیگر از اعضای تیم کاری برای انجام دادن ندارد؟
مراقب این موضوع باشید و برای بهترین استفاده از منابع، کار را به طور عادلانه توزیع کنید.
بخوانید نرم افزار مدیریت پروژه چگونه به تقسیم عادلانه وظایف کمک میکند.
۴. پیشرفت پروژه را همیشه ردیابی کنید.
آیا:
- پروژه طبق برنامه پیش میرود؟
- همه سهم خود از کار را انجام میدهند؟
- تیم با سرعتی کار میکند که با سررسیدهای مورد انتظار پروژه هماهنگ باشد؟
- در یک مرحله از پروژه تاخیر وجود دارد؟
نظارت بر کار تیم خود و پیگیری پیشرفت آنها به پاسخ دادن به این سوالات کمک میکند و از بروز حوادث پیشبینی نشده و تاخیر جلوگیری میکند.
۵. با اعضای تیم در ارتباط باشید.
برای اینکه در جریان این باشید که هرکسی در حال حاضر روی چه چیزی کار میکند، میزان پیشرفت آنها و اینکه آیا پروژه مشکلی دارد یا خیر، باید با تیم در ارتباط باشید. بنابراین، هر سوال یا مشکلی که دارید، در مورد آن صحبت کنید. به سؤالات پاسخ دهید، مشکلات را دریابید، و معضلات را با هم حل کنید.
۶. در برابر خزش از محدوده پروژه اقدامات احتیاطی انجام دهید.
اگر پروژه خود را با دقت برنامهریزی کنید و تمام وظایف و کارهای فرعی را که ممکن است قبل از اتمام پروژه نیاز به انجام آنها داشته باشید، پیشبینی کنید، در برابر خزش از محدوده[۷] ایمن خواهید بود. بنابراین باید بودجه و زمان مورد نیاز برای انجام به موقع و با کیفیت همه کارها و همچنین کارهای فرعی را به دقت محاسبه کنید.
۷. تمام ریسکهای پروژه را در نظر بگیرید.
هر پروژهای دارای مشکلات بالقوهای است که ممکن است قبل از اتمام پروژه ایجاد شود. تکنیک ثبت ریسک برای مقابله با این موضوع است. برای اطمینان از اینکه بدون دردسر از این مشکلات عبور میکنید باید مشکلات را قبل از وقوع آنها پیشبینی کنید. بنابراین، سعی کنید از تجربیات خود برای تعریف مشکلات احتمالی در مراحل و وظایف پروژه استفاده کنید. سپس، راه حلهایی را که در صورت نیاز اجرا خواهید کرد، تعریف کنید.
بیشتر بدانیم:
فهرست ریسک، لیستی از تمام وقایع ریسک احتمالی است که توانایی تأثیرگذاری بر پروژه شما را دارند. داشتن این سند به شما کمک میکند تا از مشکلات احتمالی آگاهی داشته باشید، اما مهم است که آن را بروز نگه دارید تا همیشه یک منبع دقیق برای رجوع داشته باشید. با بروز نگه داشتن این سند، شما و اعضای تیم خود و سایر ذینفعان اصلی همیشه تصویری واضح از وضعیت پروژه خواهید داشت.
درباره مدیریت ریسک بیشتر بخوانید.
۸. برای تحلیل پروژه پس از اتمام آن، زمان بگذارید.
پس از اتمام پروژه، زمانی را به تحلیل آن اختصاص دهید. کارهایی را که به خوبی انجام دادید و کارهایی را که میتوانید در آینده بهتر انجام دهید، شناسایی کنید. زمان انجام هر مرحله را تحلیل کنید و وظایفی را که بیشترین تلاش را به خود اختصاص دادهاند، مشخص کنید تا در پروژههای آینده زمان بیشتری را به چنین وظایفی اختصاص دهید و البته، تیم را به خاطر تلاش و فداکاریشان تحسین کنید.
استفاده از مدیریت پروژه آنلاین بهتایم برای مدیریت بهتر پروژههای نرم افزاری
ابزارهای مدیریت پروژه دارای ویژگیهای لازم برای برنامهریزی موثر پروژه، مدیریت منابع موجود، پاسخگویی سریعتر به مشکلات و افزایش مشارکت همه ذینفعان هستند. داشتن نرم افزار مدیریت پروژه مناسب میتواند تأثیر چشمگیری بر کسب و کار شما داشته باشد.
به عنوان مثال نرم افزار مدیریت پروژه آنلاین بهتایم برای مدیریت پروژه امکانات زیر را در اختیار شما قرار میدهد:
- تعریف پروژه
- تعیین مدیر برای پروژه
- تعیین دسترسی اعضای تیم به پروژه: جلوگیری از اعمال تغییر بر روی ویژگیهای مختلف پروژه از جمله ایجاد و ویرایش و تمدید مهلت فعالیتهای پروژه توسط اعضای عادی پروژه
- تعریف ساختار شکست کار (wbs)
- داشبورد زیر پروژه با نمودارهای متنوع برای ردیابی پیشرفت پروژه
- تعریف فعالیتهای پروژه
- نمایش لیست فعالیتهای پروژه با جزئیات شامل مستندات، وضعیت پروژه، تاریخ سررسید و…
- تعریف گروه فعالیت برای پروژه
- امکان تعیین قرارداد برای پروژه
- امکان تعیین مشتری برای پروژه
- کپی پروژه با تمام ویژگیهای آن
- رسم خودکار نمودار گانت
- مشاهده نمودار S پیشرفت پروژهها
- مشاهده گزارش پیشرفت پروژه
- اشتراکگذاری مستندات پروژه
- گفتگو با همکاران در مورد پروژه (چت روم پروژه)
- نمایش تغییرات اعمال شده بر روی پروژه
- امکان گرفتن خروجی اکسل از فرمها
- مشاهده گزارش زمان صرف شده بر روی هر یک از پروژهها
- گزارش زمان صرف شده بر روی هر یک از پروژهها به تفکیک اعضای تیم
- نمودار سهم پروژهها از زمان صرف شده در سازمان
- و..
مراجع: