3 poin oleh GN⁺ 2023-12-09 | 1 komentar | Bagikan ke WhatsApp

Ketiadaan pendidikan tentang cara membangun kualitas perangkat lunak

  • Saat mempelajari ilmu komputer di universitas, pendidikan tentang jaminan kualitas perangkat lunak (QA) sering terlewat.
  • Sebagian besar waktu dihabiskan untuk algoritme, cara kerja komputer, sejarah bahasa dan konsep, dan sebagainya.
  • Ada satu semester tentang pendekatan manajemen proyek dan Scrum, tetapi QA sama sekali tidak dibahas.

Cara perusahaan merilis produk tepat waktu

  • Karena masalah anggaran, perusahaan sering menjadikan standar dan langkah QA sebagai hal pertama yang dikeluarkan dari proyek.
  • Jika pengembangan tertunda atau cakupan meluas, tidak ada cukup waktu yang tersisa untuk QA.
  • Perangkat lunak yang tidak stabil dirilis setelah hanya melalui pengujian minimal yang tidak terstruktur.

Cara keluar dari hamster wheel

  • Dibutuhkan waktu bertahun-tahun untuk membangun pengalaman dan kepercayaan diri agar bisa berbicara tentang langkah QA yang hilang dalam proyek.
  • Kita menemukan pemantauan yang terlewat, menghadapi masalah seperti kegagalan sistem produksi, dan sebagainya.
  • Jika langkah QA tidak diterapkan, muncul masalah karena kita tidak pernah benar-benar belajar melakukannya dengan baik.

Berbicara tentang uang

  • Menjelaskan bahwa perangkat lunak akan 'lebih stabil' atau 'jauh lebih mudah dipelihara' tidak cukup konkret bagi orang non-teknis.
  • Kita harus membicarakan biaya dari tidak melakukan QA.
  • Menjelaskan langkah QA dari sisi biaya, lengkap dengan contoh, lebih efektif.

Dosis efektif minimum

  • Langkah QA tidak boleh dirancang secara berlebihan hingga menghambat kemajuan proyek.
  • Penting untuk menguji fungsi inti aplikasi dan memastikan semuanya selalu berjalan sesuai harapan.
  • Gunakan konsep 'minimum effective dose' (MED) untuk memulai dari bagian yang paling penting.

Hal-hal yang diperhatikan dengan saksama

  • Saat memulai atau bergabung dengan proyek baru, carilah konsep QA.
  • Dokumen atau rencana pengujian yang menunjukkan apakah tim sudah memikirkan QA itu penting.
  • Saat menulis kode baru, menulis tes bersamaan akan membantu memastikan kode disusun agar benar-benar dapat diuji.

Manfaat bagi proyek

  • Dengan membicarakan kualitas dan mengusulkan solusi yang memungkinkan, kita dapat memperluas pengaruh sebagai developer.
  • Langkah QA memungkinkan proyek bertumbuh dengan kecepatan yang sehat.

Cara meningkatkan proyek

  • Dengan menggunakan langkah QA, kita bisa dikenal sebagai orang yang menulis perangkat lunak berkualitas dalam proyek.
  • Kita perlu mempertimbangkan MED dalam proyek dan menjadi suara yang mendorong perubahan di dalam tim.

Opini GN⁺

Hal terpenting dalam tulisan ini adalah kurangnya kesadaran akan pentingnya jaminan kualitas (QA) dalam proses pengembangan perangkat lunak serta cara menerapkannya. QA sering diabaikan, tetapi dalam jangka panjang sangat penting bagi keberhasilan dan stabilitas proyek. Tulisan ini menarik dan bermanfaat karena membantu engineer perangkat lunak junior menyadari pentingnya QA dan menawarkan cara-cara konkret untuk mengintegrasikannya ke dalam proyek nyata.

1 komentar

 
GN⁺ 2023-12-09
Opini Hacker News
  • Rekayasa perangkat lunak sering kali bukan topik inti dalam ilmu komputer (CS), melainkan diajarkan di ranah lain, dan biasanya dibahas dalam mata kuliah pilihan atau kursus rekayasa perangkat lunak.

    Di CMU, ada program magister dan doktoral rekayasa perangkat lunak, dan mereka mengajarkan berbagai topik, termasuk yang disebut dalam posting blog tersebut.

  • Ada pengalaman bahwa bekerja sama dengan orang yang memiliki gelar ilmu komputer lebih mudah. Mereka memahami pentingnya algoritma yang baik dan tidak mencoba mengimplementasikan parser atau enkripsi sendiri.

    Ditunjukkan bahwa di bidang rekayasa perangkat lunak, masih kurang proses untuk mengoreksi pandangan naif tentang kerja tim dan kualitas.

  • Pengembangan perangkat lunak berkualitas tinggi bisa dipelajari di perusahaan yang berpengalaman.

    Dulu tempatnya adalah perusahaan FAANG, tetapi sekarang bisa dipelajari di perusahaan seperti TailScale. Tanpa berlebihan memakai microservices, Docker, pemrosesan JSON, dan semacamnya, kualitas bisa ditingkatkan dengan memanfaatkan QuickCheck, pengujian hipotesis, dan fuzzing.

  • Klaim bahwa perangkat lunak tanpa bug harus dirilis tepat waktu adalah premis yang kurang tepat untuk memulai artikel tentang perangkat lunak berkualitas.

    Percaya bahwa kode bebas bug bisa dirilis adalah pemikiran yang jauh dari realitas.

  • Ada program computer engineering dan universitas yang menekankan magang serta praktik lapangan.

    Banyak jurusan CS di universitas berkembang dari jurusan matematika dan berfokus pada teori. Universitas bukan sekadar sekolah kejuruan, melainkan tempat melatih kemampuan untuk menguasai materi yang kompleks.

  • Klaim bahwa universitas mengajarkan pembangunan perangkat lunak industri adalah hal yang dibesar-besarkan.

    Saat ini, ketika pipeline continuous deployment sudah umum, departemen jaminan kualitas yang memeriksa bug secara manual dianggap sebagai cara lama.

  • Logika bahwa perangkat lunak akan 'lebih stabil' atau 'lebih mudah dirawat' tidak meyakinkan bagi orang yang tidak bekerja langsung pada codebase.

    Pengembang berbicara tentang biaya ketika quality assurance (QA) tidak dilakukan, dan itu adalah bahasa yang dipahami bisnis dan manajer.

  • Dari kualitas, waktu, kompleksitas komunikasi, dan biaya, hanya tiga yang bisa dipilih.

    Rekayasa perangkat lunak adalah olahraga tim yang sulit menerapkan proses ala pabrik, sehingga kerja tim dan pertumbuhan individu perlu dihargai.

  • Pengembang perangkat lunak telah mempelajari cara membuat perangkat lunak berkualitas tinggi, tetapi MBA atau dewan direksi yang menjalankan perusahaan tidak memahaminya, sehingga sulit diterapkan dalam praktik.

    Di sebagian besar tempat kerja, pendapat pengembang perangkat lunak pada umumnya diabaikan.

  • Kualitas pada dasarnya adalah sifat yang hanya bisa diperoleh lewat praktik.

    Kemampuan menghasilkan keluaran berkualitas tinggi didapat melalui latihan yang berulang.