The Business of Software Chp 02

30
PENGEMBANGAN & KEWIRAUSAHAAN PERANGKAT LUNAK INOVASI DAN KEWIRAUSAHAAN BERBASIS TEKNOLOGI

description

The Business of Software Chp 02

Transcript of The Business of Software Chp 02

Page 1: The Business of Software Chp 02

PENGEMBANGAN & KEWIRAUSAHAANPERANGKAT LUNAKINOVASI DAN KEWIRAUSAHAANBERBASIS TEKNOLOGI

Page 2: The Business of Software Chp 02
Page 3: The Business of Software Chp 02

Apakah itu Pengembangan Software?

• Pengembangan Software adalah hal utama dari perusahaandengan bisnis produk dan layanan software

• Pengembangan Software juga merupakan aktivitas kritisuntuk organisasi yang membuat atau menyesuaikan softwareyang dibeli untuk menjalankan operasional perusahaan

• Jika perusahaan tidak dapat membuat, mengkustomisasi ataumenginstall produk software unggul, perusahaan akan kurangmampu untuk bersaing dengan efektif

• Sebuah perusahaan software bisa saja beruntung dalammembuat sebuah top hit produk tetapi butuh keahlian lebihuntuk mempertahankan kinerja terbaik dari produk tersebut

Page 4: The Business of Software Chp 02

Apakah itu Pengembangan Software?

• Guna “mempertahankan” produk yang telah ada dari waktu ke waktudibutuhkan pengembangan software terus-menerus dari yang telah dirilissebelumnya

• Setiap pengembangan artinya terdapat peningkatan ukuran, kompleksitas,prioritas dan kepentingan dari software.

• Kesalahan dalam pembuatan software dapat berdampak besar bagi perusahaanbaik dari sisi biaya dan reliabilitas daripada perusahaan

• Oleh sebab itu, dibutuhkan teknis/manajemen yang baik dalam melakukanpengembangan produk software

• “Synch-and-stabilize” adalah salah satu teknik untuk membuat produk baru bagipengguna “Mass-Market”– Dapat diadaptasi dengan lebih mudah apabila terjadi perubahan di dalam

proyek untuk tingkat “fitur” dan rilis untuk produk yang telah ditambah lebihcepat

Page 5: The Business of Software Chp 02

Kendala umum dalam pengembangansoftware

• Kendala utama yang umumnya ditafsirkan ada di dalampengembangan sistem adalah adanya programmer terlalukreatif dan individualistis

• Akan tetapi, hal utama sebenarnya adalah tentang teknik darimanajer untuk membuat pekerjaan menjadi terstruktursehingga proses pengerjaan proyek menjadi terkendali

• Sebuah organisasi harus meneliti,berinovasi dan beradaptasiterhadap perubahan teknologiserta kebutuhan pelanggan

Page 6: The Business of Software Chp 02

Kendala umum dalampengembangan software

• Perusahaan dengan paket produk software ataukustomisasi harus belajar mengelola proses dan tidakdibatasi oleh proses itu sendiri agar sukses di masa yangbaik dan bertahan di masa sulit– Hal ini berarti bahwa segala sesuatu dari pendefinisian

kebutuhan dan arsitektur sistem sampai pengujian akhir dandukungan teknis, termasuk mekanisme feedback sepanjangfase serta fungsi-fungsi berbeda yang terlibat dalampenyelesaian pembuatan sebuah produk harus dapat dikeloladengan baik

Page 7: The Business of Software Chp 02

Masalah yang sering dihadapi– Versi NATO

• Sebuah konferensi NATO tentang pengembangan Softwaremenekankan beberapa masalah yang dihadapi perusahaandalam 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 cadanganapabila terjadi perubahan terhadap kebutuhan serta tugas pembuatanprogram yang telah dipisah-pisah dengan pemahaman yang tidakmenyeluruh terhadap sistem yang dibangun

– Variasi yang terlalu banyak– Kesulitan membagi SDM Perancang dengan Produksi karena keputusan

jenis rancangan diputuskan saat sedang melakukan coding

Page 8: The Business of Software Chp 02

– Sulit dalam Monitoring progress sebuah proyek software karena“Pengembangan program tidak selamanya menggunakan progres sederhanaseperti satu kegiatan berhubungan dengan kegiatan yang lain dengantahapan 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 yanglebih 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

Page 9: The Business of Software Chp 02

– Peningkatan kebutuhan akan programmer yang tinggi tetapidengan ketersediaan programmer berpengalaman dan terlatih yangrendah

– Sulit mencapai reliabilitas memadai (pengurangan error dantoleransi error) pada sistem software yang besar

– Ketergantungan software pada hardware, yang membuatstandarisasi pada software sulit untuk mesin dengan sistem yangberbeda

– Kurangnya persediaan komponen software yang dapat digunakankembali dalam mengembangan program yang baru

