Formulir Kontak

 

Software Development Process


Proses pengembangan perangkat lunak (Software development process) adalah suatu struktur yang diterapkan pada pengembangan suatu produk perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui tahap demi tahap. Proses ini memiliki beberapa model yang masing-masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang terjadi selama proses. Contoh model proses pengembangan perangkat lunak antara lain:

Agile Development Methodology 

Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang.

Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s Manifesto,diantaranya :

  1. Interaksi dan personel lebih penting daripada proses dan alat.
  2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
  3. Kolaborasi dengan klien lebih penting daripada negosiasi kontrak.
  4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.
Secara garis besar tujuan dirumuskannya agile development methods, yaitu :
  1. High-value & working App system
  2. Iterative, incremental, evolutionary
  3. Cost control & value-driven development
  4. High-quality production
  5. Flexible & risk management
  6. Collaboration
  7. Self-organizing, self-managing teams
Kelebihan dari agile
  • Meningkatkan kepuasan kepada klien.
  • Dapat melakukan review pelanggan mengenai software yang dibuat lebih awal.
  • Pembangunan system dibuat lebih cepat.
  • Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
  • Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi materi relatif kecil.
Kekurangan dari agile
  • Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  • Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
  • Tidak cocok dalam skala tim yang besar (>20 orang).
  • Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.


Rapid Application Development (RAD)
Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk model ini. Rapid application development menggunakan metode iteratif (berulang) dalam mengembangkan sistem di mana working model (model bekerja) sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement) user dan selanjutnya disingkirkan. Working model digunakan kadang-kadang saja sebagai basis desain dan implementasi sistem final.

Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan :
  1. Component based construction ( pemrograman berbasis komponen bukan prosedural).
  2. Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
  3. Pembangkitan kode program otomatis/semi otomatis.
  4. Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tetapi tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun.

Kelebihan dari RAD
  • RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada (reusable object) sehingga pengembang tidak perlu membuat dari awal lagi dan waktu yang lebih singkat.
  • Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efisien.
Kekurangan dari RAD
  • Tidak cocok untuk proyek skala besar.
  • Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi.
  • Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
  • Resiko teknis yang tinggi juga kurang cocok untuk model ini.
  • Penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
  • Kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
  • Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
  • Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.


Dynamic System Development Method (DSDM)
Dynamic System Development Method (DSDM) Merupakan Metodologi Pengembangan Software yang dikembangkan oleh Konsorsium Vendor dan Para Expert dalam bidang pengembangan Sistem Informasi(IS) di United Kingdom pada tahun 1990 dan pertamakali go public pada tahun 1995. Metodologi ini merupakan pengembangan tahap lanjut dari metode Rapid Application Development (RAD) yang sangat menerapkan  metode incremental dan iteratif. metode ini sangat ideal digunakan ketika suatu software dituntut untuk sangat fokus dan mementingkan tampilan yang mudah dan aspek kegunaan yang baik dari produk tersebut.

DSDM memiliki 8 prinsip yang sangat penting dalam implementasinya. menyepelekan salah satunya akan merusak filosofi kerangka kerja dan meningkatkan resiko kegagalan.
  1. Fokus pada kebutuhan bisnis
  2. Memberikan tepat waktu
  3. Berkolaborasi
  4. Jangan kompromi soal kualitas
  5. Membangun secara bertahap
  6. Mengembangkan Iterasi
  7. Berkomunikasi terus menerus dan jelas
  8. Menunjukkan kontrol.
Manajemen proyek yang tradisional menggunakan "Milestones" dalam menandai pencapaiannya. DSDM berbeda, DSDM menggunakan teknik "Timeboxing" dalam menandai pencapainnya yang biasannya berjangka waktu 2,4 atau enam pekan. beberapa teknik utamanya adalah sebagai berikut :
  1. Timebox
  2. MoSCoW Rules
  3. Prototyping
Kelebihan (DSDM)
  • Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan
  • Membangun software dengan cepat
  • DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP
