Kamis, 12 Februari 2015

Pahlawan Dibalik Layar Kesuksesan Software

Seperti halnya permainan sepak bola, tiap posisi pemain mempunyai perannya masing - masing. Dalam sebuah tim proyek perangkat lunak, setiap orang tidak hanya mempunyai peran, tapi juga posisi dalam struktur organisasi. Pembagian peran dan struktur organisasi ini juga mempunyai aturan atau rules yang tidak boleh dilanggar untuk memperkecil resiko dalam pembuatan perangkat lunak.

Berikut ini akan membahas mengenai Perencanaan Struktur Pelaksanaan Proyek pada sebuah perusahaan Software Developer. Ada 3 jenis format struktur pelaksana sebuah Proyek Software Developer yaitu format proyek, format fungsional, dan format matriks.



1. Format Proyek


Dalam format ini sebuah team dibentuk untuk pengerjaan proyek dari awal hingga akhir. Yang mana anggota dari team yang sudah dibentuk tersebut diberikan masing-masing bagian tugasnya seperti mendefiniskan produk, merancang produk, implementasi, dan melakukan pengujian dan review serta menyiapkan dokumen pendukung dalam penggunaan software itu nantinya.
2. Format Fungsional
Dalam format ini dibentuk beberapa team yang akan mengerjakan proyek nya dalam setiap tahapan dan anggota dari team ini bisa saja dirotasi sesuai kebutuhan.
Berikut beberapa team yang dibentuk :
  1)      Team Analisis dan Perancangan, bertugas mengembangkan System Definition (SD) dan Project Plan (PP).
  2)      Team Pendefinisian Produk, setelah menerima System Definition dan Project Plan, team ini melakukan analisa persyaratan perangkat lunak dan menyiapkan Software Requirement Specification (SRS) atau lebih dikenal dengan  Spesifikasi Kebutuhan Perangkat Lunak (SKPL).
  3)      Team perancangan, bertugas merancang produk yang sesuai dengan SRS dan SD.
  4)      Team implementasi bertugas mengimplementasi, debugging, dan melakukan uji per unit system.
  5)      Team uji sistem melakukan uji integrasi.
  6)      Team kualitas melakukan sertifikasi terhadap semua produk kerja (SQA).
  7)      Team pemelihara melakukan pemeliharaan produk (Maintenance).



3. Format Matriks

Setiap bagian divisi memiliki team manajemen dan kelompok spesialis yang menangani dan melaksanakan tugas nya sendiri.

   A.      Proyek Sponsor


Merupakan seorang yang diserahkan tugas khusus oleh perusahaan sebagai penanggung jawab proyek. Paling tidak salah seorang anggota direksi harus berada dalam tim ini untuk mencegah hambatan-hambatan berarti dalam pelaksanaan proyek. Secara prinsip, Direktur Utama atau Presiden Direktur-lah yang harus menjadi Proyek Sponsor.


   B.      Proyek Manajer


Merupakan seseorang yang memiliki tanggung jawab dan tugas yang banyak, tidak hanya terfokus pada hal yang bersifat teknis saja. Ia juga harus mempunyai kemampuan membuat tim tetap solid, mampu memonitor dan mengontrol budget serta mempunyai kemampuan analisis resiko yang baik.
Tanggung jawab Proyek Manajer :

1. Efisiensi Proyek

Proyek harus selesai sesuai dengan budget, sesuai dengan spesifikasi, dan waktu. Ketiga aspek itu harus dipenuhi oleh seorang Project Manager. 

2. Organisasi

Seorang Proyek Manager juga mempunyai tanggung jawab   terhadap organisasi. Taat kepada setiap kebijakan yang di keluarkan organisasi, harus mengambil keputusan dengan wewenang yang terbatas dari organisasi, dan juga terkadang juga harus mengambil keputusan yang terbaik buat organisasi namun tidak bagi proyek.

3. Kerja Tim

Tugas yang paling sulit bagi proyek manajer adalah menyeimbangkan antara kepentingan anggota tim, kepentingan tim, dan kepentingan proyek.
Skill yang harus dimiliki Proyek Manajer menurut Gary Heerken ( 2002) ada 4 yaitu :

