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:
o 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.
o 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.
o 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.
o 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