Rabu, 04 Desember 2013

Waterfall Game Vs Rapid Prototyping Game Vs Incremental Game



Seperti yang terlihat pada postingan sebelumnya, diantara 3 game hanya ada 1 game yang bisa saya dapatkan nilai 100 yaitu Incremental Game. Masing-masing game tersebut memiliki tingkat kesulitan yang berbeda-beda. Namun, menurut saya yang paling susah adalah Waterfall game. Kenapa demikian? Hal ini saya katakan karena pada Waterfall game terdapat sistem gaji untuk setiap software engineernya. Sedangkan pada Incremental dan Rapid Prototype hanya batasan waktu saja. Selain itu, pada Waterfall game juga tahapan-tahapan yang dilakukan harus berurutan dan juga ketika customer melakukan perubahan, maka yang harus kita lakukan adalah mengecek kembali dari awal dan hal tersebut sangat melelahkan. Untuk Rapid Prototype awalnya saya lihat gampang karena mirip dengan Incremental yang hanya dibatasi oleh waktu saja. Namun, semua terbantahkan ketika melihat proses pemilihan bahasa untuk prototype dan juga implementasinya. Hal ini masih wajar-wajar saja sebab saya bisa lakukan tes berulang-ulang kali untuk memilih bahasa apa yang baik digunakan. Yang membuat kepala pusing tidak karuan adalah perbandingan antara persentase prototype dengan persentase evaluasi customer juga harus diperhitungkan. Belum waktu yang disediakan cukup sedikit sehingga harus betul-betul menggunakan waktu yang disediakan dengan sebaik mungkin dan hasilnya harus semaksimal mungkin. Oleh karena itu, saya menyimpulkan bahwa Rapid Prototype masih susah untuk dimainkan. Sedangkan dari semua itu, ada 1 yang cara mainnya sederhana saja yaitu Incremental game. Kenapa saya katakan cara mainnya sederhana? Karena software engineer pada Incremental game sudah dijelaskan secara terperinci ahli dibidang apa. Proyek yang dikerjakan juga tidak harus berurutan, yang penting semua tahapan dalam setiap modul mencapai nilai 100 dan semua modul selesai dikerjakan serta tidak melewati batas waktu maka skor yang didapatkan sudah pasti 100. Dari deskripsi itu semua, saya menyimpulkan bahwa Waterfall game yang memiliki tingkat kesulitan paling tinggi, kemudian Rapid Prototype game, dan yang paling mudah adalah Incremental game.

Strategi SimSE Incremental Game



Pada incremental game terdapat 4 modul yang harus diselesaikan dalam batas waktu 200 ticks time. Penyelesaian modulnya cukup mudah sebab modul yang diselesaikan tidak perlu berurutan dari modul 1. Dalam setiap modul, yang harus diselesaikan ada 5 yaitu:

  • Requirements

  • Design

  • Implement

  • Difficulty Analysis

  • Risk Analysis

Setelah 5 pekerjaan tersebut selesai, maka harus dilakukan Integrate. Pada game ini terdapat 4 orang software engineer yaitu : Amy, Bob, Karl, dan Lola.
Amy jago dalam “Implement dan expert dalam hal coding oleh karena itu Amy saya berikan pekerjaan “Implement
Bob jago dalam hal “Design sehingga persoalan “Design” saya serahkan kepada Bob
Karl memiliki skill yang cukup merata. Untuk Karl saya berikan pekerjaan Difficulty Analysis dan Risk Analysis
Yang terakhir Lola yang memiliki skill yang cukup terbatas, saya berikan tugas Requirements saja.