– Pemeliharaan software memakan biaya yang melebihi biayapengembangan sistem software tersebut

Masalah yang sering dihadapi– Versi NATO

Page 10: The Business of Software Chp 02

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

Page 11: The Business of Software Chp 02

Pengembangan Software seharusnya?– Ada perusahaan yang akhirnya membuat proses dan organisasinya

seperti pabrik untuk Mengembangkan software jenis tertentudengan mengelola proyek tertentu untuk dengan orang tertentu

– Ada perusahaan yang mencoba memisahkan penghasilankebutuhan dan proses perancangan high level dari kegiatan coding dan debugging dan mengoutsourcekan kegiatan programming dan pengujian kepada pihak lain di luar perusahaan. Beberapaperusahaan lebih berhasil dengan model seperti ini

– Tetapi, beberapa organisasi yang lain malah gagal akibatbanyaknya varietas dari produk yang dihasilkan termasuk kesulitandalam mengelola kebutuhan sistem, standarisasi tools danmethod yang digunakan, perubahan teknologi yang cepat

Page 12: The Business of Software Chp 02

Pengembangan Software seharusnya?– Ditambah lagi bahwa programmer yang kreatif

dan bertalenta biasanya tidak cocok denganlingkungan yang seperti pabrik, mereka butuhlingkungan yang mampu mendukung kreativitasmereka

• Di jepang, untuk mengatasi masalah programmer, perusahaan akan menempatkan mereka semuadidalam sebuah fasilitas yang khusus untuk melakukanpenelitian dan pengembangan yang terpisah daritempat operasional perusahaan walaupun umumnyaperusahaan di jepang menggunakan pengembangansistem melalui tahap-tahap SDLC

Page 13: The Business of Software Chp 02

• Kurangnya strategi dan proses pengembangan yang efektif dankomprehensif

• Rancangan produk sulit untuk ditetapkan, dimodifikasi, berkembangdan 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

Page 14: The Business of Software Chp 02

Pengujian danPenjaminan Mutu dalamPengembangan 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 danbagaimana bekerja dengan file yang telah usang

– Proses dari file check-in untuk penerimaan dan kompilasi keseluruhanmembutuhkan waktu satu sampai dua hari karena belum memilikikemampuan komputasi untuk mempercepat hal ini

– Tidak terdapat penentuan waktu untuk membangun integrasi yang berakibatpada para pengembang menjadi lambat dalam bekerja dan akhirnyamengerjakan sesuatu yang usang dan mengakibatkan developer lain harusbekerja dengan sesuatu yang usang yang berasal dari developer tersebut

– Pengujian pada versi alpha tidak memadai malah banyak pengujian setelahmasa alpha tersebut

Page 15: The Business of Software Chp 02

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 memberikanmasukan/kritik terhadap bagian produk yang tidak bekerja dengan maksimal

• Hal ini akhirnya berwujud pada penyelesaian proyek yang lebih cepat dariyang direncanakan, yang seharusnya bagus menjadi diragukan kualitaskecepatan pengerjaan proyek tersebut

Page 16: The Business of Software Chp 02

Pengetahuan danManajemen 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 dariperusahaan yang dikelola dengan kurang memuaskan

– SDM merasa kecewa terhadap bagaimana pihak manajemen mencegah “SDM ahli” dalammenghasilkan produk yang baik

– Orang yang telah demoralisasi (kehilangan motivasi) tidak dapat mencapai fokus dan kapabilitasmaksimal dalam menghasilkan sebuah produk yang berkualitas tinggi

– Pengembang merasa manager memperlakukan mereka seperti “anak kecil” dan tidak mampumengambil keputusan dan merasa bahwa segala hal kecil atau besar wajib dikonsultasikankepada manajer.

Page 17: The Business of Software Chp 02

Rekomendasi dan solusi terhadap masalah SDM

• Bekerja sama dengan kepala kelompok kerja dan CEO dari perusahaan

• Merencanakan prioritas dari permasalahan yang harussegera diselesaikan saat itu juga dan waktu yang lain

• Membuat kelompok kecil dalam perusahaan untukmenangai sebuah produk dan langsung menunjukposisi : PM, pengembang, penguji, dokumenter

• Menggunakan teknis pengembangan“snych-and-stabilize”-fokus pada pengembangan harian dengan ujiintegrasi dengan milestone pada jadwal yang jelas danrealistis untuk menyelesaikan sebuah fitur yang spesifik

Page 18: The Business of Software Chp 02

Pentingnya snych-and-stabilize• Ide utama dari teknik ini bukan saja hanya sekedar

mengajak programmer berinovasi danbereksperimen tetapi juga secara rutin melakukansinkronisasi dari rancangan mereka terhadapproduk yang tengah dikerjakan oleh tim yang lain sesering mungkin kemudian dengan secaraterjadwal melakukan stabilisasi (debug danintegrasi) coding mereka sebelum diproses kepadatugas pengembangan selanjutnya

