Anda di halaman 1dari 7

Tugas Pak Sudarto Software development

Software development erat kaitannya dengan metodologi dan proses


pengembangan perangkat lunak dimana mengutamakan keterlibatan pengguna.
Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak
sangatlah penting ketika menggunakan software development. Klien menjadi
bagian dari tim pengembangan perangkat lunak karena pada dasarnya fungsi-
fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicaraka,
diimprovisasi dan disesuaikan dengan keinginan klien. Software development
memiliki pengertian bersifat tangkas, cepat, ringan, bebas bergerak, dalam
pengembangan perangkat lunak dengan menggunakan metode Software
development dibutuhkan ketangkasan, inovasi, fleksibilitas dan tanggung jawab
oleh tim pengembang dan klien dengan tujuan tim dapat bekerja seimbang,
perangkat lunak yang dihasilkan memiliki kualitas yang baik, serta sesuai dengan
keinginan klien. Praktisi pengembang perangkat lunak pada umumnya sering
menggunakan Software development dalam pengembangan perangkat lunaknya.

Software development juga dapat didefinisakan sebagai :


1. Interaksi dan personal, dibutuhkan interaksi yang baik antara anggota
atau personal pengembang karena tanpa adanya hal tersebut
pengembangan perangkat lunak tidak akan berjalan dengan baik
2. Perangkat lunak yang berjalan, hal ini berfungsi pada saat melakukan
meeting (demonstrasi) kepada klien. Perangkat lunak yang masih dalam
proses akan lebih berguna dari sekedar dokumentasi
3. Kolaborasi dengan klien, ini merupakan ciri dari software development
dimana mengutamakan keterlibatan dan kolaborasi dari klien
4. Respon terhadap perubahan, sesuai dengan namanya software
development berfokus terhadap kecepatan respon tim ketika klien
menginginkan perubahan saat proses pembuatan perangkat lunak
2.1 Model Proses atau metode-metode pada Software Development
Terdapat 20 model proses atau metode pada software development, dalam
makalah ini hanya akan dibahas beberapa metode yang diulas dalam jurnal
internasional, diantaranya :
a. Extreme Programming
Ektreme programming merupakan metode pada software development
yang sering digunakan. XP (Extreme progreamming) didasarkan pada :
1. Communication
2. Simplicity
3. Feedback
4. Courage
dalam extreme programin pelanggan akan memberikan kebutuhan
mereka dalam bentuk cerita yang pada dasarnya bersifat non-teknis.
Cerita dari pelanggan selanjutnya akan diubah menjadi tugas, dalam
pembangunan perangkat lunak akan berlangsung iterasi kecil dimana
setiap iterasi sekelompok tugas akan dibahas. Pelanggan akan terlibat
untuk memperoleh feed back yang cepat. Pengujian akan di lakukan
dalam bentuk unit test dan accetance test.
b. Adaptive Software Development (ASD)
Teknik atau metode ini biasanya digunakan untuk membangun software
dan sistem yang kompleks. Filosofi yang mendasari adaptive software
development adalah kolaborasi manusia dan tim yang mengatur diri
sendiri. Sistem kerja adaptive software development adalah collaboration
and learning.
Collaboration : bermotivasi tinggi untuk bekerja sama, saling melengkapi,
rela membantu, kerja keras, terampil di bidangnya, dan
mengkomunikasikan masalah untuk menyelesikan masalah secara efektif.
Learning : tim developer sering merasa sudah tahu semua hal tentang
proyek, padahal tidak selamanya begitu. Karena itu proses ini membuat
mereka belajar lebih tentang proyek melalui tiga cara:
1. Fokus grup, klien dan pengguna memberi masukan terhadap
perangkat lunak.
2. Formal Technique Reviews, tim ASD lengkap melakukan review.
3. Postmortems, tim ASD melakukan instrospeksi pada kinerja dan
proses.
c. Scrum
Scrum merupakan salah satu development method yang paling populer.
Kegiatan pada metode ini diantaranya :
1. Sprint Planning
2. Sprint Review
3. Scrum Meeting
Scrum Master memfasilitasi harian Pertemuan Sprint (Rapat perencanaan
pembuatan perangkat lunak dilakukan 2 - 4 minggu sekali) dengan pemilik
produk dan tim, di mana di setiap individu akan menjelaskan status tugas
mereka saat itu dan apa yang akan mereka lakukan hari berikutnya.
Sebuah Sprint review biasanya membentang sekitar dua sampai empat
minggu, dimana setiap tim harus memiliki perangkat lunak bekerja.
d. Dynamic Systems Development Method (DSDM)
Metode DSDM merupakan perpanjangan dari Rapid Application
Development. DSDM menekankan pada keterlibatan terus pelanggan.
DSDM adalah metode yang lebih cocok untuk proyek-proyek yang
memiliki keterbatasan waktu dan anggaran.
Siklus hidup DSDM Project memiliki 4 tahap
1. Studi
2. Fungsional Model Iterasi
3. Desain dan Build
4. Pelaksanaan
 
DSDM memberikan pendekatan berulang tambahan dan juga
memberikan beberapa teknik inti yang disebut time boxing, Prototyping,
Pengujian, Workshop dll. Tujuan utama dari metode DSDM adalah untuk
menjaga Proyek serta mengendalikan waktu dan anggaran.
e. Crystal Methods
Crystal Method dimulai sebelum software development dan merupakan
salah satu pendiri metodologi tangkas. Metode ini memiliki 3 Prioritas
dan 3 Properti, diantaranya :
1. prioritas: Keselamatan, Efisiensi, Habitability
2. properti: Frequent Delivery, Peningkatan Reflektif, Komunikasi
tertutup
 crystal method adalah keluarga dari Adaptive, Ultra-light dan Stretch-to-
