Rabu, 13 Juni 2012

Quality Management Standards


Berikut adalah ruang lingkup yang ada pada quality management standards

-----Ruang lingkup standar penilaian juga ditentukan oleh tujuan penilaian, yang merupakan  untuk :
  • Melayani pengembangan perangkat lunak dan pemeliharaan organisasi sebagai alat untuk penilaian mandiri kemampuan mereka untuk melaksanakan proyek-proyek pengembangan perangkat lunak.
  • Berfungsi sebagai alat untuk perbaikan proses pembangunan dan pemeliharaan. Standar ini menunjukkan arah untuk perbaikan proses.
  • Membantu organisasi pembelian menentukan kemampuan pemasok potensial.
  • Panduan pelatihan asesor dengan menggambarkan kualifikasi dan kurikulum pelatihan program.
Prinsip yang diterapkan dalam ISO 9000-3, yaitu :
-----Fokus pada pelanggan
  • Leadership : terkait dengan visi organisasi
  • Melibatkan orang

-----Efisiensi dalam kegiatan dan sumber daya
  • Pendekatan sistem pada manajemen : mengidentifikasi, memahami dan mengelola proses sebagai suatu sistem.

-----Melakukan perbaikan secara terus menerus
  • Pendekatan faktual untuk pengambilan keputusan : pengambilan keputusan yang efektif.
  • Saling mendukung hubungan pemasok : saling ketergantungan antara organisasi dan pemasoknya.
Keuntungan 

Keuntungan menggunakan Quality Management Standards yang sudah ada, yaitu :
  • Kemampuan untuk menerapkan pengembangan perangkat lunak dan metodologi maintenance dan prosedur dari tingkat profesional tertinggi.
  • Memiliki pemahaman yang sama dan koordinasi antara tim pengembang terutama antara tim pengembang dan tim maintenance.
  • Adanya kerjasama yang baik antara pengembang perangkat lunak dan peserta eksternal dalam proyek.
  • Pemahaman yang lebih baik dan kerja sama antara pemasok dan pelanggan, berdasarkan penerapan pengembangan dab standar maintenance sebagai bagian dari kontrak
Standar SQA dapat dibagi menjadi 2 bagian yaitu

1. Quality Management Standard
  • Berfokus pada organisasi sistem SQA, infrastruktur dan persyaratan. Contohnya ISO 9000-3,  Capability Maturity Model (CMM)

2. Process Standard
  • Berfokus pada metodologi untuk melakukan pengembangan perangkat lunak dan proyek maintenance.
Ada beberapa standart dalam SQA developer yaitu 
  • IEEE (Institute of Electrical and Electronics Engineers) Computer Society
  • ISO (International Organization for Standardization)
  • DOD (US Department of Defense)
  • ANSI (American National Standards Institute)
  • IEC (International Electrotechnical Commission)
  • EIA (Electronic Industries Association).




Cost of Software Quality



Kontrol manajerial atas biaya kualitas software dicapai dengan perbandingan angka kinerja aktual dengan :
  • Mengontrol pegeluaran yang dianggarkan.
  • Kegagalan biaya pada tahun sebelumnya.
  • Biaya kualitas pada proyek sebelumnya.
  • Biaya kualitas dari departemen lainnya.

Biaya kualitas perangkat lunak menyangkut semua biaya yang diadakan untuk mendapatkan kualitas guna menampilkan kualitas yang baik dari perangkat lunak yang dikembangkan. Berikut ini adalah tujuan dari cost of software quality :
  • Sebagai evaluasi rencana untuk menambah atau mengurangi SQA atau untuk berinvestasi dalam infrastruktur SQA berdasarkan kinerja ekonomi terakhir.
  • Sebagai kontrol organisasi yang dimulai untuk mencegah dan mendeteksi kesalahan perangkat lunak.
  • Sebagai evaluasi kerusakan ekonomi dari kegagalan perangkat lunak sebagai dasar untuk merevisi anggaran SQA.

Classic Model
  • Model ini mengklasifikasikan biaya yang berkaitan dengan kualitas produk menjadi dua kelas umum, yaitu :

