Kamu bisa jelasin ke aku soal Team software process?

Team Software Process (TSP) adalah kerangka kerja proses pengembangan perangkat lunak yang berkombinasi dengan Personal Software Process (PSP) untuk membantu tim manajer dan praktisi mengatur proyek dan menghasilkan perangkat lunak yang berkisar dalam ukuran dari proyek kecil dari several thousand lines of code (KLOC) sampai proyek yang sangat besar lebih dari setengah juta baris kode. TSP dimaksudkan untuk meningkatkan tingkat kualitas dan produktivitas proyek pengembangan perangkat lunak tim, untuk membantu mereka memenuhi biaya dan menjadwalkan komitmen untuk mengembangkan sistem perangkat lunak dengan lebih baik.Kindler, Nosh B; Krishnakanthan, Vasantha; Tinaikar, Ranjit. Applying Lean to Application Development. McKinsey Quarterly, May 2007

Tujuan TSP adalah untuk membangun tim proyek "mandiri" yang mengatur sendiri untuk menghasilkan perangkat lunak berkualitas tinggi. Humphrey mendefinisikan tujuan TSP berikut:

Membangun tim mandiri yang merencanakan dan melacak pekerjaan mereka, menetapkan tujuan, dan memiliki proses dan rencana mereka sendiri. Ini bisa berupa tim perangkat lunak murni atau tim produk terintegrasi (Integrated Product Teams) dari 3 hingga sekitar 20 praktisi.

Menunjukkan kepada manajer bagaimana melatih dan memotivasi tim mereka dan bagaimana membantu mereka mempertahankan kinerja puncak.

Mempercepat peningkatan proses perangkat lunak dengan membuat perilaku Level 5 CMM menjadi normal dan diharapkan.

Memberikan panduan peningkatan untuk organisasi dengan kematangan tinggi.

Memfasilitasi pengajaran universitas tentang keterampilan tim kelas industri.

Tim yang diarahkan sendiri memiliki pemahaman yang konsisten tentang tujuan dan sasaran keseluruhannya; mendefinisikan peran dan tanggung jawab untuk setiap anggota tim; melacak data proyek kuantitatif (tentang produktivitas dan kualitas); mengidentifikasi proses tim yang sesuai untuk proyek dan strategi untuk mengimplementasikan proses; mendefinisikan standar lokal yang berlaku untuk pekerjaan rekayasa perangkat lunak tim; terus-menerus menilai risiko dan bereaksi terhadapnya; dan melacak, mengelola, dan melaporkan status proyek.