Tiga kalimat ringkasan dokumen tersebut adalah:
Buku ajar ini membahas konsep manajemen proyek perangkat lunak yang efektif dengan fokus pada tiga aspek utama yaitu manusia, masalah, dan proses. Dibahas pula struktur organisasi tim yang tepat sesuai karakteristik proyek untuk mencapai tujuan proyek.
1. Buku Ajar Rekayasa Perangkat Lunak
BAB 2
Konsep Manajemen Proyek.
Kompetensi Dasar :
Mahasiswa memahami dan mampu menjelaskan konsep-konsep
manajemen proyek yang efektif berfokus pada 3 P (People, Problem,
Process).
1. Spektrum manajemen.
Manajemen proyek perangkat lunak yang efektif berfokus
pada 3P yaitu : people, problem dan process. Urutannya tidak
dapat dirubah. Manajer yang lupa bahwa kerja rekayasa
perangkat lunak merupakan usaha manusia yang intens, tidak
akan pernah meraih sukses dalam manajemen proyek.
Seorang manajer yang gagal melakukan komunikasi
pelanggan yang komprehensif di awal evolusi sebuah proyek,
berisiko membangun pemecahan yang elegan untuk
masalah-masalah yang salah.
Faktor manusia sangat penting sehingga Software Engineering
Institute telah mengembangkan sebuah model kematangan
kemampuan manajemen manusia untuk mempertinggi
kesiapan organisasi perangkat lunak untuk mengerjakan
aplikasi yang semakin kompleks dengan membantu menarik,
menumbuhkan, memotivasi, menyebarkan dan memelihara
bakat yang dibutuhkan untuk mengembangkan kemampuan
perkembangan perangkat lunak mereka.
Model kematangan manajemen manusia membatasi area
praktik berikut kunci bagi masyarakat perangkat lunak :
Rekruitmen.
Seleksi.
Manajemen unjuk kerja.
Pelatihan.
Kompensasi.
Perkembangan karir.
Desain kerja dan organisasi.
Pelatihan tim / kultur.
11
2. Buku Ajar Rekayasa Perangkat Lunak
Organisasi yang mencapai tingkat kematangan yang tinggi di
dalam area manajemen manusia memiliki kemiripan yang
lebih tinggi dari implementasi praktik rekayasa perangkat
lunak yang efektif.
Sebelum proyek direncanakan, objektifitas dan ruang
lingkupnya harus ditetapkan, pemecahan alternatifnya harus
dipertimbangkan, teknik dan batasannya juga harus
didefinisikan. Tanpa informasi ini tidak mungkin melakukan
estimasi biaya yang dapat dipertanggungjawabkan,
penilaian yang efektif terhadap resiko, memerinci tugas-tugas
proyek, atau jadwal proyek yang dapat dikelola yang
memberikan indikasi kemajuan yang berarti.
Pengembang dan pemakai perangkat lunak harus bertemu
untuk menentukan tujuan dan ruang lingkup proyek. Di dalam
banyak kasus, aktivitas ini dimulai sebagai bagian dari proses
rekayasa sistem dan berlanjut sebagai langkah pertama
dalam analisis kebutuhan perangkat lunak. Tujuan
mengidentifikasi seluruh proyek tanpa mempertimbangkan
bagaimana tujuan-tujuan tersebut akan dicapai. Ruang
lingkup mengidentifikasi data-data, fungsi-fungsi dan perilaku
yang menandai dan yang lebih penting lagi harus mengikat
karakteristik-karakteristik tersebut secara kuantitatif.
Sekalipun tujuan dan ruang lingkup proyek dipahami,
pemecahan alternatifnya dapat dipertimbangkan. Meskipun
hanya sedikit saja yang didiskusikan, alternatif tersebut
manajer dan pelaksana memilih sebuah pendekatan terbaik,
menentukan penghalang yang disebabkan oleh batas waktu
penyampaian, ketentuan anggaran, ketersediaan personil
dan banyak lagi faktor yang lain.
Proses perangkat lunak memberikan suatu kerangka kerja di
mana rencana komprehensif bagi pengembangan
perangkat lunak dapat dibangun. Sejumlah kecil aktivitas
kerangka kerja dapat diaplikasikan pada semua proyek
perangkat lunak, tanpa memperdulikan ukuran dan
kompleksitasnya. Sejumlah kumpulan tugas yang berbeda –
tugas-tugas, milestone, kemampuan penyampaian dan
jaminan kualitas – memungkinkan aktivitas kerangka kerja
disesuaikan dengan karakteristik proyek perangkat lunak serta
kebutuhan tim proyek. Akhirnya, aktivitas pelindung – seperti
jaminan kualitas perangkat lunak, manajemen konfigurasi
perangkat lunak dan pengukurannya – melapisi model proses
12
3. Buku Ajar Rekayasa Perangkat Lunak
yang ada. Aktivitas pelindung tidak tergantung pada satu
aktivitas kerangka kerja dan ada pada keseluruhan proses.
2. Manusia.
Proses perangkat lunak diisi oleh para pemain yang dapat
dikategorikan ke dalam salah satu dalam 5 konstituen sebagai
berikut :
Manajer senior, yang menentukan isu-isu bisnis yang sering
memiliki pengaruh penting dalam proyek.
Manajer teknik, yang harus merencanakan, memotivasi,
mengorganisir dan mengontrol sebuah produk atau
aplikasi.
Pelaksana, yang menyampaikan keterampilan teknik
yang diperlukan untuk merekayasa sebuah poduk atau
aplikasi.
Pelanggan, yang menentukan jenis kebutuhan bagi
perangkat lunak yang akan direkayasa.
Pemakai akhir, yang berinteraksi dengan perangkat lunak
bila perangkat lunak telah dikeluarkan untuk digunakan.
Kriteria seorang pemimpin proyek perangkat lunak :
Motivasi. Kemampuan untuk memberi dorongan orang
teknik untuk menghasilkan sesuatu dengan kemampuan
terbaiknya.
Organisasi. Kemampuan untuk membentuk proses yang
sedang berlangsung yang memungkinkan konsep dasar
diterjemahkan ke dalam suatu hasil akhir.
Gagasan dan inovasi. Kemampuan untuk mendorong
manusia untuk menciptakan dan bertindak kreatif
meskipun mereka bekerja di dalam suatu ikatan yang
dibangun untuk suatu produk atau aplikasi perangkat
lunak yang spesifik.
Pemimpin proyek yang berhasil akan menerapkan gaya
manajemen pemecahan masalah, yaitu bahwa seorang
manajer proyek perangkat lunak harus mengkonsentrasikan
diri pada pemahaman masalah yang akan dipecahkan,
mengatur aliran gagasan dan pada saat yang sama
membiarkan setiap orang di dalam timnya mengetahui
penilaian kualitas dan bahwa hal tersebut tidak dapat
dikompromi.
13
4. Buku Ajar Rekayasa Perangkat Lunak
Empat kata kunci tentang karakteristik seorang manajer
proyek :
Pemecahan masalah. Seorang manajer proyek yang
efektif dapat mendiagnosis isu-isu organisasi dan teknis
yang paling relevan, yang secara sistematis membentuk
sebuah pemecahan atau dengan tepat memotivasi para
pelaksana yang lain untuk membuat pemecahan,
menerapkan hasil pengalaman dari proyek sebelumnya
ke situasi yang baru, dan tetap fleksibel untuk mengubah
arah jika pendekatan pemecahan masalah semula tidak
berhasil.
Identitas manajerial. Seorang manajer proyek harus
bersentuhan langsung dengan proyeknya. Selain itu juga
harus memiliki rasa percaya diri untuk melakukan kontrol
bila perlu dan membolehkan orang-orang teknik yang
baik untuk mengikuti insting mereka.
Prestasi. Untuk mengoptimasi produktifitas sebuah tim
proyek, seorang manajer harus memiliki inisiatif dan
prestasi, serta dengan caranya sendiri memperlihatkan
bahwa pengambilan risiko yang terkontrol tidak akan
dikenai hukuman.
Pengaruh dan pembentukan tim. Seorang manajer
proyek yang efektif harus mampu membaca manusia,
yaitu harus mampu memahami sinyal verbal dan
nonverbal serta bereaksi terhadap kebutuhan-kebutuhan
orang-orang yang mengirimkan sinyal tersebut. Manajer
harus dapat menguasai diri meskipun berada pada situasi
tekanan yang sangat tinggi.
Struktur tim terbaik tergantung pada gaya manajemen
sebuah organisasi, jumlah orang yang akan ada dalam tim
tersebut, tingkat keterampilannya dan kesulitan masalah
secara keseluruhan. Ada 3 organisasi tim yang umum, yaitu :
Demokratis terdesentralisasi (DD). Tim perekayasa
perangkat lunak ini tidak memiliki pemimpin yang
permanen. Tetapi koordinator dipilih untuk bertugas di
dalam durasi waktu yang pendek, yang kemudian diganti
oleh yang lain yang mungkin bertugas untuk
mengkoordinasi tugas-tugas yang berbeda. Keputusan
terhadap masalah dan pendekatan yang dilakukan
14
5. Buku Ajar Rekayasa Perangkat Lunak
dibuat oleh konsensus kelompok. Komunikasi diantara
anggota tim bersifat horisontal.
Terkontrol terdesentarlisasi (CD). Tim rekayasa perangkat
lunak memiliki pemimpin tertentu yang mengkoordinasi
tugas-tugas khusus serta memiliki pemimpin-pemimpin
sekunder yang bertanggung jawab atas masalah sub-sub
tugas. Pemecahan masalah merupakan aktivitas dari
kelompok, tetapi implementasi dari pemecahan masalah
dipecah di antara sub-sub kelompok oleh pimpinan tim.
Komunikasi antar kelompok dan orang bersifat horisontal,
tetapi komunikasi vertikal sepanjang hirarki kontrol juga
terjadi di sini.
Terkontrol tersentralisasi (CC). Koordinasi pemecahan
masalah tingkat puncak dan internal tim diatur oleh
pimpinan tim. Komunikasi antara pimpinan dan anggota
tim bersifat vertikal.
Ada 7 faktor proyek yang harus dipertimbangkan pada saat
merencanakan struktur tim rekayasa perangkat lunak :
Kesulitan masalah yang akan dipecahkan.
Ukuran program-program resultan pada baris kode atau
titik fungsi.
Waktu tim akan tinggal bersama (umur tim).
Tingkat di mana masalah dapat dimodularisasi.
Kualitas yang diperlukan serta keandalan sistem yang
dibangun.
Kepastian tanggal penyampaian.
Tingkat sosiabilitas (komunikasi) yang dibutuhkan untuk
proyek tersebut.
Tabel berikut merangkum pengaruh karakteristik proyek
terhadap organisasi tim. Karena struktur tersentralisasi dapat
menyelesaikan tugas dengan lebih cepat, struktur tersebut
paling banyak digunakan pada penanganan masalah-
masalah yang sederhana. Tim terdesentralisasi memberikan
solusi yang lebih banyak dan lebih baik daripada individual
sehingga tim semacam itu memiliki kemungkinan keberhasilan
lebih banyak pada saat bekerja pada masalah yang sulit.
Karena tim CD tersentralisasi untuk penyelesaian masalah,
baik struktur CD maupun CC dapat diterapkan dengan baik
pada maslaah-masalah yang sederhana. Struktur DD
merupakan yang terbaik untuk masalah-masalah yang sulit.
15
6. Buku Ajar Rekayasa Perangkat Lunak
Karena unjuk kerja dari sebuah tim berbanding terbalik
dengan jumlah komunikasi yang harus dilakukan, proyek-
proyek yang sangat besar paling baik bila diserahkan kepada
tim dengan struktur CC atau CD bila kelompok-kelompok sub
dapat diakomodasi dengan baik.
Panjang waktu tim tingal bersama mempengaruhi moral tim.
Telah dibuktikan bahwa struktur tim DD menghasilkan
kepuasan kerja dan moral yang tinggi seingga baik untuk tim
dengan jangka waktu hidup yang lama.
Struktur tim DD paling baik diaplikasikan pada masalah-
masalah dengan modularitas relatif rendah karena di sini
dibutuhkan volume komunikasi yang lebih tinggi. Bila
modularitas tinggi dimungkinkan, struktur CC dan CD akan
bekerja dengan baik.
Tim CC dan CD terbukti menghasilkan cacat yang lebih sedikit
dibanding struktur DD, tetapi berhubungan erat dengan
aktivitas jaminan kualitas khusus yang diaplikasikan oleh tim
tersebut. Tim yang terdesentralisasi biasanya membutuhkan
16
7. Buku Ajar Rekayasa Perangkat Lunak
lebih banyak waktu untuk menyelesaikan sebuah proyek
daripada struktur yang tersentralisasi, dan pada saat yang
sama merupakan pilihan yang terbaik bila sosiabilitas yang
tinggi diperlukan.
4 paradigma organisasional bagi tim rekayasa perangkat
lunak :
Paradigma tertutup membentuk sebuah tim di sepanjang
hirarki otoritas tradisional. Tim semacam ini dapat bekerja
dengan baik pada saat memproduksi perangkat lunak
yang sangat mirip dengan apa yang dilakukan
sebelumnya, tetapi tim kurang inovatif ketika bekerja
dalam paradigma tertutup.
Paradigma random membentuk sebuah tim secara
longgar dan tergantung pada inisiatif individual anggota
tim. Pada saat terobosan inovasi atau teknologi
dibutuhkan, tim yang mengikuti paradigma random akan
unggul. Tetapi tim semacam ini dapat berjuang keras bila
unjuk kerja yang teratur diperlukan.
Paradigma terbuka cenderung membentuk tim dengan
cara tertentu sehingga tercapai banyak kontrol yang
berhubungan dengan paradigma tertutup, tetapi
sekaligus juga banyak inovasi pada saat menggunakan
paradigma random. Kerja dilakukan secara kolaboratif
dengan komunikasi penuh serta konsensus yang
didasarkan pada pengambilan keputusan. Struktur tim
paradigma terbuka sesuai bagi pemecahan masalah-
masalah yang kompleks, tetapi tidak akan bekerja
seefisien tim yang lain.
Paradigma sinkron bertumpu pada penggolongan alami
dari suatu masalah serta mengorganisasi anggota tim
untuk bekerja pada bagian-bagian kecil masalah dengan
komunikasi aktif di antara mereka sendiri.
Sekumpulan teknik koordinasi proyek yang dikategorikan
dalam kelompok berikut :
Pendekatan impersonal, formal. Mencakup penyampaian
dan dokumen rekayasa perangkat lunak, memo-memo
teknis, kejadian penting pada proyek, jadwal dan peranti
kontrol proyek, kebutuhan akan perubahan dan
dokumentasi yang berhubungan, laporan pelacakan
kesalahan dan data cadangan.
17
8. Buku Ajar Rekayasa Perangkat Lunak
Prosedur interpersonal, formal. Berfokus pada aktivitas
jaminan kualitas yang diterapkan pada produk kerja
rekayasa perangkat lunak. Hal ini menyangkut pertemuan
status pengkajian serta perancangan dan inspeksi kode.
Prosedur interpersonal, informal. Menyangkut pertemuan
kelompok untuk penyebaran informasi dan pemecahan
masalah serta kolokasi kebutuhan dan pengembangan
staf.
Komunikasi elektronik. Mencakup surat elektronik, papan
buletin elektronik, web site, serta sistem konferensi berbasis
video.
Jaringan interpersonal. Diskusi informal dengan orang-
orang di luar proyek yang mungkin memiliki pengalaman
atau pengetahuan yang dalam yang dapat mendukung
anggota tim.
3. Masalah.
Aktivitas manajemen proyek perangkat lunak yang pertama
adalah menentukan ruang lingkup perangkat lunak. Ruang
lingkup dibatasi oleh :
Konteks.
Tujuan informasi.
Fungsi dan unjuk kerja.
Dekomposisi masalah, sering juga disebut partitioning,
merupakan sebuah aktifitas yang mendudukkan inti dari
analisis kebutuhan perangkat lunak. Dekomposisi diterapkan
pada 2 area utama yaitu :
Fungsionalitas yang harus disampaikan.
Proses yang akan dipakai untuk menyampaikannya.
Fase-fase generik yang menandai proses perangkat lunak –
definisi, pengembangan dan pemeliharaan – dapat
diaplikasikan pada semua perangkat lunak. Masalahnya
adalah bagaimana memilih model proses yang sesuai bagi
perangkat lunak yang akan direkayasa oleh sebuah tim
proyek.
Manajer proyek harus memutuskan model proses yang mana
yang paling sesuai untuk proyek tertentu, yang kemudian
menentukan sebuah rencana utama yang didasarkan pada
sejumlah aktivitas kerangka kerja proses yang umum. Sekali
rencana pendahuluan dibangun, dekomposisi proses dimulai,
18
9. Buku Ajar Rekayasa Perangkat Lunak
yaitu rencana sepenuhnya merefleksikan tugas kerja yang
dibutuhkan untuk mengisi aktivitas kerangka kerja yang harus
dibuat.
Perencanaan proyek dimulai dengan menggabungkan
masalah dan proses. Setiap fungsi yang akan direkayasa oleh
tim perangkat lunak harus melampaui sejumlah aktivitas
kerangka kerja yang sudah ditentukan bagi sebuah organisasi
perangkat lunak. Berikut ini serangkaian kerja yang ditentu-
kan :
Komunikasi pelanggan – tugas-tugas yang diperlukan
untuk membangun komunikasi yang efektif di antara
pengembang dan pelanggan.
Perencanaan – tugas-tugas yang diperlukan untuk
menentukan sumber-sumber daya, ketepatan waktu dan
informasi proyek yang lain.
Analisis risiko – tugas-tugas yang diperlukan untuk
memperkirakan risiko-risiko manajemen dan teknis.
Rekayasa – tugas-tugas yang diperlukan untuk
membangun satu perwakilan aplikasi atau lebih.
Konstruksi dan rilis – tugas-tugas yang diperlukan untuk
membangun, menguji, memasang dan memberikan
dukungan kepada pemakai.
Evaluasi pelanggan – tugas-tugas yang diperlukan untuk
memperoleh umpan balik dari pelanggan dengan
didasarkan pada evaluasi representasi perangkat lunak
yang diciptakan selama masa rekayasa serta
diimplementasi selama masa instalasi.
4. Proses.
Proses perangkat lunak adalah serangkaian kegiatan dan
hasil-hasil relevannya yang menghasilkan perangkat lunak.
Kegiatan-kegiatan ini sebagian besar dilakukan oleh
perekayasa perangkat lunak. Ada empat kegiatan proses
dasar yang umum bagi seluruh kegiatan proses perangkat
lunak. Kegitan-kegiatan ini adalah :
1. Spesifikasi perangkat lunak. Fungsionalitas perangkat
lunak dan batasan kemampuan operasinya harus
didefinisikan.
2. Pengembangan perangkat lunak. Perangkat lunak yang
memenuhi spesifikasi tersebut harus diproduksi.
19
10. Buku Ajar Rekayasa Perangkat Lunak
3. Validasi perangkat lunak. Perangkat lunak harus divalidasi
untuk menjamin bahwa perangkat lunak melakukan apa
yang diinginkan oleh pelanggan.
4. Evolusi perangkat lunak. Perangkat lunak harus
berkembang untuk memenuhi kebutuhan pelanggan
yang berubah-ubah.
Proses perangkat lunak yang berbeda mengatur kegiatan ini
dengan cara yang berbeda dan dijelaskan dengan tingkat
kerincian yang berbeda pula. Waktu kegiatan bervariasi,
sebagaimana hasilnya. Pengaturan yang berbeda dapat
menggunakan proses yang berbeda untuk menghasilkan
produk dengan jenis yang sama. Namun demikian, untuk
beberapa jenis aplikasi tertentu, beberapa proses lebih sesuai
dari yang lainnya. Jika digunakan proses yang tidak sesuai,
maka kualitas kegunaan produk perangkat lunak yang akan
dikembangkan tersebut mungkin akan berkurang.
Model proses perangkat lunak merupakan deskripsi yang
disederhanakan dari proses perangkat lunak yang
dipresentasikan dengan sudut pandang tertentu. Model,
sesuai sifatnya, merupakan penyederhanaan, sehingga
model proses perangkat lunak merupakan abstraksi dari
proses sebenarnya yang dideskripsikan. Model proses bisa
mencakup kegiatan yang merupakan bagian dari proses
perangkat lunak, produk perangkat lunak, dan peran orang
yang terlibat pada rekayasa perangkat lunak. Beberapa
contoh jenis model proses perangkat lunak yang dapat
dihasilkan diantaranya :
1. Model aliran kerja (workflow). Model ini menunjukkan
urutan kegiatan pada proses bersama dengan input,
output, dan ketergantungannya. Kegiatan pada model
ini merepresentasikan pekerjaan manusia.
2. Model aliran data (data flow) atau kegiatan. Model ini
merepresentasikan proses sebagai satu set kegiatan yang
masing-masing melakukan transformasi data. Model ini
menunjukkan bagaimana input ke proses, ditransformasi
menjadi output. Kegiatan di sini mungkin berada pada
tingkat yang lebih rendah daripada kegiatan pada
model aliran kerja. Model ini merepresentasikan
transformasi yang dilakukan oleh orang atau komputer.
20
11. Buku Ajar Rekayasa Perangkat Lunak
3. Model peran / aksi. Model ini merepresentasikan peran
orang yang terlibat pada proses perangkat lunak dan
kegiatan yang menjadi tanggung jawab mereka.
Ada sejumlah model atau paradigma umum pada
pengembangan perangkat lunak :
1. Pendekatan air terjun (waterfall). Cara ini memakai
kegiatan-kegiatan di atas dan merepresentasikannya
sebagai fase proses yang berbeda seperti spesifikasi
persyaratan, perancangan perangkat lunak,
implementasi, pengujian, dan seterusnya. Setelah setiap
tahap didefinisikan, tahap tersebut diakhiri (signed off)
dan pengembangan berlanjut ke tahap berikutnya.
2. Pengembangan evolusioner. Pendekatan ini bertumpang
tindih dengan kegiatan spesifikasi, pengembangan, dan
validasi. Sistem awal dengan cepat dikembangkan dari
spesifikasi yang sangat abstrak. Sistem ini kemudian
disempurnakan dengan masukan dari pelanggan untuk
menghasilkan sistem yang memenuhi kebutuhan
pelanggan tersebut. Sistem kemudian dapat diserahkan.
Sebagai alternatif, sistem tersebut dapat diimplementasi
ulang dengan menggunakan pendekatan yang lebih
terstruktur untuk menghasilkan sistem yang lebih berbobot
dan dapat dipelihara.
3. Transformasi formal. Pendekatan ini menghasilkan suatu
sistem matematis yang formal dan mentransformasikan
spesifikasi ini, dengan menggunakan metode matematik,
menjadi sebuah program. Transformasi ini bersifat
‘mempertahankan kebenaran’. Ini berarti dapat
dipastikan bahwa program yang dikembangkan
memenuhi spesifikasinya.
4. Perakitan (assembling) sistem dari komponen-komponen
yang dapat dipakai ulang. Teknik ini menganggap
bahwa bagian-bagian sistem sudah ada. Proses
pengembangan sistem terfokus pada pengintegrasian
bagian-bagian ini dan bukan pengembangannya dari
awal.
Rangkuman
Manajemen proyek perangkat lunak yang efektif berfokus pada
3P yaitu : people, problem dan process.
21
12. Buku Ajar Rekayasa Perangkat Lunak
Proses perangkat lunak diisi oleh para pemain yang dapat
dikategorikan ke dalam salah satu dalam 5 konstituen sebagai
berikut :
Manajer senior.
Manajer teknik.
Pelaksana.
Pelanggan.
Pemakai akhir.
Kriteria seorang pemimpin proyek perangkat lunak :
Motivasi.
Organisasi.
Gagasan dan inovasi.
Ada 3 organisasi tim yang umum, yaitu :
Demokratis terdesentralisasi (DD).
Terkontrol terdesentarlisasi (CD).
Terkontrol tersentralisasi (CC).
Aktivitas manajemen proyek perangkat lunak yang pertama
adalah menentukan ruang lingkup perangkat lunak.
Proses perangkat lunak adalah serangkaian kegiatan dan hasil-
hasil relevannya yang menghasilkan perangkat lunak.
Latihan/Tugas/Test Mandiri
1. Manajemen proyek perangkat lunak yang efektif berfokus
pada 3P yaitu : people, problem dan process. Jelaskan
maksud pernyataan tersebut !
2. Sebutkan dan jelaskan orang-orang yang berperan dan
peranannya dalam proses perangkat lunak !
3. Sebutkan dan jelaskan 3 organisasi tim yang umum dalam
proses perangkat lunak !
4. Bagaimana langkah-langkah untuk menyelesaikan masalah
dalam proyek perangkat lunak ?
5. Jelaskan tentang proses perangkat lunak !
22