1.       Project Management 

      Seorang Project Manager harus bisa menguasai teknik, tools manajemen proyek dan teknologi yang bisa diaplikasikan di proyek. Contohnya seorang project manager harus bisa membuat work breakdown structure, membuat network diagram, dan bisa mempersiapakan dokumen-dokumen yang diperlukan klien.


2.       Interpersonal dan behavioral Skill

      Seorang Project manager harus mempunyai Interpersonal & Behavioral skill yang baik, bisanya disebut soft skill. Behavioral skill meliputi gaya (style), Kelakuan pesonal (personnal conduct), dan pendekatan (approach).

3.       Technology Management Skill

      Kemampuan untuk mengkoordinasi proses teknologi ini sangat penting jika ingin menjadi seorang project manager. Beberapa skill manajemen teknologi yang perlu dikuasai oleh seorang Project Manager yaitu :
a.       Kemampuan dalam teknologi proyek
b.      Kemampuan dalam mendukung teknologi area Pengetahuan tentang industri
c.       Kemampuan dalam mempersiapkan spesifikasi teknis secara kompreshensif
d.      Kemampuan dalam disain
               

   C.      Proyek Manajemen dan Administrasi


Project Administration adalah tim yang bertanggung jawab terhadap pengaturan dan penyimpanan segala jenis dokumen yang terlibat dalam proyek. Mulai dari proposal dan kontrak proyek, sampai dengan hasil wawancara atau notulen setiap pertemuan formal maupun informal. Disamping dokumen, hal-hal yang berkaitan dengan komunikasi antara anggota proyek dengan perusahaan dan vendors juga harus dikelola oleh tim ini. Agar segalanya berjalan dengan lancar, biasanya Project Administration sudah memiliki standar dokumen dan prosedur yang harus diikuti oleh seluruh anggota proyek agar proses administrasi berjalan dengan efektif dan secara efisien.


   D.      Internal Audit dan Quality Assurance


Quality Assurance terdiri dari tim yang mengawasi agar pelaksanaan proyek dapat selalu terjamin kualitasnya sesuai dengan standar mutu yang ada (standar lokal perusahaan konsultan yang bersangkutan atau standar internasional seperti ISO). Fokus dari tim Quality Assurance lebih pada kualitas dari outputoutput yang dihasilkan oleh proyek ini, seperti laporan, rekomendasi, desain, perangkat lunak, perangkat keras, dan lain sebagainya.
Tim inti proyek software developer dapat dikategorikan menjadi tiga bagian utama: Sistem Software, Software Developer dan Tester. Tim Sistem Software merupakan kumpulan para ahli manajemen yang sangat menguasai ilmu desain  aplikasi software, Tim Software Developer merupakan para ahli programmer pembuat sebuah aplikasi software, sedangkan tim Tester merupakan para ahli untuk menguji layak tidaknya sebuah aplikasi software dikembangkan.



   E.       Divisi Sistem Software


Sistem Analyst

System analyst adalah penghubung antara vendor dan profesional teknologi informasi. Mereka juga bertanggung jawab untuk mengembangkan analisi biaya, pertimbangan desain, dan implementasi timeline yang telah ditetapkan.

Kriteria Sistem Analyst :
1)      Merencanakan aliran sistem dari bawah ke atas.
2)      Berinteraksi dengan pelanggan untuk belajar dan mendokumentasikan kebutuhan yang nantinya akan digunakan untuk membuat Bussiness Requirement Document.
3)      Menuliskan kebutuhan teknis dari fase kritis.
4)      Berinteraksi dengan designer untuk memahami keterbatasan perangkat lunak.
5)      Membantu programmer selama pengembangan sistem, seperti menyediakan use case, flowchart, atau bahkan design database.
6)      Melakukan pengujian sistem.
7)      Mendeploy sistem yang teah selesai dibangun
8)      Mendokumentasikan kebutuhan atau berkontribusi dalam pembuatan user manual.

   F.       Divisi Software Developer

