مدیریت پروژه

راهنمای کامل مدیریت پروژه به زبان ساده: چگونه پروژه را قبل از پایان دنیا تمام کنیم! (به همراه دانلود فایل نمونه مدیریت پروژه)

این مقاله دارای نسخه PDF انگلیسی است. (لینک دانلود)

درباره نویسنده

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

خلاصه مطلب

  • در این مقاله میگن گرینبرگ با تکیه بر سال‌ها تجربه مدیریت و اجرای پروژه‌های نرم‌افزاری با استفاده از ایده‌های اصلی مدیریت پروژه (Agile) روشی بسیار ساده و کاربردی ارائه می‌دهد.

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

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

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

پیش از این در کاروکسب درباره مدیریت زمان و پروژه:

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

جنبه ی دیگری را نیز باید در نظر گرفت. برای بسیاری از پروژه‌ها پایان مشخصی وجود ندارد. این تقریبا برای مدیریت پروژه تمام پروژه‌های نرم‌افرازی وجود دارد. هنگامی‌که یک پروژه نرم افزاری موفق می‌شود، حتی اگر شما توانستید مدیریت خوبی داشته باشید، افرادی که از آن استفاده می‌کنند، و درخواست ایجاد ویژگی‌های جدید و ایجاد نسخه ۲٫۰  را دارند، وجود خواهند داشت. اگر یک پروژه به این مرحله برسد، کاربران همیشه شروع به پرسیدن سوالاتی می‌کنند که در نگاه اول ساده به نظر می‌رسد، اما تیم‌های کوچک یا توسعه دهندگان مستقل، زمان زیادی را برای پاسخ‌دهی در نظر خواهند گرفت: «چه زمانی یک ویژگی دلخواه کاربران در دسترس قرار خواهد گرفت؟»

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

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

بنابراین ممکن است شما بپرسید که مدیریت پروژه چیست؟

در واقع چیز زیادی نیست. شما می‌توانید پروژه خود و زمان خود را با اکسل یا Google Docs مدیریت کنید.

شروع مدیریت پروژه آسان

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

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

روش فعلی مورد استفاده ی من بسیار ساده است و می‌توان آن را در یک صفحه گسترده اجرا کرد.

بک لاگ

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

نمونه بک لاگ
نمونه بک لاگ

در صفحه گسترده مثال، مطمئن شوید که بر روی منوی بک ­لاگ در پایین سمت چپ کلیک کنید اگر آن برگه فعلی نیست. برای این مثال، من سه گروه کاری را با ۱۰ وظیفه توزیع شده در میان آنها تعریف کردم.

ستون‌هایی که در جدول بک لاگ داریم:

وظایف: این ستون ساده است، فقط شامل یک توضیح کوتاه برای هر کار است.

  • ستون انتشار (Release): ستون Release شامل یک تک توضیح برای هرکار است که این برای من بسیار مفید است چراکه  در بیشتر مواقع بیشترایده‌هایی که من برای پروژه خود دارم، کارهایی نیست که بخواهم بلافاصله انجام دهم، بلکه بیشتر تفکراتی برای پیشرفت در آینده است. داشتن برنامه ریزی برای دو یا سه انتشار در بک لاگ  اجازه می‌دهد که این ایده‌ها را برای آینده دنبال کنند.
  • شما می‌توانید از هر متن برای نشان دادن یک Release استفاده کنید. در مثال من از «بتا»، «۱٫۰» و «۲٫۰» استفاده میکنم، اما شما میتوانید از هر برچسبهایی که دوست دارید استفاده کنید. همانطور که وظایف خود را به بک لاگ خود اضافه می‌کنید، انتشاری را انتخاب کنید که درک بیشتری از آن دارید.
  • برآورد (ساعت): برآورد وظیفه بخش بسیار مهمی‌ از اطلاعاتی است که برای پاسخ به سوالاتی از نوع “چه زمانی کار انجام می‌شود؟” استفاده می‌شود. شما باید حدس بزنید که چقدر طول می‌کشد که کاری را انجام دهید. ابتدا شاید ارزیابی دقیق آن دشوار شود، اما هرچه بیشتر آن را انجام دهید بهتر می‌توانید به آن برسید. من دوست دارم تخمین‌های خود را یر اساس ساعت کاری بنویسم اما شما می‌توانید از هر واحد زمانی استفاده کنید. مهم است که برآوردها بدون در نظر گرفتن چیزهایی مانند چند ساعت دریک روز کار می‌کنید یا برنامه تعطیلات شما، در یک خط زمانی  باشند.

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

در این حوزه پیشنهاد می‌کنیم صفحه دوره مدیریت پروژه چابک Agile را هم ببینید.

من متوجه شدم که برآورد دقیق تر زمانی  را در وظایف کوتاه مدت می‌توان انجام داد. در عمل، فکر کنم هر کاری را که بیش از یک هفته برای تکمیل آن زمان نیاز دارد، وظایفی است که  باید به بخش‌های تقسیم شود. به عنوان مثال، اگر تقریبا ۱۶ ساعت در هفته به پروژه خود اختصاص دهید، باید وظایف خود را طوری تقسیم بندی کنید که همه آنها برآورد زمانی ۱۶ ساعت یا کمتر داشته باشند.

[restrict paid=true]

تکرار منطقی

