Anda di halaman 1dari 30

PENGEMBANGAN &

KEWIRAUSAHAAN
PERANGKAT LUNAK
INOVASI DAN KEWIRAUSAHAAN
BERBASIS TEKNOLOGI
Apakah itu Pengembangan Software?
Pengembangan Software adalah hal utama dari perusahaan
dengan bisnis produk dan layanan software
Pengembangan Software juga merupakan aktivitas kritis
untuk organisasi yang membuat atau menyesuaikan software
yang dibeli untuk menjalankan operasional perusahaan
Jika perusahaan tidak dapat membuat, mengkustomisasi atau
menginstall produk software unggul, perusahaan akan kurang
mampu untuk bersaing dengan efektif
Sebuah perusahaan software bisa saja beruntung dalam
membuat sebuah top hit produk tetapi butuh keahlian lebih
untuk mempertahankan kinerja terbaik dari produk tersebut
Apakah itu Pengembangan Software?
Guna mempertahankan produk yang telah ada dari waktu ke waktu
dibutuhkan pengembangan software terus-menerus dari yang telah dirilis
sebelumnya
Setiap pengembangan artinya terdapat peningkatan ukuran, kompleksitas,
prioritas dan kepentingan dari software.
Kesalahan dalam pembuatan software dapat berdampak besar bagi perusahaan
baik dari sisi biaya dan reliabilitas daripada perusahaan
Oleh sebab itu, dibutuhkan teknis/manajemen yang baik dalam melakukan
pengembangan produk software
Synch-and-stabilize adalah salah satu teknik untuk membuat produk baru bagi
pengguna Mass-Market
Dapat diadaptasi dengan lebih mudah apabila terjadi perubahan di dalam
proyek untuk tingkat fitur dan rilis untuk produk yang telah ditambah lebih
cepat
Kendala umum dalam pengembangan
software
Kendala utama yang umumnya ditafsirkan ada di dalam
pengembangan sistem adalah adanya programmer terlalu
kreatif dan individualistis
Akan tetapi, hal utama sebenarnya adalah tentang teknik dari
manajer untuk membuat pekerjaan menjadi terstruktur
sehingga proses pengerjaan proyek menjadi terkendali
Sebuah organisasi harus meneliti,
berinovasi dan beradaptasi
terhadap perubahan teknologi
serta kebutuhan pelanggan
Kendala umum dalam
pengembangan software
Perusahaan dengan paket produk software atau
kustomisasi harus belajar mengelola proses dan tidak
dibatasi oleh proses itu sendiri agar sukses di masa yang
baik dan bertahan di masa sulit
Hal ini berarti bahwa segala sesuatu dari pendefinisian
kebutuhan dan arsitektur sistem sampai pengujian akhir dan
dukungan teknis, termasuk mekanisme feedback sepanjang
fase serta fungsi-fungsi berbeda yang terlibat dalam
penyelesaian pembuatan sebuah produk harus dapat dikelola
dengan baik
Masalah yang sering dihadapi
Versi NATO
Sebuah konferensi NATO tentang pengembangan Software
menekankan beberapa masalah yang dihadapi perusahaan
dalam kegiatan pengembangan Software yakni:
Kurangnya pemahaman pelanggan dan perancang terhadap kebutuhan
sistem.
Jarak/gap besar antara estimasi biaya dan waktu dengan aktual akibat
estimasi tidak memadai, kegagalan menyisipkan waktu sebagai cadangan
apabila terjadi perubahan terhadap kebutuhan serta tugas pembuatan
program yang telah dipisah-pisah dengan pemahaman yang tidak
menyeluruh terhadap sistem yang dibangun
Variasi yang terlalu banyak
Kesulitan membagi SDM Perancang dengan Produksi karena keputusan
jenis rancangan diputuskan saat sedang melakukan coding
Sulit dalam Monitoring progress sebuah proyek software karena
Pengembangan program tidak selamanya menggunakan progres sederhana
seperti satu kegiatan berhubungan dengan kegiatan yang lain dengan
tahapan maju (Forward Step)
Pertumbuhan ukuran perangkat lunak yang cepat
Komunikasi yang kurang antara grup yang bekerja dalam proyek yang sama
Pengeluaran besar apabilamengembangkan alat kendali produksi online
Kesulitan menentukan aspek utama pengukuran kinerja programmer dan
sistem
Tradisi yang berlaku di lingkungan programmer bahwa tidak membuat sistem
untuk kepentingan praktik tetapi untuk membuat sebuah sistem baru yang
lebih baik.
Sehingga mereka selalu mengkombinasikan penelitian, pengembangan dan produksi
dalam sebuah proyek tunggal yang akhirnya sulit diprediksi dan dikelola hasilnya
Masalah yang sering dihadapi
Versi NATO
Peningkatan kebutuhan akan programmer yang tinggi tetapi
dengan ketersediaan programmer berpengalaman dan terlatih yang
rendah
Sulit mencapai reliabilitas memadai (pengurangan error dan
toleransi error) pada sistem software yang besar
Ketergantungan software pada hardware, yang membuat
standarisasi pada software sulit untuk mesin dengan sistem yang
berbeda
Kurangnya persediaan komponen software yang dapat digunakan
kembali dalam mengembangan program yang baru
Pemeliharaan software memakan biaya yang melebihi biaya
pengembangan sistem software tersebut
Masalah yang sering dihadapi
Versi NATO
Pengembangan Software seharusnya?
Pengembangan software bukanlah sebuah kegiatan
produksi tetapi adalah merancang produk dimana
rancangan tersebut adalah produk akhir dan replikanya
kurang berharga
Setiap produk sofware semestinya adalah unik dan berbeda
setiap kali perancangan telah selesai dilaksanakan
Membutuhkan multiskill: art, science, engineering, dan
management terutama untuk software baru dalam proyek besar
Hal ini akan membuat kendali terhadap software menjadi lebih
sulit terlebih ketika jutaan baris program membutuhkan
algoritma baru, dan instruksi dasar atau rumus matematika agar
software tersebut dapat dikembangkan
Pengembangan Software seharusnya?
Ada perusahaan yang akhirnya membuat proses dan organisasinya
seperti pabrik untuk Mengembangkan software jenis tertentu
dengan mengelola proyek tertentu untuk dengan orang tertentu
Ada perusahaan yang mencoba memisahkan penghasilan
kebutuhan dan proses perancangan high level dari kegiatan coding
dan debugging dan mengoutsourcekan kegiatan programming
dan pengujian kepada pihak lain di luar perusahaan. Beberapa
perusahaan lebih berhasil dengan model seperti ini
Tetapi, beberapa organisasi yang lain malah gagal akibat
banyaknya varietas dari produk yang dihasilkan termasuk kesulitan
dalam mengelola kebutuhan sistem, standarisasi tools dan
method yang digunakan, perubahan teknologi yang cepat
Pengembangan Software seharusnya?
Ditambah lagi bahwa programmer yang kreatif
dan bertalenta biasanya tidak cocok dengan
lingkungan yang seperti pabrik, mereka butuh
lingkungan yang mampu mendukung kreativitas
mereka
Di jepang, untuk mengatasi masalah programmer,
perusahaan akan menempatkan mereka semua
didalam sebuah fasilitas yang khusus untuk melakukan
penelitian dan pengembangan yang terpisah dari
tempat operasional perusahaan walaupun umumnya
perusahaan di jepang menggunakan pengembangan
sistem melalui tahap-tahap SDLC
Kurangnya strategi dan proses pengembangan yang efektif dan
komprehensif
Rancangan produk sulit untuk ditetapkan, dimodifikasi, berkembang
dan berpindah tempat (dinamis)
Konsep produk dan proses perancangan arsitektur sistem yang kacau
Proses penentuan spesifikasi dan rancangan fungsional yang tidak
disiplin
Proses pembangunan sistem tidak standar yang mungkin lebih cepat
Sedikitnya pekerjaan atau otomasi yang pararel dalam proses
pengembangan, integrasi dan pengujian
Review rancangan, coding dan dokumentasi yang lemah
Change Control System yang lemah
Masukan pelanggan dan mekanisme masukan rancangan yang tidak
memadai
Pengujian dan
Penjaminan Mutu dalam
Pengembangan Software
Beberapa masalah yang terkait dengan pengujian dan penjaminan
mutu:
Prosedur check-in dan check-out file coding tidak terstandarisasi sehingga
pengembang sering membuang waktu untuk menemukan kapan, apa dan
bagaimana bekerja dengan file yang telah usang
Proses dari file check-in untuk penerimaan dan kompilasi keseluruhan
membutuhkan waktu satu sampai dua hari karena belum memiliki
kemampuan komputasi untuk mempercepat hal ini
Tidak terdapat penentuan waktu untuk membangun integrasi yang berakibat
pada para pengembang menjadi lambat dalam bekerja dan akhirnya
mengerjakan sesuatu yang usang dan mengakibatkan developer lain harus
bekerja dengan sesuatu yang usang yang berasal dari developer tersebut
Pengujian pada versi alpha tidak memadai malah banyak pengujian setelah
masa alpha tersebut
Pengetahuan dan Manajemen SDM
Isu yang juga terkait dengan pengembangan software dan yang paling sulit
untuk dikelola adalah mengenai pengetahuan dan manajemen SDM
Ada programmer yang tidak ingin berbagi seluruh hal yang mereka ketahui
dan bahkan hanya sekedar melakukan kegiatan biasa yang mereka ketahui
(tidak berkinerja maksimal)
Mereka tidak ingin bertanggung jawab atau bahkan memberikan
masukan/kritik terhadap bagian produk yang tidak bekerja dengan maksimal
Hal ini akhirnya berwujud pada penyelesaian proyek yang lebih cepat dari
yang direncanakan, yang seharusnya bagus menjadi diragukan kualitas
kecepatan pengerjaan proyek tersebut
Pengetahuan dan
Manajemen SDM
Terdapat beberapa hal yang memicu pasifnya SDM yang bekerja diantara lain:
Jadwal yang tidak realistis dan komunikasi yang tidak memadai sehingga terjadi stress dan
lembur yang berlebihan dan menurunkan semangat kerja
Pengembang merasa bahwa manajer dan orang lain dalam proyek memandang mereka sebagai
bad guy karena mereka membuat bugs
Pengembang takut untuk berbicara secara terbuka karena mereka khawatir akan diberhentikan
SDM baru tertarik dengan bagaimana keberhasilan keuangan dan pemasaran dari suatu
perusahaan akan tetapi segera menurun motivasinya ketika melihat beberapa elemen dari
perusahaan yang dikelola dengan kurang memuaskan
SDM merasa kecewa terhadap bagaimana pihak manajemen mencegah SDM ahli dalam
menghasilkan produk yang baik
Orang yang telah demoralisasi (kehilangan motivasi) tidak dapat mencapai fokus dan kapabilitas
maksimal dalam menghasilkan sebuah produk yang berkualitas tinggi
Pengembang merasa manager memperlakukan mereka seperti anak kecil dan tidak mampu
mengambil keputusan dan merasa bahwa segala hal kecil atau besar wajib dikonsultasikan
kepada manajer.
Rekomendasi dan solusi terhadap masalah SDM
Bekerja sama dengan kepala kelompok kerja dan CEO
dari perusahaan
Merencanakan prioritas dari permasalahan yang harus
segera diselesaikan saat itu juga dan waktu yang lain
Membuat kelompok kecil dalam perusahaan untuk
menangai sebuah produk dan langsung menunjuk
posisi : PM, pengembang, penguji, dokumenter
Menggunakan teknis pengembangansnych-and-
stabilize-fokus pada pengembangan harian dengan uji
integrasi dengan milestone pada jadwal yang jelas dan
realistis untuk menyelesaikan sebuah fitur yang spesifik
Pentingnya snych-and-stabilize
Ide utama dari teknik ini bukan saja hanya sekedar
mengajak programmer berinovasi dan
bereksperimen tetapi juga secara rutin melakukan
sinkronisasi dari rancangan mereka terhadap
produk yang tengah dikerjakan oleh tim yang lain
sesering mungkin kemudian dengan secara
terjadwal melakukan stabilisasi (debug dan
integrasi) coding mereka sebelum diproses kepada
tugas pengembangan selanjutnya
Hal yang perlu dipertimbangkan dalam penggunaan
teknik ini adalah:
Dapat dikategorikan lambat jika dibandingkan dengan
cepatnya perubahan kebutuhan pengguna,
perkembangan teknologi dan rancangan produk
software yang semakin lama tentu saja akan semakin
kompleks (rumit)
Focus Creativity
Work in pararel but syncronize continuosly
The daily build
Manajemen tim
Late Changes Can Be Good
Membangun dengan kualitas melalui pengujian secara
berkelanjutan
Konsep penting dalam
pengembangan software
Konsep penting dalam
pengembangan software
Focus creativity
Bagi proyek yang besar menjadi beberapa milestone yang lebih
kecil dengan buffer 20 50% dari waktu penyelesaian proyek
serta tanpa group pemeliharaan produk yang terpisah
Gunakan pernyataan visi dan garibawahi spesifikasi serta
panduan pengerjaan proyek
Pemilihan fitur dasar dan prioritaskan pada aktivitas dan data
pengguna
Kembangkan sebuah rancangan arsitektur modular dan
horizontal dengan struktur produk yang tercermin dari struktur
proyek
Dikendalikan dengan komitmen dari individu terhadap tugas
yang kecil dan sumber daya yang telah ditetapkan
Konsep penting dalam
pengembangan software
Work in pararel but syncronize continuosly
Untuk mengelola proses pengembangan produk dapat
mengimplementasikan beberapa prinsip di bawah ini:
Bekerja dalam tim yang pararel tetapi melakukan sinkronisasi dan debut
setiap hari
Selalu hasilkan produk yang dapat dikirimkan kepada pelanggan dengan
versi untuk setiap platform dan pasar utama
Gunakan bahasa yang umum pada satu wilayah pengembangan
Secara berkelanjutan, lakukan pengujian terhadap produk seiring
dengan pengembangannya
Gunakan data untuk mengukur penyelesaian milestone dan rilis dari
produk
Konsep penting dalam
pengembangan software
The daily build
Untuk membuat fitur baru, pengembang memeriksa file copy source code dari
versi master pusat
Pengembangan dilakukan terhadap file copy dari versi master pusat sebelumnya
Setelah dilakukan pengembangan, pengembang akan membuat build tersendiri
yang masih terpisah dari versi master pusat
Setelah build selesai dibuat, maka developer akan mencoba memeriksa apakah
terjadi error dalam produk yang ada. Biasanya akan sering diperiksa menjelang
akhir proyek atau kegiatan stabilisasi.
Setelah semuanya telah selesai dan bebas error, maka build yang sudah jadi
tersebut akan diupdate dengan diberikan nama versi terbaru dari master pusat
yang sudah ada sebelumnya tanpa menghapus master sebelumnya
Kegiatan ini akan terus berlangsung sampai bug dalam program sudah relatif
minim sebelum melanjutkan diri ke milestone pengembangan software
seterusnya
Late Changes Can be Good
Manajer tidak seharusnya memperlakukan perubahan pada saat terakhir
sebagai kesalahan atau respon yang tidak diinginkan dari pelanggan atau
bagian pengujian software
Perlu dipahami, hal ini dapat saja terjadi akibat perubahan pasar dan
teknologi yang lebih cepat daripada pengerjaan proyek itu sendiri
Ditambah lagi perusahaan tentu saja tidak ingin menjual produk yang
sudah usang/tidak sesuai lagi dengan keinginan pasar
Perlu dipahami bahwa pihak pengembang dan perusahaan seharusnya
memahami bahwa sebuah tim harus merespon, perubahan pasar yang
tidak terduga, masukan dari user, dan pergerakan kompetitor (pesaing)
A project that expects and allows projects to accommodate lots of change
with a minimal impact on quality and productivity is a great competitive
advantage for many software firms
Good vs Bad Times
Start-up biasanya akan menghadapi masalah
pendanaan walaupun telah memiliki inovasi
teknologi yang canggih, orang yang hebat, dan pada
masa yang normal malah memiliki kesempatan untuk
bisnis yang baik
Masalah pendanaan bukan karena produk software
kurang baik tetapi karena masalah ekonomi dari
pada investor yang akhirnya membuat mereka
berpikir lebih seksama sebelum melakukan investasi
terhadap sebuah bisnis
Ketika akan memulai sebuah perusahaan software yang
sukses, terkadang seorang entrepreneur perlu
mengesampingkan pesimisme dan prediksi-prediksi
aneh
Yang perlu dilakukan adalah bisnis software potensial
apa yang bakal dapat ada pada kondisi normal, tidak
terlalu jatuh atau tidak terlalu melambung
Perlu diingat, hal esensi dari entrepreneurship adalah
mengambil kelebihan short-term blips pada pasar
dan mengambil kesempatan yang mungkin tidak dilihat
oleh pesaing lainnya
Esensi penting seorang
entrepreneur start-up
Tim manajemen yang kuat
Pasar yang menarik
Produk, jasa atau hybrid solution yang menarik
Bukti kuat ketertarikan pelanggan
Rencana untuk mengatasi credibility gap
Sebuah Model bisnis yang menunjukkan pertumbuhan
awal dan potensi keuntungan
Fleksibilitas dalam strategi dan penawaran produk
Potensi untuk pemberian hasil yang besar bagi investor
Solusi Credibility Gap
Lakukan segala sesuatu untuk mendapatkan pelanggan loyal (reference
customer) pertama, walaupun ini berarti memberikan produk atau layanan yang
hampir gratis
Cari partner yang telah berkembang yang dapat menjamin kelangsungan
dukungan produk dan jasa, walaupun semisalnya start-up bangkrut. Kemitraan
seperti ini dapat menghasilkan bisnis baru untuk sebuah perusahaan yang telah
berkembang dan membantu perusahaan baru untuk berkembang win win
solution
Konsentrasi pada pengumpulan investor kecil, penasehat dan ahli yang
berkompeten yang dapat memberikan pelanggan potensial keyakinan bahwa
start-up ada perusahaan yang berharga
Fokus pada paling tidak di awal adalah pada niche market (pasar ceruk),
mungkin sebuah proyek berbasis kustomisasi atau layanan, yang tidak
membutuhkan usia yang panjang, kemudian buat daftar pelanggan serta mulai
menjual produk atau tawaran jasa yang telah diperluas/dikembangkan

Anda mungkin juga menyukai