a.       Programmer

    Programmer adalah seseorang yang bertugas untuk mengimplementasikan apa yang telah dirancang oleh designer. Seorang programmer tidak bertugas untuk memastikan produk yang mereka buat dapat digunakan dan diimplementasikan dengan denagn modul lainnya. Programmer adalah spesialis di bidang pembuatan, bukan hasil akhir ataupun perencanaan. Seorang programmer memiliki kemampuan matematis dan kemampuan menulis bahasa pemrograman.

b.      Software Designer

      Seorang software designer mengambil tujuan akhir dari pelanggan dan merencanakan berbagai tahap pengembangan dari konsep awal sampai dengan sistem selesai dibuat. Pemrograman dan perencanaan, keduanya dilakukan pada komputer, dan sinkronisasi data yang diperlukan untuk rencana dan komunikasi yang efektif membutuhkan penggunaan jaringan media yang modern. Software design tidak hanya terlihat pada perusahaan yang memproduksi program dan perangkat lunak, tetapi juga pada perusahaan yang membutuhkan solusi pada sebuah perangkat lunak namun tidak ada perangkat lunak yang mampu mengatasinya


c.       Implementer 

Tugas dari anggota tim implementor ini adalah membantu mempercepat proses implementasi sistem pada usaha, sekalipun usaha tersebut telah cukup lama beroperasi.

Tugas Implementator :
1.       Penataan sistem keuangan dengan menggunakan fasilitas yang ada pada software developer secara lebih optimal.
2.        Penanganan stok awal barang persediaan.
3.       Administrasi budget.

   G.     Divisi Management Software

a.       Software Tester

Tugas utama dari seorang software tester adalah melakukan pengecekan atau testing terhadap error atau bug di dalam sebuah aplikasi atau program. Dengan kata lain, keberhasilan seorang software tester adalah kegagalan bagi developer, demikian juga sebaliknya.
Namun, pada dasarnya keberhasilan software tester ataupun keberhasilan developer memiliki tujuan yang sama, yaitu untuk membuat sebuah aplikasi atau software bebas dari bug (meskipun sebenarnya tidak ada aplikasi yang bisa benar-benar bebas dari bug). Selain harus memiliki kesabaran dan ketelitian, seorang software tester juga dituntut untuk proaktif dan memiliki kreatifitas imajinasi yang tinggi.

                        Dokumen yang dibutuhkan oleh software tester :
                        1)      SRS (System Requirement Specification) Merupakan dokumen yang menyediakan                     panduan mengenai spesifikasi requirement sistem yang diinginkan oleh client/user secara                     lengkap terhadap suatu bagian/keseluruhan aplikasi.
                        2)      SAD (Software Architecture Document) Merupakan dokumen yang                                             menggambarkan desain arsitektur (flow process) secara umum dari modul yang ada                             dalam sebuah sistem. SAD memuat spesifikasi yang lebih rinci dari dokumen SRS.


Dari semua dokumen inilah sofware tester kemudian akan mengetahui seperti apa sistem yang akan di testing. Setelah mengetahui proses bisnis dari sistemnya, maka software tester harus membuat test case yang terdiri dari langkah-langkah pengetesan terhadap sistem yang dibagi-bagi kedalam tiap modul/unit sistem.






Referensi

Lestari, Indah.Tim Pengembang Perangkat Lunak.ppt
Referensi : http://winongkemiri.blogspot.com/2013/01/struktur-organisasi-pengembangan.html

Senin, 09 Februari 2015

Mungkinkah mengembangkan sebuah Software Sendirian?

Ehm..


*bunyi gendering,terompet sangkakala ,dan sekutunya
Jeng jeng jeng jeeeeeeng…

