يُعتبر إستخدام نظام تحكم بالمصدر Source Control من أساسيات العمل الجماعي للأنظمة البرمجية. وهو عبارة عن مُخدم توضع فيه الشفرة المصدرية للبرامج لإمكانية الوصول إليها من أكثر من شخص، كذلك فهي تتيح رفع التعديلات في ملفات البرامج والإضافات التي تحدث في مشروع برمجي ما. وبهذه الطريقة نستطيع أن نجعل أكثر من مطور يعمل على نفس البرنامج، بحيث يستطيع كل فرد من المجموعة الحصول على النسخة الأخيرة من الكود المصدري والتعديل عليه بدون حدوث تضارب في النُسخ.
من فوائد نظام التحكم بالمصدر:
1. وضع الملفات المصدرية للمشروع في مكان واحد، وسهولة الوصول إليها
2. إمكانية الإحتفاظ بعدد من النسخ والتفرعات، ويمكن الرجوع إلى نُسخة قديمة
3. سهولة عمل النَسخ الإحتياطي لكافة البرامج التي يعمل عليها المبرمجون في مؤسسة ما
4. إمكانية إشتراك عدد من المطورين في تطوير برنامج بدون أن يكونوا في نفس المكان الجغرافي، حيث يمكن تثبيت نظام التحكم بالمصدر في مخدمات الإنترنت
5. تسهيل متابعة التغييرات ومراجعة الكود من قِبل المشرفين أو مدراء المشاريع
مثال لمُخدم للتحكم بالمصادر: Subversion وهو مجاني من شركة أباتشي
تعتبر أنظمة التحكم فى الشفرات المصدرية من أهم البرمجييات المساعدة فى عمليات الإنتاج البرمجى الضخم، حيث أنها تتيح للمبرمج المستخدم لها أماناً أعلى و قدرة أكبر على تجريب الأفكار الجديدة و ربما الطائشة كذلك: نظراً لوجود الحل السحرى الذى يمكنه من الرجوع عن القرارات الحمقاء التى اتخذها خطأً أو تجريباً…
و من أهم الأمثلة عليها:
1. CVS
2. SVN
3. git
4. mercurial
5. bitkeeper
6. perforce
و أنا عن نفسى نظراً لأننى لا أعمل فى مجموعة بل أعمل معظم الوقت منفرداً فإننى لا أحتاج لهذه النوعية من البرمجيات الإدارية فى أغلب الوقت و إن كنت فى بعض الأحيان أحس ببعض الحاجة إليها و ذلك حينما أريد تجريب بعض الأفكار التى قد تتسبب فى انهيار ترابط الشفرات البرمجية، و نظراً لقلة حاجتى إليها فإننى لا أعلم عنها الكثير، اللهم إلا القليل عن نظام git الذى سمعت لمحاضرة ألقاها واضع أساسه: لينوس تورفالدز على اليوتيوب Tech Talk: Linus Torvalds on git
و قد اقتنعت بكلامه عن نظامه بحيث أننى إذا ما قررت بعد ذلك استخدام أى من تلك الأنظمة فستكون محطة التجربة الأولى هى محطة git.
حتى بالنسبة للمبرمج الذي يعمل فردياً، فيمكنه الإستفادة من بعض الميزات، مثل الرجوع لنسخة معينة وعمل تفرعات في النُسخ. وهو يُكسبه خبرة في إستخدام هذا النظام ويهيئه للعمل الجماعي.