مدیران پروژههایی که درگیر پروژههای مهندسی نرمافزار میشوند؛ باید بهصورت دقیق از ابتدای پروژه تا رسیدن به پایان آنها، منابع پروژه را مدیریت کنند. این منابع شامل بودجه و نیازمندیهای مشتری است. برای جلوگیری از عواقب منفی مانند تأخیر، کاهش کیفیت یا افزایش هزینهها، مدیران باید منابع موردنیاز را تخمین زده، برنامهریزی کنند و بر اساس بالاترین اولویتها و زمانبندیهای انجامشده آن منابع را توزیع کنند.
منظور ما از منابع، معمولاً همان افراد حاضر در پروژه، زمان آنها و تواناییهای آنها است. بااینحال منابع همچنین شامل ابزارها و تجهیزات تیم، سرمایه و سرویسهای در دسترس است. این انواع منابع در همه جای جهان یکی است. اما شیوهی مدیریت منابع در صنایع مختلف، وابسته به اینکه پروژه چه نیازمندیهای خاصی دارد؛ کاملاً متفاوت است. در ادامه، ما در این مقاله میخواهیم ببینیم باید چه مواردی را در مدیریت پروژههای نرمافزاری ملاک عمل قرار دهیم.
تعریف محدودیتهای موجود در پروژه
در شرایط ایده آل، پروژههای نرمافزاری موفق باید 3 شاخص مهم را داشته باشند. نرمافزار باید در زمان مقرر تحویل داده شود؛ هزینهها از بودجهی تعیینشده بیشتر نشود؛ انتظارات مشتری برآورده شود. درواقعیت، بر اساس تئوری محدودیت سهگانه، برای تعیین اینکه کدامین انواع از منابع برای پروژهی شما مناسب است؛ شما باید روی یکی از 3 دارایی موجود یعنی: هزینه، حوزهی کاری یا زمان؛ تمرکز کنید.
- زمان / زمانبندی – برای رسیدن به اتمام پروژه نیاز است که چارچوبهای زمانی مشخص کنید.
- بودجه / هزینه – محدودیتهای مالی یک پروژه شامل موارد زیادی است. از جمله هزینههای اعضای تیم با توجه به سطح تجربه و مهارت هر یک از آنها، هزینههای کارکنان قراردادی و برونسپاری است.
- حوزهی کاری (اسکوپ | Scope) / کارایی – برای به پایان رسیدن پروژه باید تسک ها و وظایف زیادی انجام شوند. معمولاً وقتی پروژه شروع به انجام میشود؛ حوزهی کاری پروژه ممکن است با توجه به تغییر انتظارات و درخواستهای مشتری، رشد کند و یا کوچک شود.
میخواهیم بررسی کنیم که این پروسه چطور انجام میشود. اگر شما روی یکی از این اولویتها تمرکز کنید؛ دو مورد دیگر با مشکل مواجه خواهند شد. گاهی اوقات شما باید عناصر پروژه را طوری تنظیم کنید که به تعادل بیشتری دست پیدا کنید. اما گاهی وقتها هم باید بهصورت کامل اولویتها را تغییر دهید تا به بهترین نتیجهی ممکن در شرایط موجود دست بیابید.
بررسی
بهتر است با یک مثال این بحث را توضیح دهیم. مشتری شما، از شما خواسته است که چند ویژگی بیشتر به نرمافزار اضافه کنید. یعنی اسکوپ یا محدودهی کاری پروژه به تمرکز کارِ مدیریت پروژهی شما تبدیل میشود. و این به معنی نیاز بیشتر به زمان و صرف هزینهی بیشتر برای پروژه است. در این مورد، ممکن است شما برای انجام بخشهایی از پروژه، کارکنان بیشتری را اختصاص دهید. یا به دنبال کارمندان و سرویسهایی بگردید که نسبت به اعضای تیم خودتان، با هزینهی کمتری کارها را انجام دهند. به این صورت احتمالاً شما به تعادل بیشتری دست پیدا خواهید کرد. هرچه منابع انسانی پروژه افزایش یابد، احتمالاً زمان تولید و توسعه کاهش خواهد یافت؛ درحالیکه استفاده از نیروی کار خارج از تیم خودتان هم ممکن است همان کار را بهصورت مشابه و با هزینهی کمتر انجام دهند. این کار ممکن است برای شما در هزینهها صرفهجویی کند.
چگونه منابع را در پروژههای نرمافزاری مدیریت کنیم؟
برای مدیریت مؤثر منابع در پروژههای نرمافزاری، شما باید یک درک واضح از مراحل توسعهی پروژه داشته باشید. این مسئله با نام چرخهی حیات توسعهی نرمافزار یا Software Development Life Cycle یا SDLC شناخته میشود. این چرخه به فرآیند جمعآوری نیازمندیها، برنامهریزی، طراحی، تولید، تست و پیادهسازی نرمافزار اشاره میکند.
چیزی که این فرآیند را از سایر انواع پروژهها متمایز میکند؛ این است که در آن مرحلهی نهایی که همان نگهداری و پشتیبانی از محصول است؛ هیچوقت به پایان نمیرسد. وقتی یک محصول نرمافزاری نیازمند آپدیت شدن برای رفع باگ یا اضافه شدن ویژگیهای جدید است؛ این فرآیند توسعه باید دائماً چرخه را تکرار کند.
در این قسمت، میخواهیم بهطور خلاصه گامهای مدیریت منابع را در 6 مرحله شرح دهیم.
گام اول: برنامهی مدیریت منابع
هدف: باید نحوهی تخمین زدن، محاسبه کردن، مدیریت کردن و استفاده از همهی منابع تعریف شوند.
در ابتدا، باید اطمینان حاصل کنید که منابعِ کافی برای به پایان رساندن موفقیتآمیز پروژه در دسترس دارید. ضروری است که کمبود منابع خود را مشخص کنید. سپس از طریق داراییهای شرکت یا اشخاص ثالث، آن کمبود را جبران کنید. همواره باید یک نکته را به خاطر داشته باشید. ممکن است پروژههای دیگری هم برای به دست آوردن این منابع با شما رقابت خواهند کنند. درنتیجه، این کار ممکن است بر هزینهها، زمانبندیها، کیفیت و سایر جنبههای پروژه تأثیر شدیدی بگذارند.
در این مرحله شما باید یک برنامهی مدیریت پروژه ایجاد کنید که در آن نحوهی دستهبندی، اختصاص، مدیریت و استفاده از منابع پروژه تعریفشده باشد. این برنامه معمولاً شامل نحوهی تقسیم منابع، نقشها و مسئولیتها، محدودهی کاری، میزان کیفیت، کنترل منابع در چرخهی حیات پروژه است. اما فقط به همینها هم محدود نمیشود و میتواند شامل هر آنچه شما برای تکمیل پروژه و رسیدن به استانداردهای کیفیت موردنظر نیاز دارید؛ نیز باشد.
گام دوم: تخمین منابع فعالیت
هدف: تخمین زدن منابع انسانی لازم، تجهیزات و تدارکات پروژه.
بعدازاینکه شما دربارهی انواع منابع تصمیم گرفتید؛ زمان تخمین منابع موردنیاز تیم و مقدار لوازم و تجهیزات لازم برای انجام دادن کار پروژه است. وقتی توسعهی پروژه پیشروی میکند؛ ممکن است حوزهی کاری، چارچوب زمانی و هزینههای آن تغییر کند. برای هماهنگ شدن با شرایط متغیر پروژه، احتمالاً به بررسی مجدد منابعتان نیاز پیدا کنید. این به معنی آن است که در هرجایی از پروژه که با تغییر مواجه شدید؛ برای تخمین جدید باید به این مرحله برگردید.
برای اینکه تخمین دقیقی بزنید؛ باید یک برنامهی مدیریت منابع را که مفهوم کمبود منابع و نحوهی اندازهگیری درست مقدار منابع موردنیاز برای انجام هر فعالیت در آن تعریفشده باشد. در این مرحله ممکن است شما بخواهید تخمین هزینه، زمان، افزایش ریسک مؤثر بر انتخاب منابع و در دسترس بودن را توسعه دهید.
گام سوم: جمعآوری منابع
هدف: به دست آوردن منابع ضروری
وقتی میدانید که چه نوع و چه مقدار از منابع را برای تحویل موفقیتآمیز محصول نیاز دارید؛ زمان آن است که منابع داخلی و خارجیِ موردنیاز برای انجام پروژه را جمعآوری کنید. این منابع شامل اعضای تیم، امکانات، تجهیزات، مصالح و متریال و تدارکات است. ناتوانی در جمعآوری این منابع، ممکن است روی زمانبندی پروژه، بودجه، رضایت مشتری،کیفیت و ریسک بگذارد. این فرآیند میتواند با تغییرات چارچوب زمانی، تغییرات حوزهی کاری و یا تغییر در بودجه توسط مشتری، بهصورت دورهای روی پروژه اعمال شوند.
وقتیکه در حال جمعآوری منابع هستید؛ خوب است که به شاخصههای زیر دقت کنید:
- در دسترس بودن – منابع در طول کل زمان انجام پروژه در دسترس باشد.
- هزینه – هزینهی موردنیاز منابع، جزئی از بودجه باشد.
- توانایی – منابع پروژه، قابلیتهای موردنیاز را برای پروژه فراهم کنند.
بعضی از شاخصهها منحصر به منابع تیم هستند:
- تجربه – تجربهی کارکنان تیم به موفقیت پروژه بیانجامد.
- دانش – کارمندان در پروژههای مشابه تجربه داشته باشند و تفاوتهای کوچک پروژهها را بدانند.
- مهارتها – کارمندان مهارت موردنیاز برای استفاده از ابزارهای پروژه را داشته باشند.
- انگیزه – کارمندان روحیهی کار تیمی قوی و مهارتهای ارتباطی داشته باشند.
- معیارهای بینالمللی – اگر اعضای تیم از جاهای مختلف دنیا باشند؛ موقعیت مکانی کارمندان، محدودهی زمانی آنها و قابلیت ارتباط آنها باهم باید مشخص باشد.
گام چهارم: توسعهی تیم
هدف: آموزش دادن به اعضای تیم، برقراری ارتباط بین اعضای تیم و آمادهسازی محیطی مناسب برای همکاری مؤثر اعضای تیم.
در این مرحله، شما باید شرایط محیطی را برای تیمتان، جهت انجام کار و داشتن ارتباط بهصورت مفید آماده کنید. کارهایی مانند: شناسایی، نگهداری، ایجاد انگیزه، هدایت و تشویق کارمندان برای به دست آوردن بالاترین بازدهی ممکن در رسیدن به اهداف پروژه. محیط کار اعضای تیم باید روحیهی کار تیمی را تقویت کند. باید با ارائهی چالشها و فرصتها به اعضای تیم انگیزه بدهید. در محیط کار امکان ارائهی بازخورد زمانی و پشتیبانی از اعضای تیم را فراهم کنید و بازدهی کاری خوب اعضا را شناسایی کرده و به آنها پاداش بدهید.
یکی از مدلهایی که این مرحله را با جزئیات بیشتری توصیف میکند؛ نردبان تاکمَن یا Tuckman ladder است. این مدل شامل 5 مرحله برای توسعهی تیم است که معمولاً به ترتیب زیر اتفاق میافتد:
- شکلگیری – اعضای تیم در مورد پروژه، نقش آنها در تیم و مسئولیتها آموزش میبینند.
- شروع سریع – اعضای تیم، نحوهی کار پروژه، تصمیمات فنی و رویکرد مدیریت منابع را میفهمند.
- کارِ نُرمال اعضا – اعضای تیم کار را در کنار هم شروع میکنند. رفتار آنها با تیم تنظیمشده و یاد میگیرند به هم اعتماد کنند.
- انجام شدن کار – کل تیم مانند یک واحد پایدار و سازمانیافته کار میکند.
- پایان کار – کار پروژه جاری توسط اعضای تیم به پایان میرسد و پروژههای بعدی در دستور کار تیم قرار میگیرد.
اگر اعضای تیم قبل از پروژهی فعلی، هیچوقت باهم کارنکرده باشند؛ ممکن است کار تیم مختل شده و نیاز باشد تا آنها به مراحل قبلتر برگردند. برعکس این حالت، اگر اعضای تیم تجربهی کاری مشترک باهم داشته باشند؛ ممکن است حتی از بعضی از مراحل عبور کنند.
گام پنجم: مدیریت تیم
هدف: پیگیری بازدهی اعضای تیم، دادن بازخورد و فیدبک، حل مشکلات و مدیریت تغییرات تیم برای بهینهسازی بازدهی پروژه.
در مرحلهی مدیریت تیم، مدیران پروژه باید هدایت تیم را انجام دهند. مدیریت ارتباط اعضای تیم، مدیریت مشکلات احتمالی اعضا، مهارتهای مذاکره، ایجاد وظایف چالشبرانگیز و داشتن توانایی تشخیص قوی برای تشکیل تیم با بازدهی بالا، همگی از ویژگیهای یک مدیر پروژه است. مدیران باید روی مهارتها و انگیزهی اعضای تیم به یکمیزان حساسیت به خرج دهند. با این تکنیک خواهندتوانست رویکرد مدیریتی مناسبی را انتخاب کنند.
برای پیگیری بازدهی و همچنین تصمیمگیری بر اساس اطلاعات، مدیران پروژه باید گزارشهایی از بازدهی کار داشته باشند. این گزارشها میتوانند شامل روند کار پروژه، پیشبینیها، ریسکها، اطلاعات قرارداد، ارزشهای ایجادشده و سایر موارد ازایندست باشند. مدیران میتوانند زمانبندی، هزینه و کیفیت را بررسی و کنترل کرده و از این اطلاعات برای پیشبینی منابع موردنیاز تیم در آینده و بهروزرسانی برنامهی مدیریت منابع پروژه، استفاده کنند.
گام ششم: کنترل منابع
هدف: اطمینان از اینکه منابع پروژه طبق برنامه در دسترس هستند. بررسی دقیق استفاده از منابع در مقابل مقدار برنامهریزیشده استفاده از منابع و اصلاح وضعیت استفاده در صورت لزوم.
کنترل منابع دائماً در طول چرخهی حیات پروژه انجام میشود تا از اختصاص منابع به میزان صحیح و در زمان درست، جهت جلوگیری از توقف یا تأخیر در پروژه، اطمینان حاصل شود. این مرحله به منابع فیزیکی مانند تجهیزات و زیرساختها توجه دارد. منابع انسانی در گام پنجم که مدیریت تیم بود موردبررسی است.
بهبود مدیریت منابع
اهمیت برنامهریزی کارآمد منابع قابل چشمپوشی نیست. این کار باعث میشود با کمترین هزینه و بیشترین سود ممکن از تحویل بهموقع پروژه اطمینان داشته باشیم. اما فواید دیگر مدیریت منابع بهصورت مفید در چیست؟
- اندازهگیری کارایی. مدیریت منابع باعث میشود شما روی روند پروژه و نیازهای آن، دید کاملی داشته باشید. این به شما اجازه میدهد که منابع را به بهترین شکل ممکن مدیریت و پیگیری کنید.
- از بین رفتن عوامل توقف یا تأخیر در پروژه. وقتی شما روی برنامهریزی و مدیریت منابع پروژه تمرکز کنید؛ میتوانید از رخ دادن مشکلات جلوگیری کرده یا مشکلات پیشآمده را بهسرعت رفع کنید.
- جلوگیری از هدر رفتن. اگر حجم کاری تیم را رصد کنید؛ میتوانید از موقعیت کلی پروژه، روند بهرهوری و پاسخ بهموقع تیم به کارها اطلاع داشته باشید.
- ایجاد شفافیت. شفافیت، اعتماد مشتری و تعهد کاری کارمندان را افزایش میدهد. همچنین از ارتباط نامناسب اعضای تیم و مدیران جلوگیری میکند.
برای به حداکثر رساندن تمام این فواید، شما باید مدیریت منابع نرمافزار را طوری انجام دهید که بتوانید همهی منابع را در یک محیط مدیریت کنید. برای مثال، با استفاده از actiTIME میتوانید پروژهها را مدیریت کنید؛ روند کار و زمان صرف شده را پیگیری کنید؛ برای محاسبهی هزینهها گزارشهای داده محور ایجاد کنید؛ بازدهی کارمندان را ارزیابی کنید و تصمیمات مدیریتی را ثبت کنید. برخلاف ابزارهای مدیریتی دیگر، actiTIME دارای ویژگیهای مدیریت غیرحضوری است. مواردی از قبیلِ محاسبات خودکار پرداخت هزینهها و تنظیم انواع وضعیتهای کاری و غیبتها است. این سرویس 30 روز مهلت استفادهی رایگان دارد و پسازآن میتوانید سرویس مناسب خود را خریداری کنید.