Okeh, jadi saat ini penulis jadi seorang master SDLC (buat yang belum tau apa itu SDLC kesini aza). Jadi buat yang masih bingung atau punya pertanyaan mengenai SDLC atau pengembangan perangkat lunak silahkan ditanyakan ke master ini *di iyain aja ya
Terus, bagi siapa yang mau bertanya seputar masalah pengembangan perangkat lunak langsung aja kirimkan surat kilat ke alamat dibawah ini.
*ceritanya ada banner alamat lewat
*ting tong, om pos datang ngantar surat
*sret sret buka amplop surat
…….
Okeh ini ada yang nanya.
Q:“kak? Bisa gak gaya lu gak sok asik. Geli tau gak. Eh, kak tpi aku mau nanya loh, gmana klo misalnya developernya itu sekaligus pemilik proyeknya bisa gak kak? Ceritanya bikin software sendiri gitu,  bantu ya kak,aku bingung nih.hehehe thanks yaa. {} -ERN”

Wih, sadis ya kata katanya, sakit… *srett mattin mp3.
Ceritanya ern ini yang ambo tolak abis jum’atan kemarin, cakepnya overdosis tapi.. stop!!,jadi ngelantur    -_____-.
Okeh buat ern yang  mut mutan ini, penulis coba analisa dulu ya.
*…. Bersemedi 
Okeh, ini jawabannya ern..


Ceritanya  ini foto penulis.

Heheheh, kelamaan ya? Liat aja foto penulis diatas biar adem,hehehe
Jadi gini ern, mungkin saja suatu produk ,dalam hal ini perangkat lunak itu dibiayai,dibangun,dan di rawat oleh satu orang saja.karna hakikatnya pengembangan produk dalam hal ini berupa software ini bertujuan mencapai suatu fungsi,memudahkan pengguna,mengahasilkan efisiensi(waktu,biaya) bagi penggunanya.

Timbul pertanyaan, apakah developer tunggal ini menghasilkan produk yang berkualitas rendah?
Nah, bicara kualitas dalam membangun suatu perangkat lunak ini ,mulailah timbul pengklasifikasian metodenya pengembangannya.
*buat metode lain,silahkan cek grup TIB
Oh iya, sampai mana tadi??
*penonton : klasifikasi metodeeeeeeee…..!!!!
Oh,  kalian luarrr biasaaaaaaa :*

Jadiiiiii, bagaimana pengklasifikasian metode pada developer tunggal ini? .. yep benar sekali,,tinggal kita cocok kan dengan langkah langkah pada berbagai permodelan perangkat  lunak.namun perlu di ingat bahwa developer tunggal ini umumnya digunakan hanya pada produk untuk lingkup penggunaan kecil saja(pribadi,fungsi khusus). Bingung?

Simak baik baik.

Penggunaan secara pribadi ini, maksudnya sang empunya software menciptakan produknya hanya untuk mencukupi suatu fungsi khusus,misalnya yang dimiliki dosen Artificial intelligence saya Bapak Muhammad ihsan zul,profil.Beliau mengembangkan “ieval” sebagai suatu system yang memantau pencapaian akademik para mahasiswa/I dan memberikan gambaran hasil akhir sang mahasiswa pada matakuliah tersebut.Dosen saya ini mengembangkan ieval ini karena kebutuhannya sebagai seorang pendidik.

Mungkinkah mengembangkannya  sendiri?
Tentu saja, karena mengembangkan software itu dasarnya karena kebutuhan penggunanya.
oh iya, ini contoh sistem yang dikembangkan oleh dosen penulis pak Muhammad Ihsan Zul, monggo dilihat iasist:D
*buat inputannya berupa nama mahasiswa, contoh.

Jadi mengembangkan suatu software itu tidak selalu melibatkan pihak luar?
Tentu saja tidak, namun semuanya itu tergantung cakupan atau lingkup yang akan di tanggung oleh software tersebut,jika hanya untuk kebutuhan khusus milik pribadi,penulis rasa tidak memerlukan bantuan dari pihak lain dalam mengembangkannya.

Terus,metode pengembangan apa yang sebaiknya saya gunakan?
Sebelum membahas metodenya, seorang developer harus mengetahui aspek dasar berikut ini:

Aspek pengelolaan awal,meliputi:

1.       Proses bisnis dari software yang akan digunakan.maksudnya bagaimana software tersebut mencapai fungsi yang diinginkan empunya software,ini berkaitan dengan input,output serta algoritma yang akan digunakan nantinya.
2.       Calon pengguna system nantinya.ini berkaitan dengan siapa saja yang berinteraksi dengan system setelah dikembangkan.
3.       Mampu mengestimasi seberapa rumit software yang akan dikembangkan.
4.       Menentukan cara pengorganisasian yan baik terhadap oengembangan perangkat lunak.
5.       Mampu melihat dan menemukan dan mengelola resiko pengembangan software
6.       Membuat keputusan startegis dalam pengembangan software.

Aspek teknis:

1.       Penguasaan terhadap suatu bahasa pemrograman.karena mengembangkan sendiri maka ini menjadi suatu keharusan bagi individu yang akan mengembangkan suatu perangkat lunak.
2.       Mengelola kebutuhan,berkaitan bagaimana mencapai fungsi yang sibutuhkan dari software yang sedang dikembangkan secara sistematis,ingat SISTEMATIS.
3.       Analisis masalah dan solusi yang dibutuhkan dalam mengembangkan software.ini membutuhkan pengetahuan mengenai proses bisnis yang sedang dikembangkan.
4.       Rancangan,berkaitan dengan arsitektur data,perangkat keras yang digunakan,pengguna system dan biaya dalam mengembangkan suatu software.ini berkaitan erat dengan kelangsungan hidup dari software yang sedang kita kembangkan.

Aspek pengendalian mutu:

1.       Diperlukan untuk mencapai kecepatan pengembangan software dan ketepatan dari software yang akan dihasilkan.
Membahas metode yang akan digunakan, itu tergantung per individu dalam mengembangkannya,ingat tiap tiap metode memiliki dampak yang berbeda meskipun sama sama menghasilkan suatu produk yang memenuhi kebutuhan dari penggunanya.
Sebagai contoh.
pak Ihsan mengembangkan ieval nya menggunakan metode prototype.kenapa prototype? Intinya prototype ini si pengembang mengkonsepkan sendiri kebutuhan apa dan proses bisnis yang akan dipenuhi oleh software lalu dalam mengembangkannya menggunakan  ilmu hasil pembelajaran(pribadi,referensi), dan mencoba jalannya si software.hal ini dilakukan berulang ulang hingga mencapai fungsi yang dibutuhkan.

Alur dari metode prototype:



Oh gitu ya kak?
Yep, gitu ternyata.

Kelemahannya apa jika mengembangkan software sendirian?
Kamu bakalan kesepian,huahahahah
Kelemahan nya terletak di lama proses pengerjaannya, membutuhkan waktu yang lama dan budget dalam mengembangkannya secara otomatis menjadi tanggungan si individu.
Oh, berarti bias dong ya mengembangkan software itu sendirian?
Tentusaja, kembali lagi kepada pemenuhan kebutuhan, sama hobi.

Okeh kak, makasih ya :D
Yep -_____________-












Referensi:
Gambar:
artikel terkait


Senin, 02 Februari 2015

Waterfall VS Incremental

Di zaman yang semakin  mengalami perkembangan ini banyak kebutuhan perangkat lunak yang semakin meningkat. Perangkat lunak tersebut juga tidak langsung jadi secara mudah seperti memasak telor ceplok, melainkan melalui tahapan-tahapan menurut metode pengembangan yang digunakan oleh developernya. Seperti yang kita(anak-anak TI) tahu ada berbagai macam metode pengembangan perangkat lunak, seperti Waterfall, Prototype, RAD, Incremental, Spiral Boehm,dan Agile beserta jenis-jenisnya.
Dan kali ini saya sebagai penulis artikel ini akan membahas tentang metode Waterfall dan Incremental. Mari siapkan cemilan, minuman, catatan kecil, tak lupa komentar teman semua. Oo iya LIKEnya juga whakakaka. Biar gak terlalu tegang. Oke saya mulai pembahasannya, simak baik-baik ya.

  1.  Metode Waterfall