Costs of control
  • Biaya yang dikeluarkan untuk mencegah dan mendeteksi kegagalan dari perangkat lunak guna untuk mengurangi error ditingkat yang diterima.


Costs of failure of control
  • Biaya kegagalan yang terjadi karena kegagalan dalam pencegahan dan mendeteksi kesalahan perangkat lunak.

Dari kedua kelas tersebut dibagi lagi menjadi dua, yaitu :

Costs of control
-----Prevention costs (Biaya pencegahan)
  • Biaya ini termasuk investasi dalam infrastruktur mutu dan kualitas kegiatan yang tidak diarahkan untuk proyek atau sistem tertentu, yang umum bagi organisasi.

-----Appraisal costs (Biaya kajian)
  • Biaya ini termasuk dalam kegiatan yang dilakukan untuk proyek atau sistem tertentu dari perangkat lunak dengan tujuan mendeteksi kesalahan dari perangkat lunak.

Costs of failure of control
-----Internal failure costs
  • Biaya ini termasuk biaya untuk mengoreksi kesalahan yang telah terdeteksi oleh design review, pengujian perangkat lunak dan pengujian penerimaan (acceptance test) dan selesai sebelum perangkat lunak diinstal di lokasi pelanggan.

-----External failure costs
  • Biaya ini termasuk biaya mengoreksi kegagalan yang terdeteksi oleh pelanggan atau tim maintenance setelah sistem perangkat lunak diinstall
Extended Model

Model ini adalah perluasan dari classic model, yang di dalamnya ditambahkan subclass, yaitu :
-----Managerial Preparation and Control Costs
  • Biaya ini berhubungan dengan kegiatan yang dilakukan untuk mencegah atau mengurangi prospek kegagalan manajerial. Persiapannya meliputi hal-hal berikut :
  1. Biaya melakukan contract review.
  2. Biaya mempersiapkan project plan, termasuk quality plan.
  3. Biaya periodik untuk memperbaharui project plan dan quality plan.
  4. Biaya untuk melakukan kontrol kemajuan reguler dari upaya pengembangan perangkat lunak internal.
  5. Biaya untuk melakukan kontrol kemajuan reguler dari kontribusi peserta eksternal untuk proyek.

------Managerial Failure Costs
  • Hal ini bisa terjadi secara merata sepanjang keseluruhan program pengembangan perangkat lunak dimulai dari tahap pra-proyek. Berikut ini merupakan biaya kegagalan manajerial yang biasa terjadi :
  1. Tidak adanya perencanaan biaya untuk sumber daya profesional lainnya.
  2. Kompensasi yang dibayarkan kepada pelanggan akibat keterlamabatan penyelesaian proyek, akibat dari jadwal yang tidak realistis dalam proposal perusahaan.




Project Progress Control

Project Progress Control memungkinkan manajemen untuk mengawasi setiap proyek baik pada saat memulai, perubahan dan perbaikan dalam bagaimana proyek dilakukan.

Masalah umum terhambatnya proyek dikarenakan melebihi anggaran dan kekurangan anggaran , hal ini harus   selalu dikontrol , karena hal tersebut faktor utama terjadinya hambatan .

Penyebab masalah dalam projek :
  • Terlalu optimis dalam melakukan penjadwalan dan penganggaran.
  • Ketidakprofesionalan dalam menggunakan perangkat lunak manajemen resiko.
  • Keterlambatan dalam mengidentifikasi masalah jadwal dan anggaran.

Masalah pertama dan kedua biasanya bisa dicegah dengan penggunaan contract review dan project planning tools. Sedangkan masalah ketiga bisa dicegah dengan menggunakan project progress control


Komponen utama yang terdapat dalam progress control :

Pengendalian kegiatan Manajemen Risiko,
  • Mengurangi resiko dengan menerapkan system manajemen resiko yang sistematis. Yaitu mengontrol dengan mereview laporan berkala dan mengevaluasi kemajuan informasi, yang mana memberikan pencapaian tujuan proyek secara fungsional dan teknis

Proyek jadwal kontrol, 
  • berkaitan dengan proyek sesuai dengan jadwal yang disetujui dan dikontrak

