Archive

Posts Tagged ‘موفقیت شرکت تازه تاسیس’

کتاب اسکرام آماده تحویل شد

فوریه 24, 2012 ۱ دیدگاه

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

IMG_20120223_222313.jpg (1024×768)

در این کتاب چه چیزی هایی خواهید خواند

  • مقدمه و معرفی اسکرام
  • چگونه بک لاگ  محصول را  ایجاد می کنیم
  • چگونه برای برنامه ریزی اسپرینت آماده می شویم
  • چگونه جلسه برنامه ریزی اسپرینت را برگذار می کنیم
  • چگونگی ارتباطات در طول اسپرینت
  • چگونه بک لاگ اسپرینت را انجام می دهیم
  • چگونه اتاق تیم را مرتب می کنیم
  • چگونه جلسه روزانه اسکرام را انجام می دهیم
  • چگونه دموی اسپرینت را ارائه می دهیم
  • چگونه اسپرینت را بازبینی می کنیم
  • چگونگی فاصله دهی مابین اسپرینت ها
  • چگونگی انجام قرار دادهای قیمت بسته و برنامه ریزی Release
  • چگونه XP را با اسکرام ترکیب می کنیم
  • چگونه تست می کنیم
  • چگونه چندین تیم اسکرام را اداره می کنیم
  • چگونه تیم های پراکنده جغرافیایی را اداره می کنیم
  • چک لیست مدیران اسکرام
  • معرفی خواندنیهای مفید

تفاوت این نسخه با نسخه آنلاین

