Kamis, 17 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 (Wales, 2012).
Karena berfokus pada sesuatu yang tidak tampak (software), Software development memiliki tingkat pengerjaan yang lebih sulit. Tidak heran jika banyak Software development yang gagal dikarenakan proses pengerjaan tidak sesuai dengan yang telah direncanakan. Salah satu criteria tambahan untuk output Software Development adalah kemampuan software untuk dapat dikembangkan lagi. Disinilah tingkat kesulitan yang utama dimana pihak pencipta harus dapat mendokumentasikan dengan baik setiap source code agar dapat dipahami oleh orang lain.
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.
Salah satu contoh dari Software Development adalah pembuata software bernama Microsoft Project. Microsoft Project adalah salah satu software yang memudahkan para pelaksana proyek mengerjakan pekerjaannya. Microsoft Project memiliki fitur yang dapat digunakan untuk merencanakan, menentukan sumber daya, memantau progress, mengorganisiri budget, dan menganalisis beban pekerjaan. Ide ini datang dari salah satu tim internal Microsoft, Alan M. Boyd karena melihat banyaknya jumlah proyek software yang sedang dikerjakannya. Pada versi terakhirnya, Microsoft Project memiliki kemampuan untuk mengitegrasikan keseluruhan proyek dengan database. Hal ini akan membuat user mampu untuk menampilkan dan mengupdate data melalui internet.
Kebanyakan proyek Microsoft diterapkan dengan menggunakan metode Agile, begitu pula dengan penerapan proyek ini. Agile adalah metode yang menggabungkan keseluruhan metode di atas. Keseluruhan waktu pengerjaan proyek dibagi menjadi fase-fase yang lebih kecil. Kemudian pada setiap fase dilakukan metode incremental dan spiral. Proyek yang menggunakan metode ini dapat dikerjakan dengan cepat.
Penerapan metode ini kemudian disesuaikan dengan proses bisnis perusahaan, dimana tahapannya adalah:
  • Mengidentifikasi peluang pasar. Ide yang telah muncul diidentifikasi dengan kebutuhan pasar. Jika produk yang diusulkan memiliki peluang untuk dapat bersaing di pasaran maka produk akan dilanjutkan ke dalam tahap prososal.
  • Menentukan kelangsungan hidup produk. Tim yang telah terbentuk kemudian menentukan cara agar produk tetap dapat bertahan di pasaran. Tim menentukan biaya total, beserta target harga yang akan diberlakukan di pasar.
  • Menentukan visi dari produk yang akan dihasilkan. Tim harus memikirkan juga strategi-strategi agar produk yang ada memiliki sifat yang dinamis dengan kebutuhan manusia. Dengan kata lain, tim harus membuat produk yang memiliki kemampuan untuk berevolusi atau dapat dikembangkan. Pada tahap ini, tim juga harus menentukan strategi yang akan diterapkan pada produk pada awal launching-nya.
  • Launching produk. Ketika produk telah jadi, produk akan segera dilaunching denga publikasi besar-besaran. Microsoft menyebutnya “Make lot of noise”.

 

Tidak ada komentar:

Posting Komentar