عوامل موفقيت پروژه - قسمت 1
عوامل، روش ها و تكنيك هاي زيادي وجود داره كه باعث ميشه يك پروژه با موفقيت به اتمام برسه. معمولاً در تحليل يك پروژه نرم افزاري يك سري آيتم ها وجود داره كه ميان روي اونها فكر و بررسي مي كنن و با گذاشتن جلسات مداوم و خوب راهكارهايي رو پيشنهاد مي دن و بر اساس اون عمليات هاي سيستم رو اولويت بندي مي كنن. اين اولويت بندي باعث ميشه تا مدير يا مديران پروژه زمان انجام عمليات رو تخمين بزنن و در انتها زمان اتمام اتمام پروژه رو بدست ميارن. اما در طول اين مدت مديران و تحليل گران پروژه چگونه كار مي كنن؟ چي باعث ميشه كه تمامي كار ها روي اصول و برنامه از پيش تعيين شده انجام بشه؟ يك مدير پروژه موفق و خوب چه ويژگي هاي بايد داشته باشه و چه نكاتي رو بايد رعايت كنه تا در كارش موفق بشه؟
مطالب اين تايپيك بر اساس تجربه خيلي خيلي اندك من در اين كار هستش و من هم دنبال مسلط شدن روي اين مفاهيم هستم. روي اين موضوع كمي بحث مي كنيم و منتظر نظرات شما هستم.
1- استفاده از ابزارها و نرم افزارهاي مديريت پروژه:
پوشيده نيست كه استفاده از نرم افزارهاي قدرتمند مديريت پروژه مي تونه كمك شاياني به ادامه روند يك پروژه داشته باشه. شايد ساده ترين نرم افزاري كه بشه باهاش كار تحليل رو شروع كرد نرم افزار MS Project بسته نرم افزاري Office باشه. البته خوب خيلي ضعيف هستش و جوابگوي پروژه هاي بزرگ نيست اما براي افراد بي تجربه و جواني مثل بنده مي تونه خيلي چيزها رو آموزش بده. يا نرم افزار CCPM+ كه براي تعيين زمان بندي پروژه هستش. نرم افزار project-MTA براي رسم نمودار و نرم افزار Project-PSP براي رسم WBS پروژه و خيلي نرم افزار هاي كاربردي ديگه كه من نمي شناسمشون(!)
2- پذيراي مرحله جديد بودن:
براي من اين اتفاق افتاده كه زماني كه تحليل رو به پايان رسوندم در حين پياده سازي كار مجبور شدم كه ساختار پروژه رو تغيير بدم يعني بر خلاف تحليلي كه انجام دادم عمليات هاي جديدي رو به سيستم اضافه كنم. معمولاً تيم تحليل يك پروژه هر چقدر هم قوي و با تجربه باشن ولي بازهم در هنگام زمان بندي پروژه يك زماني رو براي Itertate احتمالي در نظر مي گيرن تا بعداً با كمبود وقت و بالا رفتن هزينه مواجه نشن. پس بايد تيم خودش رو براي يك مرحله جديد آماده كنه يك جرقه يا فكر نو مي تونه مسير يك پروژه رو به طور كلي عوض كنه.
3- توانايي انتقاد كردن و مورد اتقاد قرار گرفتن:
معمولاً اگر دقت كرده باشين معلمان يا استادان دوست دارن كه دانشجو كلاسشون ارشون سوال كنه. اين سوال كردن دانشجو اين نويد رو به استاد مي ده كه درسي رو كه داده دانشجو بهش دقت كرده يعني در كلاس حضور داشته. پس بايد آماده جوابگويي به سوال دانشجو باشه چون ممكنه اين سوال كردن ها باعث ايجاد بحث يا جرو بحث(!) در كلاس بشه و بعداً انتقادهايي صورت بگيره. اين موضوع در همه جا صادق هستش در كار، در جلسات، در مديريت و ...
"پس يك تحليل گر در تيم تحليل بايد در جلسات حضور موثر داشته باشه و بتونه انتقاد كنه و يك مدير خوب كسي هست كه به اين انتقاد گوش بده و در برابر اين انتقاد يك راهكار از انتقاد كننده بطلبه و البته از انتقاد ناراحت نشه."
عوامل موفقيت پروژه - قسمت 2
4- رويه مديريتي داشتن:
يك مدير خوب كسي نيست كه سبيل پر پشت يا چهره غضبناك داشته باشه تا همه ازش بترسن. كسي نيست كه فقط دستور مي ده يا تلفن اتاق/اطاق رو ببنده تا كسي مزاحمش نشه كسي هستش كه با تمامي كارمنداش با دقت صحبت مي كنه و هميشه دنبال يك خلاقيت در كارش هست دنبال يك فكر يا ايده نو براي جلو رفتن كار.
داشتن روحيه مديريتي براي يك مدير باعث ميشه تا كارمندانش با مديرشون احساس راحتي كنن و ازش نترسن و با يك خيال راحت ايده ها و طرح هاشون رو ارائه بدن.
5- استفاده بهينه از زمان:
كار يا قشنگ تر بگيم پروژه اي كه توسط يك كارفرما پيشنهاد ميشه نبايد بيشتر از حد معمول طول بكشه تا كارفرما خسته بشه. خوب اينجا ايران هستش و اصلاً براي كارفرما تحليل و UseCase و... مهم نيست تقصيري هم نداره چون نمي تونه اين موضوع رو درك كنه كه داره روي پروژه پيشنهاد شدش كار مي شه. پس براي اينكه خسته نشه ما بايد در كمترين زمان پروژه رو آماده كنيم. در Elecomp امسال كه من شركت كردم از يكي از برنامه نويسان شركت x سوال كردم كه چقدر براي زمان يك عمليات تويه ايران شركت ها ما سرمايه گذار مي كنن؟ جوابي كه داد اين بود كه وقتي يك عمليات با تحليل ها و نموداراش در اختيار من قرار ميگيره توش نوشته كه تاريخ شروع : 7/10/1387 ساعت شروع 9 صبح تاريخ پايان عمليات ساعت 16 همان روز و اگر من كار رو تا قبل از ساعت 4 بعد از ظهر تحويل ندم من جريمه ميشم. مثلاً از حقوقم كسر مي كنن يا مرخصي نمي دن و ...
براي اينكه اين اتفاق نيوفته بهترين راه حل اين هست كه در حين كار حاشيه نريم. يعني در جلسات تحليل بحث هاي غير ضرروي رو وسط نكشيم.
جلسات رو دسته بندي كنيم تا نظم در كار حفظ بشه و تقسيم كار رو براي تيم تحليل فراموش نكنيم.
6- موثر در جلسات:
بهتر هستش كه قبل از شروع جلسه مدير و تحليل گر خودش رو Update كنه و بعد در جلسه شركت كنه.
7- تصميم گيري:
يك مدير موفق در تصميماتش كمتر دچار اشتباه ميشه يعني در يك زمان خاص بهترين تصميم رو ميگيره. مثلاً در تيم تحليل اختلاف نظري وجود داره (مثلاً مجله برنامه نويس) و هر كدوم از تحليل گران يك راهي رو پيشنهاد مي كنن كه اتفافاً راه هر دو تحليل گر درست و خوب هستش و دلايلشون هم كاملاً منطقي و درست هستش و به ادامه روند پروژه خيلي كمك مي كنه اما خوب مدير بايد كاري كنه كه نه سيخ بسوزه نه كباب و يك تصميم درست بگيره. اين تصميم درست مي تونه به نفع هر كدوم از طرفين يا نظر هر دو طرف باشه يا اصلاً مخالفت كنه!
8- جلسات خوب و مفيد:
راستش من زياد تو جلسات شركت نكردم و نمي دونم كه يك جلسه واقعاً خوب چه جلسه اي هستش اما جلسه اي رو كه بنده خودم دوست دارم كه باشه اين هستش كه :
- خشك نباشه.
- اجباري نباشه
- نتيجه داشته باشه.
- كمي هم مهربانانه و دوستانه باشه. (اخلاقيات و روحيات و عرفان و معرفت و ...)
9- تجربه:
هر پروژه اي يه سري درس هايي به آدم مي ده كه مي تونه در كارهاي ديگه خيلي بهش كمك كنه. يك مدير و تحليل گر خوب و موفق از اول موفق نبوده. شكست خورده و از شكستش درس گرفته. رويه شكستش خيلي فكر كرده و ساعتها با خودش خلوت كرده كه چرا مثلاً اين پروژه به بن بست رسيد.
پس استفاده از مديران و تحليل گران با تجربه خيلي مي تونه به درست جلو رفتن پروژه كمك كنه.
يك قانوني هست كه باعث ميشه هر پروژه اي با موفقيت به پايان برسه اون هم قانون ت ت ت. توكل، تعمق و تفكر.
اميدوارم كه دوستان هم در اين بحث ها شركت كنند و روش ها و راهكار هاشون رو ارائه بدن.
نقل قول: اهمیت ارتباط در پروژهها
خیلی به نکته مهمی اشاره کردی ،با توجه به اینکه خیلی ساده به نظر می یاد ولی خیلی مهم بود و به دردم خورد
نکاتی دیگر از موضوع چشم انداز پروژه
با تشکر از اوبالیت عزیز
لازم به ذکره به چند نکته کوچیک اشاره کنم
البته من به اندازه دوستان تجربه و علم کافی ندارم ولی اون چیزی که به ذهنم میرسه رو میگم تا دوستان کمکم کنن:
چشم انداز پروژه می تونه به همراه خودش یه چیزی شبیه به WBS داشته باشه یعنی مراحل انجام کار توش مشخص بشه تا مدیر یا مدیران پروژه راه رفتن تارسیدن به هدف براشون واضح تر باشه. صرف مشخص کردن اهداف و ارائه ی حس مسئولیت پذیری نمی تونه کافی باشه . دلیلش هم واضحه . اگه راه مشخص نباشه هر مدیری به طبع فکر و درک خودش برنامه ریزی انجام پروژه رو پیاده می کنه و این قطعا پروژه رو با چالش جدی مواجه می کنه
تعیین خط و روش انجام کار (این چیزی برخلاف تعیین معماری سیستم است) کمک میکنه تا مدیران بعدی یا مدیران جدیدی که قراره به پروژه اضافه بشن بدونن قراره چی کار کنن و از چه راهی به هدف برسن.
بررسی منابع در کنار ریسک پذیری پروژه بسیار با اهمیته. منابع مالی ، انسانی ، زمانی و... می تونن رو پروژه تاثیرات زیادی بزارن. به عنوان مثال شما دارید برای یک وزارتخانه برنامه می نویسید .ممکن بر اثر یک تصمیم که در معادلات سیاسی گرفته میشه ساختار برنامه ریزی شما تحت تاثیر کمبود منابع زمانی قرار بگیره.یا مثلا یکی از افراد پروژه به هر دلیلی (فوت و...) دیگه نتونه با شما همکاری داشته باشه.
نکته دیکه سینک یا هماهنگ نبود اجزای انجام دهنده پروژه است برای خودش یک داستان طول دراز داره که قطعا مدیران پروژه باهاش برخورد داشتن ( مثلا سناریوی ناقص یا کسی که در منصب خودش انقدر قدرت پیدا کرده که به سادگی با تحرکاتش کل پروژه رو تحت تاثیر قرار میده).در نتیجه سیستم خوب مدیریت میشه که مستقل از اجزا باشه :لبخند:
به علاوه کج سلیقگی های مدیران ارشد مالی واداری خودش نیز مزیدی است بر دلایل شکست پروژه . معمولا مدیران همیشه در همه ی کارا دخالت می کنن (شاید می خوان بگن ما هم هستیم :لبخند: ).
.....
پيش بيني زماني براي آموزش
چند روز بود كه فكر مي كردم در پست جديد چه چيزي رو بنويسم و بعد به اين فكر افتادم كه يه مساله كوچيكي رو كه خودم به تازگي جرقش به ذهنم خورد رو مطرح كنم. اكثر ما به صورت تك نفره پروژه ميگيريم يا نهايت تيممون 2 يا 3 نفر بيشتر نيست. وقتي يه پروژه اي رو تحويل ميگيريم بايد در زمان بندي پروژه يك زماني رو براي تحقيق يا آموزش درباره اون مساله در نظر بگيريم. من يه مثالي رو عرض مي كنم:
فرض كنيد آقاي بنده نوعي مثلاً obalitjoOon تا حالا كار وب انجام نداده و تاحالا پروژه هاي تحت ويندوزي نوشته. يك روزي يه جا يه نفر ازش يه وب سايت مي خواد و اين آقا پروژه رو قبول مي كنه. چه اتفاقي مي افته؟ اينجاست كه بايد يه زماني رو حتماً بايد براي آموزش خودش در نظر بگيره. شايد يكي از دلايلي كه اين آقا رفت PHP ياد گرفت همين بود. شايد مبلغ زيادي رو هم نگرفت چون اون چيزي رو كه مي خواست نشد، نه 3 لايه بود، نه OO بود، مدام SQL Injection مي شد (و ميشه)، RegEx استفاده نشده بود و از حلقه ها و شرط ها استفاده شده بود ... اما بالاخره بايد از يه جايي شروع مي كرد و چه بهتر كه با يه پروژه شروع به يادگيري يه زبان يا تكنولوژي بكنيم. كار خطرناكي هستش اما بايد ريسك كرد. بترسيد و اقدام كنيد اما اقدام كنيد.
اين آقا بايد يه زماني رو بايد صرف يادگيري يه زبان برنامه نويسي تحت وب مي كرد و حالا بايد زماني رو براي آموزش تكنيك ها و مباحث امنيت بكنه. اينها همه وقت هستن. ساعتها، روزها، ماه ها و ...
بايد براي موانع فكري كرد و براشون برنامه ريزي دقيقي رو در نظر گرفت.
مديريت پروژه همين چيزهاي ساده هستش.