این نسخه از کتاب چندین بار توسط چند نفر از دوستان همانند خانم حسین زاده مورد ویراستاری قرار گرفته است و در ضمن ترجمه بعضی از لغات و جملات بهبود یافته است که این نسخه را از نسخه آنلاین متمایز می سازد. در کل این نسخه از نسخه آنلاین بهبود یافته تر است و ارزش دوباره خوانی را دارد (:

نحوه تهیه کتاب

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

انتشارات سلوی

تبریز / خیابان شریعتی جنوبی (شهناز) / بالاتر از پاساژ ضرغامی / اول کوچه مستشاردوم / انتشارات سلوی

شماره تلفن : 5542497 0411 – 09141004966

از دوستانی که فروشگاه اینترنتی دارند ، در صورت تمایل می توانند در زمینه ارائه این کتاب همکاری نمایند.

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

یاشیاسیز

آیا شلوار Agile هنوز برای سازمان های ایرانی گشاد است؟

دسامبر 31, 2010 4 دیدگاه

همانطور که در پست های متعدد مانند پست خروجی کارآ در Agile اشاره شد نرم افزار کارآ یا Working Software یکی از ارزش های چهارگانه توسعه نرم افزار چابک می باشد ولی سوالی که قابل طرح است این است که آیا سازمان ها یا شرکت های توسعه نرم افزار ایرانی آمادگی دست یابی به این ارزش را دارا می باشند؟

https://sirasad.files.wordpress.com/2010/12/happyman.jpg?w=274به طور خلاصه نرم افزار کارآ به محصولی اطلاق می شود که نیازهای جاری مشتری را رفع نماید و قابل گسترش برای پوشش نیازهای بعدی او نیز باشد. اما آیا واقعا در ایران هدف صنعت نرم افزار برآورد کردن نیازهای مشتری است! آیا خروجی های ما در طی این مدت (مثلا 10 سال گذشته) کارآ بوده اند؟

بزرگترین مانع در دست یابی به یک محصول کارآ به نظر من قراردهای بسته می باشد. قراردادهایی وابسته به یک نیاز سنجی اولیه و تخمین زمانی اغلب نادرست. مثلا Aو B را باید در 1 ماه انجام بدهید. انجام A و B در یک ماه حالا با یک تلرانس 1 هفته ای طی یک پروژه , عرضه کننده محصول کارآ نخواهد بود زیرا ما مکلف به تکمیل درخواست ها هستیم و نه ارائه محصول کارآ.  همین دید باعث می شود اگر زمانی نیاز باشد B به C تبدیل شود شاهد اختلافات بزرگی باشیم.

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

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

اما بحث قرارداد بیشتر یک بحث فرهنگی می باشد تا یک بحث فنی. همیشه در قرارداد باید حداقل دو طرف وجود داشته باشند : 1- مشتری 2-مجری قرارداد. هر دو طرف این قرارداد باید به یک سطح فرهنگی و شعوری برسند که من مشتری برای رسیدن به خروجی کارآ باید هزینه کنم و من مجری باید خروجی کارآ ارائه نمایم و اسم این سطح شعوری را می توان چابکی نامید.مشتری چابک و مجری چابک خواهند توانست آغاز گر یک پروژه با خروجی کارآ باشند.

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

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

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

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

چابک شوید و چابک بمانید.

یاشیاسیز

ISDA راهکاری برای ساماندهی صنعت توسعه نرم افزار ایران

نوامبر 17, 2010 15 دیدگاه

طبق تجربه و مشاهدات قابل نتیجه گیری است که همه قبول دارند صنعت توسعه نرم افزار ایران با مشکلات بزرگی سروکار دارد(حتی بسیاری معتقد به صنعت بودن آن نیز نیستند). این مشکلات صرفا برای یک بخش یا دو بخش این صنعت نیست بلکه همه بخش ها با چالش های بزرگی روبرو می باشند: اعم از تولید کنندگان , سرمایه گذاران , مصرف کنندگان , بازار خرید و فروش و بخصوص نیروی کار .

پیشنهادی که من برای ساماندهی اوضاع وخیم این صنعت بخصوص برای شهرستانها (بین پرانتز : وضع شهرستانها در صنعت نرم افزار بسیار وخیم تر از تهران می باشد – شاید تعبیر ایران و آمریکا مصداق خوبی برای این مقایسه باشد یعنی تا این حد فرق دارد)  دارم ,  ایجاد یک تشکل از دل صنعت گران این رشته می باشد. اگر ما بدنبال فرج و یا اعنایت دولتی و کشوری باشیم وضع بدین گونه خواهد بود و هر روز بدتر از دیروز خواهد بود. پس بهتر است خودمان سروسامانی به اوضاع بدهیم.

ISDA یا Iran Software Development Alliance یا تشکل صنعت توسعه نرم افزار ایران

مشکلاتی که در ISDA قابل حل خواهند بود :

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

به نظر من ایجاد این حلقه ها باعث رشد و ساماندهی در تمام سطوح این صنعت خواهد شد. به عبارتی  وجود این حلقه ها باعث به وجود آمدن صنعت خواهد شد . اما برای ایجاد چنین تشکلی نیاز به عضو گیری در تمام سطوح خواهد بود ,  که برای این منظور نیاز به سامانه ای خوب و قدرتمند می باشد. حال پیشنهاد من این است که : در یک تلاش گروهی و تیمی اقدام به ایجاد سامانه ISDA بکنیم تا از این طریق بتوانیم سروسامانی به اوضاع حاضر بدهیم.

خلاصه ای از سامانه ISDA در شکل زیر :

https://sirasad.files.wordpress.com/2010/11/isda_overview.jpg?w=592

تاکید من در این سامانه ایجاد امکانات منطقه ای در اولویت اول است زیرا تا زمانیکه صنایع منطقه ای در هر منطقه (شهر ,  استان ) شکل نگیرند شاهد صنعت کلی و کشوری نخواهیم بود. به عبارت ساده تر صنعت کشوری نیازمند صنایع منطقه ای است.من به عنوان یک برنامه نویس در تبریز اولویت اولم این است که شرکت های این منطقه را شناسایی کنم ,  با برنامه نویسان این منطقه آشنا بشوم ,  یا من به عنوان یک مشتری در مشهد مشتاق عقد قرار داد با شرکت ها  و صنایع مشهد هستم یا من به عنوان یک شرکت در اصفهان دنبال برنامه نویسان اصفهانی هستم و یا … .  پس بهتر است در کنار بحث عملیات فرا منطقه ای و کشوری و یا جهانی بر روی مسائل منطقه ای دقت و کار شود.

شرح پیشنهاد :

هدف : ایجاد سامانه تشکل صنعت توسعه نرم افزار ایران(ISDA System) جهت ایجاد حلقه اتصال مابین صنایع توسعه نرم افزار , نیروی متخصص و مشتری محصولات نرم افزاری

Elevator Statement

  1. این سامانه برای صنایع توسعه نرم افزار ایران می باشد برای اینکه آنها بتوانند :
     

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

وجه تمایز این سامانه با سیستم های مشابه

  • این یک سیستم کاریابی و یا تبلیغات صرف نخواهد بود.
  • سامانه توسط یک تشکل غیر انتفاعی و Non-Profit اداره خواهد شد.
  • سامانه بدنبال ایجاد و یا کسب درآمد نیست.
  • تمام خدمات سامانه رایگان و قابل دسترس همه خواهد بود.
  • اولویت اصلی سامانه ایجاد حلقه های منطقه ای و سپس حلقه فرا منطقه ای می باشد.
  • سامانه یک سامانه عمومی با مالیکت عمومی خواهد بود.

این سامانه یک برنامه تحت وب خواهد بود که همه باید بتوانند به راحتی نیازهای خود را برطرف نمایند (به صورتی که قبلا این امکان میسر نبود).

آفت این سامانه

  • تفکر و اندیشه کسب منافع از طریق ایجاد این سامانه

نقش تشکل در سامانه

تشکل ISDA در واقع راهبر و تصمیم گیرنده سامانه ISDA خواهد بود. اما در زیر می توان به تعدادی از نقش های کلیدی این تشکل اشاره کرد :

  • ایجاد گروه ها و یا کنسرسیوم های منطقه ای و فرا منطقه ای
  • برگزاری دوره ها و سمینار های آموزشی منطقه ای و فرا منطقه ای
  • برگزاری گردهمایی های منطقه ای و فرا منطقه ای
  • برگزاری نمایشگاه های تخصصی نرم افزاری (نه الکامپ یا امثالهم)
  • آموزش و حمایت و ارائه گواهی به نیروی متخصص
  • رتبه بندی صنایع
  • ایجاد و تبیین استاندارد تولید و توسعه نرم افزار

مافیا و سامانه

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

مالک سامانه کیست؟

  • مالک سامانه تشکل ISDA خواهد بود .

اعضای ISDA چه کسانی خواهند بود؟

  • اعضای این تشکل جمعی از توسعه دهندگان سامانه  بعلاوه تعدادی از متخصصین و صاحبین صنایع توسعه نرم افزار خواهند بود که اعضا به صورت دوره ای تعویض خواهند شد (مانند اصناف).

تشکل ISDA چگونه تشکیل خواهد شد؟

  • این تشکل در حین و بعد از ایجاد سامانه به صورت رسمی تشکیل خواهد شد.

ایجاد سامانه چگونه انجام خواهد شد؟

  • این سامانه توسط تعدادی از متخصصین توسعه نرم افزار به صورت داوطلبانه شروع و ایجاد خواهد شد. اما جزئیات فنی پروژه بعد از تشکیل تیم توسعه سامانه اعلام خواهد شد.

بستر و تکنولوژی سامانه

  • سامانه یک برنامه تحت وب خواهد بود که این سامانه با یکی از زبان های ASP.net و یا PHP پیاده سازی خواهد شد که انتخاب آن با تیم توسعه خواهد بود.

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

  • روحیه کار تیمی و کارهای عام المنفعه داشته باشند.
  • در یکی از مقوله های Asp.net و یا PHP و یا تخصص های مورد نیاز مانند طراحی رابط کاربری و یا امثالهم متبحر باشند.
  • این یک پروژه آموزشی نیست پس از پذیرش افراد مبتدی و … معذور خواهیم بود.
  • صاحب نظران عزیز

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

یاشیاسیز

IT های سازمانی و توسعه نرم افزار با Agile

سپتامبر 16, 2010 ۱ دیدگاه

معاونت و یا بخش IT در هر سازمان امروزه تبدیل به یکی از ارکان اصلی سازمان ها شده است به نحوی که آنها می توانند در موفقیت و یا شکست سازمان نقش به سزایی بازی کنند . یکی از وظایف اصلی این بخش توسعه نرم افزار های مورد نیاز سازمان به صورت درون سپاری یا برون سپاری می باشد .  البته توسعه نرم افزار وابسته به ایده می باشد . در واقع یکی از مهمترین کارهای بخش IT کشف نیاز ها و یا  انجام نوع آوری هایی است که باعث تسریع در رسیدن سازمان به اهداف خود می شود . بعد از ایده نوبت به توسعه و گسترش (Deployment) ایده می رسد . بعد از گسترش نوبت به استفاده و سپس به مرگ نرم افزار می رسد . یعنی هر نرم افزار به طور کلی دارای توالی زمانی ایده ,  گسترش و مرگ می باشد .

IT Man های سازمان ها سوال می پرسند که از کجا شروع کنیم ؟ چگونه شروع کنیم ؟ چگونه Agile  را  در سازمان برای توسعه نرم افزار به کار بگیریم ؟ ایده چگونه باید نرم افزار بشود ؟مرگ نرم افزار کی فرا می رسد ؟

جواب این است که شما باید از ALM یا همان Application Life cycle Management استفاده نمایید. و در واقع هدف اصلی این پست تبیین و توضیح ALM می باشد .

ALM چیست ؟

ALM یک Business Process  برای مدیریت چرخه نرم افزار از ایده تا مرگ می باشد.  بعضی از دوستان ALM را با SDLC اشتباه می گیرند در حالیکه خود SDLC که همان چرخه توسعه نرم افزار می باشد داخل ALM قرار دارد و به عبارتی SDLC جزئی از ALM می باشد .

ALM شامل 3 زمان ایده , Deployment  و مرگ نرم افزار می باشد . در هر زمان یا فواصل بین زمان ها  نمود و یا جنبه ای از ALM انجام می شود که به اینها جنبه و یا نمود ALM گفته می شود که به شرح ذیل می باشند :

  • Governance
  • Development
  • Operation

برای درک بهتر و راحتر مطلب به شکل زیر توجه نمایید :

https://sirasad.files.wordpress.com/2010/09/almaspects.jpg?w=592Governance یا مدیریت

این نمود از ALM از زمان ایده تا زمان مرگ نرم افزار ادامه دارد . این نمود بیشتر در مورد تصمیم گیری در مورد Application خواهد بود . یعنی تصمیات کلیدی و مدیریتی طی این نمودگرفته خواهند شد .

تصمیم گیری هایی که در این نمود انجام می شود به صورت زیر می باشد :

https://sirasad.files.wordpress.com/2010/09/almgovernance.jpg?w=592

  • کدام نرم افزار خاص باید توسعه داده شود ؟ (Business Case Development – Project Approved )
  • منابع چگونه برای نگه داری این Application  باید توزیع شوند ؟ (PPM APM)
  • چه زمانی باید این  Application از رده خارج شود ؟

اینها تصمیمات کلیدی هستند که باید طی نمود Governance گرفته شود و همانطور که قابل درک اینها تصمیمات مدیریتی هستند که باید توسط مدیران IT و سازمان گرفته شود . شکل بالا به صورت توالی زمانی و کاملاواضح نمود Governance را تشریح کرده است و نیازی به توضیح اضافی نیست.

Development یا توسعه

این نمود بعد از تصویب پروژه که در نمود Governance انجام می شود شروع خواهد شد .  در این  نمود نرم افزار مورد نظر و تصمیم گرفته شده در نمود قبلی ساخته و یا Update  می شود . این نمود در زمان Deployment تمام می شود ولی دوباره بعد از Deployment احتمال دارد به صورت مقطعی دوباره شروع شود ولی نه به صورت پیوسته. شکل پایین نمود توسعه را تشریح می کند :

https://sirasad.files.wordpress.com/2010/09/almdevelopment.jpg?w=592

توضیحی که می توان در مورد شکل بالا داد این است که دو بار SDLC انجام گرفته است که بار اول همان ساخت نرم افزار است و بار دوم قسمت های ناقص نرم افزار ساخته شده است . در مورد  SDLC می توان عرض کرد که شما می توانید از هر چرخه توسعه نرم افزار برای این مورد استفاده کنید که چرخه مورد نظر من همان روش محبوب Agile می باشد .

همانطور که می دانید در Agile  کارها و پیاده سازی ها طی تکرارها یا Iterative های متوالی انجام می شود که به این تکرار ها در اسکرام اسپرینت گفته می شود . در اول هر اسپرینت تعدادی نیازمندی انتخاب و در طی اسپرینت نیازمندی ها پیاده سازی می شود . همانند شکل زیر :

https://sirasad.files.wordpress.com/2010/09/almsdlc.jpg?w=592

اما در نمود Development علاوه بر SDLC وظایف Maintenance یا نگه داری هم انجام می شود که برای حفظ Application  ضرروری می باشد .

Operation یا عملیاتی

این نمود شامل دو عملیات کلی Monitor کردن Application  و Deployment می باشد . عملیات Deployment این نمود بعد از هر SDLC و یا Update  بخشی از نرم افزار شروع و خاتمه پیدامی کند . ولی عملیات Monitoring  از اولین و حتی قبل از اتمام SDLC اول شروع و تا زمان مرگ نرم افزار ادامه پیدا می کند . در مونتیورینگ اشکالات و کمبود های نرم افزار کشف و برای آنها تصمیم گیری می شود و سپس براساس تصمیم گیری توسعه پیدا می کنند .

https://sirasad.files.wordpress.com/2010/09/almoperations.jpg?w=592

ALM چگونه ؟

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

شرکت های بزرگی مانند مایکروسافت و یا IBM ابزارهای خوبی در این خصوص ارائه داده اند . مایکروسافت TFS یا Team Foundation Server  خود را معرفی کرده است و IBM نرم افزار Jazz server را معر فی کرده است . بدلیل اینکه اکثر دوستان از Visual Studio استفاده می کنند من هم پیشنهاد می کنم برای این منظور از TFS 2010 به همراه Visual Studio 2010 استفاده نمایید زیرا که یکپارچگی خوبی ایجاد می شود .

https://sirasad.files.wordpress.com/2010/09/visual-studio-2010-stadium-diagram_thumb.png?w=592

یاشیاسیز

مشکل کار شرکت های توسعه نرم افزار کجاست؟

سپتامبر 11, 2010 4 دیدگاه

اگر وبلاگ دنیای چابک را دنبال کرده باشید حتما می دانید که یکی از دغدغه های اصلی من بررسی مشکلات شرکت های توسعه نرم افزار و توسعه گران نرم افزار می باشد . در این باب مطالبی گوناگونی را قبلا نوشته ام :https://sirasad.files.wordpress.com/2010/09/problem-behavior.jpg?w=300

بعد از این همه نوشتن واقعا مشکل کار شرکت های توسعه نرم افزار کجاست ؟  شاید بعضی دوستان بفرمایند که چه مشکلی ؟ شرکت ها نرم افزاری که مشکلی ندارند ؟ کدام مشکل ! از چه حرف می زنید ؟ به نظر من شاید مشکلات زیر وجود داشته باشند :

  • برگشت نشدن سرمایه در زمان معقول

یکی از مشکلاتی که برای شرکت های ایرانی می تواند اتفاق بیفتید ,  نبرگشتن سرمایه در یک زمان قابل قبول است . یعنی یک سرمایه ای که در یک شرکت نرم افزاری می خوابد باید در یک زمان پیش بینی شده برگشت شود و سازمان به سود آوری برسد . این عمل را معمولا بازاری ها با مقایسه بیان می کنند و به این طریق می گویند که شما با سرمایه گذاری در این بخش برده اید و یا باخته اید : فرض کنید که شرکتی با سرمایه ای در حدود 100 میلیون به راه می افتد . با اجاره مکان ,  تجهیزات و برنامه نویس و … . این گروه یک سال طول می کشد تا یک محصول را توسعه بدهند و آماده عرضه به بازار کنند .بعد از عرضه به بازار معمولا باید کم کم با درآمد زایی شروع برگشت سرمایه انجام شود ولی این پروسه معمولا برای شرکت ها خیلی طول می کشد . باید تبلیغات بشود ,  بازاریابی بشود ,  مشتری اعتماد بکند و … . شاید تا 5 سال سرمایه گذار نتواند که سرمایه اولیه خود را بردارد و به این ترتیب بازاری ها اذعان می کنند که اگر با این پول چند تن برنج پاکستانی می خریدید الان سرمایه چند برابر شده بود . حتی اگر سرمایه برگشت بشود و حتی سودآوری هم انجام شود ولی در برهه زمان طولانی باز ضرر حساب می شود . البته شاید سرمایه گذاری های طولانی مدت را بعضی از تاجران بپسندند ولی حداقل برای موارد دیگرکه بعدا عرض خواهد شد , سرمایه گذار از سرمایه گذاری در این حوزه امتناع می کند .

  • ریسک بالای سرمایه گذاری

سرمایه گذار معمولا در فکر برگشت سرمایه خود و سپس در فکر سودآوری می باشد . ولی سرمایه گذاران حتما ریسک کار را در نظر می گیرند . صنعتی مثل صنعت توسعه نرم افزارکه ریسک سرمایه گذاری در آن بسیار بالا است ,  حتما باعث خواهد شد که سرمایه گذاران در فکر گزینه های دیگر باشند . چرا ریسک کار بالا است ؟ بدلیل اینکه برگشت سرمایه انجام نمی شود .

  • نبود سرمایه مناسب دراین صنعت

زمانی که من به این حوزه توسعه نرم افزار صنعت اطلاق می کنم بعضی از دوستان نارحت می شوند و می فرمایند که این به هرچیزی شبیه است جز یک صنعت . بلی من هم این مورد را قبول دارم معمولا صنعت ترکیب فکر و ایده با سرمایه است ولی منتهی بدلیل ریسک بالای سرمایه گذاری در این حوزه شاهد این هستیم که سرمایه گذاری های بسیار کمی در این حوزه شده است . و البته شرکت ها مافیایی را در نظر نمی گیریم که شاید آنها یک درصد بازار باشند و همه می دانند که سرمایه های کلان آنها از چه طریقی تامیین شده است و چگونه برگشت سرمایه می کنند . منظور من شرکت های کوچک و متوسط و بخصوص شرکت های قارچی (شرکت هایی که هرازگاهی در یک جایی با رعد برقی تاسیس و با بادی منحل می شوند)  است . https://sirasad.files.wordpress.com/2010/09/making_money.gif?w=318

برای بخش اول بررسی مشکلات قابل نتیجه گیری است که بدلیل مشکلات سرمایه گذاری در این حوزه شاهد فقدان سرمایه گذار می باشیم . فقدان سرمایه گذار باعث فقدان سرمایه در این حوزه شده است . همانطور که قبلا اشاره شد ,  برای به وجو آمدن یک صنعت باید هم فکر باشد و هم سرمایه . ما یکی تا اینجا سرمایه نداریم چگونه می خواهیم اسم کاری که انجام می دهیم را صنعت بنامیم ؟

مشکل اصلی این حوزه این است که توسعه نرم افزار صنعت نشده است . مگر شرکت قارچی می تواند اسم خود را صنعت گر بنامد ؟ مگر شرکتی که جمعا با سرمایه 2 میلیون شروع می کند می تواند خود را جزوی از یک صنعت بداند ؟ مگر 4 نفر دانشجو می تواند آغازگر یک صنعت باشند ؟ پس صنعت نیاز به سرمایه دارد و سرمایه هم نیاز به سرمایه دار دارد .

ولی چقدر سرمایه نیاز است ؟ 10 میلیون بس است ؟ یا 100 میلیون ؟به نظر من در وحله اول خود سرمایه دار مهمتر از سرمایه اش هست . نه مبلغ سرمایه  ,  یک Business Man  یا تاجر می داند که کی باید چقدر خرج کند پس به موقع خرج خواهد کرد البته اگر نیاز باشد . این مورد را بذکر یک مثال ساده عرض می کنم :

بنده خدایی که فارغ التحصیل رشته گرامی نرم افزار از دانشگاه معتبر کشور می باشد (از همان هایی که در استخدام در اولویت می باشند)  قصد در آمدزایی از آموخته های خود را دارد . با 6 میلیون سرمایه ای که دارد می خواهد یک محصول حسابداری تولید کند زیرا او حساب و کتاب کرده است که اگر او بتواند در عرض 3 ماه یک نرم افزار حسابداری تولید کند حداقل می تواند هر نسخه آن را 50 هزار تومان بفروشد . اگر هر ماه 10 عدد بفروشد یعنی در یک سال خواهد توانست سرمایه خود را بردارد و بقیه فروش ها هم سود خالص خواهد بود . با این خیال وارد حوزه (نه صنعت ) نرم افزار می شود و با استخدام چند نفر برنامه نویس (اغلب دانشجو و ناکارآمد و حتما خانم ) دستمزد پایین شروع به پروسه توسعه نرم افزار می کنند . برای شروع چندی از نرم افزار های موجود در بازار را خریداری و از آنها الگوبرداری (یا همان کپی برداری ) می کنند . بعد به طور رعد سا شروع به پیاده سازی می کنند . دقیقا سر 3 ماه کل نرم افزار تکمیل می شود و نرم افزار آماده فروش می شود . اولین ورژن برای دایی و یا عمو و یا همسایه ای که مغازه ای دارد نصب می شود . نتیجه ؟ نرم افزار آنقدر باگ دارد , آنقدر اشکال حسابداری دارد ,  آنقدر ویژگی کم دارد که دایی هم از استفاده از این نرم افزار سر باز میزند . نرم افزار به شرکت بر میگرد و طی جلسه ای  تیم متحد می شود که هر چه زودتر اشکالات و کمبود های نرم افزار رفع شود . ولی این رفع کردن حداقل 1 سال به طول می انجامد ؟ چرا ؟ بدلیل اینکه برنامه نویس کدی که خودش نوشته را قبول ندارد ! بدلیل اینکه خیلی از جاها باید بازنویسی شود ؟ بدلیل اینکه برنامه نوشته شده Reusable  نیست ؟ بدلیل اینکه برنامه اتوماتیک تست ندارد ؟ بدلیل اینکه برنامه نویس ناکار بلد بوده است  و به صد ها دلیل دیگر … . این پروسه رفع اشکال و بده به مشتری و مشتری ناراحت بشه و دوباره رفع اشکال و … تکرار می شود که مجبورا این شرکت قارچی تعطیل می شود و همه به خانه ها خود عظمیت می کنند .

به نظر شما مشکل این شرکت و مجموعه و صنعت چه بود ؟ آیا این شرکت یک صنعت بود ؟ شاید جواب این باشد که طبق مطالب گفته شده این شرکت هم فکر داشت ( محصول حسابداری) و هم سرمایه . ولی آیا طبق گفته های بالا سرمایه به اندازه بود ؟ آیا سرمایه در حد ایده و هدف سرمایه گذار بود ؟ آیا سرمایه گذار فردی مناسب بود ؟ به نظر من نه . چون بنده اعتقادی به تاجر برنامه نویس ندارم (برنامه نویس جماعت تاجر خوبی نیستند ) . نه به این خاطر که فقط برنامه نویس بود بلکه بلد نبود که چقدر سرمایه باید چه وقت وارد شرکت بکند . بلد نبود که چقدر هزینه کند تا به درآمد مورد نظر برسد . بلد نبود که چه نوع نیروی کاری می تواند باعث برگشت سرمایه شوند .  البته کاری نداریم که ایده مناسب بود و یا نه  (مسلما ایده حسابداری یک ایده اشباع شده است و فقط برای مثال عرض شد) .

پس برای نتیجه قابل عرض است : برای موفقیت باید شرکت تبدیل به یک صنعت شود . گفته شد صنعت شامل سرمایه و ایده و فکر می باشد . سرمایه هم باید به اندازه مناسب  و کافی برای نیل به هدف در زمان تعیین شده توسط یک  یا چند سرمایه گذار مناسب تامیین شود .  اما سوالی که شاید برای شما ایجاد شود این است که : سرمایه مناسب و کافی یعنی چقدر ؟

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

https://sirasad.files.wordpress.com/2010/07/childlabour_brasil_ana.jpg?w=350تا اینجا ما تعریفی از صنعت نرم افزار داشتیم که در واقع این برای توسعه نرم افزار خوب و کارا یک بستر حساب می شود . و البته اشتباه نشود که صنعت نرم افزار فقط یک شروع است و نه بهشت برین . ما تازه با این همه مقدمه به این رسیدیم که بستر لازم برای ایجاد نرم افزار هیا خوب , داشتن یک صنعت می باشد . بعد از داشتن این صنعت و بستر تازه شروع به توسعه خواهیم کرد و البته مشکلات توسعه را هم تجربه خواهیم کرد ولی نه به شدت قبل .  شاید داشتن این صنعت ما را گول بزند همانند تیم رئال مادرید که بسیار برای تیم خود سرمایه گذاری کرد و بهترین بازیکنان را جذب کرد و بهترین امکانات را در اختیار آنان گذاشت ولی اصلا موفق نبودند .

در یک صنعت و برای موفقیت یک صنعت حتما نیاز به یک مدیریت منسجم و خوب می باشد . این مدیریت باید بتواند از سرمایه گذاری انجام شده به خوبی استفاده کند و منابع موجود را در جهت نیل به اهداف سازمانی مدیریت نماید . پس در یک صنعت توسعه نرم افزار با وجود یک مدیر با درایت و خوب , خواهیم توانست با داشتن منابع انسانی ,  مالی و تجهیزاتی مناسب  و با استفاده از یک پروسه توسعه نرم افزار مانند (Agile) در یک زمان معقول به اهداف خود ,  که همانا برگشت سرمایه و رسیدن به سودآوری می باشد ,  برسیم .

به امید ایجاد صنعت قدرتمند توسعه نرم افزاردر کشور

یاشیاسیز

آشفته بازار توسعه نرم افزار

ژوئیه 30, 2010 40 دیدگاه

https://sirasad.files.wordpress.com/2010/07/bad-project-management.jpg?w=212در پست قبلی در مورد معضل «مدیر پروژه شدن  برنامه نویسان» صحبت کردیم که بسیار هم جنجالی شد . شرکت کنندگان در این بحث را می توان به دو دسته کلی تقسیم کرد : 1- کسانی که با من هم نظر بودند و اعتقاد داشتند که برای یک مدیر پروژه دانش مدیریت بالاتر از دانش برنامه نویسی است 2- کسانی که اعتقاد داشتند که دانش برنامه نویسی در اولویت قرار دارد .

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

برای مثال یکی از دوستان در یکی از شرکت های آمریکا کار می کند کار این شرکت توسعه سیستم HIS است ,  این شرکت فقط 2500 نفر برنامه نویس دارد : خوب من به هیچ وجه این 2500 نفر را به دست یک برنامه نویس واگذار نمی کنم و تکنیکی که برای مدیریت HR توسط مدیریت پروژه لحاظ شده است این است که این برنامه نویس ها به تیم های 9-8 نفر تقسیم شده اند و برای هر تیم یک نفر برنامه نویس حاذق که کمی با اصول رهبری تیم آشنا است به عنوان سرپرست تیم گمارده شده است : توجه داشته باشید که این سرپرست تیم , مدیر پروژه نیست . اگر از این سرپرست حساب کنیم شاید مدیر پروژه 5 سطح بالاتر در چارت سازمانی قرار گرفته باشد .

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

https://sirasad.files.wordpress.com/2010/07/2259360231_6f60460770.jpg?w=300همانطور که خودتان هم می دانید با توجه به وضع فاجعه بار صنعت توسعه نرم افزار ما لازم است که از مدیران پروژه چند کاره (مدیر پروژه ,  برنامه نویس ,  تحلیل گر ,  طراح , DBA  , سبزی خرد کن , آبمیوه گیری و چندین عملکرد دیگر ) در این صنعت استفاده شود . علت اینکه لازم است از این عزیزان چند کاره استفاده شود , تشکیلات و سازماندهی های موجود در شرکت های توسعه نرم افزار می باشد . شرکت های توسعه نرم افزار ما ( که به جرآت می توانم بگویم که تعداد شرکت های ما از تعداد شرکت های توسعه نرم افزار در آمریکا بیشتر است ) دارای تشکیلات ناقص و نادرست می باشند .

مدل تشکیلاتی موجود در بازار ایران از دیدگاه من به شرح ذیل می باشد :

  • شرکت های یک نفره : این شرکت های یک نفره شاید 30% بازار را تشکیل داده باشند . این عزیزان کسانی هستند که معمولا پروژه هایی را از بیرون صید و در خانه ملوکانه آن را توسعه و در مکان مشتری تحویل می دهند . این شرکت که فقط یک نفر دارد ( و در بعضی اوقات دو نفر ) به دلیل پایین بودن بحث مشارکتی قابل بحث نیستند زیرا آن یک نفر چند کاره 100% است . در تقبیح این شرکت ها نمی توانم صحبتی داشته باشم زیرا دوستان Freelancer از دست ما ناراحت می شوند . و قابل ذکر است که وضع درآمدی این شرکت ها خوب نیست و به قول سهراب : تکه نانی دارم ,  خرده هوشی ,  سر سوزن ذوقی , روزگارم بد نیست … . قانع هستند دیگه .
  • شرکت های برنامه- نویسی : این شرکت ها معمولا از تعدادی دانشجو و یا فارغ التحصیل دانشگاهی تشکیل شده است که دور هم با یک سرمایه کم جمع شده اند تا تمام پروژه را صید بکنند و در کسری از ثانیه آنها را توسعه بدهند . همه دوستان در این شرکت ها در یک سطح هستند و کسی بر کسی رئیس یا مدیر نیست  . یعنی در این شرکت ها چند مدیر پروژه چند کاره داریم . به نظر من  این شرکت ها معمولا موفق نیستند و بعد از مدتی باید جمع شود و چند شرکت جدید به جای انها باز شود : بدلیل اینکه همه این دوستان ازنظر تکنیکی جلو هستند و توانایی هایی فقط در حوزه توسعه نرم افزار دارند و تقریبا به دلیل نداشتن مدیریت متمرکز محکوم به فنا هستند . این شرکت ها توانایی جذب مدیر پروژه واقعی را ندارند زیرا اولا بودجه لازم را ندارند و دوما هر کدام از دوستان برای خودش مدیر پروژه ای است . علاوه بر مدیر پروژه ,  این شرکت ها در کسب و کار هم موفق نیستند و توانایی کسب در آمد را معمولا ندارند . معمولا اعضای شرکت اول (تک نفری) با این شرکت به شرکت سوم نقل مکان می کنند تا بلکه به روزگاری خوش دست یابند .
  • https://sirasad.files.wordpress.com/2010/07/usachild3.jpg?w=472شرکت های سرمایه ای : شرکت های سرمایه ای معمولا با سرمایه اندک یک یا نفر چند شریک استارت می خورد . هدف اصلی این سرمایه گذاران , سود بیشتر با هزینه کمتر است : پس  این دوستان تمام تلاس خود را خواهند کرد تا هزینه کمتری بکنند  . این شرکت ها معمولا چند نفر تازه کار مانند دانشجویان را با حقوق خیلی کم استخدام می کنند و برای این افراد برنامه نویس حاذقی (از شرکت یک یا دو )  با حقوق متوسط و  البته با مارک مدیر پروژه استخدام می کنند تا در واقع جمع ما کامل شود . این برنامه نویس بدبخت هم باید این تازه کاران را راه بیندازد ,  هم پروژه (ها) را تحلیل و طراحی نماید,  هم باید رضایت مشتری و رضایت صاحاب (ان) شرکت رو جلب نماید ,  هم باید مدیریت بکند , هم باید برنامه نویسی بکند و … . ( عجب چند کاره ای !! آقا اینا رو از کجا گرفتید ؟ خانم من تو خونه یکی از اینها رو لازم داره ,  این رو از دانشگاه شریف گرفتیم ,  اگر می خواهید یکی هم سر راه براتون بگیرم ,  سبزی هم پاک می کنه ؟ آره بابا ,  بچه هاتون رو هم براتون نگه می داره) . واقعا در اینگونه شرکت ها PMP نمی تواند کار بکند زیرا اصلا بستر لازم آماده نیست .
  • به نظر من شرکت های سرمایه ای اصلی ترین ضربه ها را وارد بدنه صنعت توسعه نرم افزار کرده اند . اینها بدون اینکه خرج بکنند می خواهند سود برداشت بکنند : دولت باید در این حوزه وارد بشود زیرا که کل کار در اینجا در دست بخش خصوصی افتاده است و بخش خصوصی کاملا گند زده به اوضاع این صنعت . اصل 44 در هیچ جا به کاملی صنعت توسعه نرم افزار اعمال نشده است . یعنی از اول دولت این صنعت را به حال خود را رها کرده است و این صنعت خود به خود حرکت می کند . نه دولت حمایت می کند نه دولت نظارت می کند ,  نه دولت قانون گذاری می کند و همین طوری می شود که شرکت هایی مثل قارچ هر روزه متولد می شوند و هر روزه از بین می روند . (شاید هر روزه چند در چند تا شرکت باز و در چند تا شرکت تخته می شود ) .

    https://sirasad.files.wordpress.com/2010/07/asleep.jpg?w=425کسی که شرکت های نوع اول و یا دوم را تاسیس می کند مجبور است زیرا چاره  دیگری ندارد . چندین سال از بهترین عمر خود را در دانشگاه ها و یا کتاب ها و یا سایت ها صرف یادگیری بهترین و جدید ترین مطالب کرده است و امروز حق دارد که از داشن خود پول در بیارد . ولی شرکت های سرمایه ای چه ؟ دیر آمده اند و زود می خواهند بروند . این ها ضربه های کشنده ای وارد این صنعت کرده اند . هم بازار را خراب کرده اند ,  هم نیروی کار را اذیت کرده اند ,  هم آبروی این صنعت را برده اند . همه روزه چندین عنوان نرم افزار حسابداری وارد بازار می شود ,  آیا کسی به اینها نظارت دارد ؟ آیا کسی پیدا می شود که بدلیل پایین بودن کیفیت نرم افزار آن را از بازار خارج نماید؟ آیا کسی پیدا می شود که به درد دل این برنامه نویس های مشغول در این شرکت ها گوش کند ؟ آیا کسی پیدا می شود که حقوق اولیه اینها را از صاحبان شرکت طلب کند ؟

    دولت حتما باید در حوزه توسعه نرم افزار وارد بشود و قوانینی را وضع بکند . البته قوانین دست و پاگیر در زمینه احداث شرکت نه بلکه در زمینه حمایت . به نظر من دولت باید در دو زمینه قوانینی را به تصویب برساند :

  • حمایت از نیروی انسانی شرکت ها : دولت باید قوانینی را وضع بکند که مثلا هر شرکتی که تاسیس می شود باید نسب به پروژه , نیروی انسانی لازم و نه حداقل ها را استخدام بکند . مثلا باید مدیر پروژه داشته باشد (چطور برای ساختمان سازی چند تا مهندس عمران الزامی است ؟ ) باید نیاز های برنامه نویس ها تامین شود (مانند دو مو نیتور , ساعاتی کاری استاندارد , ابزار لازم و … ) . در صورتی که قوانین اجرا نشد , در آن مجموعه باید تخته شود .
  • حمایت از شرکت برای توسعه نرم افزار کارا : به جرات می توانم بگویم از نرم افزار های تولیدی تا به این روز شاید 1% کارا و به درد بخور باشد . دولت باید از شرکت های مورد بالا حمایت بکند تا بتوانند نرم افزارهایی با استانداردهای جهانی و کآرا توسعه بدهند . (حمایت مالی , ارائه تسهیلات بین المللی و … ) .

تا زمانی که دولت به صورت منسجم از این صنعت مستضعف حمایت نکند وضع به همین صورت خواهد بود : یک نفر چهار تا دانشجو را استخدام خواهد کرد و یک سری نرم افزار به درد نخور تولید خواهند شد و برنامه نویس ها از برنامه نویسی دل زده خواهد شد و بدین گونه خواهد شد که این بار برنامه نویس راننده تاکسی می شود.

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

من واقعا به نوبه خودم بسیار شرمنده هستم که در این بازار آشفته کار می کنم . بعضی از اوقات که در مورد توسعه نرم افزار خوب و یا Agile مقاله می نویسم به یاد شعر معروف می افتم :  خانه از پای بست ویران است *** خواجه درفکر نقش ایوان است  …

برای نتیجه گیری هم قابل ذکر است که حق با دوستان است :  در این بازارخودمون PMP کیلوئی چند ؟ برنامه نویس های خودمون مدیریت پروژه می کنند باقلوا .

یاشیاسیز

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

ژوئیه 26, 2010 24 دیدگاه

https://sirasad.files.wordpress.com/2010/07/cartoon_planning.gif?w=300این جریان مدیر پروژه شدن برنامه نویس ها در ایران حکایتی بس طولانی دارد که در این پست قصد مختصر بررسی در این باب را دارم . قبل از شروع بحث موردنظر  لازم می بینم  نظر خودم را در مورد لزوم مدیر پروژه در پروژه های توسعه نرم افزار عرض کنم : به نظر بنده در 90% پروژه های توسعه نرم افزار در ایران نیازی به نقشی با نام مدیر پروژه نیست زیرا این پروژه  ها دارای خصوصیات یک پروژه واقعی نیستند که نیازی به مدیریت پروژه باشد : مثلا به مدیر پروژه بودجه اختصاص داده نمی شود که او بتواند Cost Management بکند یا بتواند نیروی کار مورد نیاز را استخدام بکند و یا … . به طوری کلی مدیر پروژه ای که در اینگونه پروژه ها فعالیت می کند دارای مجوز و اختیارات لازم نیست : یعنی عملا Iron Triangle پروژه در دستان او نیست . البته علاوه بر اینکه مالکان شرکت او را محدود کرده اند ,  او وظایف یک مدیر پروژه را نیز انجام نمی دهد . برای مثال یک شرکت آگهی زده است که :

به یک مدیر پروژه نرم افزاری  حاذق نیازمندیم با شرایط ذیل :

  • توانایی کامل طرح ریزی کامل پروژه
  • توانایی مدیریت
  • توانایی برنامه نویس با زبان #C

کاملا از شرایط درخواستی معلوم است کسی که قرار است این کارها را انجام بدهد اسمش مدیر پروژه نیست (البته با توجه به تعاریف انیستیتو PMI ) . در ایران انتظار میرود که مدیر پروژه کل پروژه را طرح ریزی و طراحی کند . یعنی او عملا کار تحلیل گر و طراح را انجام می دهد  . بلی بنده قبول دارم که مدیر پروژه باید توانایی طرح ریزی داشته باشد ولی نه تحلیل و طراحی محصول  در بعد فنی و تکنیکی مثلا استخراج Class Diagram ؟ ! بلکه او در سطح مدیریت  باید طرح ریزی نماید : Road Map پروژه را مشخص کند ,  ریسک های پروژه را معلوم بکند و … .

انتظار بعدی این است توانایی مدیریت داشته باشد : خوب خیلی خوب است ولی توانایی مدیریت یعنی اینکه تقسیم وظایف برعهده او خواهد بود . مدیریت منابع انسانی (HR) تقسیم وظایف نیست . (مثلا از او انتظار میرود که وظایف برنامه نویسان را در هر ساعت مشخص کند) .

توانایی برنامه نویسی که فکر نکنم نیازی به توضیحات اضافی باشد . یعنی او همانند یک برنامه نویس در کنار زیردستان خویش باید بتواند برنامه نویسی بکند .

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

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

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

به نقل از نادر خرمی راد

http://images.travelpod.com/users/uncle_davros/the_world.1146204120.dhaka_-_019_street_dentist.jpgهم اکنون طبق گفته بالا ما مدیر پرژه نداریم بلکه سلمونی ها و یا برنامه نویس ها دارند اینکار رو برای ما انجام می دهند . منتهی تنها دلیلی که باعث می شود که یک برنامه نویس احساس مدیر پروژه بودن بکند چیزی نیست جز Halo Effect . یعنی طرف به عنوان برنامه نویس خیلی موفقه و به همین دلیل یک هاله نوری او را احاطه می کنه که می تواند به عنوان مدیر پروژه کار کند و بدین گونه می شود که برنامه نویس مدیر پروژه می شود .

اما و اما اخطار به مالکان شرکت ها : من قصد ندارم عرض بکنم که پروژه خود را به دست برنامه نویس ها ندهید ,  (بنده به عنوان برنامه نویس , مدیریت پروژه هم کرده ام ) ,  پروژه را به دست برنامه نویس های با تجربه بدهید و منتظر عواقب خوب و بد آن نیز باشید  مثلا امکان دارد عین سلمونی های قدیمی , دندون را طوری بکشد که پروژه درجا به دیار باقی بشتابد . یک مدیر پروژه واقعی می داند که در موقع شکست پروژه باید جوابگو باشد (ولی برنامه نویس چی ؟) یک مدیر پروژه می داند که باید در شرایط بحرانی چه کاری انجام دهد (برنامه نویس چی ؟) یک مدیر پروژه توانایی مدیریت منابع را دارا می باشد (یک برنامه  نویس چی ؟) و در کل کار و تخصص مدیر پروژه در حوزه مدیریت پروژه است ولی برنامه نویس در حوزه توسعه پروژه که در واقع سطح بندی متفاوتی دارند .

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

یاشیاسیز