Model pengembangan software yang diperkenalkan oleh Winston Royce pada tahun 70-an ini merupakan model klasik yang sederhana dengan aliran sistem yang linier —  keluaran dari tahap sebelumnya merupakan masukan untuk tahap berikutnya. Pengembangan dengan model ini adalah hasil adaptasi dari pengembangan perangkat keras, karena pada waktu itu belum terdapat metodologi pengembangan perangkat lunak yang lain. Proses pengembangan yang sangat terstruktur ini membuat potensi kerugian akibat kesalahan pada proses sebelumnya sangat besar dan sering kali mahal karena membengkaknya biaya pengembangan ulang.


 


Tahapan Metode Waterfall
Dalam pengembangannya metode waterfall memiliki beberapa tahapan: requirement (analisis kebutuhan), design sistem (system design), Coding & Testing, Penerapan Program, pemeliharaan.

  • Requirement (analisis kebutuhan).
Dalam langakah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa melakukan sebuah penelitian, wawancara atau study literatur. Seseorang system analisis akan menggali informasi sebanyak-banyaknya dari user sehingga akan tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem. Dokumen inilah yang akan menjadi acuan system analisis untuk menterjemahkan kedalam bahasa pemrograman.

  • Design System (design sistem)
Proses design akan menterjemahkan syarat kebutuhan kesebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat koding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement. Dokumen inilah yang akan digunakan programmer untuk melakukan aktivitas pembuatan sistemnya.

  • Coding & Testing (penulisan sinkode program / implemention)
        Coding merupakan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer.Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem.Dalam artian penggunaan computer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap system tersebut dan kemudian bisa diperbaiki.

  • Penerapan / Pengujian Program (Integration & Testing)
Tahapan ini bisa dikatakan final dalam pembuatan  sebuah sistem. Setelah melakukan analisa, design dan pengkodean maka sistem yang sudah jadikan digunakan oleh user.

  • Pemeliharaan (Operation & Maintenance)
Perangkat lunak yang susah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau system operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional.



Kelebihan metode Waterfall
 Keunggulan model pendekatan pengembangan software dengan metode waterfall adalah pencerminan kepraktisan rekayasa, yang membuat kualitas software tetap terjaga karena pengembangannya yang terstruktur dan terawasi. Disisi lain model ini merupakan jenis model yang bersifat dokumen lengkap, sehingga proses pemeliharaan dapat dilakukan dengan mudah.


Kekurangan metode Waterfall
 Kelemahan pengembangan software dengan metode waterfall yang utama adalah lambatnya proses pengembangan perangkat lunak. Dikarenakan prosesnya yang satu persatu dan tidak bisa diloncat-loncat menjadikan model klasik ini sangat memakan waktu dalam pengembangannya. Disisi lain, pihak klien tidak dapat mencoba sistem sebelum sistem benar-benar selesai pembuatannya.


2.Metode Incremental

 Incremental model adalah model pengembangan sistem pada software engineering berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau bagian sehingga model pengembangannya secara bertahap. dilain pihak ada mengartikan model incremental sebagai  perbaikan dari model waterfall dan sebagai standar pendekatan topdown.





Tahapan metode Incremental 
  • Requirement , Requirment adalah proses tahapan awal yang dilakukan pada incremental model adalah penentuan kebutuhan atau analisis kebutuhan.
  • Specification, Specification adalah proses spesifikasi dimana menggunakan analisis kebutuhan sebagai acuannya.
  • Architecture Design, adalah tahap selanjutnya, perancangan software yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.
  • Code setelah melakukan proses desain selanjutnya ada pengkodean.
  • Test merupakan tahap pengujian dalam model ini. 

            Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan. Pada incremental model, tiga tahapan awal harus diselesaikan terlebih dahulu sebelum sebelum tahap membangun tiap increment. Untuk mengantisipasi kondisi yang terjadi pada incremental model, diperkenalkan model More Risky Incremental Model. Model ini menerapkan sistem kerja yang paralel. Setelah daftar kebutuhan didapatkan dari pemakai, tim spesifikasi membuat spesifikasi untuk modul pertama. Setelah spesifikasi pertama selesai, tim desain menindak lanjuti. Tim spesifikasi sebelumnya juga langsung membuat spesifikasi untuk model kedua, dan seterusnya. Jadi, tidak harus menunggu modul pertama selesai hingga dikirim ke user.  