Proses pengerjaannya saya mulai dari modul 1 supaya tidak membingungkan. Masing-masing software engineer tidak boleh ada yang nganggur (tidak melakukan apa-apa). Karl sangat cepat menyelesaikan Difficulty Analysis, oleh karena itu lanjutkan saja pekerjaan Karl di modul 2 dan seterusnya. Hal ini berlaku untuk semua software engineer, setiap perkerjaannya selesai maka dilanjutkan saja ke modul berikutnya. Tidak perlu menunggu modul yang sedang dikerjakan selesai total. Dalam proses pengerjaannya suatu saat customer akan melakukan perubahan pada modul. Hal ini ditandai pada event yang mengatakan “The customer has made a change to a modul”. Pada saat hal ini terjadi, maka kita harus mengecek ke bagian artifacts dan melihat modul yang mana yang accuracynya mengalami penurunan. Apabila cuma 1 modul saja, maka hentikan pekerjaan yang sedang dilakukan Amy lalu berikan Amy pekerjaan yang baru yaitu Evolve Code. Ketika selesai, lanjutkan kembali pekerjaan Amy yang kita hentikan tadi. Ketika modul yang diubah ada 2 maka yang melakukan “Evolve Code adalah Amy dan Karl. Begitu pula selanjutnya, ketika modul yang diubah ada 3 maka yang melakukan “Evolve Code” adalah Amy, Karl, dan Bob. Orang terakhir yang melakukan “Evolve Code adalah Lola karena Lola lama dalam mengerjakannya. Hal ini terjadi apabila ada 4 Modul yang diubah. Utamakan Amy yang mengerjakan “Evolve Code untuk menghemat waktu. Sehingga apabila Amy selesai “Evolve Code pada modul 1 misalnya, sedangkan “Evolve Code di modul 2 belum selesai maka suruh Amy yang mengambil tugas tersebut. Mengambil tugas bukan join dalam tugas tersebut. Misalnya “Evolve Code pada modul 2 dikerjakan oleh Karl, maka hentikan pekerjaan Karl kemudian serahkan “Evolve Code kepada Amy. Apabila kondisinya harus Lola ikut serta dalam “Evolve Code, maka utamakan Lola yang digantikan pertama oleh Amy. Usahakan point Requirements, Design, Implement, Difficulty Analysis, dan Risk Analysis tetap 100. Apabila ada yang sudah selesai dengan pekerjaannya, misalnya Bob telah selesai Design seluruh modul, maka suruh software engineer tersebut melakukan integrate modul yang sudah siap (point Requirements, Design, Implement, Difficulty Analysis, dan Risk Analysis sudah 100). Selalu cek modul-modul di bagian artifacts untuk melihat point pekerjaan yang mana yang sedang mengalami penurunan. Ketika 4 modul sudah selesai diintegrate maka yang dilakukan tinggal menyerahkan kepada customer yaitu dengan cara “Submit final product to customer” terus pilih semua modul lalu ok. Point yang kalian dapatkan pasti 100 dengan syarat ticks time belum lewat dari 200 dan point setiap pekerjaan yang ada tetap 100.


Skor yang saya dapatkan adalah 100


Sumber : http://www.ics.uci.edu/~emilyo/SimSE/downloads.html

Strategi SimSE Rapid Prototyping Game



Pada Rapid Prototyping game, yang harus dilakukan adalah menyelesaikan sebuah proyek dalam batas waktu 825 ticks time. Disini terdapat 5 orang software engineer akan tetapi dalam pengerjaan proyek tidak perlu membagi tugas apa-apa sebab semuanya dikerjakan secara bersama-sama. Yang harus dilakukan pada awal main adalah memilih prototyping language dan implementation language. Setelah saya mencoba beberapa kali dengan menggunakan metode saya, prototyping language yang paling terbaik adalah Visual Basic karena dalam pengerjaannya jauh lebih cepat jika dibandingkan dengan Java ataupun C++ . Untuk implementation language, Visual Basic tidak bagus karena banyak terjadi eror ketika dilakukan implement. Oleh karena itu, saya memilih Java untuk implementation. Sebenarnya, baik Java maupun C++ sama saja karena ketika sama mencoba mengganti Java menjadi C++ dengan menggunakan metode yang sama, hasil yang saya dapatkan tetap sama. Setelah memilih, lakukan “Outline Requirements With Customer”. Seperti yang telah saya katakan di atas, semua pengerjaannya harus menyertakan seluruh software engineer. Setelah itu, lakukan “Develop Prototype”. Ketika sedang berjalan, tiba-tiba kegiatan terhenti karena customer mau melihat prototype. Abaikan saja sampai persentase prototype menjadi 100 (persentase ini dapat dilihat pada bagian artifacts item yang pertama). Barulah setelah itu hasil prototype diberikan kepada customer untuk dievaluasi. Pilih “Have customer evaluate prototype”. Setelah persentase evaluasi sudah mencapai 100, maka akan terjadi penurunan pada persentase prototype. Maka perlu dilakukan “Develop Prototype” kembali. Namun, apabila kita melakukan “Develop Prototype” sampai 100 kembali, maka akan membuang banyak waktu sedangkan waktu yang diberikan terbatas. Disinilah saya lakukan metode penghematan waktu dengan menggunakan fitur Advance Clock. Atur waktunya menjadi 30 pada kolom di bawah tulisan “Advance Clock”. Lakukan “Develop Prototype” kemudian klik “Advance Clock” bukan “Next Event”. Hentikan “Develop Prototype” kemudian berikan kembali kepada customer untuk dievaluasi. Persentase evaluasi wajib kembali menjadi 100 oleh karena itu klik “Next Event” saja untuk mempercepat. Lakukan “Develop Prototype” kembali dengan batas waktu 30 ticks time seperti yang dilakukan sebelumnya. Kemudian hentikan “Develop Prototype” lalu serahkan kembali ke customer untuk dievaluasi. Ingat, persentase evaluasi wajib 100. Setelah itu lakukan “Develop Prototype” sekali lagi untuk terakhir kalinya namun dalam batasan waktu 24 ticks time saja. Hentikan “Develop Prototype” kemudian serahkan kembali ke customer untuk dievaluasi terakhir. Setelah persentase evaluasi menjadi 100, lakukan “Create requirements specification”. Lakukan sampai persentase menjadi 100 (lihat pada item kedua di bagian artifacts). Kemudian lakukan “Design system”. Sama seperti sebelumnya, lakukan hingga persentase menjadi 100 (dapat dilihat pada item ketiga di bagian artifacts). Setelah selesai, lakukan “Implement system” dan tunggu sampai persentase menjadi 100 (lihat item keempat pada bagian artifacts). Setelah itu, hal terakhir yang dilakukan adalah menyerahkan kepada customer. Pilih “Deliver final product to customer”. Game sudah selesai dengan maksimal skor yang saya dapatkan adalah 98.


