تیم برنامه‌نویسی

از ویکی‌پدیا، دانشنامهٔ آزاد


تیم برنامه نویسی تیمی از افراد است که نرم افزارهای رایانه ای [۱] را تولید یا نگهداری می کنند. آنها ممکن است از طرق مختلفی دسته بندی شده باشند ، اما تیم برنامه نویسی فداکار و تیم با برنامه ریز اصلی دارای ساختارهای مشترکی بوده اند.[۲]

شرح

یک تیم برنامه نویسی متشکل از افرادی است که نرم افزار رایانه ای را تولید یا نگهداری می کنند . [۳]

ساختارهای تیم برنامه نویسی

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

برنامه نویسی فداکار

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

تیم با برنامه ریز اصلی

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

تیم های با ایستگاه کاری مشترک

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

یک تکنیک توسعه که در آن دو برنامه نویس با هم در یک ایستگاه کاری برای یک هدف کار می کنند.

برنامه نویسی شلوغ

یک رویکرد توسعه نرم افزار که در آن کل تیم روی یک کار ، در یک زمان ، در یک فضا و در یک کامپیوتر یکسان کار می کنند.

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

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

مدل آبشار

مدل آبشار که به عنوان رویکرد سنتی [۴] تر است ، یک مدل خطی تولید است. ترتیب رویدادهای این روش به شرح زیر است:

  1. جمع آوری و ثبت الزامات
  2. طراحی
  3. کد آزمایشی
  4. انجام تست سیستم
  5. انجام آزمون پذیرش کاربر (UAT)
  6. برطرف کردن مشکلات
  7. ارائه محصول نهایی

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

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

مدل چابک

مدل توسعه چابک یک رویکرد تیمی برای توسعه [۴]بیشتر نسبت به مدل آبشار قبلی است. تیم ها بر روی تحویل یا استقرار سریع کار می کنندکه تقسیم می شوند به فازهایی موسوم به فاز "سرعت". "سرعت" معمولاً به عنوان دو هفته برای تحویل نرم افزارهای برنامه ریزی شده برای هر تیم تعریف می شود.

بعد از هر "سرعت" ، کارها دوباره اولویت بندی می شوند و از اطلاعات آموخته شده از "سرعت" قبلی برای برنامه ریزی "سرعت" بعدی استفاده می شود. با اتمام کار "سرعت" ، می تواند توسط تیم برنامه نویسی بررسی و ارزیابی شود و برای تکرار ارسال شود (یعنی سرعت بعدی) یا در صورت تکمیل بسته شود.

اصول کلی [۵] توسعه نرم افزاری چابک [۶] به شرح زیر است:

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

همچنین ببینید

منابع

  1. Belzer, Jack (2020-02-03). "Encyclopedia of Computer Science and Technology". doi:10.1201/9780367810818.
  2. Marilyn Mantei (March 1981). "The Effect of Programming Team Structures on Programming Tasks" (PDF). Communications of the ACM. 24 (3): 106–113. Retrieved 2019-03-26.
  3. Jack Belzer, Albert George Holzman, Allen Kent, Encyclopedia of computer science and technology, 13
  4. ۴٫۰ ۴٫۱ Mary Lotz (July 5, 2018), Waterfall vs. Agile: Which is the Right Development Methodology for Your Project?
  5. Linchpin SEO Team (March 26, 2019), A Beginners Guide To The Agile Method & Scrums
  6. "Principles behind the Agile Manifesto". 2019-06-11.