Proyek kontrol sumber daya, 
  • berfokus pada manusia yang profesional sumber daya komposisi, internal atau alokasi

Anggaran Proyek Pengendalian,
  • Berdasarkan perbandingan biaya aktual dengan yang dijadwalkan, anggaran utama yang harus dikendalikan adalah:
  1. Sumber daya manusia
  2. Fasilitas pengembangan dan pengujian
  3. Pembelian COTS perangkat lunak
  4. Pembelian perangkat keras
  5. Pembayaran subkontraktor





Staff Training and Certification

Tujuan dan proses staff training and certification yaitu , 

Tujuan staff training and certification
  • Untuk memperbarui pengetahuan dan keterampilan staf veteran dalam menanggapi perkembangan organisasi, dan untuk menjamin kinerja yang efisien dan efektif dari tugas serta kesesuaian dengan gaya organisasi dan struktur prosedur dan instruksi kerja.
  • Untuk mengembangkan pengetahuan dan keterampilan staf baru untuk tugas pembangunan suatu software  dan pemeliharaan di tingkat efisiensi dan efektifitas.
  • Untuk memastikan bahwa calon untuk pengembangan perangkat lunak kunci dan posisi pemeliharaan cukup berkualitas.
  • Untuk menjamin kesesuaian dengan standard organisasi untuk produk software (dokumen dan kode) dengan metransmisi style dan struktur prosedur bersamaan dengan instruksi kerja
  • Untuk mengirimkan pengetahuan tentang prosedur SQA.
Proses staff training and certification
  • Menentukan professional knowledge requirements untuk setiap posisi
  • Menentukan professional training dan meng-update kebutuhan
  • Merencanakan program professional training
  • Merencanakan program professional updating
  • Menentukan posisi yang memerlukan sertifikasi
  • Merencanakan proses sertifikasi
  • Memberikan program training, updating, dan sertifikasi
  • Melakukan tindak lanjut dari staf yang terlatih dan bersertifikat
  • Menentukan professional knowledge requirements
Profesi 
  • systems analyst
  • Programmer
  • software development team leader
  • programming team leader
  • software maintenance technician
  • software tester
  • software testing team leader

Pengetahuan yang dibutuhkan antara lain :
  • software development tools ,programming language versions , knowledge of SQA topics, etc.
  • Tentukan pelatihan profesional dan memperbarui kebutuhan
  • ----Tiga jenis pelatihan :
      1. Training, ditujukan bagi karyawan baru
      2. Re-training, ditujukan bagi karyawan yang ditugaskan untuk posisi baru atau menerima tugas baru
      3. Updating, ditujukan bagi anggota staff lama yang butuh pelatihan baru sesuai dengan apa yang jadi kebutuhan pada posisinya
Merencanakan proses sertifikasi 
Tujuan sertifikasi, adalah :
  • Menyediakan framework untuk penyelidikan menyeluruh dari kandidat kualifikasi
  • Mendemontrasikan kandidat yang berpengetahuan dan berkeahlian profesional

Kebutuhan sertifikasi
  • Edukasi profesianal : akademik atau technical degrees
  • Kursus pelatihan internal
  • Profesional yang berpengalam dalam organisasi
  • Evaluasi oleh kandidat atasan
  • Demonstrasi pengetahuan dan keahlian dengan cara test atau proyek





Documentation Control



Sebuah dokumen adalah sesuatu yang vital bagi tim pengembang dan juga untuk pemeliharaan sistem software tersebut untuk pengelolaan masa sekarang dan yang akan datang. Oleh karena itu, persiapan, penyimpanan, pengambilan, dan pelepasan dikendalikan oleh prosedur dokumentasi.

Controlled documents
Sebuah dokumen yang saat ini penting atau mungkin menjadi penting untuk pengembangan dan pemeliharaan sistem perangkat lunak serta pengelolaan hubungansekarang dan masa depan dengan pelanggan.tujuan utama dari Controlled documents adalah :

