Kamis, 06 Februari 2020

Perbedaan Software Engineering Dan Programming


Beberapa orang tidak menyukai istilah Software Engineer karena metafor teknik. Artikel ini bukan tentang istilah itu. Jika Anda tidak suka, Anda dapat menggantinya dengan Pengarang Perangkat Lunak, Pengrajin Perangkat Lunak, atau Artis Perangkat Lunak!

Oleh Software Engineer, maksud saya orang yang melihat pembuatan perangkat lunak berkualitas sebagai profesi mereka. Seseorang yang menerapkan sains dan statistik untuk profesi itu dan tidak menganggapnya sebagai pekerjaan yang menghasilkan uang.

Mengetahui cara membuat program tidak menjadikan Anda seorang software engineer.

Siapa pun dapat belajar memprogram. Mudah. Siapa pun dapat membuat program sederhana yang bekerja untuk mereka di mesin mereka tetapi itu tidak menjamin bahwa program yang sama akan bekerja untuk orang lain.

Analogi favorit saya tentang ini adalah bahwa setiap orang dapat bernyanyi dan menghibur diri mereka di kamar mandi, tetapi ketika sudah waktunya pesta, Anda tidak memutar rekaman tentang diri Anda bernyanyi.

Analogi lainnya? baiklah:

Setiap kita mempelajari matematika di sekolah, tetapi tidak semua dari kita akan menjadi matematikawan
Sebagian besar dari kita dapat dengan mudah belajar memasak tetapi ketika saatnya memberi makan banyak orang, kita menyewa seorang Chef
Anda tidak memanggil tukang lingkungan untuk membangun rumah dari bawah ke atas.
Inti dari pesan saya di artikel ini adalah , bahwa program sederhana sangat berbeda jauh dengan program rekayasa.

Programming, dalam definisi yang paling sederhana, adalah memberikan instruksi kepada komputer untuk melakukan sesuatu dengan beberapa masukan untuk menghasilkan beberapa output.

Tindakan software engineering  adalah tentang merancang, menulis, menguji, dan memelihara program komputer dengan tujuan memecahkan masalah bagi banyak pengguna. Ini adalah tentang menciptakan solusi yang kuat dan aman yang akan bertahan dalam ujian waktu dan akan bekerja untuk beberapa masalah yang tidak diketahui di sekitar yang asli jelas.

Sedangkan software engineering memahami segala sesuatu tentang masalah yang mereka selesaikan, solusi yang mereka berikan, keterbatasan solusi tersebut, implikasi privasi mereka, dan implikasi keamanannya.

Jika seseorang tidak memahami masalahnya, mereka seharusnya tidak diizinkan memprogram solusi untuk itu.

Mentalitas Solusi

Insinyur perangkat lunak tidak menganggap karir mereka hanya sebagai penulis program. Mereka berpikir dalam hal kebutuhan yang memuaskan dan memecahkan masalah. Ini penting karena tidak setiap masalah membutuhkan program. Beberapa masalah dapat diselesaikan dengan program yang ada atau dengan menggabungkan beberapa program. Beberapa masalah dapat sepenuhnya dicegah dengan bertindak lebih awal. Merancang program yang baik sering melibatkan perencanaan untuk mencegah masalah di masa depan.

Masalah yang rumit biasanya membutuhkan penulisan beberapa program. Beberapa masalah membutuhkan program yang berjalan secara paralel sementara yang lain membutuhkan program untuk berjalan secara berurutan. Beberapa masalah dapat diselesaikan dengan mendidik pengguna.

Sebelum membuat sebuah program biasanya software engineering , berkata seperti ini :
Apa masalah yang mungkin dapat saya selesaikan ?
Apakah ada kode lain untuk memecahkan masalah ini ?
Apa yang harus saya lakukan untuk memudahkan menyelesaikan masalah dengan kode ?

Kualitas program

Program-program hebat yang jelas dan mudah dibaca, mereka dapat dengan mudah diperpanjang, mereka bekerja hebat dengan program lain, dan memelihara mereka bukanlah mimpi buruk. Kualitas kode bukanlah hal yang bisa dinegosiasikan, menggunakan cara pintas yang ceroboh karena tenggat waktu atau emosi tidak pernah diterima.

Salah satu aspek terpenting dari software engineering k adalah merancang segala sesuatu mulai dari dasar hingga siap untuk diperpanjang. Memodifikasi perangkat lunak adalah fakta kehidupan. Pengguna akan menuntut lebih banyak fitur dan cara yang lebih mudah untuk menggunakan perangkat lunak.

sebuah perangkat lunak biasanya tidak terlalu berguna dengan sendirinya. Fitur perangkat lunak yang berguna mulai ketika beberapa perangkat lunak saling berkomunikasi, bertukar data, dan berkolaborasi dalam tugas menyajikan data dan antarmuka kepada pengguna.

Evolusi dari software engineering

Tidak ada yang bisa belajar software engineering dalam dua bulan, atau enam, atau bahkan setahun. Anda tidak belajar menjadi insinyur perangkat lunak di bootcamp. Saya telah belajar selama lebih dari 20 tahun dan saya masih belajar hari ini. Saya menjadi cukup percaya diri untuk menyebut diri saya seorang programmer yang berpengalaman hanya setelah sekitar satu dekade belajar dan setelah merancang, membangun, dan memelihara aplikasi yang digunakan oleh ribuan pengguna.

Software engineering bukan untuk semua orang, tetapi semua orang harus belajar untuk memecahkan masalah mereka sendiri dengan komputer. Jika Anda bisa belajar menulis program sederhana, Anda harus. Jika Anda dapat belajar untuk menggunakan layanan perangkat lunak generik Anda seharusnya. Jika Anda dapat belajar menggunakan perangkat lunak sumber terbuka, Anda akan memiliki banyak daya.

Masalah berkembang dan begitu juga software engineering. Masa depan profesi ini adalah untuk memungkinkan pengguna komputer biasa menggunakan komputer mereka tanpa perlu belajar lima tahun untuk melakukannya. Memungkinkan pengguna menyelesaikan sendiri masalah mudah dengan alat yang mudah digunakan. Insinyur perangkat lunak kemudian akan melanjutkan untuk membuat alat yang lebih baik, memecahkan masalah yang diketahui lebih besar, dan melakukan yang terbaik untuk mencegah yang tidak diketahui.

Sebenarnya tujuan dari programming dan software engineering itu sama , yaitu adalah membuat aplikasi , tetapi yang membedakannya adalah programming adalah orang yang menulis kode program tersebut, sedangkan software engineering adalah orang yang merancang aplikasi apa yang akan di buat.

Tidak ada komentar:

Posting Komentar