Jumat, 24 November 2017

Beberapa Model Pengembangan Software

1. Agile Development Methods

     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.
Secara garis besar tujuan dirumuskannya agile development methods, yaitu :

  1. High-value & working App system, diharapkan dengan memakai agile development methods dapat dihasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa berjalan dengan baik.
  2. Iterative, incremental, evolutionaryagile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner. Tim harus bekerja dalam waktu yang singkat(biasanya 1-3 minggu) dan juga selalu menambah fungsionalitas dari perangkat lunak sesuai dengan kebutuhan klien. Agile dapat dianalogikan ketika seseorang ingin pergi ke suatu kota dan dia tidak tahu jalannya. Lalu bagaimana dia bisa sampai tujuan? Dengan sering bertanya kepada orang yang dia temui dijalan hingga dia sampai di tempat tujuan.
  3. Cost control & value-driven development, salah satu tujuan dari agile 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.
  4. 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. Dengan melakukan tes setiap fungsionalitas perangkat lunak setelah selesei dibuat berarti agile juga mengakomodir kebutuhan ini.
  5. Flexible & risk management, jika kita menggunakan metode pembuatan yang biasanya dipakai, jika ingin mengubah fungsionalitas dari wireframe yang telah dibuat di butuhkan proses yang rumit. Mulai dari pertemuan dengan sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis produk hingga perubahan biaya produksi. Pertemuan dengan klien untuk melakukan tes perangkat lunak juga sering dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun bisa diminimalisir.
  6. Collaboration, dengan menggunakan agile, 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.
  7. Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan SDM lainnya. Dengan agiledeveloper dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.

2. Rapid Application Development

     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.
Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD melingkupi fase – fase sebagai berikut :

1.   Bussiness modeling
Aliran informasi di antara fungsi – fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan – pertanyaan berikut : informasi apa yang mengendalikan proses bisnis? Informasi apa yang di munculkan? Siapa yang memunculkanya? Ke mana informasi itu pergi? Siapa yang memprosesnya? 

2.   Data modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modelling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut atribut) masing – masing objek diidentifikasi dan hubungan antara objek – objek tersebut didefinisikan.

3.   Prosess modelling
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.