fit metodologi dan lebih difokuskan pada Orang daripada proses atau
arsitektur
f. Feature Driven Development (FDD)
Feature driven development merupakan sebuah model pengembangan
perangkat lunak yang berdasarkan pada fitur yang akan dibuat.
Keuntungan dari metode feature driven development :
1. User dapat menggambarkan dengan mudah bentuk sistem yang akan
dibuat.
2. Dapat diorganisasikan atau diatur ke dalam kelompok bisnis sesuai
hirarki yang ada.
3. Desain dan kode lebih mudah diperiksa secara efektif.
4. Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh
fiturnya

2.2 Prinsip software Development


Software development menetapkan dua belas prinsip untuk
memandu/mengontrol metode-metode pada software development yang
berbeda-beda. Agar suatu tim berhasil dalam menerapkan software
development methods, maka tim tersebut harus mengikuti dua belas prinsip
tersebut. Keduabelas prinsip itu diantaranya:
1. Prioritas utama proses software adalah memberikan kepuasan terhadap
pelanggan dengan penyampaian hasil perangkat lunak yang bernilai
secara cepat dan berkesinambungan
2. Menyambut perubahan kebutuhan, walaupun terlambat dalam
pengembangan perangkat lunak. Proses software memanfaatkan
perubahan untuk keuntungan kompetitif klien.
3. Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka
waktu beberapa minggu sampai beberapa bulan, dengan preferensi
kepada jangka waktu yang lebih pendek.
4. Rekan bisnis dan pengembang perangkat lunak harus bekerja sama tiap
hari sepanjang proyek.
5. Kembangkan proyek di sekitar individual yang termotivasi. Berikan
mereka lingkungan dan dukungan yang mereka butuhkan, dan percayai
mereka untuk menyelesaikan pekerjaan dengan baik.
6. Metode yang paling efisien dan efektif untuk menyampaikan informasi
dari dan dalam tim pengembang perangkat lunak adalah dengan
komunikasi secara langsung.
7. Perangkat lunak yang bekerja adalah ukuran utama kemajuan.
8. Proses software menggalakkan pengembangan berkelanjutan. Sponsor-
sponsor, pengembang-pengembang, dan pengguna-pengguna dapat
mempertahankan kecepatan tetap secara berkelanjutan.
9. Perhatian yang berkesinambungan terhadap keunggulan teknis dan
rancangan yang baik meningkatkan Agility.
10. Kesederhanaan (memaksimalkan sumber daya yang tersedia) adalah hal
yang amat penting.
11. Arsitektur, kebutuhan, dan rancangan perangkat lunak terbaik muncul
dari tim yang yang dapat mengorganisir diri sendiri.
12. Secara berkala, tim pengembang berefleksi tentang bagaimana untuk
menjadi lebih efektif, kemudian menyesuaikan dan menyelaraskan
kebiasaan bekerja mereka.

Prinsip-prinsip tersebut juga merupakan bentuk usaha untuk menyiasati tiga


masalah yang biasanya dihadapi saat proses pembuatan perangkat lunak,
diantaranya :
1. Kebutuhan perangkat lunak sulit diprediksi dari awal dan selalu akan
berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya
proyek.
2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan
seberapa jauh desain yang diperlukan sebelum pembangunan.
3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan
seperti yang diinginkan.

2.3 Tujuan Software Development


a. High-value & working App system, dengan menggunakan software
development methods akan menghasilkan perangkat lunak yang
mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan
perangkat lunak bisa berjalan dengan baik.
b. Collaboration, dengan menggunakan software development, tim
pengembang diharuskan sering bertemu untuk membahas
perkembangan proyek dan feedback dari klien yang nantinya akan
ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi
dengan maksimal.
c. Iterative, incremental, evolutionary, software development adalah
metode pengembangan perangkat lunak yang iteratif, selalu mengalami
perubahan, dan evolusioner.
d. Cost control & value-driven development, salah satu tujuan dari software
development yaitu pengembangan perangkat lunak disesuaikan dengan
kebutuhan pengguna, tim bisa dengan cepat merespon kebutuhan yang
diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat
lunak bisa dikontrol.
e. High-quality production, walaupun biaya pembuatan perangkat lunak bisa
ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari
perangkat lunak yang dibuat harus tetap dijaga.
f. Flexible & risk management

2.4 Keuntungan dan Permasalahan Dalam Software Development


a. Keuntungan menggunakan metode software development
1. Meningkatkan komunikasi dan koordinasi antar anggota tim
2. Pengembang membuat demo yang dapat rilis setiap beberapa minggu
bukannya setiap beberapa bulan atau tahun (quick release).
3. Lebih dinamis serta mendukung real-time tracking
4. Reasonable Process
5. Kepuasan klien dan kualitas perangkat lunak terjamin
6. Fleksibilitas desain
b. Kekurangan atau permasalahan pada software development
1. Software development tidak akan berjalan dengan baik jika komitmen
tim kurang.
2. Tidak cocok dalam skala tim yang besar.
3. Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.
4. Kekhawatiran saat berkoordinasi dengan tim lain

Anda mungkin juga menyukai