Tujuan dari dokumentasi kontrol 
  • Untuk menjamin kualitas dari dokumen
  • Untuk menjamin kelengkapan teknis dari dokumen, kepatuhan terhadap struktur dokumen dan penggunaan instruksi
  • Untuk menjamin ketersediaan dokumen yang diperlukan untuk pengembangan dan pemeliharaan yang lebih lanjut pada software atau menanggapi keluhan dari kustomer.
  • Untuk mendukung penyelidikan penyebab kegagalan perangkat lunak
Quality record

Dokumen pelanggan yang mungkin diperlukan untuk menunjukkan kepatuhan dengan customer requirements dan operasi yang efektif dari seluruh proses pembangunan dan pemeliharaan sistem software quality assurance.


Typical controlled documents (including quality records)

Dokumentasi Prosedur Kontrol

Tools SQA yang mengatur penanganan dokumen dari perusahaan yang mengendalikan pembuatan sampai pelepasan akhir disebut dengan Dokumentasi Prosedur Kontrol.  Berikut adalah komponen-komponen dari prosedur tersebut :

Typical components of documentation control procedures
The controlled documents list


Konstruksi yang tepat dari daftar ini didasarkan pada pembentukan otoritas untuk menerapkan konsep ini, apakah yang terkandung pada orang atau komite. Secara khusus, otoritas ini bertanggung jawab untuk:
  • Menentukan jenis dokumen untuk dikategorikan sebagai dokumen terkendali dan yang jenis dokumen terkontrol harus diklasifikasikan sebagai kualitas rekaman.
  • Menentukan apakah tingkat kontrol yang memadai untuk setiap jenis dokumen dikategorikan sebagai dokumen terkendali.
  • Menindaklanjuti kepatuhan dengan daftar jenis dokumen terkendali. Subjek ini dapat dimasukkan dalam rencana audit mutu internal.
  • Menganalisis tindak lanjut temuan dan memulai pembaruan yang diperlukan, perubahan, kepindahan dan penambahan pada daftar jenis dokumen terkendali. Jenis dokumen yang paling dikendalikan adalah dokumen yang dibuat secara internal oleh organisasi itu sendiri. Meskipun demikian, sejumlah besar dokumen jenis eksternal, seperti dokumen kontrak dan risalah rapat komite bersama, juga termasuk dalam kategori ini.






Supporting Quality Devices

Untuk mendapatkan software yang berkualitas dan efisien , disini terdapat beberapa tools dalam penjaminan kualitas software yang dimana dapat mempermudah dalam mendokumentasian perangkat lunak , terdapat 2 tools yang umum digunakan dalam penjaminan kualitas software yaitu 
  • Template
  • Checklist
Template 

Template adalah sebuah format dokumen yang berbentuk seperti daftar isi yang dibuat oleh organisasi atau unit agar dapat diterapkan ketikan akan melakukan komplisasi laporan atau beberapa jenis dokumen lainnya.

Kontribusi dan tantangan template dalam menjamin kualitas software 

Template ini dapat dlihat kegunaannya dari 2 sudut pandang yaitu dari sudut pandang tim pengembang dan tim review.
Dalam tim pengembang template berguna untuk,
  • Memfasilitasi dalam proses penyusunan dan penyimpanan dokumen.
  • Dokumen yang disiapkan lebih lengkap
  • Menyediakan kemudahan  integrasi pada tim yang baru 
  • Memudahkan dalam tahap review karena sudah ada standart pada masing-masing struktur.
Dalam tim review template berguna untuk,
  • Memudahkan mendapatkan informasi yang dibutuhkan untuk melakukan maintenance pada software atau perangkat lunak.
Tantangan dalam menggunakan template, dapat dilihat dari sisi keuntungan dan kerugian yang ada.
Keuntungan 
  • Suatu organisasi dapat cenderung menghemat sumber daya internal mereka 
Kerugian 
  • Perbaikan template harus dilakukan oleh tim profesioanal 
  • Tidak semua tim dalam suatu organisasi mengetahui keberadaan template.
Peran unit SQA dalam suatu organisasi

Unit SQA biasanya bertanggung jawab untuk mempersiapkan template yang profesional dari jenis laporan yang lebih umum dan dokumen yang diperlukan staf organisasi
Dalam template pengorganisasian, unit SQA melakukan :
  • Mempersiapkan template baru
  • Implementasi template baru atau meng-update
  • Memperbaharui template