Kelebihan metode Increment
  • Merupakan model dengan manajemen yang sederhana
  • Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk mengambil keuntungan dari sistem tersebut. Increment yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
  • Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah masih dapat ditemukan pada beberapa increment. Karena layanan dengan prioritas tertinggi diserahkan pertama dan increment berikutnya diintegrasikan dengannya, sangatlah penting bahwa layanan sistem yang paling penting mengalami pengujian yang ketat. Ini berarti bahwa pengguna akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada increment sistem yang paling bawah.
  • Nilai penggunaan dapat ditentukan pada setiap increment sehingga fungsionalitas sistem disediakan lebih awal.
  • Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,
  • Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji

Kelemahannya metode Increment
  • kemungkinan tiap bagian tidak dapat diintegrasikan
  • Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung
  • Harus Open Architecture
  • Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment.

Minggu, 01 Februari 2015

Extreme Programing ? or Waterfall? lets we see

Baiklah, salam buat semua yang sudah 'terklik' artikel ini, yang udah trerklik trus berubah fikiran untuk meninggalkan halaman ini jangan lupa likenya yaaa :D . oke kali ini saya membahas tentang permodelan dari pengembangan perangkat lunak. apa itu pengembangan perangkat lunak? dimodelkan pula? googling aja ya mas sama mbaknyaa soalnya kalo kita bahasa itu bakal panjang ntar :D

sedikit ni saya akan membahas tentang extreme programing , nama nya aja extreme berarti yang melakukan pengembangan ini adalah orang orang yang expert dan jago dalam pembuatan perangkat lunak. soalnya XP ini dikerjakan langsung didepan sang client dan langsung di cek , jika ada perubahan langsung saja si programernya mengubah nya dalam sekejap. expert kan?? capat selesainya ya masbro, tentu aja ada kekuranganya  namanya aja extreme tentu saja dokumentasinya juga extreme berantakan :D. biasanya ni teknik permodelan ini digunakan oleh client yang tidak peduli dengan dokumtasinya.

Extreme programing sudah di ceritakan di atas, hahaha panjang juga yaa. berikutnya adalah teknik permodelan Waterfall (air terjun), tekinik ini ya seperti air terjun dari atas ke bawah semuanya dilakukan step by step dan baru bisa lanjut ke step selanjutnya jika sudah kelar step tersebut. lama emang tapi dokumentasinya lengkap masbro .

cukup kayaknya tu pengenalannya yang cukup singkat hehehe, selamat bagi pembaca sampe tahap ini tapi ini baru permulaan nya :P. oke cukup Lip servicenya, kali ini saya dapat contoh kasus tentang seorang mahasiswa yang membuat TA(tugas akhir) nya menggunakan XP. sebelumnya saya mohon maaf dulu jika sang pembuat TA merasa tersinggung dan mohon izin untuk menggunakan TA nya sebagai bahan artikel ini.

dalam TA nya yang dapat dilihat dalam link ini :
http://digilib.esaunggul.ac.id/penerapan-metode-extreme-programming-dengan-framework-code-igniter-studi-kasusinventarisasi-naskah-pt-ttt-media-corp-930.html

sang penulis TA menggunakan Extreme Programing , menurut saya kurang tepat karena kita membuat TA , TA kan harus di buat dengan rapi dan waktu yang diberikan cukup lama di bandingkan extreme programing yang sebaiknya digunakan jika permintaan client dan sesuatu yang sangat sedikit waktunya.
kalau digunakan waterfal kan waktunya cukup , lagi pula dokumentasi nya akan bagus dan itu juga membuat suatu Perangkat lunak jadi mahal.

kayaknya cuma pengen nyampaikan itu saja mohon maaf jika ada kesalahaan terutama kepada sang pembuat TA, sekian dan terimakasih . jangan lupa coment dan likenya yaa.