Anda di halaman 1dari 3

Hubungan Software Engineering dan Software

Craftsmanship dalam Software Development


Latifah Maulida Rahma1, Gusnia Syukriyawati2
1,2

Program Teknologi Informasi dan Ilmu Komputer, Universitas Brawijaya


Jl. Veteran no.8 Malang
1
115090601111004@mail.ub.ac.id
2
115090607111036@mail.ub.ac.id

Abstract Software Development (pengembangan perangkat


lunak) merupakan pengembangan suatu perangkat lunak dalam
bentuk perangkat lunak yang baru untuk memperbaiki atau
menggantikan secara keseluruhan perangkat lunak yang sudah
ada. Tantangan dalam pengembangan perangkat lunak

tidak hanya terletak pada penciptaan kode baru, tetapi


pada pasar persaingan yang luar biasa, yang menuntut
pemaksaan untuk menyelesaikan solusi yang harus tepat
waktu. Dalam Software Development sering terdapat istilah
Software Engineering dan Software Craftmansip. Software
engineering atau yang biasa disebut dengan rekayasa
perangkat lunak merupakan disiplin rekayasa dengan
perangkat lunak yang dikembangkan. Software
craftsmanship adalah pengembangan perangkat lunak yang
menyatu dengan seni, ilmu pengetahuan, dan teknik.
Bertujuan untuk memberikan sistem yang efektif, yang
dibuat oleh pengembang yang berpengalaman dan
terampil. Tidak membutuhkan pendekatan sistematis,
disiplin ilmu dan teknik, serta terukur.
Kata kunci: Software Development, Software Engineering ,
Software Craftmansip

I.

PENDAHULUAN

Perangkat lunak pada awalnya dikembangkan dengan bebas


dari kebutuhan bisnis yang spesifik, tetapi menjadi lebih baik
saat dinilai dalam konteks penyampaian nilai bisnis yang
spesifik. Kondisi ini memperluas pandangan tradisional dari
rekayasa perangkat lunak untuk mencakup dampak dari sistem
informasi manajemen pada pengebanagn perangkat lunak.
Pemasukan dari metriks bisnis untuk mengevaluasi kualitas
pengembangan perangkat lunak mencerminkan suatu
kesadaran dari pandangan ini.
Perangkat lunak dikembangkan sebagai tanggapan untuk
keperluan bisnis, tetapi hanya ketika bisnis melihat hal tersebut
sebagai perwakilan dari suatu kesempatan untuk hasil bisnis
yang baru. Aplikasi perangkat lunak akan dikembangkan untuk
kebutuhan yang spesifik.
Pengguna dari suatu produk tidak tertarik pada bagaimana
suatu produk dihasilkan atu bagaimana suatu produk bekerja,
kecuali jika beberapa spesifikasi teknis dipasangkan secara erat
dengan fitur yang diinginkan dari produk. Perbedaan pada
aplikasi perangkat lunak yang tak umum adalah bahwa
pengguna ingin dilibatkan pada tahap teksnis pengiring dari

siklus hidup pengembangan perangkat lunak seperti analisis,


desain, dan pengujian [3].
Pada saat ini, tantangan dalam pengembangan perangkat
lunak tidak hanya terletak pada penciptaan kode baru, tetapi
pada pasar persaingan yang luar biasa, yang menuntut
pemaksaan untuk menyelesaikan solusi yang harus tepat waktu,
sesuai dengan anggaran dan sesuai dengan target. Selain itu,
pengembangan perangkat lunak menghadapi tantangan lainnya
berupa [3] :
User power and authority
Pengguna bisnis dan pengguna individu adalah pihak
yang lebih kuat, berpengalaman, dan selektif.
Market share
Pesaing menjadi lebih agresif, inovatif, dan banyak
mengetahui.
Killer application
Aplikasi lebih bisa dikusomisasi, interaktif, dinamis, dan
penuh gaya.
The anytime anywhere factor
Faktor ini mengakomodasi aplikasi berbasis web dan
lingkungan tanpa kabel ( wireless) sert peningkatan
sejumlah alat portabel.
The return on invesment (ROI) factor
Perangkat lunak dipandang sebagai suatu investasi, tidak
hanya sebagai suatu kegiatan teknis. Oleh karena itu,
pengevaluasian dilakukan pada nilai yang diciptakan yang
dibandingkan dengan kemampuan yang bisa dikirim.
The technology factor
Dari alat berbasis web dan CASE sampai penintegrasian
perangkat lunak maupun perangkat keras ke aplikasi dan
peralatan multimedia, teknologi perangkat luank
meningkatkan pada suatu tingkayt yang sangat cepat.
Penyelidikan dan pemahaman pengembanagan seperti ini
penting karena teknologi yang baru dapat menambah
keuntungan kompetitif yang penting jika digunakan
dengan baik.
II. PEMBAHASAN

