مدیریت پروژه نرم افزاری
مدیریت و کنترل پروژه مجموعهای از فعالیتهای نظارتی و اجرایی برای انجام پروژه است. در مدیریت پروژه، یکسری قوانین و معیارهای مختلف تعیین میشود تا تیم بتواند در چهارچوب آن مقررات، به اهداف پروژه دست یابند. مدیریت پروژه نرم افزاری شاخهای از مدیریت پروژه است که درخصوص پروژههای تولید نرم افزار و برنامه نویسی بهکار برده میشود. در این مطلب، با مدیریت پروژه در ساخت نرم افزار بیشتر آشنا خواهید شد.
پروژههای نرم افزاری
طبق تعریف «پروژه»، هر چیزی که آغاز و پایان داشته باشد و در طی آن یک نتیجه و دستاوردی حاصل شود، پروژه نام دارد. بر اساس این تعریف، تولید و توسعهی نرم افزارها را میتوان یک پروژه دانست. در تولید نرم افزار، یک آغاز و پایانی وجود دارد و برنامهای که تهیه میشود، دستاورد آن خواهد بود.
وقتی میخواهیم یک پروژه را انجام دهیم، باید منابع مختلفی را استفاده کنیم. این منابع میتواند یکسری تجهیزات و ابزارهای خاص و یا حتی نیروهای انسانی با تخصص مختلف باشد. به عنوان مثال، در تولید یک نرم افزار ما از برنامه نویس، تحلیلگر، متخصص پایگاه داده و غیره به عنوان منابع انسانی و از سرور، کامپیوتر، نرم افزارهای برنامه نویسی و شبیه سازی و غیره به عنوان منابع تجهیزات بهره میگیریم.
اهمیت مدیریت پروژه نرم افزاری
آنچه در طول پروژه اهمیت دارد، سه عامل است که عبارتند از:
- کیفیت ارائه پروژه
در این عامل، کیفیت کار تعیین میشود. کیفیت کار عبارت است از تمام محدودهای که از پروژهی فعلی انتظار میرود. در این عامل، مدیریت پروژه وظیفه دارد تا فعالیتهای محدودهی پروژه را تعیین کند و اگر در آینده (در روند اجرایی پروژه) وظیفهای غیر از این محدوده تعیین شد، آن را شناسایی و مدیریت کند.
- هزینهی انجام پروژه
تمام پروژهها، به هزینههایی برای اجرا نیاز دارند. مدیریت پروژه وظیفه دارد تا این هزینهها را با بودجهی موجود تطبیق داده و برنامه ریزی کند. بنابراین میبایست برنامههایی برای منابع و تجهیزات در نظر گرفته شود تا هزینههای آن از بودجهی اختصاص داده شده، تجاوز نکند.
- زمان پروژه
در آغاز هر پروژه، ضرورت دارد تا برنامه ریزیهای مربوط به زمانبندی فعالیتها انجام شود. برای این برنامهریزیها از نمودارهایی مانند نمودار پرت و مسیر بحرانی استفاده میشود. این نمودارها، وظایف مختلف پروژه را بر اساس زمان، نشان خواهند داد. در فازهای اجرایی نیز مدیر پروژه وظیفه دارد تا وضعیت فعلی پروژه را با این نمودارها تطبیق داده و از صحت مسیر زمانی اطمینان حاصل شود.
لذا ضرورت دارد تا در طی انجام پروژه، مدام کنترل کنیم تا این سه عامل وجود داشته باشند و از مسیر خارج نشده باشیم. در واقع کنترل این سه گزینه بهطور مرتب در تمام حیات پروژه، الزامی خواهد بود. این سه عامل، به عنوان مثلث مدیریت پروژه شناخته میشوند.
اینجاست که به اهمیت وجود مدیریت پروژه در ساخت نرم افزار پی میبریم. مدیریت پروژه نرم افزاری کمک میکند تا یک پروژهی بزرگ نرم افزاری (تولید یا توسعه) را رهبری و نظارت کنیم. این نظارت در چهارچوب همان عواملی است که پیشتر نام بردیم. به عبارت بهتر، با مدیریت پروژه نرم افزاری میتوان کیفیت، هزینه و زمان انجام پروژههای نرم افزاری را مدیریت و کنترل کرد.
پیشنهاد مطالعه: مدیر پروژه کیست و وظایف اصلی آن چیست؟
مشکلات نبود مدیریت پروژه در توسعه نرم افزار
در این بخش قصد داریم تا با زبانی ساده، معایب و مشکلات نبودِ مدیریت پروژه در توسعه نرم افزار را ذکر کنیم. تصور کنید مشتری از شما میخواهد تا چند ویژگی جدید به ورژن فعلی برنامه اضافه کنید. ممکن است فکر کنید که این کار بسیار ساده است و نیازی به مدیریت پروژه نخواهد داشت. اما در نظر بگیرید که در طی جلسات متعدد، مشتری میتواند شما را برای انجام موارد بیشتر قانع کند.
آنچه در اینجا پیش میآید، احتمال کمبود بودجه یا زمان برای انجام اصلاحات و توسعهی برنامه است. مشتری قبلاً قرارداد مربوط به برنامهی زمانی و هزینهی کار را با شما امضا میکند. اما اکنون شما را با لیستی روبهرو ساخته که هیچ تناسبی با قرارداد قبلی ندارد.
از سوی دیگر، تصور کنید که برای انجام بخشی از کدهای نرم افزار، ناچار به استخدام افرادی خارج از تیم محلی خود هستید. این افراد ممکن است در شهرها و حتی کشورهای مختلف ساکن باشند. در نبود مدیریت پروژه، چه کسی وظیفهی لینک این افراد به گروه را به عهده دارد؟ چه کسی وظیفه دارد کارها و فعالیتهای ضروری را به اعضای تیم یادآور شود؟
گاه پیش میآید که در توسعهی نرم افزار، نیاز به تهیهی منابع و تجهیزات مختلف داشته باشیم. اگر تیم فاقد مدیریت پروژه باشد، این بودجه و هماهنگیهای لازم برای تهیهی این تجهیزات چطور مدیریت خواهد شد؟ چه کسی عهدهدار این مسئولیت میشود؟
انواع مدیریت پروژه
همانطور که پیشتر تعریف کردیم، در مدیریت پروژه قرار است تا یکسری قوانین برای انجام وظایف پروژه تعیین کنیم. بسته به نوع پروژه، مدیریت پروژه نیز انواع مختلفی خواهد داشت. مثلاً اگر موضوع پروژه را در نظر بگیریم، مدیریت پروژه نرم افزاری برای مدیریت پروژه های توسعه نرم افزار یا تولید آن و مدیریت پروژه عمرانی برای مدیریت ساخت پروژه و سازههای عمرانی در نظر گرفته میشود.
در تقسیمبندی دیگری، میتوانیم نوع مدیریت را از نظر تکنیکها و متد به کار گرفته شده در نظر بگیریم. در این دستهبندی، مدیریت پروژهی آبشاری، چابک، کانبان، lean، اسکرام، شش سیگما و PMI/PMBOK از انواع مدیریت پروژه خواهند بود.
در برخی از منابع، انواع مدیریت پروژه را بهصورتهای دیگر نیز ذکر کردهاند. این تقسیمبندی براساس تقسیم وظایف مدیریتی ایجاد میشود. به عنوان مثال، اگر تمام کارهای پروژه به عهدهی یک نفر باشد، روش امانی و در صورتی که تنها بخش مدیریت هزینه و بودجه به عهدهی مدیریت پروژه باشد، از مدل مدیریتی کلیدگردان استفاده شده است.
چه کسی مدیر پروژه است؟
مدیر پروژه، مسئولیت مهم، حساس و سنگینی را به دوش دارد. در واقع مسئولیت رهبری تیم و پروژه به عهدهی مدیر پروژه است. لذا این فرد باید بتواند پروژه را با توجه به منابع و زمان، برنامهریزی کند و کارهای مختلف را به اعضای تیم محول سازد.
برای انجام این مسئولیت، این فرد باید آگاهی کاملی از پروژهی مربوطه داشته باشد. همچنین شناخت اعضای تیم و منابع و تجهیزات دیگر، از الزامات این سمت خواهد بود. علاوه بر تمام اینها فردی که مدیر پروژهی تیم میشود میبایست بداند نرم افزار مدیریت پروژه چیست و چطور باید از آن استفاده کند.
در کسب و کارهای کوچک، فردی که توانایی رهبری تیم را داشته باشد، به این سمت برگزیده خواهد شد. اما کسب و کارهای بزرگتر، از متخصصان مدیریت برای این مسئولیت استفاده میکنند.
وظایف مدیریت پروژه نرم افزاری
مانند هر مدیریت دیگری، مدیر پروژه های نرم افزاری نیز وظایف و مسئولیتهایی دارد. آگاهی از این وظایف در کسب مهارت و تخصص لازم برای مدیریت قوی، الزامی و مهم است. برخی از این وظایف را در لیست زیر معرفی کردهایم.
- تعریف پروژه و وظایف لازم برای تکمیل آن تا رسیدن به هدف نهایی پروژه
- برنامه ریزی برای وظایف و فعالیتهای تعیین شده
- برنامه ریزی کارآمد برای استفاده از منابع، تجهیزات و دیگر نیروهای انسانی
- تشکیل تیم
- رهبری و مدیریت تیم و اعضا
- برنامه ریزی زمانی و زمانبندی فعالیتهای پروژه
- تعیین سیاست برای کیفیت محصول یا پروژه
- کنترل برنامههای تنظیم شده
- مدیریت هزینهها، تخمین هزینههای پروژه و تعیین بودجه
- ارتباطگیری با ذی نفعان و کارفرمایان پروژه
- پاسخدهی به سوالات و توقعات ذی نفعان
- شناسایی ریسکها و مشکلات احتمالی در روند پروژه
- کاهش ریسک و ایجاد راهکارهایی برای حل مشکلات در اسرع زمان ممکن
- نظارت بر عملکرد تیم
- تهیهی گزارشات و دیگر اسناد پروژه
پیشنهاد مطالعه: آموزش جامع مدیریت پورتفولیو
اصول مدیریت پروژه نرم افزاری
پروژههای نرم افزاری نیز مانند دیگر پروژهها، یک پروسه و روند کلی دارند. این پروسه را میتوان در پنج مرحله بررسی کرد. این مراحل به عنوان چرخهی حیات پروژه شناخته میشوند.
۱- آغاز پروژه
همانطور که در تعریف پروژه بیان کردیم، هر پروژه شامل یک ابتدا و انتها است. این مرحله در واقع نقطهی start پروژه است. در این مرحله تعیین میشود که دقیقاً هدف از انجام این پروژه چیست.
۲- برنامهریزی
مرحلهی برنامه ریزی از مهمترین مراحل در چرخه حیات پروژه است. در این فاز، مدیریت پروژه وارد عمل شده و براساس تکنیک مدیریتی خود، گانت یا چارت پروژه را ترسیم میکند. این چارت یک نقشهی راه است که مسیر رسیدن به هدف را نقطهی آغازین مشخص میکند. در این چارت ترتیب کارها و وابستگی آن تعیین شده است.
۳- اجرای پروژه
اجرای پروژه برطبق برنامهی تعیین شده در مرحلهی قبل خواهد بود. مدیر پروژه در این مرحله نیز وظایف سنگین نظارتی و هماهنگی را برعهده خواهد داشت. همچنین ریسکها و مشکلات در این مرحله خود را نشان میدهند که مدیریت وظیفهی حل و تعدیل آن را به دوش میکشد.
۴- نظارت و کنترل
این فاز به موازات فاز اجرایی پیش میرود. در این مرحله، مدیر پروژه وظیفه دارد تا روند پیشرفت کار را اندازهگیری کرده تا از تطبیق کارها با برنامهی تعیین شده، اطمینان حاصل کند. اینجا همانجایی است که فاکتورهای هزینه، زمان و میزان کیفیت ارزیابی میشوند تا از محدودهی مجاز فراتر نروند.
۵- تکمیل پروژه
در فاز انتهایی، انتظار میرود تا پروژه نتیجهبخشی خود را نشان دهد. این فاز، باید محصول نهایی را به مشتری یا کارفرما ارائه دهد. در کنار محصول، مستندات و دیگر گزارشهای پروژه نیز به انتها میرسند.
مدارک لازم برای مدیر پروژهی نرم افزاری
برای تقبل مسئولیت مدیریت پروژه در پروژههای توسعه و تولید نرم افزار، میبایست مدرک مرتبط با مدیریت احذ شود. یکی از مدارکی که در این زمینه مورد توجه قرار میگیرد، مدرک معتبر و استاندارد PMP است. این مدرک نشان میدهد که شما دورههای مربوط به تربیت متخصص مدیریت برنامه و مدیریت پورتفولیو را گذراندهاید.
مدارک معتبر دیگری مانند APM، PPM، CSM، CMP، CPMP، CAPM، BVOP و غیره نیز در این زمینه مطرحاند که با گذراندن دورههای مربوطه، قادر به اخذ آنها خواهید بود.
نقش نرم افزار در مدیریت پروژه
یکی از مهمترین موضوعاتی که در خصوص مدیریت پروژه نرم افزاری مطرح میشود، نرم افزار مدیریت پروژه و اهمیت بهکارگیری آن است. همانطور که میدانید انسان برای انجام کارهای وسیع و سنگین، نقاط ضعف بسیار زیادی دارد. به عنوان مثال، کاهش دقت و تمرکز و همچنین کارایی فرد برای انجام مسئولیتهای سنگین و چندجانبه نشاندهندهی ضعف است.
از سوی دیگر، عظمت پروژهها و تیمها به سنگین بودن وظیفهی مدیران پروژه، افزوده است. با توجه به عدم کارایی فرد در این خصوص، ضروری است تا از برنامههای نرم افزاری برای مدیریت آسانتر، بهتر و قویتر، استفاده کنیم. برنامههای نرم افزاری مدیریت، برنامههایی هستند که عملیات مربوط به برنامهریزی و اختصاص بودجه و مدیریت کارها را بهصورت کامپیوتری، تسهیل میکنند.
این برنامهها به صورت اتوماتیک، نمودارهایی برای بررسی و تحلیل روند پیشرفت پروژه ارائه میدهند. حتی با استفاده از این نرم افزارها، گزارش نویسی پروژه برای مدیریت پروژه بسیار سادهتر میشود. اگر ابزارها و نرم افزارهای این حوزه را بشناسید و کار با آن را یاد بگیرید، یک مدیریت پروژهی قویتر خواهید شد.
معرفی چند نرم افزار مدیریت پروژه
در این بخش، به صورت بسیار خلاصه، نام برخی از معروفترین نرم افزارهای مدیریت پروژه را ذکر کردهایم. توضیحات مفصلتر این نرم افزارها را میتوانید در دیگر مقالات مکتب خونه دنبال کنید. قابل ذکر است که برخی از این نرم افزارها تحت وب بوده و نیازی به سیستم خاص برای اجرا ندارند.
- ترلو
- میستر تسک
- جیرا
- تسکولو
- رایک
- تیم ورک
- آسانا
- Microsoft Project
- اسمارت شیت
- Basecamp
- Wrike
ابزارهایی برای مدیریت پروژههای نرم افزاری
هر فرد مدیر، برای انجام وظایف خود از یکسری نرم افزارها و ابزارهای خاص بهره میگیرد. اگر نرم افزار خاصی استفاده نشود، این ابزارها باید بهصورت دستی تهیه شود که برای پروژههای بزرگ و وسیع بسیار سنگین و دشوار خواهد بود. در این بخش به اختصار این ابزارها را شرح دادهایم.
نمودار گانت
نمودار گانت از روی یک لیست تهیه میشود. این نمودار برای نمایش زمانبندی و ترتیب زمانی پروژه به کار برده خواهد شد. مزیت استفاده از گانت را میتوان در وضوح زمانبندی کارها و ترتیب آن بر اساس اولویت ذکر کرد. گانت به شما در یک نگاه، تصویر کلی پروژه را نشان خواهد داد.
نمودار PERT
نمودار پرت، نمودار دیگری است که برای ایجاد برنامهی زمانبندی توسط مدیران پروژه استفاده میشود. این نمودار مسیر زمانی حداقلی را برای پیشبرد پروژه، تخمین میزند.
داشبورد مدیریتی
داشبورد مدیریتی صفحهای است که برای بهروزرسانی فعالیتهای پروژه و تهیهی گزارش لحظهای ، کاربردی خواهد بود. در داشبورد مدیریتی، جزئیات نشان داده نمیشوند. مثلاً اهمیتی ندارد که فلان بخش پروژه، دست کدامیک از اعضای تیم است اما وضعیت پیشرفت کار نشان داده میشود. داشبوردها برای نمایش وضعیت پروژه به ذی نفعان (مشتریان) بسیار بهینه است.
لیست فعالیتها
یکی از ابزارهای پرکاربرد مدیریتی پروژههای نرم افزاری، لیست فعالیتها است. این لیست به اعضا نشان میدهد که چه فعالیتهایی باید انجام شوند. در نتیجه مدیران پروژه با نگاه به این لیست، میتوانند کنترل بهتری از اوضاع فعلی را در دست بگیرند.
تقویم پروژه
تقویم پروژه برای مدیریت زمانی آن، اهمیت فراوانی دارد. در این تقویم، برنامهی کاری مجموعه، مرخصیها، تعطیلات و غیره تعیین میشوند. در نتیجه میتوان این تقویم را با برنامهی زمانبندی پروژه همسو ساخت.
کانبان
کانبان نیز از ابزارهای بصری مدیریت پروژه است. این نمودار، ستونهایی را نشان میدهد که وضعیت چرخه تولید و فعالیتهای مربوط به هر یک را نشان خواهد داد.
ابزارهای کنترل حجم کار
منظور از حجم کار، میزان کاری است که باید به اعضای تیم اختصاص داده شود. مدیریت پروژه برای تعیین حجم کار، نیاز به ابزارهایی دارد که وضعیت هر نیرو و قابلیتهای وی در آن تعیین شده باشد. اینطور میتوان حجم کار متناسبی را برای هر فرد در نظر گرفت. ناگفته نماند که بدون توجه به این ابزار، امکان دارد پروژه بهصورت سنگین توزیع شده و تمام زمانبندی اشتباه شود.
پیشنهاد مطالعه: مدیریت پروژه آنلاین: مفاهیم، مزایا و معرفی ابزارهای کاربردی
ابزارهای مدیریت منابع
در تعریف مدیریت پروژه ذکر کردیم که وظیفهی کنترل منابع و تجهیزات مختلف مورد نیاز در پروژه نیز به عهدهی مدیریت پروژه است. این کار دشواری است. در نظر داشته باشید که در برخی از پروژههای نرم افزاری، به منابع و تجهیزاتی نیاز داریم که باید از دیگر تأمین کنندگان تهیه و خریداری شود. این کار مستلزم ابزارهایی است که این منابع و تأمین کنندگان را مدیریت و ردیابی کند.
ساعات کاری
این ابزار برای مدیریت بودجههای مخصوص نیروی انسانی استفاده میشود. این ابزار، وضعیت فعالیت اعضای تیم و ساعات کاری را نشان میدهد و مدیریت پروژه میتواند امورات لازم برای پرداخت حقوق را با آن پیگیری کند.
مدیریت همکاری تیم
ابزار همکاری، بیشتر برای ارتباط گیری با اعضای تیم پروژه مورد نیاز قرار میگیرد. این ابزار در نرم افزارهای مدیریت پروژه نهاده شده است. به خصوص پروژههای بزرگ و تیمهایی که در منابع جغرافیایی متعدد فعالیت دارند، این ابزار بسیار کاربردی است.
مدیریت پروژه نرم افزاری در مکتب خونه
اگر به سمت مدیریت پروژه علاقهمند هستید، کسب مهارتهای ضروری مدیریت و آشنایی با تکنیکها و البته نرم افزارهای مربوطه برای ورود به این حوزه الزامی است. برای کسب این مهارتها، شرکت در دورههای مکتب خونه بسیار سودمند خواهد بود. دورههای آموزش مدیریت پروژه مکتب خونه، شما را با صفر تا صد مفاهیم مدیریتی و تکنیکهای آن آشنا میکند.
همچنین شما در مکتب خونه، به لیستی از مقالات معتبر برای تقویت مهارتهای مدیریتی و آشنایی با انواع تکنیکهای مدیریت پروژه آی تی دسترسی خواهید داشت. مطالعهی این مقالات برای بهروزرسانی دانش و مهارتها بسیار سودمند است.