مدیران پروژه نقش به سزایی در موفقیت یک تیم و یک شرکت نرم افزاری دارند و علاوه بر آن حتی اگر در فضای رقابتی امروز بعنوان یک برنامه نویس بصورت فریلنس نیز کار کنید نیاز مند یادگیری تکنیک های مدیریت پروژه هستید. در حال حاضر در دنیا آزمون هایی برای دریافت گواهینامه PMP یا Project management proffessional برگزار میشود که در این بسته آموزشی قصد داریم به آن بپردازیم.

اولین گام مدیریت پروژه های نرم افزاری: تحلیل و طراحی سیستم ها

بطور کلی مدیریت پروژه های نرم افزاری در ۵ فاز زیر خلاصه میشوند به اختصار (ADDEI) که این آموزش برپایه ی آن تدوین خواهد شد.

  • Analyze: تحلیل و آنالیز پروژه
  • Design: طراحی محصول
  • Development: توسعه پروژه
  • Implementation: پیاده سازی و اجرا
  • Evaluate: تست پروژه

در این بسته به طور کلی مطالب زیر خواهیم پرداخت

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

  • مدیر پروژه کیست و چه چیزهایی برای تبدیل شدن به یک مدیر پروژه نیاز داریم؟
  • چرخه عمر یا Life cycle مدیریت پروژه
  • مدیریت پروژه های نرم افزاری به روش سنتی
  • مدیریت پروژه های نرم افزاری سنتی در مقابل متدلوژی های جدید (Agile و ….)
  • ساختار سازمانی
  • چالش های سازمان نرم افزاری
  • سناسایی اهداف پروژه و چشم انداز یا Vision سازمان
  • انتخاب استراتژی
  • شناسایی چالش ها و مدیریت ریسک

مدیریت زمانبندی و منابع یا Resource ها

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

تحلیل و طراحی پروژه

  • متدلوژی های آبشاری (Waterfall) و RUP و Spiral یا حلزونی و …
  • Software requirements لیست نیازمندی های سیستم
  • UML Diagram
  • Use Case modeling
  • معماری های نرم افزار
  • ماژولاریتی
  • معماری لایه ای
  • اصول SOLID و الگوهای طراحی

مدیریت پروژه به روش Agile و چارچوب Scrum

  • مدریت پروژه Agile چیست؟
  • چرخه عمر مدیریت پروژه Agile
  • و…

کار با تیم ها

  • مدیریت منابع تیم
  • درک پویایی تیم
  • نحوه مدیریت تیم های فنی
  • ابزارهای ارتباط بین اعضای تیم
  • مدیریت تسک ها بین اعضای تیم با نرم افزار های Task management مشابه Trello و …
  • و …

اعضای تیم برنامه نویسی وظایف و ویژگی های آنها

  • برنامه نویسی و برنامه نویس ارشد
  • ux کار
  • UI کار
  • front end کار
  • تحلیلگر
  • مدیر پروژه
  • مدیر محصول
  • تستر
  • مسئول امور حقوقی و قرارداد ها
  • مسئول امور مالی

ویژگی های شخصیتی اعضای تیم برنامه نویسی، اسخدام برنامه نویس

  • تست های شخصیت شناسی MBTI , DISK
  • ویژگی های شخصیتی برنامه نویس خارج از محیط کد نویسی
  • شرایط محیط کار برنامه نویس
  • ابزار های ویژه مورد نیار برنامه نویسان

ابزارهای کنترل ورژن کد های پروژه

  • معرفی کامل Source controll ها و ایده اساسی آنها
  • معرفی Git
  • نحوه کار با وبسرویسهایی نظیر Github و GitLab
  • و …

اهمیت داکیومنت سازی و نحوه ایجاد صحیح متندات

  • مستندات  مشتری به مدیر پروژه
  • مستندات حقوقی قرارداد، پیوست قراردا
  • مستندات تحلیلگر برای برنامه نویسان
  • مستندات کد برنامه نویسان
  • مستندات پروژه برای مشتری

 

گانت چارت، تقویم تولید محصول

  • CALENDAR

نظارت و کنترل پیشرفت و عملکرد

  • نحوه جمع آوری داده
  • نحوه مدیریت تغییر پروژه
  • نحوه مدیریت مقیاس پروژه
  • نظارت و کنترل ریسکها
  • تحلیل درآمد
  • ارزیابی پیشرفت
  • و …

تست نرم افزار Software Testing

  • بررسی Unit testing یا تست واحد
  • Test Driven Developmentیا TDD  و چرخه حیات آن چیست؟
  • Test Design و Test Case ها
  • استراتژی های تست نرم افزار
  • تست نرم افزار بصورت خودکار
  • ابزار های تست نرم افزار مشابه Selenium ، Test Complete و …

فرآیند های حقوقی و قرار داد با مشتری

  • نحوه مستند سازی پروژه
  • دریافت تاییدیه از مشتری
  • تنظیم قرار داد با مشتری
  • قرارداد پشتیبانی نرم افزار
  • امور مربوط به بیمه قرارداد ها
  • مالیات و ارزش افزوده قرارداد ها
  • و …

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

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

نکات کلیدی 

  • نحوه قیمت گذاری نرم افزار
  • نحوه تعیین مدت زمان پروژه
  • نکات کلیدی بند های قرارداد