2.1 Software Engineering


Software engineering atau yang biasa disebut dengan
rekayasa perangkat lunak merupakan disiplin rekayasa dengan
perangkat lunak yang dikembangkan. Biasanya proses
melibatkan penemuan pada keinginan klien, menyusunnya di
dalam daftar kebutuhan, merancang arsitektur yang mampu

mendukung semua kebutuhan, perancangan, pengodean,


pengujian, dan peintegrasian bagian yang terpisah, menguji
keseluruhan, penyebaran dan pemeliharaan perangkat lunak.
The Software Engineering Body of Knowledge (SWEBOK)
membagi software engineering kedalam 10 area pengetahuan,
yaitu [3]:
1. Kebutuhan perangkat lunak
2. Perancangan perangkat lunak
3. Kontruksi perangkat lunak
4. Pengujian perangkat lunak
5. Pemeliharaan perangkat lunak
6. Manajemen konfigurasi perangkat lunak
7. Manajemen perangkat lunak
8. Proses perangkat lunak
9. Metode dan tool perangkat lunak
10. Kualitas perangkat lunak
Seperti halnya engineering yang lain, software engineering
yang tanpa alternatif digabungkan dengan empat elemen kunci
yaitu [3]:
Kelayakan: menemukan solusi yang terbaik untuk suatu
masalah.
Maksimaslisasi nilai: memaksimalkan nilai dari solusi
yang disediakan.
Strategi yang efektif: mengadopsi suatu strategi yang
efektif untuk mengembangkan solusi.
Pemodelan: perancangan suatu gambaran visual dari
tahap sebelum solusi sampai implementasinya.

mathematics (matematika), linguistics (ilmu bahasa)


dan art (seni) [1].
Dalam buku tersebut Pete McBreen berupaya
mengumpulkan manifesto-manifesto untuk pengembangan
perangat lunak (software development), dimana pengembangan
perangkat lunak ini ditujukan bagi mereka yang berasumsi
bahwa pengembangan perangkat lunak bukanlah sebuah
disiplin teknik atau ilmu. Melainkan sebuah keahlian atau
ketrampilan (craftsmanship).

Definisi Institute of Electrical and Electronics Engineers


(IEEE) pada rekayasa perangkat lunak mengatakan bahwa:
Aplikasi dari suatu sistem, disiplin, pendekatan dapat
dihitung untuk pengembangan,
operasi
dan
pemeliharaan perangkat lunak [3].
Software engineering dipandang sebagai bagian dari
sekelompok besar strategi dalam hubungannya dengan
permasalahan bisnis yang mempertimbangkan proses
pengembangan perangkat lunak sebagai suatu unsur penting
dan faktor kesuksesan kritis untuk keseluruhan perusahaan.

Gambar 1. Software Craftsmanship [2]

2.2 Software Craftsmanship


Software Craftsmanship dalam kamus bahasa Indonesia
diartikan sebaga software adalah perangkat lunak sedangkan
craftsmanship merupakan sebuah keahlian atau ketrampilan
dalam kerajinan tertentu. Sehingga dapat disimpulkan software
craftsmanship merupakan keahlian dalam membuat sebuah
perangkat lunak. Dimana kerajinan adalah perangkat lunak itu
sendiri. Namun bagaimana dengan software engineering,
bukan kah software engginering juga merupakan suatu
keahliaan.
Dalam buku Software Craftsmanship, Pete McBreen
menjelaskan bahwa:
Menjadi seorang software developer yang baik
melibatkan banyak aspek, tidak hanya sekedar belajar
untuk menulis program. Pengembangan perangkat
lunak adalah sebuah craft (kerajinan), menyatu dengan
science (ilmu pengetahuan), engineering (teknik),

