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