4.   Aplication generation
RAD mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memkai lagi komponen program yang ada ( pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada semua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.

5.   Testing and turnover

Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus di uji dan semua interface harus dilatih secara penuh.

3. Dynamic System Development Model Methodology

    Metode pengembangan sistem dinamis ( DSDM ) adalah kerangka penyampaian proyek tangkas, yang awalnya digunakan sebagai metode pengembangan perangkat lunakPertama kali dirilis pada tahun 1994, DSDM awalnya berusaha memberikan beberapa disiplin untuk metode pengembangan aplikasi cepat (RAD). Pada versi selanjutnya Kerangka Proyek Agile DSDM direvisi dan menjadi pendekatan generik untuk manajemen proyek dan pengiriman solusi daripada difokuskan secara khusus pada pengembangan perangkat lunak dan pembuatan kode, dan dapat digunakan untuk proyek non- Proyek TI.
Ada beberapa peran yang diperkenalkan di lingkungan DSDM. Adalah penting bahwa anggota proyek perlu diangkat ke peran yang berbeda sebelum mereka memulai menjalankan proyek. Setiap peran memiliki tanggung jawab tersendiri. Perannya adalah :
  • Executive Sponsor Jadi disebut "Project Champion". Peran penting dari organisasi pengguna yang memiliki kemampuan dan tanggung jawab untuk melakukan dana dan sumber daya yang tepat. Peran ini memiliki kekuatan tertinggi untuk membuat keputusan.
  • Visioner Orang yang memiliki tanggung jawab untuk menginisiasi proyek dengan memastikan bahwa persyaratan penting ditemukan sejak dini. Visioner memiliki persepsi yang paling akurat mengenai tujuan bisnis sistem dan proyek. Tugas lainnya adalah mengawasi dan menjaga proses pembangunan di jalur yang benar.
  • Duta Besar Pengguna Membawa pengetahuan tentang komunitas pengguna ke dalam proyek, memastikan pengembang cukup menerima masukan pengguna selama proses pengembangan.
  • Penasihat Pengguna Dapat menjadi pengguna yang mewakili sudut pandang penting dan membawa pengetahuan sehari-hari proyek.
  • Project Manager Dapat siapa saja dari komunitas pengguna atau staf TI yang mengelola proyek secara umum.
  • Technical Co-ordinator Bertanggung jawab dalam merancang arsitektur sistem dan mengendalikan kualitas teknis dalam proyek.
  • Team Leader Memimpin tim mereka dan memastikan bahwa tim bekerja secara efektif secara keseluruhan.
  • Solution Developer Menafsirkan persyaratan dan model sistem termasuk mengembangkan kode pengiriman dan membuat prototipe.
  • Solusi Tester Memeriksa kebenaran secara teknis dengan melakukan beberapa pengujian, meningkatkan cacat bila perlu dan menguji ulang sekali tetap. Tester harus memberikan beberapa komentar dan dokumentasi.
  • Scribe Bertanggung jawab untuk mengumpulkan dan mencatat persyaratan, kesepakatan, dan keputusan yang dibuat di setiap lokakarya.
  • Fasilitator Bertanggung jawab dalam mengelola kemajuan workshop, bertindak sebagai motor untuk persiapan dan komunikasi.
  • Arsitek Spesialis Bisnis Arsitek, Manajer Mutu, Sistem Integrator, dll.

4. Extreme Programing Methodology

Extreme programming ( XP ) adalah metodologi pengembangan perangkat lunak yang ditujukan untuk meningkatkan kualitas perangkat lunak dan daya tanggap terhadap perubahan kebutuhan pelanggan. Sebagai jenis pengembangan perangkat lunak tangkasini sering menganjurkan "rilis" dalam siklus pengembangan singkat, yang dimaksudkan untuk meningkatkan produktivitas dan mengenalkan pos pemeriksaan di mana persyaratan pelanggan baru dapat diadopsi.
Tujuan :
Extreme Programming Dijelaskan menggambarkan pemrograman ekstrem sebagai disiplin pengembangan perangkat lunak yang mengatur orang untuk menghasilkan perangkat lunak berkualitas lebih tinggi secara lebih produktif.
XP mencoba untuk mengurangi biaya perubahan persyaratan dengan memiliki beberapa siklus pengembangan pendek, bukan yang panjang. Dalam doktrin ini, perubahan adalah aspek alami dari proyek pengembangan perangkat lunak, yang tak terhindarkan dan diinginkan, dan harus direncanakan, alih-alih mencoba menentukan seperangkat persyaratan yang stabil.
Program ekstrem juga memperkenalkan sejumlah nilai dasar, prinsip dan praktik di atas kerangka pemrograman tangkas.

5. Scrum Development Methodology

Scrum adalah kerangka kerja untuk mengelola pengembangan perangkat lunakHal ini dirancang untuk tim 3-9 pengembang yang melanggar pekerjaan mereka ke dalam tindakan yang dapat diselesaikan dalam siklus durasi tetap (disebut "sprint"), melacak kemajuan dan rencana di harian 15 menit pertemuan stand-up, dan berkolaborasi untuk memberikan perangkat lunak yang dapat dikerjakan setiap sprint.
Peran :
Ada tiga peran inti dalam kerangka kerja Scrum. Ini idealnya terletak bersama untuk menghasilkan produk yang berpotensi shippable setiap sprint. Bersama-sama ketiga peran ini membentuk tim scrum. Sementara banyak organisasi memiliki peran lain yang terlibat dalam menentukan dan mengantarkan produk, Scrum hanya mendefinisikan ketiganya.

Pemilik Produk
beberapa tugas komunikasi dari pemilik produk kepada pemangku kepentingan :
  • menunjukkan solusi kepada pemangku kepentingan utama yang tidak hadir dalam tinjauan sprint
  • mendefinisikan dan mengumumkan rilis
  • mengkomunikasikan status tim
  • mengatur ulasan tonggak sejarah
  • mendidik para pemangku kepentingan dalam proses pembangunan
  • menegosiasikan prioritas, ruang lingkup, pendanaan, dan jadwal
  • memastikan backlog produk terlihat, transparan, dan jelas.

Tim Pengembang
Tim pengembang bertanggung jawab untuk mengirimkan produk berpotensi shippable yang meningkat setiap sprint (tujuan sprint). Tim memiliki tiga sampai sembilan anggota yang melaksanakan semua tugas yang diperlukan untuk membangun penambahan produk (analisis, perancangan, pengembangan, pengujian, penulisan teknis, dll.).
Tim pengembang di Scrum adalah pengorganisasian sendiri, walaupun mungkin ada interaksi dengan peran lain di luar tim, seperti kantor manajemen proyek (PMO).
Scrum Master
Tanggung jawab utama master scrum termasuk (namun tidak terbatas pada):
  • Membantu pemilik produk menjaga backlog produk dengan cara yang memastikan pekerjaan yang dibutuhkan dipahami dengan baik sehingga tim dapat terus maju terus.
  • Membantu tim menentukan definisi produk yang telah dilakukan, dengan masukan dari pemangku kepentingan utama
  • Melatih tim, dalam prinsip Scrum, untuk memberikan fitur berkualitas tinggi untuk produknya
  • Mempromosikan organisasi mandiri dalam tim
  • Membantu tim scrum untuk menghindari atau menghilangkan hambatan terhadap kemajuannya, baik internal maupun eksternal tim
  • Memfasilitasi acara tim untuk memastikan kemajuan reguler
  • Mendidik pemangku kepentingan utama dalam produk dengan prinsip Scrum
  • Melatih tim pengembangan dalam self-organization dan cross-functional

Tidak ada komentar:

Posting Komentar