Sabtu, 12 Januari 2013

SOFTWARE DEVELOPMENT


Software Development adalah salah satu tipe proyek IT yang berfokus pada penciptaan atau pengembangan perangkat lunak.

Software Development dapat didetailkan lagi menjadi proses: 
1) penciptaan software untuk memenuhi kebutuhan manusia, 
2) desain software, 
3) pengembangan software aplikasi perusahaan, atau 
4) pengembangan platform



Secara garis besar Software Development terbagi menjadi beberapa tahapan, yaitu:
1.       Planning
Merupakan tahap awal untuk memulai Software Development. Tujuan dari tahap ini adalah menghasilkan: 1) proses kerja yang jelas antar setiap anggota, 2) timeline, dan 3) anggaran dana. Pada tahap ini juga, ketua proyek berkoordinasi dengan stakeholder untuk membuat kontrak kerja yang jelas. Selain berisi tentang estimasi dana, kontrak kerja juga harus memiliki batasan-batasan pengerjaan yang jelas. Hal ini dilakukan agar tim proyek tidak terikat dengan tambahan-tambahan modul yang nanti mungkin agar terjadi.
2.       Requirement and Specification
Tahap ini dilakukan untuk menentukan fitur-fitur yang tepat serta kebutuhan sistem untuk software yang akan dibuat. Tahap ini dapat dilakukan dengan interview, observasi lapangan, dan studi pustaka.
3.       Architecture and Design
Merupakan tahap untuk menentukan detail sistem yang akan dipakai. Tahap ini bertujuan untuk menentukan desain keseluruhan dari software, yang meliputi: konseptual database, sistem keamanan, dan interface.
4.       Implementation and Testing
Tahap implementasi merupakan tahap pembuatan software dengan berpedoman pada tahap-tahap sebelumnya. Sedangkan tahap Testing merupakan serangkaian uji coba yang diberikan kepada software untuk menentukan kapabilitasnya. Tsting dapat terbagi menjadi: 1) security testing, 2) performance testing, 3) stress testing, 4) recovery testing.
5.       Deployment and Maintenance
Kedua tahap terakhir ini adalah tahap dimana software telah mulai digunakan oleh user. Terdapat 2 hal penting yag ada pada tahap ini, antara lain: 1) training penggunaan software dan 2) pemantauan software. Pemantauan dilakukan untuk mengecek apakah software telah stabil atau belum. Kestabilan ini dapat dinilai dengann tidak adanya bug yang muncul selama penggunaan.
Beberapa metode dibuat untuk menerapkan tahapan-tahapan di atas, di antaranya adalah:
  1. Waterfall. Tahap-tahap di atas dikerjakan secara berurutan
  2. Prototype. Telah terdapat prototype atau software sebelumnya untuk kemudian dikembangkan, sehingga tahap observasi tidak perlu dilakukan.
  3. Incremental. Waktu keseluruhan pengerjaan proyek dibagi menjadi beberapa bagian yang lebih kecil, kemudian tahap-tahap di atas dilakuka secara berurutan. Dengam metode ini, keseluruhan fitur tidak langsung dikerjakan dalam satu fase melainkan terbagi menjadi beberapa periode.
  4. Spiral. Hampir sama dengan metode incremental, tetapi terdapat kemungkinan untuk dilakukan perbaikan, sehingga terjadi perulangan dan bentuknya seperti spiral. Pengerjaan dengan metode ini memakan waktu yang sangat singkat.

Secara garis besar, tantangan-tantangan yang ada dalam melaksanakan Software development adalah:
  1. Project Leader harus memiliki kemampuan interpersonal yang baik karena menyangkut kelangsungan proyek. Dia adalah seseorang yang juga mampu bernegosiasi degan baik, karena dialah yang akan berkoordinasi dengan pihak stakeholder untuk membentuk sebuah kontrak kerja.
  2. Kebanyakan Software Development gagal karena tim tidak mampu megestimasi dengan pasti detail-detail kebutuhan dari proyek. Untuk itulah tahap perencanaan adalah tahap yang terpenting karena menyangkut dana, timeline, dan lain-lain. Ketika ada salah satu proses yang terlambat, proses yang lain akan terhambat dan akibatnya semua kebutuhan akan membengkak, termasuk dana.
  3. Metode yang dipakai akan menentukan proses kerja dari setiap anggota tim proyek. Untuk itu tim proyek harus dapat menentukan metode yang tepat yang disesuaikan dengan kondisi. Jika menginginkan software dibuat degan waktu yang cepat, gunakan tipe protype, tetapi jika menginginkan software benar-benar bagus, gunakan tipe waterfall.
  4. Software adalah benda abstrak, sehingga kemampuan untuk memahami bahasa komputer adalah mutlak bagi setiap anggota tim. Pemahaman ini akan berguna untuk mengetahui sampai pada tahap mana software dikerjakan, sehingga setiap anggota dapat melakukan pembenahan ketika terdapat keterlambatan.
  5. Pengerjaan Software Development yang cenderung individualis menghasruskan setiap anggotanya memiliki interaksi yang baik. Tidak hanya dalam hal profesionalisme kerja, tetapi juga dalam hal kekeluargaan. Salah satu hal yang sering dilupakan pada Software development adalah sifat untuk saling memotivasi. Karena terdapat kemungkinan akan terjadi kejenuhan bahkan keinginan untuk berhenti karena tingkat kesulitan dari software yang dibuat.

Tidak ada komentar:

Posting Komentar