Di artikel kali ini,kita akan membahas mengenai alasan mengapa menjadi software engineering itu penting. Mungkin dalam beberapa kondisi, anda bisa saja berpikir bahwa anda tidak membutuhkan pendekatan software engineering dalam membangun sebuah sistem dan mengasumsikan bahwa anda dapat membuat perangkat lunak dengan sangat mudah dalam waktu yang sangat singkat.
Dalam beberapa mini-program pendekatan seperti ini mungkin sah-sah saja bahkan dalam beberapa kondisi, hal ini dapat membuat biaya produksi lebih minim dan waktu pengerjaan lebih singkat.
Namun bagaimana jika suatu ketika anda mendapatkan sebuah projek yang harus dibangun dengan berjuta-juta kode program dan memiliki fitur yang begitu banyak. Apakah pendekatan-pendekatan engineering non-software engineering masih bisa menghandlenya? Jikapun mungkin, apakah pendekatan-pendekatan itu cukup reliable?
Yuk kita coba lihat dalam contoh yang lebih sederhana.
Bayangkan kalau anda adalah seorang kontraktor dinas perhubungan regional daerah, dimana anda mendapatkan projek untuk membangun sebuah jalan tol yang menghubungkan dua kota sejauh 100Km. Tentunya terdapat banyak aspek yang harus anda penuhi dalam mensukseskan projek tersebut baik secara teknis maupun non-teknis.
Tentunya anda tidak mungkin langsung membeli aspal, bahan-bahan lainnya lalu langsung membuat jalan bukan? Hal pertama yang harus anda lakukan adalah melakukan perencanaan, berkoordinasi dengan stakeholder dan tim serta menguji hasil pekerjaan tersebut untuk menjamin tercapainya standar kualitas yang berlaku.
Konsep pemikiran ini sama halnya dengan membuat sebuah perangkat lunak. Bagi para raksasa IT seperti Google, Microsoft, Facebook dan IBM, tentunya dalam membuat perangkat lunak anda harus membuat perencanaan yang matang, koordinasi antar tim dan stakeholder, menguji dan merawat perangkat lunak.Â
Semua hal ini mungkin sekali dapat dilakukan dengan penerapan software engineering dalam setiap pekerjaan pengembangan. Jika anda terbiasa dengan pemikiran ini, maka membuat software baik skala kecil, menengah dan besar bukanlah suatu permasalahan untuk anda. Karena jika dikerjakan dengan teliti dan terstruktur perangkat besar pun akan dengan sangat mudah bisa diselesaikan.
Marco Maiocchi dari University of Milan dalam jurnal Future Generation Computer Systems volume 7, menjelaskan bahwa setidaknya terdapat beberapa alasan mengapa software engineering itu sangat penting, diantaranya adalah:
1. Mengurangi Kompleksitas
Software dengan skala besar dan kompleks sangat sulit untuk dikembangkan. Untuk mengatasi hal ini, Software Engineering dapat diterapkan sebagai sebuah solusi untuk mengurangi kompleksitas dari setiap projek dengan cara membagi sekumpulan masalah besar menjadi beberapa masalah yang lebih kecil. Dengan demikian, masalah-masalah dapat diselesaikan dengan solusi-solusi yang dikerjakan satu persatu. Dengan teknik ini setiap permasalahan kecil dapat diselesaikan secara independen satu sama lain.Â
Pada akhirnya, setiap masalah yang telah berhasil diselesaikan akan dikombinasikan satu sama lain untuk menghasilkan sebuah solusi akhir. Teknik ini disebut Problem Decomposition. Fokus dari teknik ini adalah memfokuskan penyelesaian masalah pada masalah yang paling relevan untuk diselesaikan saat ini dengan cara mengabaikan masalah-masalah yang dianggap tidak relevan. Dengan pola pikir ini, diharapkan masalah-masalah besar dapat diselesaikan dengan lebih mudah.
2. Untuk meminimalisir biaya perangkat lunak
Perangkat lunak membutuhkan banyak sekali kerja keras dan disisi lain seorang software engineer merupakan tenaga ahli dengan biaya yang mahal. Kebanyakan orang berfokus untuk membangun perangkat lunak dengan jutaan baris kode program. Namun di dalam software engineering, programmer harus merencanakan semuanya dan mereduksi segala hal yang dianggap tidak penting. Hasilnya, biaya produksi dari pengembangan perangkat lunak menjadi dapat dikurangi dibandingkan pengembangan perangkat lunak lainnya yang tidak menggunakan pendekatan software engineering.
3. Untuk mengurangi waktu
Segala yang tidak dibuat berdasarkan "Perencanaan" selalu menghabiskan waktu yang lebih banyak. Dan jika kita membuat sebuah software yang memiliki lingkup besar maka anda harus menjalankan banyak kode program untuk membuat kode tersebut dapat berjalan dengan maksimal. Hal ini sangat menghabiskan waktu. Jika tidak ditangani dengan manajemen yang baik maka hal ini malah akan menghabiskan banyak waktu kita.
4. Mampu Menangani Projek Besar
Projek besar tidak bisa dibuat hanya dalam hitungan beberapa hari, dibutuhkan kesabaran, perencanaan dan manajemen untuk menjamin tercapainya tujuan. Misalkan terdapat sebuah projek yang harus diselesaikan dalam jangka waktu 5 tahun, dan terdapat 40 tugas yang harus dikerjakan dan dalam satu semester perusahaan harus menyelesaikan setidaknya 4 tugas.Â
Maka perusahaan juga harus memiliki komitmen agar jangan sampai dalam satu semester ternyata tugas yang hanya bisa diselesaikan 1 dari 4 tugas yang harusnya selesai. Oleh sebab itu untuk dapat sesuai dengan waktu yang ditentukan dibutuhkan perencanaan, arahan, pengujian dan proses maintenance yang dijalankan dengan disiplin.
5. Menjamin Kehandalan Perangkat Lunak
Software harus handal, handal berarti software yang dibangun haruslah bekerja sesuai dengan waktu yang telah ditetapkan. Dan jika terdapat kesalahan dalam pembuatan software maka perusahaan harus menyelesaikan permasalahan-permasalahan tersebut. Di dalam software engineering, terdapat teknik testing dan maintenance yang harus dilakukan untuk menjamin kehandalan perangkat lunak.
6. Menjamin Efektifitas
Efektifitas akan terjadi jika perangkat lunak telah berhasil dibangun berdasarkan sebuah standar yang berlaku. Di dalam software engineering terdapat berbagai standar yang dapat dijadikan acuan dalam pembangunan sebuah software yang efektif seperti ISO 3535:1977 tentang desain formulir dan bagan, ISO 5806/1984 tentang tabel dan information processing, ISO 5807:1985 tentang dokumentasi dan konvensi data, dan lain-lain.
7. Produktivitas
Dengan bantuan software engineering, setiap perusahaan dapat meningkatkan produktivitas. Setiap projek dapat dikurangi biayanya dan menghabiskan waktu pengerjaan yang lebih sedikit. Di dalam software engineering, produktivitas software dapat dihasilkan karena adanya sistem pengujian di dalam setiap bagian terkecil suatu proses. Jika tidak lolos uji, maka seorang developer harus memperbaikinya hingga akhirnya mencapai suatu standar yang berlaku.
Apakah artikel kali ini cukup menarik? Untuk sekarang PT TOG Indonesia masih membutuhkan para pencari kerja yang kebetulan sama di bidang software engineering, silahkan segera apply CV anda untuk alamat e-mail sudah terdapat di website kami.
Â
Salam Sukses
Â
TOG Indonesia