Checklist 

Checlist merupakan daftar item yang khusus dibuat untuk semua jenis dokumen atau list-list kegiatan yang dapat mengukur dan memeriksa ke komplitan dari sebuah aktivitas, tujuan dari checklist ini adalah menyediakan daftar item agar dapat di verifikasi 

Kontribusi dan tantangan Checklist dalam menjamin kualitas software 

Chehklist ini dapat dlihat kegunaannya dari 2 sudut pandang yaitu dari sudut pandang tim pengembang dan tim review.
Dalam tim pengembang template berguna untuk
  • Membantu developers dalam persiapan mereka untuk tugas-tugas (misalnya instalasi perangkat lunak di situs pelanggan)
  • Membantu developers melakukan pemeriksaan sendiri pemeriksaan dokumen atau kode perangkat lunak sebelum penyelesaian dan menemukan bagian yang tidak lengkap
Dalam tim review checklist berguna untuk, 
  • Membantu mengefisienkan waktu dalam melakukan aktifitas review pada sebuah perangkat lunak 
  • Dapat menjamin kelengkapan dokumen review yang dilakukan tim review
Peran unit SQA dalam suatu organisasi
Dalam suatu organisasi, persiapan dan pembaharuian checklist seperti promosi penggunaanya biasanya ditugaskan pada unit SQA, unit SQA dilakukan :
  • Persiapan checklist baru
  • Promosi penggunaan checklist
  • Meng-updatechecklist

Software Configuration Management  (SCM)

Pengertian

Serangkaian aktifitas penelusuran dan pengendalian yang dimulai ketika proyek dimulai sampai software tidak dioperasikan lagi atau tools manajemen konfigurasi yang dipakai untuk menyimpan versi komponen sistem, membangun sistem dari komponen, dan memantau rilis versi sistem ke pelanggan beserta hasil laporannya.

Tujuan SCM
  • Mengidentifikasi perubahan
  • Mengontrol perubahan
  • Memastikan perubahan yang telah diimplementasikan

Output yang dihasilkan dari manajemen konfigurasi 
  • Program komputer untuk sumber dan dieksekusi
  • Dokumen untuk praktisi teknis dan pemakai
  • Data yang diisi kedalam program dan keluaran dari program
 Yang mendasari berubahan dalam manajemen konfigurasi adalah 
  • Kondisi pasar
  • Tuntutan pelangan
  • Reorganisasi/perubahan struktur tim pengembang
  • Redefenisi sistem atau produk


Configuration Management (CM)

Versi baru perangkat lunak dibuat karena ada perubahan:
  • Sistem operasi yang berbeda pada mesin;
  • Adanya perubahan pada kemampuan (menawarkan kemampuan yang berbeda

Kaitan-kaitan CM untuk memanajemen  pengembangan perangkat lunak meliputi: 
  • Penggantian sistem pada sebuah aktifitas tim yang bertujuan untuk mengontrol biaya dan melibatkan membuat perubahan pada sistem.
  • Melibatkan standar dan prosedur pengembangan aplikasi untuk memenej pengembangan perangkat lunak.
  • Merupakan bagian dari proses manajemen kualitas.
  • Hubungan CM, sistem perangkat lunak disebut juga baselines sebagai titik awal untuk mengembangkan lebih lanjut.
  • Merupakan sebuah konsep manajemen konfigurasi perangkat lunak untuk mengontrol perubahan selama perubahan masih dapat dibenarkan
Standarisasi  CM 
  • CM selalu berdasarkan kepada standar yang diaplikasikan didalam sebuah organisasi.
  • Standar didefenisikan bagaimana item-item diidentifikasikan, bagaimana perubahan dikendalikan dan bagaimana memenej versi yang baru.
  • Standar external yang mungkin mempengaruhi seperti: standar IEEE.
  • Beberapa standar menerapkan proses pengembangan seperti model air terjun (waterfall), standar CM yang baru membutuhkan pengembangan yang evolusioner.