Apakah Anda seorang pengguna, manajer atau pengembang,


itu tidak masuk akal untuk mempercayai seorang pengembang
perangkat lunak yang kurang pengalaman. Inilah sebabnya
mengapa kita focus pada software craftsmanship dari pada
software engineering. Proses terbaik tidak akan
menyelamatkan proyek dari kegagalan jika orang-orang yang
terlibat tidak memiliki keterampilan atau keahlian yang
diperlukan untuk melakukan proses tersebut. sebaliknya, hanya
pengembang yang benar-benar baik yang dapat membuat
proses bekerja [2].
Jadi dari penjelasan tersebut, software craftsmanship adalah
pengembangan perangkat lunak yang menyatu dengan seni,
ilmu pengetahuan, dan teknik. Bertujuan untuk memberikan
sistem yang efektif, yang dibuat oleh pengembang yang
berpengalaman dan terampil. Tidak membutuhkan pendekatan
sistematis, disiplin ilmu dan teknik, serta terukur.
2.2.1 Manifesto Software Craftsmanship
Pada bulan Maret 2009, setelah diskusi berkepanjangan di
software craftsmanship mailing list, dirancanglah sebuah
manifesto. Pada manifesto tersebut memiliki tujuan yaitu [2]:
Tidak hanya membuat perangkat lunak , namun juga
perangkat lunak yang dibuat dengang baik
Tidak hanya menanggapi perubahan, tetapi juga terus
memberikan nilai tambah tambah
Tidak hanya individualis dan interaksi, tetapi juga
komunitas profesional

Tidak hanya bekerjasama dengan pelanggan, tetapi juga


produktif / kemitraan
III. KESIMPULAN

Software
engineering
berbeda
dengan
software
craftsmanship. Namun antara Software engineering dan
software craftsmanship memiliki tujuan yang sama
pembangunan perangkat lunak (software development).
Software engineering lebih mengacu pada teknis dan disiplin
ilmu sedangkan software craftsmanship lebih mengutamakan
pada keahlian dan ketrampilan pengembang dalam
mengembangkan perangkat lunak.
REFERENSI
[1] McBreen, P. (2001). Software Craftsmanship: The New Imperative.
Addison-Wesley

Gambar 2. Manifesto software Craftmanship [4]

[2] Hoover, D. & Oshineye, A. (2009). Apprenticeship Patterns: Guidance for


the Aspiring Software Craftsman. OReilly. [Available onlinehttp://ofps.oreilly.com/titles/9780596518387/]
[3] Simarmata, Janner. 2010. Rekayasa Perangkat Lunak. Yogyakarta : Andi
[4] (2009) The Manifesto Software Craftsmanship website. [Online]. Available:
http://manifesto.softwarecraftsmanship.org/

Gambar 2. Grafik garis bagi yang melakukan signature di


manifesto software Craftsmanship [4]
2.3 Hubungan Software Engeneering dan Software
Craftsmanship dengan Software Development
Antara software engineering dan software craftsmanship
memiliki beberapa tujuan yang sama, antara lain:
Merupakan pengembangan perangkat lunak.
memenuhi apa yang dibutuhkan pelanggan.
Memberikan perangkat lunak berkualitas tinggi.
Memastikan rilis tepat waktu.
Meminimalkan risiko kegagalan.
2.4 Perbedaan antara Software Engeneering dan Software
Craftsmanship
Software engineering proses pengembangan perangkat
lunak yang mengacu pada aspek teknis dan disiplin ilmu
sehingga menghasilkan perangkat lunak yang ekonomis,
handal dan efisien. Software craftsmanship mengacu pada
pengasahan ketrampilan pengembang. Jadi pengembangan
perangkat lunak lebih mengutamakan pada keahlian dan
ketrampilan pengembang. Oleh karena itu pengembang dapat
melakukan proses software development dengan baik.

Anda mungkin juga menyukai