Kelemahan (DSDM)
  • Setiap iterasi bergantung pada prototype sebelumya
  • Menentukan scope dari suatu prototype proyek tidak pernah selesai
  • Dokumentasi sering kali tidak lengkap fokus pada pembuatan prototype
  • Isu-isu mengenai system backup and recoverysystem performance dan system security kurang/tidak diperhatikan dan sering terlupakan


Extreme Programming Methodology

Extreme Programming adalah suatu model yang termasuk dalam pendekatan agile yang diperkenalkan oleh Kent Back. “Extreme Programming (XP) adalah metode pengembangan software yang cepat, efisien, beresiko rendah, fleksibel, terprediksi, scientific, dan menyenangkan“. Model ini cenderung menggunakan pendekatan Object-Oriented. Tahapan-tahapan yang harus dilalui antara lain: Planning, Design, Coding, dan Testing. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat.

Core Value Extreme Programming, yaitu:
  1. Komunikasi (Communication)
  2. Kesederhanaan (Simplicity)
  3. Umpan balik (Feedback)
  4. Keberanian (Courage).
Extreme Programming tepat untuk dipergunakan untuk pembuatan program yang:
  1. Membutuhkan perubahan yang cepat (misalnya: Game Mobile)
  2. Proyek beresiko tinggi dengan tantangan yang berat
  3. Tim programmer sedikit, yaitu sekitar 2–10 orang
  4. Adanya permintaan dari pelanggan secara langsung
Kelebihan Extreme Programming :
  • Meningkatkan kepuasan kepada klien
  • Pembangunan system dibuat lebih cepat
  • Menjalin komunikasi yang baik dengan client.
  • Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kelemahan Extreme Programming :
  • Cerita-cerita yang menunjukkan requirements dari pelanggan kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  • Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
  • XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.


Scrum Development Methodology

Scrum merupakan framework untuk manajemen pengembangan software dengan karakteristik cekatan dan bersifat iteratif dan incremental. Scrum mendefinisikan dirinya fleksible, strategi pengembangan yang menyeluruh di mana seluruh team bekerja sebagai satu unit dalam mencapai sebuah gol yang sama. Dalam menjalankan kerjasama antara anggota team, scrum menekankan lokasi fisik yang sama atau sarana online yang akrab antara semua member, dan juga pertemuan muka dengan muka setiap hari antara semua anggota team. Prinsip kunci dari scrum adalah memahami bahwa dalam project yang tengah berlangsung, klien mungkin mengubah apa yang menjadi kebutuhan dan keinginannya. Perubahan sulit diadaptasi oleh framework pengembangan aplikasi yang bersifat tradisional.  Scrum menerima perubahan ini dan memaksimalkan seluruh anggota team untuk menyesuaikan perubahan mendadak ini. Scrum mengadopsi permainan Rugby yang begitu mudah menyesuaikan diri semua anggota team setelah ada sedikit pelanggaran. Kemudian menyesuaikan diri inilah yang mengimpirasi scrum.
Scrum mempunyai 3 Role
  1. Product Owner
    Pengertian produk adalah tujuan dari proyek. Product Owner memastikan bahwa proyek berjalan sesuai yang diharapkan. Product Owner merupakan penjembatan antara client dengan team development. Product Owner akan menuliskan spesifikasi-spesifikasi sesuai cara pandang client, di lain pihak harus punya empati terhadap anggota team.
  2. Team Member
    Dilihat dari namanya jelas yaitu anggota-anggota team.
  3. Scrum Master
    Scrum Master akan mencegah hal-hal yang mengalihkan focus team. Scrum master akan membuat suasana kondusif supaya team dapat bekerja sama dalam mencapai goal.
Proses penting dalam Scrum antara lain:
  • Backlog refinement
  • Sprint planning
  • Daily Scrum
  • Sprint review meeting
  • Sprint retrospective meeting
Kelebihan scrum
  • Keperluan berubah dengan cepat.
  • Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain.
  • Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat.
  • Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun.
  • Proses Scrum mampu menyatakan bahwa produk selesai kapan pun diperlukan.
Kekurangan scrum
  • Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  • Lemah dalam perencanaan arsitektur


Lokasi:

Total comment

Author

Noga

0   komentar

Cancel Reply