Sumber : http://www.ics.uci.edu/~emilyo/SimSE/downloads.html

Strategi SimSE Waterfall Game



Pada Waterfall game, terdapat sebuah proyek yang memiliki batas waktu dan juga uang. Disini terdapat 7 orang software engineer dengan pengalaman yang berbeda-beda. Untuk menghemat pengeluaran, Roger langsung saya pecat karena tidak berguna karena pengalamannya masih sedikit. Untuk software engineer yang lain, ada beberapa yang saya naikkan gajinya untuk menaikkan mood dan energy, antara lain:
Andre menjadi 40
Anita menjadi 40
Emily menjadi 35
Pedro menjadi 30
Setelah itu, beli semua tools yang ada untuk mempercepat pengerjaan.
Terdapat 4 tahapan dalam pengerjaan proyek ini yaitu : Requirements, Design, Code, dan System Test Plan. Masing-masing tahapan tersebut harus memiliki poin 100 untuk mendapatkan skor tertinggi. Tahapan tersebut juga harus dikerjakan berurutan mulai dari Requirements lalu Design lalu Code dan terakhir System Test Plan. Masing-masing software engineer memiliki kemampuan dan pengalaman masing-masing serta ketidaksukaan pada suatu pekerjaan. Oleh karena itu, setelah melihat kemampuan dan pengalaman masing-masing software engineer saya membagi tugas pengerjaannya sebagai berikut.

Requirements dikerjakan oleh Andre, Anita, Calvin, Emily, dan Pedro.
Design dikerjakan oleh Andre, Anita, dan Emily.
Code dikerjakan oleh Andre, Calvin, Emily, dan Pedro.
System Test Plan dikerjakan oleh Andre, Emily, Mimi, dan Pedro.

Kita mulai saja dari awal yaitu Requirements. Lakukan “Create Requirements Document” dan tunggu persentase selesainya hingga 100. Apabila di tengah jalan muncul event “The customer just gave us some new requirements!” abaikan saja dahulu dan lanjutkan sampai persentase menjadi 100. Setelah itu barulah kita lakukan “Review requirements document”. Setelah itu lakukan “Correct the requirements document”. Setelah eror pada requirement sudah tidak ada, maka kita lanjutkan ke tahapan Design. Lakukan “Create the design document” dan tunggu sampai persentase menjadi 100. Sama seperti sebelumnya apabila muncul event “The customer just gave us some new requirements!” maka selesaikan terlebih dahulu hingga persentase menjadi 100. Setiap muncul event “The customer just gave us some new requirements!” dan pekerjaan yang sedang dilakukan telah selesai, maka kita harus mengecek kembali dari awal yaitu dari Requirements lakukan tahapan yang sama yaitu “Review requirements document” lalu “Correct the requirements document”. Apabila persentasenya menurun maka lakukan terlebih dahulu “Create Requirements Document” lalu “Review requirements document” dan terakhir “Correct the requirements document”. Hal ini juga berlaku pada design. Setelah itu lakukan “Review the design document” lalu lakukan “Correct the design document” hingga eror pada design sudah tidak ada. Setelah itu kita lanjutkan ke Code, lakukan “Create code” dan tunggu hingga persentase menjadi 100 setelah itu lakukan “Integrate code” lakukan juga hingga persentase menjadi 100. Apabila terdapat eror maka lakukan “Correct code”. Setelah itu lakukan “Create the system test plan” lalu tunggu hingga persentase menjadi 100. Lalu lakukan “Review the system test plan”. Setelah itu lakukan “Correct the system test plan” hingga eror menjadi 0. Setelah 4 tahapan sudah mencapai point 100 maka lakukan “Do system test”. Setelah itu, cek pada bagian code apakah terdapat eror atau tidak, kalau terdapat eror maka lakukan kembali “Correct code”. Setelah itu lakukan kembali “Do system test” dan cek kembali apakah masih ada eror atau tidak. Lakukan hal ini sampai eror pada bagian code tidak ada (0). Setelah itu yang dilakukan terakhir kali adalah menyerahkan kepada customer yaitu dengan cara “Deliver product to customer”.

