APA ITU REKAYASA
PERANGKAT LUNAK?
Rekayasa atau teknik
adalah penerapan ilmu dan teknologi untuk menyelesaikan permasalahan manusia.
Hal ini diselesaikan lewat pengetahuan, matematika, dan pengalaman praktis yang
diterapkan untuk mendesain objek atau proses yang berguna. Para praktisi teknik
professional disebut perekayasa (sarjana
teknik).
Menurut sejarahnya,
banyak para ahli yang meyakini kemampuan teknik manusia sudah tertanam secara
alami. Hal ini ditandai dengan kemampuan manusia purba untuk membuat peralatan-peralatan
dari batu. Dengan kata lain, teknik pada mulanya didasari dengan metode coba
dan ralat (trial and error) untuuk menciptakan alat yang mempermudah kehidupan
manusi. Seiring dengan berjalannya waktu, ilmu pengetahuan mulai berkembang dan
mulai mengubah cara pandang manusia terhadap bagaimana alam kerja.
Perkembangan ilmu
pengetahuan inilah yang kemudian mengubah cara teknik bekerja hingga seperti
sekarang ini. Orang tidak lagi begitu mengandalkan metode coba dan ralat dalam
menciptakan atau mendesain peralatan, melainkan lebih mengutamakan ilmu
pengetahuan sebagai dasar dalam mendesain.
Istilah software
engineering, pertama kali digunakan pada akhir tahun 1950-an dan sekitar awal
1960-an. Pada tahun 1968, NATO menyelenggarakan konferensi tentang software
engineering di Jerman dan kemudian dilanjutkan pada tahun 1969. Meski
penggunaan istilah software engineering dalam konferensi tersebut menimbulkan
perdebatan tajam tentang aspek engineering dari pengembangan perangkat lunak,
ada banyak pihak yang menganggap bahwa konferensi tersebutlah yang menjadi awal
tumbuhnya profesi rekayasa perangkat lunak.
Rekayasa perangkat
lunak (RPL atau SE [Software Engineering]) adalah satu bidang profesi yang
mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan,
pemeliharaan, manajemen organisasi pengembangan perangkat lunak, dan
sebagainya.
Pada tahun 2004,
istilah rekayasa perangkat lunak secara umum digunakan dalam tiga arti, yaitu:
1. Sebagai
istilah umum untuk berbagai kegiatan yang dulunya bernama pemrograman atau
analisis sitem,
2. Sebagai
istilah yang luas untuk analisis teknis dari semua aspek-aspek praktis yang
bertentangan dengan teori pemrograman computer, dan
3. Sebagai
istilah yang mewujudkan advokasi suatu pendekatan spesifik ke pemrograman computer,
satu hal yang mendesak yang diperlakukan sebagai profesi rekayasa daripada
sebuah seni atau kerajinan, dan advokasi dari kodifikasi praktis yang
disarankan dalam bentuk metodologi rekayasa perangkat lunak.
Rekayasa perangkat
lunak adalah disiplin rekayasa dengan perangkat lunak yang dikembangkan.
Biasanya proses melibatkan penemuan pada keinginan klien, menyusunnya di dalam
daftar kebutuhan, perancangan, pengodean, pengujian, dan pengintegrasian bagian
yang terpisah, menguji keseluruhan, penyebaran dan pemeliharaan perangkat
lunak.
Disiplin masih
berada dalam pertumbuhannya (tahap awal perkembangan/pengembangan) sebagai
suatu disiplin rekayasa. Kita tidak pernah mempunyai pengalaman yang cukup,
maupun kumpulan data empiris yang cukup untuk secara sistematis memahami dan
meramalkan siklus hidup proyek perangkat lunak.
The Software
Engineering Body of Knowledge (SWEBOK) membagi rekayasa perangkat lunak ke
dalam 10 area pengetahuan, yaitu:
1. Kebutuhan
perangkat lunak,
2. Perancangan
perangkat lunak,
3. Konstruksi
perangkat lunak,
4. Pengujian
perangkat lunak,
5. Pemeliharaan
perangkat lunak,
6. Manajemen
konfigurasi perangkat lunak,
7. Manajemen
perangkat lunak,
8. Proses
perangkat lunak,
9. Metode dan
tool perangkat lunak, dan
10. Kualitas
perangkat lunak.
DAMPAK REKAYASA
PERANGKAT LUNAK
Rekayasa perangkat
lunak akan memengaruhi beberapa factor dalam masyarakat, yaitu:
1. Faktor
Ekonomi
Di Amerika
Serikat, perangkat lunak memimpin sekitar ¼ dari semua peningkatan GDP pada
tahun 1990-an (sekitar $90 miliar per tahun) dan 1/6 dari semua pertumbuhan
produktivitas (efisiensi dalam GDP) pada akhir tahun 1990-an (sekitar $ 33
miliar per tahun). Rekayasa perangkat lunak memimpin $ 1 triliun dari
pertumbuhan ekonomi dan produktivitas selama decade terakhir ini.
2. Faktor
Sosial
Rekayasa
perangkat lunak mengubah budaya dunia yang memungkinkan orang yang menggunakan
computer. E-mail, World Wide Web, dan pesan singkat memungkinkan orang untuk
berinteraksi dalam cara-cara yang baru. Perangkat lunak mengurangi biaya dan
meningkatkan kualitas dari dinas kesehatan, dinas pemadam kebakaran, dan
layanan social penting lainnya.
Kesuksesan proyek
dengan metode rekayasa perangkat lunak yang telah diterapkan mencakup linux,
space shuttle software, dan automatic teller machines.
REKAYASA PERANGKAT
LUNAK
Disiplin rekayasa
perangkat lunak dimunculkan dari krisis pengembangan perangkat lunakselama
tahun 1960-an dan tahun 1970-an sebagai reaksi terhadap kegagalan proyek
perangkat lunak, kerugian ekonomi, keterlambatan jadwal, pasar kompetitif yang
terrus meningkat, dan peningkatan permintaan untuuk kemampuan, kualitas,
keandalan. Sekarang ini, rekayasa perangkat lunak masih tetap memunculkan
disiplin, tetapi menunjukkan peningkatan kematangan.
Seperti halnya
daerah rekayasa yang lain, rekayasa perangkat lunak yang tanpa alternative
digabungkan dengan empat elemen kunci, yaitu:
1. Kelayakan:
menemukan solusi yang terbaik untuk suatu masalah,
2. Maksimalisasi
nilai: memaksimalkan nilai dari solusi yang disediakan,
3. Strategi
yang efektif: mengadopsi suatu strategi yang efektif untuk mengembangkan
solusi, dan
4. Pemodelan:
perancangan suatu gambaran visual dari tahap sebelum solusi sampai
implementasinya.
Definisi Institute
of Electrical and Electronics Engineers (IEEE) pada rekayasa perangkat lunak
mengtakan bahwa “aplikasi dari suatu system, disiplin, pendekatan dapat
dihitung untuk pengembangan, operasi dan pemeliharaan perangkat lunak.”
Disiplin meliputu kerangka, metodologi, teknik, dan alat yang dikhususkan untuk
memecahkan permasalahan bisnis. Walaupun disiplin rekayasa perangkat lunak
ditingkatkan secara akademis keluar dari bagian ilmu pengethuan computer,
disiplin ini telah dipengaruhi oleh disiplin lain, seperti manajemen, ekonomi,
dan psikologi. Dari waktu ke waktu, dampak dari disiplin pada rekayasa
perangkat lunak digambarkan kembalikarakternya dan lingkupnya diperluas untuk
mencapai sasaran hasil umum, terutama di dalam daerah bisnis.
Saat ini, banyak
praktisi bisnis dan sekolah bisnis memandang rekayasa perangkat lunak sebagai
bagian dari sekelompok besar strategi dalam hubungannya dengan permasalahan
bisnis yang mempertimbangkan proses pengembangan perangkat lunak sebagai suatu
unsure penting dan factor kesuksesan kritis untuk keseluruhan perusahaan.
Rekayasa perangkat lunak telah diperluas di luar batas dari ilmu computer untuk
mencakup hal yang lebih luas, area antardisiplin ilmu di dalam teori dan
aplikasinya.
Penilaian pada luas
cakupan rekayasa perangkat lunak bermanfaat untuk mengindentifikasi disiplin
apakah yang berbagai elemen dengan rekayasa perangkat lunak. Hal tersebut
mencakup tambahan pada ilmu computer dan matematika, rekayaa computer, rekayasa
industry, rekayasa system, ekonomi, ilmu manajemen dan manajemen, ilmu teori,
psikologi, dan pemelajaranfaktor manusia.
Dampak dari disiplin
ini telah menjadi penting dan memunculkan factor dalam evolusi berbagai
strategi pemecahan masalah yang dikendalikan perangkat lunak (software-driven
problem-solving) untuk model siklus hidup proses perangkat lunak. Tiga dimensi
atau lapisan berturut-turut untuk rekayasa perangkat lunak bias digambarkan
sebagai berikut:
1. Dimensi
horizontal (the horizontal dimension)
Dimensi ini
mengarahkan strategi pada pemecahan masalah yang dikendalikan perangkat lunak
yang efektif dan bagaimana mereka dapat dikhususkan untuk memecahkan
permasalahan bisnis yang berbeda dan menemukan berbagai kebutuhan proyek.
Contoh dimensi ini adalah model terjun, model spiral, prototype, dan lain-lain.
2. Dimensi
vertical (the vertical dimension)
Dimensi ini
mengacu pada tahapan umum strategi dan bagaimana mereka dapat dengan efisien
ditujukan. Contohnya adalah tahap studi kelayakan, tahap analisis kebutuuhan,
tahap perancangan, tahap implementasi, tahap pemeliharaan, dan lain-lain.
3. Dimensi metodologis
(the methodological dimension)
Dimensi ini
mengacu pada teknik dan metode yang dapat menengahi implementasi yang sukses
dari strategi pemecahan masalah dan tahapan umum strategi. Contohnya adalah
metodologi yang berorientasi objek (object-oriented), metodologi yang
berorientasi terstruktur (structured-oriented), CASE tool, dan lain-lain.
FAKTOR
MANUSIA UNTUK ASPEK-ASPEK MULTIDISIPLIN
Aspek
multidisiplin ilmu factor manusia
menjelma pada tingkat masalah, isu yang dibahas adalah disiplin yang
terkait dengan orang-orang yang dapat membantu seseorang untuk memahami dasar
masalah. Pada tingkat solusi, perhatian yang utama adalah disiplin yang terkait
dengan orang-orang yang memungkinkan seseorang untuk ditunjuk di dalam
pemecahan masalah yang lebih baik. TABEL 9.1 menawarkan suatu ikhtisar dari isu
ini.
Gambar 9.3 Faktor manusia
di dalam proses pemecahan masalah
TABEL 9.1 Driver dan
Disiplin
Pengarah Antardisiplin Ilmu
|
Disiplin yang relevan
|
Penggunaan
|
Pelanggan
|
Pemasaran
|
Meliputi beberapa
subkategori pelanggan dan stakeholder lain
Memeriksa
kebutuhan system dari perspektif pemasaran
|
Tim Pengembangan
|
Manajemen Proyek
|
Penstrukturan tim
pengembangan
|
Pengguna
|
Teori Psikologi
|
Desain antarmuka
pengguna
|
Orang-Orang Sebagai Manajer Proyek
Sepanjang decade
tahun 1990-an, kesuksesan sebuah organisasi jelas bergantung pada system informasi.
Agar proyek IT sukses, penguasa umum untuk keseluruhan kesuksesan bisnis akan
diperlukan. Disamping itu, ada banyak organisasi yang mengalami kegagalan di
dalam proyek IT dan membuat peningkatan dari manajemen proyek IT menjadi lebih
kritis. Walaupun riset dan pengembangan dari metodologi baru untuk proyek IT
telah dilakukan selama periode ini , hanya muncul sedikit peningkatan yang
bersesuaian untuk berlangsung di dalam pengembangan IT. Implikasinya adalah
manajemen proyek IT bukanlah hal yang sederhana untuk mengidentifikasi keahlian
yang diperlukan dan menerapkan metodologi, tetapi suatu kemunculan disiplin
yang masih menuntut riset lebih lanjut.
Sebelum melanjutkan,
bagian ini diperlukan untuk meringkas definisi proyek. Suatu proyek dapat dipikirkan
sebagai kelompok trugas dan aktivitas yang dilakukan di dalam periode dan
pertemuan spesifik. Sebuah proyek melibatkan suatu kumpulan sumber daya
temporer yang ada bersama-sama untuk memecahkan sebuah masalah spesifik.
Tatnall dan
Shackleton (1995), Rosenau (1998), dan Meredith dan Mantel (1995)
mengidentifikasi beberapa fitur karakteristik proyek dan menjelaskn bahwa
proyek itu unik. Proyek harus diselesaikan pada periode waktu tertentu.
Definisi proyek yang benar menjadi penting pada manajemen proyek. Definisi
proyek membantu menetapkan suatu lingkup yang jelas untuk proyek dan bertindak
sebagai dasar perencanaan proyek.
Langkah-langkah yang
diperlukan untuk menggambarkan sebuah awal proyek dilakukan dengan
menggambarkan peluang proyeknya, penyediaan uraian latar belakang yang
menerapkan kebutuhan pada proyek, dan kemudian menggambarkan tujuan untuk
proyek. Setelah mengidentifikasi stakeholder dan sumber daya yang tersedia,
seseorang harus mengidentifikasi proyek yang terkait yang akan memengaruhi atau
dipengaruhi oleh proyek dalam pertimbangan.
Seseorang kemudian
mengidentifikasi kriteria-kriteria untuk memutuskan apakah suatu proyek itu
baik, pemahamannya mencakup batasan proyek, asumsi, dan risiko, seerti halnya
implikasi seperti batasan dan asumsi untuk risiko proyek. Manajemen proyek
dapat digambarkan sebagai sekumpulan prinsip, metode, alat, dan teknik untuk
perencanaan, pengorganisasian, penempatan pekerja, pengarahan, dan pengendalian
aktivitas yang berkaitan dengan proyek untuk mencapai tujuan proyek di dalam
waktu, di bawah biaya, dan batasan kinerja.
Aktivitas manajemen
proyek dapat digolongkan menurut tahapan proyek, yaitu:
1. Konsepsi
proyek
Tujuan dari
tahap konseptual adalah untuk menentukan kelayakan proyek. Sasaran akan
diujidalam konteks lingkungan bisnis, cara alternative akan ditetapkan dan
dievaluasi, dan perkiraan persiapan biaya, jadwal, dan risiko yang dikerjakan
akan ditentukan. Puncak dari tahap ini adalah keputusan, misalnya keputusan
untuk meneruskan proyek.
2. Perencanaan
Kinerja, biaya,
dan perkiraan jadwal ditentukan sampai batas pemerincian rencana untuk
pelaksanaan proyek dapat dibuat. Anggaran dan jadwal akan dikembangkan, tim
proyek dibentuk, dan system manajemen proyek dibentuk untuk memandu manajemen
proyek.
3. Eksekusi
Manajer proyek
akan bertanggung jawab untuk mengatur sumber daya yang diperlukan untuk
memenuhi sasaran. Penekanan dari tanggung jawab bergeser dari perencanaan untuk
control.
4. Terminasi
Tahap ini
dapat dipicu dengan terminasi premature atau dengan pencapaian kesuksesan dari
tujuan.
Kesuksesan manajemen proyek tergantung pada factor antara
kepemimpinan manajerial dan ketersediaan bisnis, dan rencana komunikasi dan
dokumen teknis yang dengan baik ditetapkan, pada organisasi atau dukungan
kelembagaan untuk mengembangkan keahlian manajerial, yaitu tingkat orang-orang
dan manajemen proyek. Manajemen biasanya berhubungan dengan berbagai kesulitan
di dalam manajemen proyek yang meliputi spesifikasi dan penetapan yang kurang
baik, kurangnya rencana proyek, dan anggaran dan batas waktu yang tidak
realistis.
Efektivitas manajer proyek menjadi penting untuk
kesuksesan proyek. Agar berkualitas, seorang manajer proyek harus menguasai
pemahaman tentang teknik negosiasi, komunikasi dan keahlian analitis, dan
pengetahuan proyek. Variable kontrol yang digunakan untuk menentukan
efektivitas manajer proyek meliputi kemampuan manajer sebagai komunikator,
keahlian sebagai perunding, dan kepemimpinan yang baik.
Manajer proyek bertanggung jawab untuk sumber daya proyek
dan rencana pengembangan, dan harus mampu memastikan bahwa suatu proyek dapat
diselesaikan pada periode waktu yang telah ditentukan. Manajer proyek harus
mampu:
1. Mengoptimalkan
kemungkinan dari keseluruhan kesuksesan proyek,
2. Menerapkan
konsep dan pengalaman yang dipelajari dari proyek lama pada proyek baru,
3. Mengatur
prioritas proyek,
4. Memecahkan
konflik,
5. Mengidentifikasi
kelemahan di dalam proses pengembangan dan di dalam solusi,
6. Mengidentifikasi
kekuatan proses atas penyelesaian proyek, dan
7. Secara cepat
dan efisien melibatkan anggota tim yang terlibat di dalam proyek untuk diberi
informasi.
Studi manajemen proyek pada Mateyaschuk
(1998), Sauer, dkk. (1998), dan Posner
(1987) mengidentifikasi cirri dan keahlian umum yang dianggap penting bagi
manajer proyek yang efektif, yaitu:
1. Kepemimpinan,
2. Perencanaan
yang kuat dan keahlian organisasi,
3. Kemampuan
pembentukan tim (team-building),
4. Kemampuan
untuk mengidentifikasi risiko dan menciptakan rencana darurat,
5. Kemampuan
untuk menghasilkan laporan yang dapat dipahami oleh manajer bisnis,
6. Kemampuan
untuk mengevaluasi informasi dan para spesialis, dan
7. Fleksibilitas
dan kesediaan untuk mencoba pendekatan baru.
Feeny dan Willcocks (1998) mengakui
bahwa dua indicator utama dari manajer proyek terlihat sebagai efektivitas,
yaitu pengalaman proyek yang sukses sebelumnya dan kredibilitas manajer di mata
stakeholder. Menurut Mateyaschuk (1998), dan Weston dan Stedman (1998a,b),
dasar-dasar pemikiran untuk ini seperti kondisi-kondisi, yang diambil
bersama-sama, bantuan yang memastikan bahwa manajer proyek mempunyai
keterampilan yang diperlukan untuk melaksanakan sebuah proyek sampai pada
penyelesaian dengan stakeholder bisnis yang akan terus mendukung proyek
tersebut. Penelitian juga menyatakan bahwa kondisi ini tidak mudah untuk
dimengerti, kompleks dengan keadaan yang cepat berubah dari kebutuhan proyek
yang mempunyai suatu dampak kritis atas kesuksesan manajer proyek perangkat
lunak. Sedangkan menurut Pawel Brodzinki (2009), seperti yang ia tulis di
webnya, mengatakan bahwa ada 10 kualitas yang harus dimiliki oleh seorang
manajer proyek, yaitu:
1. Harus dapat
mengorganisasi,
2. Harus lebih
sering berkomunikasi,
3. Harus jujur
terhadap klien,
4. Harus bias
mencari solusi, bukan menyalahkan orang lain,
5. Harus bias
bekerja sama dengan pelanggan,
6. Harus bias
memahami cerita bisnis di balik proyek,
7. Harus bias
memahami hal-hal teknis selama pelaksanaan proyek,
8. Tidak ragu
untuk menyampaikan umpan balik yang negative bila diperlukan,
9. Tidak kecewa
atas pendapat-pendapat yang tidak wajar terhadap pekerjaan yang sedang dikerjakan,
dan
10. Harus selalu
mengharapkan hal-hal yang tidak terduga
Faktor Tim
Tim dapat digambarkansebagai suatu
kelompok perseorangan yang telah terorganisasi untuk kepentingan bekerja
bersama untuk mencapai sekumpulan tujuan yang tidak bisasecara efektif dicapai
oleh perseorangan yang bekerja sendiri. Efektivitas suatu tim mungkin diukur
dalam hasil terhadap penerimaa pelanggan, kemampuan tim, dan kepuasan
perseorangan.
Masukan perseorangan dan organisasi
dengan mantap memengaruhi masukan tim. Proses pekerjaan tim ditandai oleh usaha
yang mengarah pada tujuan, pengetahuan dan keahlian yang digunakan, strategi
pengadopsian, dadan dinamika kelompok. Konstruksi tim dan manajemen merupakan
sebuah tantangan kritis di dalam pemecahan masalah yang dikendalikan perangkat
lunak (software-driven). Sebuah tim akan memerlukan:
1. Identifikasi
tujuan,
2. Definisi
strategi,
3. Manajemen
tugas,
4. Manajemen
waktu,
5. Penempatan
sumber daya,
6. Komposisi
tim antardispilin ilmu,
7. Waktu
control,
8. Pelatihan,
9. Komunikasi
tim,
10. Keterpaduan
tim, dan
11. Evaluasi dan
jaminan kualitas.
Karakteristik utama dari kesuksesan tim
mencakup:
1. Pembagian
tujuan
Harus ada kesadaran bersama pada tujuan tim umum dari
semua anggota tim. Berbagi tujuan adalah sasaran yang langsung, panduan dan
pengintegrasian usaha perseorangan untuk mencapai hasil yang diharapkan.
2. Kolaborasi
efektif
Suatu tim harus bekerja sebagai tim. Tim ini memerlukan
kerja sama, individu pemberi kontribusi, pertukaran gagasan dan pengetahuan
oleh individu, dan pembangunan hubungan antarpribadi, dan kepercayaan.
Lingkungan proyek memudahkan dan mendorong kerja sama yang efektif dan
interoperasi.
3. Kemampuan
individual
Masing-masing anggota tim harus dilatih dan dipandu agar
bisa bekerja sama dengan anggota tim lainnya.
Beberapa karakteristik lain dari tim yang berjalan dengan
baik meliputi:
1. Pembagian
misis dan tujuan,
2. Peneyebaran
informasi lengkap tentang jadwal, aktivitas, dan prioritas,
3. Pengembangan
suatu pemahaman peran dari tiap anggota tim,
4. Pemahaman
untuk memperhatikan konflik dan kebutuhan untuk memecahkannya,
5. Secara
efisien memanfaatkan kemampuan perseorangan,
6. Secara
efektif menyebarkan pertemuan –pertemuan,
7. Dengan
teliti mengevaluasi kinerja dari tiap anggota tim, dan
8. Secara terus
menerus memperbarui keahlian perseorangan untuk menemukan kebutuhan yang ada.
Indicator tambahan dari operasi yang
efektif meliputi tingkat dari keterlibatan dan keikutsertaan manajemen proyek,
focus pada tujuan, tanggung jawab bersama, orientasipada pemikiran secara
strategis, dan kecepatan untuk tanggap terhadap tantangan dan peluang.
Karakteristik kinerja tim ini memerlukan tiap-tiap anggota tim untuk menyokong
ide, beroperasi pada lingkungan yang berisi keanekaragaman keahlian , memahami
kontribusi dari yang lain, berbagi pengetahuan, menanyakan tingkat pemahaman
secara aktif, mengambil bagian dengan penuh semangat, dan melatih
fleksibilitas.
Faktor Pelanggan
Ada suatu kebenaran yang mutlak, yaitu
rekayasa perangkat lunak harus bisa menjadi pengendali pelanggan
(customer-driver). Bagian ini mempertimbangkan beberapa karakteristik dan
teknik khusus dari lingkungan pengembangan perangkat lunak yang dikendalikan
pelanggan (customer-driven), yang meliputi:
1. Pengembangan
yang dikendalikan pelanggan bersifat padat kebutuhan dan dikendalikan fitur
Karena kebutuhan pelanggan adalah prioritas yang
tertinggi, kebutuhan pelanggan
harus secara hati-hati dikumpulkan, dikenali, ditetapkan, divisualisasikan,
dan secara internal, diprioritaskan anatarkebutuhan sendiri. Sebagai
konsekuensinya, kebutuhan rekayasa menjadi kunci tahap strategis antarproses
rekayasa perangkat lunak.
2. Pengembangan
yang dikendalikan pelanggan bersifat iterative
Pengembangan iterative menjadi penting karena mengizinkan umpan balik yang luas
dan pemberian jawaban untuk umpan balik.
3. Pengembangan
yang dikendalikan pelanggan bertujuan untuk mengembangkan aplikasi-aplikasi
terbaik (killer application)
Teknik ini
adalah satu-satunya cara untuk bertahan pada pasar yang sangat tinggi
kompetisisnya.
4. Pengembangan
yang dikendalikan pelanggan sangat menghargai waktu pemasaran
Waktu
berarti kesempatan sehingga aplikasi harus direkayasa secara cepat dan efisien,
cukup untuk menangkap peluang pasar yang bergantung waktu.
5. Pengembangan
yang dikendalikan pelanggan berusaha untuk memberikan kepuasan pada banyak
stakeholder melalui situasi yang saling menguntungkan
Setiap
aktivitas pengembangan perangkat lunak melibatkan banyak orang, masing-masing
mempunyai tujuan dan pandangan yang berbeda. Oleh karena itu, rekonsiliasi yang
efektif dari konflik atas kebutuhan system menjadi sebuah factor kunci dalam
meyakinkan kepuasan pelanggan.
6. Pengembangan
yang dikendalikan pelanggan berfokus pada kualitas produk dan layanan
Jaminan
kualitas menyiratkan pengaturan proses perangkat lunak, seperti pengembang dan
pelanggan yang dicukupi dengan kualitas dan konsistensi barang-barang atau jasa
yang dihasilkan atau yang disediakan.
7. Pengembangan
yang dikendalikan pelanggan memandang pelanggan sebagai mitra, tidak hanya
sebagai pembeli
Dalam
meyakinkan harapan pelanggan, pelanggan perlu duduk bersama dengan pengembang
pada masing-masing tahap proses pengembangan perangkat lunak. Hal tersebut
dapat memperkecil resiko dan mengurangi siklus waktu selama proses
pengembangan.
8. Pengembangan
yang dikendalikan pelanggan dapat dikostumisasi, dipersonalisasi, dan sesuai dengan
kebutuhan individu dan perubahan pada kebutuhan
Tidak ada
dua bisnis atau perseorangan yang sama (permintaan dan kebutuhan bertukar-tukar
dan meningkat bahkan antarorganisasi tunggal). Mengenali perbedaan perseorangan
dan keanekaragaman organisasi menjadi suatu kerumitan dalam penyediaan solusi
yan efektif.
9. Pengembangan
yang dikendalikan pelanggan diarahkan oleh psikologi kognitif
Psikologi
kognitif mendapat pemikiran seperti bahasa untuk program sumber perangkat
lunak. Oleh karena itu, suatu pendekatan pengembangan perangkat lunak yang
dikendalikan pelanggan perlu menguji luas perancangan perangkat lunak denagn
teliti untuk mencerminkan kebutuhan pelanggan sebagai kebutuhan yang dirasakan
oleh pelanggan.
10. Pengembangan
yang dikendalikan pelanggan harus informative dan mudah diakses
Perancangan
suatu solusi perangkat lunak di dalam “era pelanggan” (customer age) memerlukan
layanan pelanggan yang penuh, dan mendukung bantuan yang terdokumentasi dengan
baik dan web interaktif. Aplikasi tidak menyediakan informasi pendukung,
seperti subjek kepada keluhan pelanggan, ketidakpuasan, dan penolakan.
11. Keamanan dan
privasi adalah suatu pertimbangan dalam solusi yang dikendalikan pelanggan
Untuk
mendapatkan kepercayaan pelanggan, perekayasa perangkat lunak harus merancang
system yang dapat dipercaya, dan peka akan invasi privasi atau serangan peretas
(hacker). Keamanan dan privasi merupakan perhatian utama dari pelanggan
perangkat lunak.
PENGUKURAN
FAKTOR-FAKTOR PRODUK PERANGKAT LUNAK
Ada berbagai
sudut pandang mengenai bidang pengukuran. Juga ada banyak sekali langkah yang
dinilai oleh para professional atau di dalam beberapa konteks. Beberapa pihak
percaya bahwa kuantitas pengukuran kualitas perangkat lunaknya itu penting,
sedangkan di sisi lain ada yang percaya bahwa konteks dengan pengukuran
kuantitatifnya itu berguna dan sangat jarang ada sehingga menjatuhkan pilihan
pada pengukuran kuantitatif. Beberapa pemimpin di bidang pengujian perangkat
lunak telah menulis sulitnya pengukuran yang benar-benar kita inginkan,
termasuk diantaranya adalah Dr. Cem Kaner dan Douglass Hoffman.
Salah satu
contoh metric adalah jumlah kesalahan yang dihadapi dalam perangkat lunak.
Perangkat lunak yang berisi beberapa kesalahan dianggap memiliki beberapa
kualitas yang lebih tinggi daripada perangkat lunak yang mengandung banyak
kesalahan. Pertanyaan-pertanyaan yang dapat membantu manfaat dari metric ini
dalam konteks tertentu meliputi:
1. Apa yang menyebabkan munculnya “banyak
kesalahan?” apakah penyebabnya berbeda-beda tergantung pada tujuan dari
perangkat lunak (misalnya, perangkat lunak blogging versus perangkat lunak
navigasional)? Apakah penyebab mempertimbangkan ukuran dan kompleksitas dari
perangkat lunak?
2. Apakah akun tersebutdigunakan untuk
kepentingan bug (dan untuk kepentingan para stakeholder)? Apakah kejadian itu
merupakan sebuah usaha yang dilakukan untuk menemukan kesalahan atau kejadian
itu akan memengaruhi para penggunanya? Jika demikian, bagaimana? Dan jika tidak
bagaimana caranya mengetahui bahwa 100 kesalahan yang ditemukan lebih baik dari
1000 kesalahan?
3. Jika hitungan dari kesalahan yang
ditemukan menyusut, bagaimana cara mengetahuinya, dan apa artinya? Sebagai
contoh, produk yang ada sekarang tentu tidak bisa dianggap mempunyai kualitas
yang dianggap mempunyai kualiatas yang lebih tinggi daripada produk-produk
sebelumnya. Atau apakah proyek tersebut merupakan perubahan ambisius yang lebih
kecil/kurang dari yang sebelumnya? Atau, apakah waktu para penguji menjadi
lebih sedikit daripada waktu yang ada pada proyek-proyek sebelumnya? Atau,
apakah proyek tersebut telah diuji oleh para penguji yang kurang terampil
daripada penguji sebelumnya?
Factor-faktor
kualitas perangkat lunak tidak dapat diukur karena definisinya yang kabur.
Sangatlah pnting untuk menemukan pengukuran atau metric yang dapat digunakan
untuk mengukur mereka sebagai persyaratan nonfungsional. Misalnya, keandalan
merupakan factor kualitas perangkat lunak yang tidak dapat dievaluasi sendiri.
Namun, ada atribut yang berhubungan pada keandalan yang benar-benar dapat
diukur, misalnya waktu rata-rata untuk gagal, tingkat kegagalan, dan
ketersediaan dari system. Dengan cara yang sama, suatu atribut portabilitas
didefinisikan sebagai banyaknya pernyataan yang bergantung target di dalam
program.
KEBUTUHAN
KUALITAS PERANGKAT LUNAK
Faktor-faktor yang
memengaruhi
Berbagai
factor yang memengaruhi perncanaan, manajemen, dan pemilihan aktivitas SQM dan
teknik-teknik adalah sebagai berikut:
1. Daerah system yang akan ditempati
perangkat lunak (safety-critical, mission-critical, dan business critical),
2. Kebutuhan system dan perangkat lunak,
3. Komponen komersial (eksternal) atau
standar (internal) untuk digunakan di dalam system,
4. Standar rekayasa perangkat lunak spesifik
yang bisa diterapkan,
5. Metode dan tool perangkat lunak yang
digunakan untuk pengembangan dan pemeliharaan, dan untuk peningkatan dan
evaluasi kualitas,
6. Anggaran, staf, organisasi proyek,
rencana, dan penjadwalan dari semua proses-proses,
7. Pengguna yang diharapkan dan penggunaan
system, dan
8. Tingkat integritas system.
Informasi
pada factor ini memengaruhi bagaimana proses SQM diorganisasikan dan
didokumentasikan, bagaimana aktivitas SQM spesifik dipilih, dan sumber daya apa
yang diperlukan dan yang akan memaksakan batas atau usaha.
Keterkaitan
Dalam
situasi dengan kegagalan system yang mungkin mempunyai konsekuensi yang sangat
hebat, keterkaitan keseluruhan (perangkat keras, perangkat lunak, dan manusia)
adalah kebutuhan kualitas yang utama disamping kemampuan dasar. Keterkaitan
perangkat lunak mencakup karakteristik toleransi kesalahan, keselamatan,
keamanan, dan usabilitas. Keandalan juga menjadi sebuah ukuran yang dapat
digambarkan dalam hubungannya dengan keterkaitan.
Badan
literature untuk system harus sangat dapat tergantung (“kepercayaan tinggi”
atau “system integritas tinggi”). Istilah untuk mekanisme tradisional dan
system elektrik yang tidak boleh mencakup perangkat lunak telah di import untuk
mendiskusikan ancaman atau risiko, integritas system, dan konsep yang
berhubungan, dan mungkin menemukan acuan yang dikutip untuk bagian ini.
Tingkat integritas
perangkat lunak
Tingkat
integritas ditentukan berdasarkan pada konsekuensi kegagalan dari perangkat
lunak. Dalam perangkat lunak yang mementingkan keselamatan atau keamanan,
teknik-teknik seperti analisis risiko untuk keselamatan atau analisis ancaman
untuk keamanan mungkin digunakan untuk mengembangkan suatu aktivitas
perencanaan yang akan mengidentifikasi daerah yang potensial terhadap
kekacauan. Sejarah kegagalan dari perangkat lunak juga bisa membantu mendeteksi
kesalahan dan menilai kualitas. Tingkatan integritas ( miasalnya, gradasi
integritas) akan di usulkan di dalam suatu perangkat lunak.
1 komentar:
Terimakasih.. tulisannya sangat bermanfaat..
My blog
Posting Komentar