• Hal yang perlu dipertimbangkan dalam penggunaanteknik ini adalah:– Dapat dikategorikan lambat jika dibandingkan dengan

cepatnya perubahan kebutuhan pengguna, perkembangan teknologi dan rancangan produksoftware yang semakin lama tentu saja akan semakinkompleks (rumit)

Page 19: The Business of Software Chp 02

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 dalampengembangan software

Page 20: The Business of Software Chp 02

Konsep penting dalampengembangan software

• Focus creativity– Bagi proyek yang besar menjadi beberapa milestone yang lebih

kecil dengan buffer 20 – 50% dari waktu penyelesaian proyekserta tanpa group pemeliharaan produk yang terpisah

– Gunakan pernyataan visi dan garibawahi spesifikasi sertapanduan pengerjaan proyek

– Pemilihan fitur dasar dan prioritaskan pada aktivitas dan data pengguna

– Kembangkan sebuah rancangan arsitektur modular danhorizontal dengan struktur produk yang tercermin dari strukturproyek

– Dikendalikan dengan komitmen dari individu terhadap tugasyang kecil dan sumber daya yang “telah ditetapkan”

Page 21: The Business of Software Chp 02

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

Page 22: The Business of Software Chp 02

Konsep penting dalampengembangan 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 menjelangakhir proyek atau kegiatan stabilisasi.

– Setelah semuanya telah selesai dan bebas error, maka build yang sudah jaditersebut akan diupdate dengan diberikan nama versi terbaru dari master pusatyang sudah ada sebelumnya tanpa menghapus master sebelumnya

– Kegiatan ini akan terus berlangsung sampai bug dalam program sudah relatifminim sebelum melanjutkan diri ke milestone pengembangan softwareseterusnya

Page 23: The Business of Software Chp 02

“Late Changes Can be Good”• Manajer tidak seharusnya memperlakukan perubahan pada saat terakhir

sebagai kesalahan atau respon yang tidak diinginkan dari pelanggan ataubagian pengujian software

• Perlu dipahami, hal ini dapat saja terjadi akibat perubahan pasar danteknologi yang lebih cepat daripada pengerjaan proyek itu sendiri

• Ditambah lagi perusahaan tentu saja tidak ingin menjual produk yangsudah usang/tidak sesuai lagi dengan keinginan pasar

• Perlu dipahami bahwa pihak pengembang dan perusahaan seharusnyamemahami bahwa sebuah tim harus merespon, perubahan pasar yangtidak terduga, masukan dari user, dan pergerakan kompetitor (pesaing)

• “A project that expects and allows projects to accommodate lots of changewith a minimal impact on quality and productivity is a great competitiveadvantage for many software firms”

Page 24: The Business of Software Chp 02
Page 25: The Business of Software Chp 02

Good vs Bad Times• Start-up biasanya akan menghadapi masalah

pendanaan walaupun telah memiliki inovasiteknologi yang canggih, orang yang hebat, dan padamasa yang normal malah memiliki kesempatan untukbisnis yang baik

• Masalah pendanaan bukan karena produk softwarekurang baik tetapi karena masalah ekonomi daripada investor yang akhirnya membuat merekaberpikir lebih seksama sebelum melakukan investasiterhadap sebuah bisnis

Page 26: The Business of Software Chp 02

• Ketika akan memulai sebuah perusahaan software yang sukses, terkadang seorang entrepreneur perlumengesampingkan pesimisme dan prediksi-prediksianeh

• Yang perlu dilakukan adalah bisnis software potensialapa yang bakal dapat ada pada kondisi normal, tidakterlalu jatuh atau tidak terlalu melambung

• Perlu diingat, hal esensi dari entrepreneurship adalahmengambil kelebihan “short-term blips” pada pasardan mengambil kesempatan yang mungkin tidak dilihatoleh pesaing lainnya

Page 27: The Business of Software Chp 02
Page 28: The Business of Software Chp 02

Esensi penting seorangentrepreneur 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

Page 29: The Business of Software Chp 02

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 kelangsungandukungan produk dan jasa, walaupun semisalnya start-up bangkrut. Kemitraanseperti ini dapat menghasilkan bisnis baru untuk sebuah perusahaan yang telahberkembang dan membantu perusahaan baru untuk berkembang – win winsolution

• Konsentrasi pada pengumpulan investor kecil, penasehat dan ahli yang berkompeten yang dapat memberikan pelanggan potensial keyakinan bahwastart-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 tidakmembutuhkan usia yang panjang, kemudian buat daftar pelanggan serta mulaimenjual produk atau tawaran jasa yang telah diperluas/dikembangkan

Page 30: The Business of Software Chp 02