Berikut perincian lebih jelas tahapan-tahapan yang dilakukan apabila terjadi event “The customer just gave us some new requirements!”
Selesaikan dahulu pekerjaan yang sedang berlansung lalu lakukan pengecekan dari tahapan awal:
Untuk Requirements:
“Create Requirements Document” -> “Review requirements document” -> “Correct the requirements document”.
Untuk Design:
“Create the design document” -> “Review the design document” -> “Correct the design document”
Untuk Code:
“Create code” -> “Integrate code” -> “Correct code”
Untuk System Test Plan:
“Create the system test plan” -> “Review the system test plan” -> “Correct the system test plan”
Pastikan nilai setiap tahapan tetap 100 dan tidak terdapat eror maka akan didapatkan skor tertinggi.

Skor yang saya dapatkan adalah 99



Rabu, 13 November 2013

Refleksi: Metode Pembelajaran RPL



Dari awal perkuliahan, yang saya rasakan sama seperti mata kuliah lainnya. Selalu ada rasa jenuh dalam proses pembelajaran. Terlebih lagi apabila proses perkuliahan yang selalu sama dan monoton. Yang ada dipikiran bukan materi perkuliahan akan tetapi pertanyaan-pertanyaan seperti “Kapan dosennya selesai?”, “Kapan dosennya keluar?”, dan masih banyak yang lain. Hal ini membuat kebanyakan mahasiswa menjadi malas, yang pada akhirnya membuat mahasiswa tersebut gagal pada mata kuliah itu. Namun, setelah mengikuti perkuliahan ini saya melihat ada sesuatu yang cukup berbeda. Perbedaan ini terdapat pada proses pembelajaran kelompok.

"Kenapa bisa?" "Bukannya pembelajaran kelompok sama saja dengan pembelajaran kelompok pada mata kuliah lain?" Materi diberikan kepada kelompok, lalu dibahas dalam kelompok, dipresentasikan, kemudian didiskusikan bersama-sama. Nah, ini juga yang awalnya terlintas dalam pemikiran saya. Namun, kenyataan yang terjadi berbeda. Kalau dikatakan seperti demikian, pasti yang paling pertama ditanyakan adalah “Dimana Perbedaannya?” Pemahaman ini juga baru saya dapatkan. Oleh karena itu saya akan jelaskan secara detail dari awal.

Nyaris hampir semua dosen menggunakan tipe seperti ini. Saya tidak bermaksud menentang pemikiran dari kebanyakan dosen ataupun mau menilai buruk dari pemikiran tersebut. Namun, kebanyakan dosen apabila ada pembelajaran kelompok, sikap kepedulian terhadap mahasiswanya seakan tidak ada. Maksudnya adalah ketika suatu kelompok disuruh mempertanggung jawabkan materi yang telah diberikan, dosen tersebut menilai secara pribadi. Sehingga apabila ada anggota kelompok yang tidak mengerti atau tidak mengetahui sama sekali tentang materi yang diberikan, maka nilai mahasiswa tersebut secara pribadi akan rendah. Terkadang kelompok tersebut hanya diminta perwakilan satu orang untuk mempertanggung jawabkan materi. Hal ini membuat sebuah pemikian atau mind set bahwa apabila ada satu anggota kelompok yang pintar atau yang mampu memahami materi, maka kelompok tersebut akan memiliki nilai yang bagus.

Pemikiran seperti ini sudah mendarah daging dikalangan mahasiswa. Namun setelah melihat pembelajaran kelompok pada mata kuliah ini, pemikiran itu sudah lenyap total. "Kenapa demikian?" Pemikiran tersebut lenyap sebab pada saat penilaian, Nilai dari suatu kelompok adalah satu. Selain itu, orang yang akan mempertanggung jawabkan materi dipilih secara acak. Hal ini menyebabkan kelompok tersebut secara keseluruhan harus memahami materi yang ada. Setiap anggota kelompok harus saling bekerja sama selama pembelajaran. Yang pintar berusaha mengajarkan kepada yang kurang mampu dan yang kurang mampu berusaha agar bisa cepat memahami materi yang diberikan. Proses inilah yang bisa dikatakan sebagai proses belajar. Kelompok belajar berarti mahasiswa berada dalam satu kesatuan yang saling membantu sebab “Kekuatan dari Suatu Kelompok Terletak pada Orang yang Paling Lemah Pada Kelompok Tersebut