Kesalahan Logika : Antara Kreatifitas & Reinventing the Wheel
Saya kadang kerap tertawa sekaligus miris bila membaca komentar-komentar pembaca di media online jika ada berita terkait dengan inovasi anak bangsa mengenai pembuatan suatu software atau hal lain yang dianggap meniru atau mengambil basis dari bentuk yang sudah ada. Salah satu contohnya adalah komentar mengenai rilis sistem operasi berbasis Linux yang mengadopsi lingkup penggunaan berbahasa Indonesia dan memuat aplikasi-aplikasi yang sudah disesuaikan dengan penggunaan umum di Indonesia.
Jenis komentarnya beragam, baik yang pro maupun yang kontra, namun kerap memuat komentar bernada berikut : “Yaaah, cuma modifikasi software aza bangga, mestinya bikin dong dari awal, jangan bisanya cuma meniru saja” atau dengan nada lain yang mirip, “Kalau mau hebat mestinya bikin sistem yang bukan berasal dari sistem lain. Bikin sendiri tanpa mengambil contoh yang sudah ada”
Meski terlihat benar, pendapat skeptis seperti diatas sebenarnya mengandung kesalahan logika yang mencampur adukkan antara kreatifitas dengan realita di dunia nyata. Kreatifitas dimaknai hanya sekedar membuat segala-galanya dari awal, tanpa memperhitungkan waktu yang terbuang, pekerjaan yang sia-sia dan biaya yang mungkin timbul jika kita harus membuat segala-galanya dari awal. Ini yang dinamakan dengan Reinventing the Wheel.
Dari Wikipedia :
Reinventing the square wheel is the practice of unnecessarily engineering artifacts that provide functionality already provided by existing standard artifacts (reinventing the wheel) and ending up with a worse result than the standard (a square wheel). This is an anti-pattern which occurs when the engineer is unaware or contemptuous of the standard solution or does not understand the problem or the standard solution sufficiently to avoid problems overcome by the standard. It is mostly an affliction of inexperienced engineers, or the second-system effect.
Many problems contain subtleties which were resolved long ago in mainstream engineering (such as the importance of a wheel’s rim being smooth). Anyone starting from scratch, ignoring the prior art, will naturally face these problems afresh, and to produce a satisfactory result they will have to spend time developing solutions for them (most likely the same solutions that are already well known). However, when reinventing the wheel is undertaken as a subtask of a bigger engineering project, rather than as a project in its own right hoping to produce a better wheel, the engineer often does not anticipate spending much time on it. The result is that an underdeveloped, poorly performing version of the wheel is used, when using a standard wheel would have been quicker and easier, and would have given better results.
Contoh Reinventing the Wheel dari mana idiom ini diambil adalah soal pembuatan roda. Sudah menjadi aksioma bahwa bentuk roda yang baik itu bentuknya bulat/bundar, untuk meminimalkan gaya gesek dan hambatan. Upaya membuat roda yang bentuknya lain daripada yang lain (misalnya trigonal alias segitiga dan pentagonal alias segi empat) sama saja menghabiskan waktu untuk melakukan inovasi padahal sudah ada penelitian mengenai hal ini jauh-jauh hari sebelumnya.
Dalam dunia software, Reinventing the Wheel berarti membuat segala-galanya dari awal, bahkan jika perlu mengabaikan pendapat umum yang berlaku. Padahal, buat apa membuat software dari scratch jika sudah ada basis software yang bisa dipergunakan tanpa harus menghabiskan waktu membuat segala-galanya dari awal. Bedakan soal meniru mentah-mentah dengan prinsip melakukan adaptasi pada desain yang sudah ada. Kreatifitas tidak harus membuat segala-galanya dari awal. Kreatifitas bisa juga berarti memperbaiki basis sistem yang sudah ada atau memodifikasinya menjadi bentuk lain yang lebih tepat guna.
Sewaktu Linus Torvalds membuat sistem Linux ditahun 1991, ia memang tidak mengikuti kecenderungan orang lain yang menggunakan sistem Unix atau DOS melainkan membuat sesuatu yang lain yang ia percaya lebih menarik. Meski demikian, Linus Torvalds tidak membuat segala-galanya dari awal, karena ia mengambil basis dari sistem Minix yang merupakan bentuk adaptasi dari sistem Unix. Jika Linus Torvalds membuat segalanya dari awal, sama saja ia kembali ke tahun 60-an, saat Unix belum diciptakan. Tentu ia akan menghabiskan waktu untuk masalah-masalah yang sebenarnya sudah teratasi dengan diciptakannya sistem Unix di akhir tahun 60-an dan sudah mengalami berbagai improvement bertahun-tahun.
Kreatifitas tidak harus membuat segala-galanya serba baru. Google melakukan Redefining the wheel saat menciptakan sistem operasi Android. Android menggunakan basis sistem Linux namun Google menyesuaikan dan memodifikasinya untuk penggunaan khusus diperangkat mobile dan tablet. Apakah berarti Google sekedar melakukan copycat dan tidak kreatif? Justru Google kreatif karena ia mengeksplorasi dan memperluas perkembangan Linux di dunia mobile yang sudah didahului sebelumnya oleh beberapa sistem operasi mobile berbasis Linux terdahulu namun adopsinya tidak seluas Android.
Dalam dunia otomotif, Korea Selatan awalnya melakukan peniruan bentuk dan mekanisme sistem mobil Jepang sebelum akhirnya mampu membuat mobil dengan bentuk, trend dan teknologi sendiri.
Jauh lebih baik jika kita mengapresiasi segala bentuk inovasi yang dilakukan oleh orang lain, oleh para anak bangsa, sekecil apapun bentuk inovasinya. Segala hal yang bisa membantu orang lain untuk tumbuh dan berkembang tentu patut dihargai. Jangankan untuk hal-hal yang sifatnya serba teknis, hal lain yang bersifat dokumentasi seperti penerjemahan artikel, pembuatan tutorial dan upaya melengkapi panduan untuk sistem yang sudah ada tentu merupakan sumbangsih yang patut direspon dengan sikap yang baik.
Setuju! Like this Mas Vavai.
Pepatah mengatakan: Good Coders Code, Great Coders Reuse.
good article mas vavai… jadi tahu istilah baru… 🙂
saya malah taunya kreatif itu condong k hal memodifikasi :hammer: CMIIW 😀
hehe… penulis dan penanya sama2 salah kaprah dan membuat miris saya… wkwkwk
penulis menangkap pertanyaan dengan negative thinking… dan mungkin si penanya bertanya dengan tunjek point… haha…
mari kita cermati pertanyaan penanya… buat baru tanpa mengadopsi dari yg sudah ada… bukannya pertanyaan itu maksudnya distro??? debian >ubuntu>blankon inikan source nya sama, ekstensi aplikasinya juga .deb ya kan? lah mungkin maksudnya penanya itu mbok buat sendiri seperti suse dengan .rpm atw yg lain.. tentu saja dengan kernel yg sama dari linus… paham kan? misal blankon dengan ekstensi installer nya . bkn atw lainnya… hehe… atw android dengan minixnya dan iphone dengan unix bsd nya… itu lho pertanyaan si penanya… source sama tapi bukan turunan.. apa andro itu turunan dari andro yg lain? bukan kernelnya (oot) apa debian turunan dari distro debian lainnya? bukan kernelnya (oot) sampai sini pada nangkep? mbok kita ini jadi seperti android atau debian itu maksudnya bukan membuat scratch dari 0 termasuk kernel… ayo monggo dijawab… saya juga pengguna blankon yang setia lho… hahaha… point adalah point bukan point yang di pointkan… pertanyaan si penanya jelas buat baru bukan berarti baru 100%, ada .deb, .exe, .rpm, .apk, .dmg dll lha mbok distro kita ini buat sendiri misal .bkn gitu lho mas… mbak… oom… pak… sudah paham atau mau berkelit lagi?
@Iceman,
Soal saya negative thinking atau bukan, saya serahkan pada penilaian pembaca. Komentar yang saya quote diatas bisa dibaca diartikel ini :
http://www.detikinet.com/read/2011/05/20/191242/1643653/317/garuda-os,-sistem-operasi-lokal-bagi-kebangkitan-ti-nasional
Anyway, terima kasih untuk responnya
artikelnya bagus… bisa menambah wawasan saya… thx