Takım programlama - Team programming

Gelen yazılım mühendisliği , takım programlama bir olan proje yönetimi görev dağılımını koordine etmek için strateji bilgisayar programı geliştirme iki veya daha fazla atama gerektirir projeler bilgisayar programcıları daha büyük bir programlama projesi içinde ayrı bir alt görev üzerinde ortak çalışma gerçekleştirmeleri. Genel olarak, bu terimin bugün kullanılma biçimi, yazılım geliştirme endüstrisinde halihazırda revaçta olan ve birden çok kişinin aynı etkinlik üzerinde eşzamanlı olarak çalıştığı yöntemleri ifade eder; bu sistemlerde, programcılar genellikle aynı bilgisayar iş istasyonunda çiftler halinde gruplanır , biri yazılım üzerinde çalışan diğerini ve zaman aralıklarında değişen rolleri gözlemler.

Geleneksel ekip yönetimi yöntemleri

Geleneksel yazılım geliştirme, neredeyse her zaman , önemli kapsam ve ölçekte herhangi bir proje için bir bilgisayar sisteminin ayrı parçaları üzerinde çalışan birden çok programcıyı içermiştir - bir iş bölümü yöntemi . Açıktır ki, tek bir programcının uygulanabilir bir zaman ölçeği içinde tamamen kendi başına çalışan karmaşık bir sistem için gerekli tüm işi yeterince tamamlayabileceğini hayal etmek mantıksızdır; ve geliştirme projeleri daha karmaşık hale geldikçe, sistem analizi , kalite güvencesi ve ayrı bileşenlerin ortaya çıkardığı teknik zorluklar gibi konularda uzmanlaşmış uzmanlık büyük önem kazanmaktadır . Başlangıçta bu gayri resmi bir süreç olma eğilimindeydi, ancak ticari yazılım geliştirmenin uygulanabilir bir endüstri olarak yükselmesiyle birlikte, daha endüstriyel ve sistematik bir yaklaşım gerekli hale geldi.

Yapılandırılmış Sistem Analizi ve Tasarım Yöntemi (SSADM) gibi aslen devlet projelerini üstlenmek için tasarlanmış kağıt odaklı sistem metodolojileri, bireysel görevleri yerine getirmeleri için bireysel kişileri görevlendirdi ve tasarımcıların rolünü programcılarınkinden açıkça ayrı olarak belirledi. şelale yazılım geliştirme modeli . Bu metodoloji ayrıca, bir sistem geliştirme projesinin ilerlediği bireysel "yaşam döngüsü" aşamalarının her birini açıkça ayırdı. Bir sistem geliştirme projesi için sonuçta ortaya çıkan "kağıt izinin" oluşturulması o kadar uzun sürebilirdi ki, çoğu zaman analiz belgelerinin bazı bölümlerinin - veya bazen bütününün - gerçek geliştirme sırasında güncelliğini yitirdi ve bu da onları yararsızdan daha kötü hale getirdi.

Modern trendler: tek bir alt görev için birden fazla programcı

Bu eski yöntemlerde, sistemler büyüdükçe kontrolden çıkan maliyetler ve pazara sürüm hedeflerini karşılayamayan programlar gibi zorluklar yaşandı. Bu sorunlar , Boehm spirali gibi yeni sistem yaşam döngüsü yapılarının yanı sıra eşli programlama , grup programlama (diğer adıyla topluluk programlama ) gibi tekniklerin ortaya çıkmasına neden oldu . Bu yeni yaklaşımların özellikleri 1980'lerin ortalarında başladı ve bugün de devam ediyor. Bu stratejilerin çoğu , tek tek görevlerden bireysel olarak sorumlu olmak yerine , aynı kaynak kodu parçası üzerinde işbirliği içinde çalışan birden çok programcıyı içerir . Örneğin, "çift programlamada", ortaya çıkan ürünün sorumluluğu, atanmış alt görevleri üzerinde birlikte çalışan iki programcı arasında eşit olarak paylaşılır. Bu yaklaşımın faydaları arasında, belirli alanlardaki bilgi ve becerideki eksikliklerin diğer programcı tarafından telafi edilebilmesi; Ek olarak, paylaşılan sorumluluğun proje teslim tarihlerini ve kalite hedeflerini karşılama teşviklerini artıracağı düşünülmektedir.

Bu teknik , genellikle Unified Modeling Language (UML) gibi tasarım dokümantasyon yöntemleriyle birlikte Rational Unified Process ve Extreme Programming (kısaltma "XP") gibi nesne yönelimli programlama tekniklerine odaklanan yeni programlama yöntemlerinde sıklıkla kullanılır. ). Nesneye yönelik programlama dillerinde, yazılım işlevselliği modüler, ayrı birimler oluşturur ( işlevsel öğeler için sınıflar olarak adlandırılır ve belirli bir işlevi gerçekleştiren birbirine bağlı sınıfların takımyıldızları için paketler ); bunlardan en bilinen ikisi C ++ ve Java'dır . Bu, her bir alt görevin tamamlanmasının ardından ortaya çıkan ürünün entegre edilmesinde hala sık sık sorunlarla karşılaşılmasına rağmen, programlama projelerinin alt ekiplere bölünmesine yardımcı olur.

Referanslar