هنگام اضافه کردن یک کار جدید به بک­لاگ فقط ستون تکرار را خالی  نگه دارید. در ابتدا بک‌­لاگ شما درهیچ کدام از این ستون چیزی نخواهید داشت. بخش بعدی نشان می‌دهد که چگونه این ستون استفاده می‌شود.

ستون تکرار

تکرار
تکرار

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

پس از اینکه در رابطه با طول تکرار تصمیمتان را گرفتید، باید تخمین بزنید که چند ساعت در طول تکرار، کار خواهید کرد. ساعت‌هایی که شما در هرتکرار می‌گذرانید، ممکن است از یک تکرار به دیگری می‌توان متغیر باشد، بنابراین شما باید تصمیم بگیرید که چه زمانی برای شروع  آماده هستید. به عنوان مثال، اگر در طی یک دوره تکرار، قصد دارید دور باشید، باید آن را در نظر داشته و محاسه کنید. در صفحه نمونه ما، تقریبا ۱۶ ساعت در اولین تکرار کار خواهیم کرد. اینکه چگونه این ۱۶ ساعت را در میان ۷ روز  توزیع کنید مهم نیست.

اختصاص یک وظیفه به یک تکرار، با وارد کردن شماره تکرار (شروع از ۱) در ستون تکرار بکلاگ شروع می‌شود.انتخاب وظایف یک فرایند آسان است، شما فقط باید وظایفی را که می‌خواهید در آینده  روی آنها کار کنید، انتخاب کنید، از اینکه انجام وظیفه انتخابی تان مطمئن شوید بیش از ۱۶ ساعت طول نمی‌کشد، (حداقل تا حد زیادی) مطمئن شوید. در صفحه گسترده، سه تکلیف را به اولین تکرار خود اختصاص دادم که دقیقا ۱۶ ساعت طول کشید. (دو تکلیف اول نیاز به ۴ ساعت کار و تکلیف سوم نیاز به ۸ ساعت دارد.)

پس از آنکه وظایفی که بخشی از تکرار هستند شناسایی شد، ما می‌خواهیم آنها را به یک جدول جدید که مخصوص تکرار است، کپی کنیم. من این کار را با ایجاد یک صفحه گسترده دیگر و کپی کردن / چسباندن کارهای انتخاب شده به آن انجام می‌دهم. در مثال شما می‌توانید بر روی تب “Iteration # 1” در پایین سمت چپ کلیک کنید تا ببینید که چگونه جدول تکرار برای اولین تکرار ظاهر می‌شود.

توجه داشته باشید که من تنها سه ستون اول بک­‌لاگ را کپی کردم، واضح است که منطقی نیست که کل ستون تکرار را کپی کنیم چرا که این جدول مخصوص یک تکرار است.

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

بازگویی پیشرفت

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

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

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

پایین جدول بخش جمع کل است. همه اینها یرای مشق فرمول‌ها هستند، بنابراین صفحه گسترده تنها این جزء را برای شما می‌تواند محاسبه کند. ردیف پایین، برچسب “پیشرفت ایده آل” همگی با فرمول محاسبه شده اند، بنابراین شما می‌توانید تقریبا آنها را نادیده بگیرید. ما از این داده‌ها برای نمودارهای پیشرفت استفاده خواهیم کرد.

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

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

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

نمودار پیشرفت پروژه

نمودار پیشرفت پروژه
نمودار پیشرفت پروژه

نمودار پیشرفت پروژه در مورد اینکه در طول یک تکرار کجا هستید، یک ایده سریع به شما می‌دهد. در حالی که این واقعا بخشی ضروری فرایند نیست، نمودارها در تجسم پیشرفت شما بسیار مفید هستند.

خط قرمز نشان دهنده نرخ پیشرفت ایده آل برای تکرار است. آن به سادگی بر اساس کل ساعت‌های برآورد شده برای انجام هریک از وظایف در هر تکرار و پخش مساوی آنها در هر روز از تکرار بدست می‌آید. بنابراین در مثال ما، برای هر روز کار باقی مانده و انجام نشده با نسبت ۷/۱ کاهش یافته تا زمانی که در آخرین روز به صفر رسیده و دیگر کاری برای انجام باقی نماند.

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

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

برنامه ریزی انتشار (Release Schedule)

برنامه انتشار
برنامه انتشار

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

جدول ساعت‌های موجود در بک­‌لاگ برای انجام هر تکلیفی را که به یک تکرار اختصاص داده نشده است را خلاصه کرده، نتایج را بواسطه انتشار گروه بندی می‌کند. پس از وارد کردن ساعت برآوردی خود در هر تکرار در این جدول، می‌توانید از تعداد تکرارهای بیشتری ایده‌هایی را که شما برای تکمیل هر انتشار نیاز دارید، بگیرید.

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

نتیجه‌گیری

امیدوارم این یک مقدمه مفید برای مدیریت پروژه باشد. اگر نظر و یا سوالات در مورد موضوعات مورد بحث داشته اید، یا اگر روش مدیریت پروژه خود را مایلید به اشتراک بگذارید، لطفا با ما در میان بگذارید.

[/restrict]
برچسب ها
آموزش های آنلاین

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اگر در خصوص این مقاله یا دانلود منابع مشکل یا سوالی دارید لطفا با پشتیبانی کار و کسب در ارتباط باشید.