Kamis, 14 November 2013

Refleksi: Super

Pemahaman Saya Mengenai Software Process

Yang dapat saya pahami dari semua software process hanya model prototyping, model incremental, model RAD (Rapid Application Development), dan model waterfall. Prototyping menggunakan prototype dan lebih fokus pada kesesuaian software dengan yang diinginkan customer, incremental membagi satu software menjadi beberapa segmen kemudian dikerjakan secara terpisah, RAD membuat beberapa tim untuk mengerjakan sebuah software agar dapat diselesaikan dengan cepat, dan model waterfall merupakan bentuk awal dari software process yang lain dan mengerjakan semuanya secara sama rata

Apa Yang Saya Belum Mengerti

Yang saya belum mengerti dari software process yaitu tentang model spiral. Yang saya tau model spiral adalah gabungan dari model prototyping dan incremental yaitu spiral tidak membutuhkan banyak komunikasi dengan customer dan langsung membuat softwarenya dan mengembangkannya dengan update yang berulang. Tapi menurut apa yang saya pelajari semua software yang telah dibuat akan diupdate secara berkala, dengan kata lain model prototyping juga akan diupdate secara berkala, berarti prototyping dan model spiral sama-sama tidak membutuhkan banyak komunikasi dengan user dan diupdate secara berkala, kalau begitu apa bedanya?

Proses Pembelajaran

Yang saya kurang sukai dari pembelajaran di kuliah saya yaitu semua yang berpendapat dan bertanya akan diberi poin tertentu. Memang ini akan membuat mahasiswa jadi aktif tapi di sisi lain ini akan membuat pertanyaan-pertanyaan yang aneh dan asal keluar asal bisa dapat nilai dan sebagian waktu akan dihabiskan untuk menjawab pertanyaan ini dan yang memang mau belajar akan sulit mendapatkan waktu untuk bertanya. Menurut saya ini tidak perlu diberi poin, agar orang yang bertanya itu karena ingin tahu bukan ingin nilai

Yang mana yang lebih super, Prototyping atau Incremental?

Pengertian Prototyping dan Incremental

Sebelum saya menjelaskan perbedaannya, saya akan memastikan terlebih dahulu bahwa kita paham akan pengertian dari kedua metode software development di atas. Prototyping adalah software development yang menggunakan prototype, dan incremental adalah software development yang membagi sebuah software menjadi beberapa segmen dan kemudian dibuat secara terpisah.

Perbedaan Prototyping dan Incremental

Menurut saya perbedaan dari prototyping dan incremental yaitu prototyping lebih fokus pada aspek komunikasi antara user sedangkan incremental lebih pada kualitas software yang akan dibuat. Dengan demikian software yang dibuat dengan metode prototyping akan cenderung memiliki banyak bug atau tidak berjalan dengan baik sedangkan software yang dibuat dengan metode incremental bugnya dapat lebih mudah diperbaiki karena incremental menggunakan segementasi sehingga bugnya dapat dicek setiap setelah satu segmentasi diselesaikan. Namun di sisi lain software yang dibuat oleh prototyping akan lebih sesuai dengan apa yang diinginkan customer, dan komunikasi yang dilakukan di prototyping juga lebih cepat dan lebih mudah dibandingkan dengan model incremental. Model incremental juga memungkinkan customer untuk langsung mencoba segmen yang telah jadi dari software yang sedang dibuat sehingga elemen yang salah atau tidak sesuai dapat segera diperbaiki

Prototyping atau Incremental?

Manakah yang lebih layak dipakai metode prototyping atau metode incremental? Pasti kita sudah mulai bingung kira-kira metode yang mana yang lebih baik karena masing masing memiliki kekurangan dan kelebihan masing masing. Jika ditanya pertanyaan di atas saya juga tidak yakin bisa menjawab karena setiap metode mempunyai kelebihan dan kekurangan masing-masing jadi satu metode akan lebih layak di satu masalah tertentu dan tidak ada yang bagus untuk semua masalah. Tapi secara personal saya lebih memilih pengembangan software dengan metode prototyping karena metode prototyping jauh lebih simpel dan lebih sesuai untuk programmer gadungan seperti saya :P. Jadi ketika saya membuat sebuah software saya akan membuat dulu prototypenya dan kemudian memberikannya kepada customer dan jika ada yang kurang sesuai makan akan dilakukan update dan begitulah seterusnya

Nah kalau menurut kalian metode software development mana yang lebih baik? Mana yang akan kalian pilih?

Rabu, 13 November 2013

Supernya Prototyping

Pengertian

Prototyping adalah salah satu metode pengembangan software dengan menggunakan prototype agar dapat menyesuaikan software yang akan dibuat dengan apa yang diinginkan customer.

Mengapa menggunakan prototyping?

Mungkin banyak dari kita yang bertanya kenapa harus menggunakan prototyping atau kenapa metode prototyping itu ada. Ketika kita akan membuat sebuah software tentu kita akan menyesuaikannya dengan apa yang customer inginkan, mungkin jika customer dapat menjelaskan dengan rinci software yang dia inginkan maka tidak akan ada masalah, tapi bagaimana jika customer juga tidak tau seperti apa software yang dia inginkan atau tidak dapat mengatakannya dalam kata-kata? Di sini lah prototyping digunakan, dengan memberikan prototype kepada customer, seorang developer dapat lebih mengerti software seperti apa yang diinginkan oleh customer

Mekanisme

Mekanisme cara kerja prototyping adalah sebagai berikut:
  1. Analisa kebutuhan. Yaitu developer bertanya apa kebutuhan dari customer
  2. Membuat prototype.  Tahap dimana seorang developer membuat prototype berdasarkan kebutuhan dari customer
  3. Testing prototype. Developer memberikan prototype yang telah dibuat kepada customer, dan customer akan melihat apakah prototype yang dibuat sesuai dengan yang diinginkan customer, jika tidak maka akan kembali ke langkah pertama (analisa kebutuhan), jika sesuai maka akan dilanjutkan ke tahap berikutnya
  4. Coding. Developer mulai membuat software yang diinginkan customer
  5. Testing. Customer mencoba software yang telah dibuat oleh developer, jika sudah sesuai dengan yang diinginkan customer maka software siap dipakai, jika tidak maka kembali ke tahap coding

Tipe Protyping

Tipe prototyping ada 2 yaitu:
  1. Open-ended prototyping. Yaitu dimana prototype yang telah disepakati oleh customer dilanjutkan dan dibuat menjadi software yang diinginkan
  2. Close-ended prototyping. Yaitu dimana prototype yang telah disepakati oleh customer tidak dilanjutkan dan developer melakukan coding ulang untuk membuat software yang diinginkan

Kelebihan

Kelebihan prototyping dari metode pengembangan software lain yaitu:
  1. Komunikasi antara developer dan customer dapat berjalan dengan baik
  2. Software akan cenderung sesuai dengan apa yang diinginkan customer
  3. Tingginya tingkat partisipasi dari customer
  4. Customer mengetahui software yang dibuat

Kekurangan

Kekurangan prototyping dari metode pengembangan software lain yaitu:
  1. Mengurangi kreatifitas dari developer
  2. Terjadinya banyak bug pada saat maintenance karena pengembangan software hanya fokus untuk menyesuaikan software dengan kebutuhan customer