Kisah Penganalisis Diferensial
Aturan pertama rekayasa sistem Hamming: Jika Anda mengoptimalkan komponen, Anda kemungkinan besar akan merusak kinerja sistem.
Dia mengilustrasikannya dengan cerita dari pekerjaan miliknya sendiri. Dia mengoperasikan penganalisis diferensial — komputer analog yang menyelesaikan persamaan diferensial melalui integrasi mekanis. Permintaan tumbuh, jadi unit kedua dipesan, untuk dihubungkan dengan yang pertama sehingga keduanya dapat beroperasi secara terpisah atau bersama-sama.
Para pembangun, bangga dengan kerajinan mereka, meningkatkan penguat di unit baru. Hamming bersikeras: perbaikan apa pun tidak boleh mengganggu operasi sistem keseluruhan. Pada hari penerimaan, dia menjalankan tes klasik: selesaikan y'' + y = 0, plot y vs y', harapkan lingkaran sempurna. Itu gagal segera.
Penyebabnya: penguat yang ditingkatkan menarik lebih banyak arus melalui sirkuit pentanahan. Pentanahan yang tidak memadai, yang telah bekerja dengan baik dengan penguat asli, sekarang memungkinkan arus kebocoran untuk berkopel antar subsistem. Peningkatan satu komponen (penguat) merusak antarmuka (pentanahan), dan sistem gagal.
Perbaikannya sepele — pentanahan tembaga yang lebih berat — tetapi prinsipnya jelas: peningkatan komponen mengubah perilaku antarmukanya. Sisa sistem dirancang di sekitar antarmuka lama. Tingkatkan komponen, rusak antarmuka, turunkan sistem.
Mengenali Optimalisasi Komponen
Hamming mengatakan aturan 'tampak sangat masuk akal jika Anda membuat komponen terisolasi lebih baik maka seluruh sistem akan lebih baik' — namun hal itu salah. Kegagalan dimediasi antarmuka: peningkatan komponen mengubah sinyal yang dilihat antarmuka.
Antarmuka Lebih dari Komponen
Kesimpulan praktis Hamming: insinyur sistem harus merancang dan memverifikasi antarmuka terlebih dahulu, komponen kedua. Komponen sempurna dengan antarmuka yang rusak tidak berguna. Komponen biasa-biasa saja dengan antarmuka yang terspesifikasi dengan baik dapat ditingkatkan nanti.
Aturan 2: kondisi pembatas (kendala) sistem sering kali lebih penting daripada nilai optimal dalam batas-batas tersebut. Sistem yang dirancang untuk memaksimalkan kinerja pada titik operasi yang diharapkan sering kali rapuh: penyimpangan kecil di luar jangkauan yang diharapkan menyebabkan kegagalan. Sistem yang dirancang untuk beroperasi dengan aman di berbagai rentang — dengan kendala yang terdefinisi dengan baik — bersifat kuat.
Contoh: sistem komunikasi yang dirancang untuk tepat 100 Mbps lalu lintas pada 25°C akan gagal jika lalu lintas lonjakan menjadi 110 Mbps atau suhu naik menjadi 40°C. Sistem yang dirancang dengan kendala 'tidak boleh melebihi 90% pemanfaatan pada suhu apa pun di bawah 60°C' lebih berguna, bahkan jika kinerja puncaknya sedikit lebih rendah.
Pekerjaan insinyur sistem: bukan untuk mengoptimalkan A atau B secara individual, tetapi untuk mengoptimalkan A+B+C... secara keseluruhan, tunduk pada kendala.
Sistem Pendidikan: Rekayasa Sistem yang Gagal
Hamming menerapkan prinsipnya sendiri pada pendidikan. Selama beberapa dekade, universitas telah mengoptimalkan kursus matematika individual: Kalkulus telah dikurangi menjadi esensinya, Aljabar Linier telah dibersihkan dan diperketat. Setiap kursus, dinilai secara individual, terlihat lebih baik.
Tetapi dilihat sebagai sistem, celah besar muncul:
- Induksi matematika: hampir tidak disebutkan setelah sekolah menengah.
- Bilangan kompleks: diperkenalkan secara singkat dalam aljabar, kemudian dihindari sampai akhir dalam Aljabar Linier ketika nilai eigen kompleks muncul. Siswa menghadapi dua ide baru dan sulit secara bersamaan tanpa persiapan sebelumnya.
- Koefisien tak tentu: singkat disebutkan.
- Bukti kemustahilan: hampir sepenuhnya tidak ada.
- Matematika diskret: sebagian besar diabaikan.
Optimalisasi setiap komponen (setiap kursus) menciptakan celah antarmuka: jembatan konseptual yang hilang antar kursus. Output sistem — insinyur dan ilmuwan terdidik — menderita, meskipun metrik output setiap kursus meningkat.
Menolak Dorongan Alami untuk Memperbaiki Bagian yang Rusak
Pengamatan Hamming: mudah untuk mengatakan kata-kata yang tepat tentang rekayasa sistem. Sangat sedikit orang yang benar-benar dapat melakukannya ketika saat tiba.
Respons alami ketika sistem gagal: identifikasi komponen yang paling jelas rusak dan perbaiki. Ini adalah pemikiran komponen. Sistem gagal karena alasan yang melibatkan interaksi komponen, antarmuka, dan kendala — tetapi kegagalan paling terlihat biasanya ada di satu komponen.
Disiplin insinyur sistem: sebelum memperbaiki kegagalan yang terlihat, tanyakan: mengapa sistem menghasilkan kegagalan ini di komponen ini? Apakah komponen benar-benar berkinerja buruk, atau diminta untuk beroperasi di luar selubung desainnya oleh sisa sistem? Memperbaiki gejala komponen meninggalkan kegagalan sistem tetap utuh.
Kemacetan komunikasi dalam organisasi besar mengikuti pola ini: departemen berkomunikasi dengan buruk (kegagalan yang terlihat). Perbaikan komponen: mempekerjakan komunikator yang lebih baik. Perbaikan sistem: merancang ulang arsitektur aliran informasi sehingga komunikasi lebih sedikit diperlukan untuk mencapai koordinasi yang sama.
Diagnosis Sistem
Perbedaannya: perbaikan komponen mengobati gejala. Perbaikan sistem mengobati penyebab. Penyebab biasanya melibatkan struktur sistem — komponen mana yang ada, antarmuka apa yang menghubungkannya, kendala apa yang membatasi operasinya.