2
perusahaan. Setiap stakeholder penting untuk
diperhatikan, namun mungkin tidak konsisten satu
sama lain.
-Teknologi dan pasar yang dinamis kebaruan
dari perusahaan perangkat lunak seringkali butuh
untuk mengembangkan atau mengoperasikan dengan
teknologi disruptif untuk memasuki pasar yang
berpotensi tinggi.
Paternoster, dkk [2] mengumpulkan tema berulang yang
muncul dalam penelitian dalam konteks startup. Disebutkan
bahwa para peneliti dalam jurnal akademik menggunakan
definisi yang berbeda-beda, namun ada beberapa
karakteristik yang berulang dalam penelitian-penelitian
tersebut:
Ketidakpastian
Tekanan waktu
Ketergantungan
terhadap pihak ketiga
Sejarah operasional
yang sedikit
universitas.
Perusahaan baru didirikan
Startup biasanya berpusat
pada founder dan setiap
orang dalam perusahaan
punya tanggung jawab yang
besar, tanpa butuh
manajemen tingkat tinggi.
Tingkat kegagalan startup
sangat tinggi.
Khususnya pada tingkat
awal, startup butuh
pembiayaan eksternal untuk
mempertahankan aktivitas
mereka (Venture Capitals,
Angel Investments,
Personal Funds, dll)
Pada awalnya basis dari
kultur organisasional belum
ada.
3
software development dan metode-metode lain yang
memiliki karakter sesuai dengan prinsip-prinsip agile.
Menurut Dyba dan Dingsoyr [8], metode pengembangan
agile dapat dilihat sebagai reaksi dari metode tradisional
yang menekankan pendekatan yang rasional, berdasar
pada keteknikan (engineering-based) yang mengklaim
bahwa terdapat solusi optimal dan dapat diprediksi untuk
setiap permasalahan. Para tradisionalis mendorong
perencanaan yang ekstensif, proses-proses yang
terkodifikasi, dan penggunaan kembali metode dengan teliti
untuk menjadikan proses pengembangan menjadi aktivitas
yang efisien dan dapat diprediksi. Reaksi itu bisa dianggap
wajar, karena banyak terjadinya kasus kegagalan proyek
pengembangan perangkat lunak, salah satu sebab utamanya
adalah karena sisi kebutuhan dan kepuasan pengguna
terhadap sistem informasi yang kurang dapat diprediksi.
Munculnya metode pengembangan agile sebagai
alternatif, bukan berarti menggantikan sama sekali metode
yang lama yang sudah ada. Metode ini bisa dianggap
sebagai pelengkap untuk membangun modul tertentu atau
bisa diterapkan dalam proyek percontohan (pilot project)
sebelum diterapkan secara luas misalnya dalam sebuah
perusahaan korporasi.
Beberapa penelitian menyebutkan bahwa metode agile
tidak sesuai untuk membangun sistem yang safety-critical
seperti perangkat lunak untuk militer dan pesawat terbang.
Pendapat ini juga tidak selalu berlaku karena organisasi
seperti FBI (Federal Bureau of Investigation) Amerika
Serikat melaporkan juga pernah menggunakan metode
Agile untuk mengembangkan sistem perangkat lunak
manajemen kasus Sentinel. [9].
Pada manifesto agile pertama, disebutkan bahwa
individu dan interaksi lebih penting daripada proses dan
alat. Pernyataan ini terbukti dalam temuan empiris di
berbagai pengembangan agile, seperti milik Paternoster,
dkk [2] dan Fontana, dkk [10]. Dalam konteks perusahaan
startup, Coleman dan OConnor [11] juga menyebutkan
bahwa yang diperlukan perusahaan startup adalah
peningkatan praktik (practice improvement) bukan
peningkatan proses (process improvement). Perusahaan
startup memang dimaksudkan sebagai perusahaan yang
belum dewasa (immature), yang selalu ingin belajar (eager
to learn) dari kesalahan dan kegagalan, dan cepat
beradaptasi dan berevolusi menjadi lebih dewasa (mature).
Untuk itu, pengembangan produk dilakukan secara iteratif
melalui trial-error dengan cara yang lincah (agile).
Fontana, dkk [10] dalam salah satu tahap penelitian
mereka untuk mendefinisikan maturitas pengembangan
agile, melakukan tinjauan literatur untuk membuat daftar
praktik pengembangan agile. Literatur yang dijadikan
sumber adalah jurnal IEEE, ACM, dan database Science
Direct, termasuk hasil dari konferensi (proceeding). Daftar
praktik agile tersebut berfungsi sebagai basis untuk
membuat instrumen pengukuran, yaitu berupa kuesioner.
Daftar tersebut memuat 70 praktik pengembangan
perangkat lunak dari lima literatur. Kemudian setelah data
kuesioner didapat, praktik-praktik tersebut dikategorikan
dalam 19 cluster. Daftar praktik tersebut (setelah
diterjemahkan) adalah sbb.
Tabel 2 Daftar Praktik Agile
Kelompok
Deskripsi Praktik
1. Kolaborasi
Berkomunikasi langsung
setiap hari
2.Kemunculan
kebutuhan
3. Manajemen
kode dan
pengujian
4. Kepedulian
terhadap
solusi (produk)
5.
Pengembanga
n berdasar
pengujian
6. Organisasisendiri secara
berkelanjutan
(sustainable
selforganization)
7. Kesederhanaan
8. Pertemuan
9. Iterasi
10. Mengelola
kebutuhan
11. Proses
perangkat
lunak
tradisional
11. Proses
perangkat
lunak
tradisional
infrastruktur
pengembangan yang
mendukung kelincahan
(agility)
Mengembangkan
kemampuan agility orangorang
Memiliki pengguna yang
berpartisipasi secara aktif
selama proyek
Mengembangkan produk
yang merespon kebutuhan
bisnis
culan
Menggunakan desain
perangkat lunak yang
sederhana
Melakukan pertemuan
pelacakan kemajuan secara
harian
Melakukan pertemuan
retrosprektif
Melakukan pengembangan
secara iteratif dan
inkremental
Merilis perangkat lunak
dalam jangka waktu yang
pendek-pendek
Terus-menerus
menghasilkan perangkat
lunak yang dapat berjalan
(working software)
Menggunakan product
backlog untuk
mendefinisikan kebutuha
Menggunakan cerita untuk
mendefinisikan kebutuhan
Menentukan spesifikasi
arsitektur perangkat lunak
Menggunakan timebox
(paket waktu kerja) dalam
perencanaan
Membuat estimasi bersama
orang yang akan
mengerjakan
us
Mengidentifikasi penyebab
permasalahan dan
bertindak untuk mencegah
terjadinya di masa depan
Menangani kompleksitas
organisasional secara
sederhana
Menangani persyaratan
regulasi secara sederhana
Menangani kompleksitas
domain secara sederhana
Menangani kompleksitas
organisasional secara
sederhana
Menangani persyaratan
regulasi secara sederhana
14.
Penyebaran
secara fisik
15. Pengkodean secara
agile
16. Kehadiran
pengguna
18. Kebutuhan
yang
sederhana
(lightweight)
19. Analisis
tradisional
Menangani kompleksitas
domain secara sederhana
Menangani kompleksitas
teknikal secara sederhana
Menangani disiplin
perusahaan secara
sederhana
Menggunakan planning
game
Membuat estimasi proyek
secara agile
Menulis dokumentasi secara
agile
Melacak dan melaporkan
kemajuan iterasi
Mengintegrasikan aktivitas
manajemen secara
langsung ke dalam tugastugas pengembangan
Tersebar secara geografis
(lain kota atau negara)
Tersebar secara fisik hingga
merefleksikan filosofi agile
Melakukan refaktor kode
(code refactoring)
Melakukan ppemrograman
berpasangan (pair
programming)
Fokus pada pekerjaan
(prioritas tidak berubah
selama iterasi)
Melakukan hal-hal ketika
harus hal-hal tersebut
dilakukan, bukan
sebelumnya
Melakukan penjaminan
kualitas secara agile
Membolehkan pengguna
untuk mendorong iterasi
Pengguna berada di tempat
yang sama dengan tim
(collocation)
Melakukan desain teknikal
kebutuhan
Mendistribusikan keahlian
pada tim dengan sesuai
Menjalankan pengujian
yang ringan (lightweight)
dan peninjauan
Menganalisis dan
menginspeksi kode
Mendefinisikan kebutuhan
yang sederhana
(lightweight)
Menggunakan metafora
untuk menjelaskan
kebutuhan
Melaksanakan analisis
sistem secara tradisional
5
Selanjutnya, penulis menggunakan daftar praktik agile
ini sebagai salah satu instrumen panduan dalam
pengumpulan data.
2.2.1 Daftar Istilah dalam Metode Pengembnngan Agile
Dalam rangka menambah pemahaman terhadap
prinsip, karakteristik, dan teknik-teknik yang digunakan
dalam Pengembangan Agile, dibutuhkan daftar istilah yang
dapat menjadi referensi. Alzoabi [12] dalam bab berjudul
Agile Software: Body of Knowledge, telah menjelaskan
tentang metodologi agile, karakteristik umumnya, dan
penjelasan singkat dari metode-metode agile yang terkenal
di industri dan penelitian. Dari artikel tersebut, diambil
(diterjemahkan) sebagai referensi istilah-istilah dalam
metode pengembangan agile berikut.
Agile Software Development Methods: Sebuah
kumpulan proses perangkat lunak yang bersifat kreatif,
fleksibel, adaptif, responsif, dan berpusat pada orang.
Metode ini berfokus pada komunikasi antara tim
pengembang dan pengguna, dokumentasi yang sedikit, dan
menerima perubahan.
Iteratif: Kata iteratif berarti mengembangkan
perangkat lunak melalui perulangan-perulangan.
Metodologi agile berusaha untuk memecahkan masalah
perangkatlunak dengan menemukan secara suksesif
mendekati sebuah solusi mulai dari kumpulan kebutuhan
inti minimal. Hal ini berarti tim agile merancang sebuah inti
sistem dan kemudian mengubah fungsionalitas dari tiap
subsistem seiring dengan perilisan baru ketika kebutuhan
diperbarui setiap kali. Karena itu, metode ini tidak seperti
metode pengembangan perangkat lunak tradisional yang
mencoba merancang solusi menyeluruh dengan sekali coba.
Para praktisi metodologi agile memahami kesulitan yang
dihadapi pengguna untuk menyatakan kebutuhan mereka
dengan cara yang benar dan justru mulai dengan beberapa
fungsi inti dari sistem dan kemudian mengubah siste setelah
mendapatkan pemahaman mendalam terhadap kebutuhan
dan keinginan pengguna melali kolaborasi yang ekstensif
dengan para pemegang kepentingan dalam proyek.
Incremental: Sebagai sebuah hasil dari pendekatan
iteratif dari metode agile, setiap subsistem dikembangkan
dengan cara yang membolehkan kebutuhan untuk muncul
dan digunakan untuk mengembangkan subsistem lain
berdasarkan iterasi yang sebelumnya. Pendekatan ini adalah
untuk memidularisasi sistem ke dalam subsistem yang lebih
kecil mengacu pada spesifikasi fungsionalitas dan
menambah fugsionalitas baru dengan setiap rilis baru.
Setiap rilis harus dapat diuji dan berupa subsistem yang
dapat digunakan. Ketika pengembangan berlanjut,
increments (tahapan-tahapan) baru ditambahkan hingga
sistem selesai dikembangkan. [13]
Simplicity: Prinsip KISS (Keep It Simple, Stupid)
adalah sentral dalam metode pengembangan agile. Kode,
desain, pengujian, dan dokumentasi yang sederhana akan
membantu dalam melakukan berbagai hal dengan cepat dan
menyesuaikannya jika dibutuhkan. [14]
Interaction with customers : Prinsip ini juga
sentral dalam metode agile karena menfokuskan pada
konsep seperti on-site customers (pengguna terlibat di
tempat) untuk mendapatkan umpan balik dengan segera
mengenai fungsionalitas yang dibutuhkan saat munculnya,
menjadikan lebih akurat dan memuaskan pengguna.
Self-organizing: Istilah ini mengenalkan sebuah
pendekatan yang radikal pada manajemen. Di sini metode
6
contohnya kebutuhan-kebutuhan. Berdasarkan tingkat
kepentingan yang dirasakan, product owner memilih apa
yang dimasukkan dalam setiap iterasi/sprint , dan meninjau
sistem di akhir sprint untuk mengontrol kualitas.
Scrum Master: Dia adalah ahli dalam Scrum dan
memahami siapa yang emngetahui dan mendorong iterasi
produk, tujuan, dan nilai-nilai dan praktik Scrum, menyelenggarakan pertemuaan harian (the Scrum Meeting)
dan demonstari iterasi (the Sprint Review), mendengarkan
kemajuan, menghilangan penghalang (blocks), dan menyediakan sumber daya. Scrum Master adalah juga seorang
pengembang dan berpartisipasi dalam pengembangan
produk (bukan hanya manajemen)
Development Sprints (release): Pengembangan
rilis fungsionalitas baru, dengan menghargai variabell
waktu, kebutuhan, kualitas, biaya, dan kompetisi. Interaksi
dengan variabel-variabel ini mendefinisikan akhir dari fase.
Terdapat beberapa, sprints pengembangan iteratif, atau
cycles (siklus), yang digunaan untuk mengevolusi sistem.
Developing by Feature: Setiap fungsi yang
implemen-tasinya akan memakan waktu lebih dari dua
minggu, dipecah menjadi fungsi-fungsi yang lebih kecil,
hingga fungsi yang dihasilkan dapat diimplementasikan
dalam dua minggu. Dalam sistem bisnis, sebuah fitur
mewakili sebuah langkah dalan beberapa aktivitas dalam
sebuah proses bisnis. Sebuah fitur adalah fungsi yang kecil,
bernilai yang dapat diimplementasikan dalam dua minggu.
Penamaan fitur adalah : <action> the <result> <by | for |of |
to | > <a(n)> <object>
Configuration Management: Ini membantu dalam
mengindentifikasi versi terakhir dari berkas source code
dan menyediakan pelacakan historis dari semua artifak
dalam proyek.
Domain Experts:Ini adalah orang bisnis yang mana
memiliki masalah. Ini dapat berupa user, customer, analis
bisnis, atau campuran di antaranya. Mereka menyediakan
pengetahuan yang dibutuhkan oleh pengembang untuk
memahami sistem dan mengembangkannya. Pengetahuan
dan partisipasi mereka sangat signifikan dalam kesuksesan
hasil sistem.
Time-Boxed: Menentukan deadline yang fixed
(tetap) akan memaksa para pengembang untuk
berkompromi di awal proyek dan akan mengantarkan pada
pengekatan yang lebih realistik dalam pengembangan.
7
sampel acak) yang telah ditentukan sejak awal penelitian,
dan banyak fenomena yang akan digali berbentuk tacit
knowledge (pengetahuan tidak terucapkan, tidak
terdokumentasi dengan baik). Observasi awal berupa
pengalaman penulis di perusahaan juga pertimbangan
pemilihan topik dan masalah penelitian. Selain itu,
preferensi penulis yang lebih cenderung pada penelitian
kualitatif karena ingin menggali banyak informasi dari
perusahaan studi kasus.
Untuk meneliti masalah dan objek penelitian dengan
karakteristik seperti disebut di atas, maka lebih tepat
digunakan metodologi penelitian kualitatif.
Langkah-langkah dalam penelitian metodologi kualitatif
tidak selalu mengikuti alur satu arah. Di tengah jalannya
penelitian dimungkinkan ada perubahan tertentu sebagai
adaptasi terhadap temuan di lapangan.
3.1 Instrumen Penelitian dan Sampling
Instrumen penelitian dalan penelitian kualitatif adalah
pewawancara itu sendiri. Hal ini berbeda dengan penelitian
kuantitatif yang biasanya menggunakan instrumen berupa
kuesioner yang dirancang sedemikian sehingga valid dan
reliabel. Dalam wawancara untuk menggali data tentang
bagaimana perusahaan startup mengembangkan produk
software-nya, diperlukan instrumen berupa pewawancara
yang mengetahui hal-hal terkait dengan startup. Dalam
konteks penelitian ini, instrumen yang dimaksud adalah
penulis sendiri sebagai peneliti dalam studi kasus. Untuk
itu, penulis mempersiapkan salah satunya diri dengan
mempelajari istilah-istilah yang sering digunakan
perusahaan startup, istilah-istilah dalam pengembangan
agile. Startup mempunyai banyak istilah teknologi atau
buzzwords yang tidak umum diketahui masyarakat, seperti
MVP (Minimum Viable Product), monetization, Test Driven
Development, dsb. Informasi dan pengetahuan tentang
istilah-istilah tersebut penting untuk membangun hubungan
wawancara yang jujur dan terbuka dari pihak pewawancara
dan informan/responden.
Untuk keperluan sampel penelitian, digunakan
purposive sampling, bukan random sampling yang sering
digunakan dalam penelitian kuantitatif. Purposive sampling
ini dilakukan dengan memilih sampel yang sesuai dengan
deskripsi umum teori pengembangan agile dalam
penelitian, juga dimasukkan dalam konteks penelitian ini
sebagai studi kasus perusahaan startup.
Perusahaan-perusahaan startup, menurut pengamatan
dan pengalaman penulis, biasanya mempunyai sebuah
wadah komunitas tertentu. Sebelumnya terdapat beberapa
kandidat perusahaan startup yang akan dijadikan sampel
dalam studi kasus, namun akhirnya dipilih hanya satu yang
aksesnya lebih mudah (convenience sampling). Perusahaan
tersebut sebuah perusahaan startup yang didirikan oleh
teman seangkatan penulis. Perusahaan startup ini sudah
berdiri sejak tahun 2013. Dalam perusahaan startup ini ada
empat anggota tetap tim. Yang dipilih sebagai
responden/informan adalah dua pendiri (founder)
perusahaan tersebut.
Sebelumnya penulis sempat mempertimbangkan untuk
menggabungkan metode kualitatif dengan kuantitatif.
Penggabungan metode (mixed methods) sebenarnya lebih
tepat jika tujuan penelitian adalah untuk menghasilkan hasil
yang dapat lebih digeneralisasi. Namun mengingat
keterbatasan sumber daya dan waktu, juga risiko tinggi
kegagalan penelitian akibat pengembalian respon kuisioner
8
kai berkisar antara startup dan agile software
development.
Literatur utama yang ditemukan dan dijadikan
referensi dalam penelitian ini adalah:
1. Paternoster, dkk.
(2014). Software development in startup companies:
A systematic mapping study. Information and
Software Technology. [2] Dalam makalah ini
Paternoster, dkk melakukan studi pemetaan
sistematis dengan menelusuri dan mengumpulkan
berbagai literatur akademik bertema startup,
mencoba menggali apa yang telah diketahui tentang
pembangunan perangkat lunak di perusahaan startup,
dan potensi implikasi penerapannya dalam praktik.
Dari makalah ini penulis mengambil daftar
karakteristik perusahaan startup.
2. Dyba,
T.,
&
Dingsyr, T. (2008). Empirical studies of agile
software development: A systematic review.
Information and Software Technology, 833-859. [8]
Dalam makalah ini dibahas tentang apa yang telah
diketahui tentang kelebihan dan kekurangan metode
pengembangan agile, disertai bukti empirisnya yang
ditemukan dalam berbagai literatur hingga tahun
2008.
3. 3. R. M. Fontana,
I. M. Fontana, P. A. d. R. Garbuio, S. Reinehr dan A.
Malucelli, Processes versus people: How should
agile software development maturity be defined?,
The Journal of Systems and Software, no. 97, pp.
140-155, 2014. [10] Dalam makalah ini dibahas
tentang maturitas pengembangan perangkat lunak
agile. Dalam manifesto agile, metode pengembangan
agile disebut memiliki prinsip lebih mengutamakan
individu dan interaksi daripada proses dan alat dalam
pengembangan perangkat lunak. Hal ini menjadikan
berbagai perspektif pengukuran maturitas yang
berfokus pada proses pengembangan perangkat lunak
kurang sesuai. Lebih jauh, makalah ini mengajukan
definisi maturitas pengembangan perangkat lunak
agile Dari makalah ini penulis mengmbil rujukan
daftar praktik agile (agile practices) yang
diidentifikasi dari berbagai literatur akademik.
3.4 Pengumpulan Data
Pengumpulan data merupakan serangkaian aktivitas
yang bertujuan untuk mengumpulkan informasi yang
menandai dalam rangka menjawab masalah penelitian.
Cresswell (2009) memberikan penjelasan tentang aktivitas
dalam penelitian kualitatif. Data yang akan dikumpulkan
melalui penelitian penelitian ini adalah data yang sesuai
dengan fokus penelitian yaitu tentang metode
pengembangan agile di perusahaan startup.
Jenis data yang digali adalah dalam bentuk kata-kata
atau ucapan lisan (verbal) dan perilaku dari subjek (tim
dalam perusahaan startup) berkaitan dengan metode
pengembangan agile.
Mengumpulkan data dari perusahaan startup cukup sulit.
Hal ini dikarenakan karakteristik dari perusahaan yang
memang tidak banyak melakukan dokumentasi. Jadi teknik
pengumpulan data yang digunakan adalah wawancara
secara mendalam.
9
Wawancara dilakukan dengan dialog langsung (tatap
muka) dengan anggota tim pengembang perusahaan startup
dan anggota tim lainnya yang berperan dalam
pengembangan. Selain wawancara yang terjadwal,
pewawancara juga dapat melengkapi data dengan
percakapan tambahan melalui media komunikasi online.
3.4.1 Observasi Awal
Perusahaan yang dijadikan studi kasus ini merupakan
perusahaan startup tempat penulis melakukan Kerja Praktek
pada bulan Agustus hingga Oktober 2013. Pada saat itu
produk yang sedang dikembangkan perusahaan adalah
layanan direktori dan pencarian kampus yang dapat diakses
melalui kampus.co.id. Penulis berpartisipasi secara moderat
dalam menambah dan memperbarui konten dalam layanan
tersebut.
Setelah mendapatkan beberapa pengalaman dalam Kerja
Praktek tersebut, timbul niat penulis untuk meneliti lebih
lanjut tentang bagaimana seharusnya perusahaan startup
dijalankan. Hal ini dikarenakan penulis merasa banyak hal
yang dilakukan dalam perusahaan terlalu sering berubahubah, tim tidak memiliki panduan yang cukup atau terlalu
variatif karena diambil dari berbagai sumber dari internet.
Selain itu, panduan berupa berbagai artikel online tersebut
dirasakan kurang sesuai dengan konteks kultural sifat
perusahaan startup di Indonesia dan target pasarnya.
Pada bulan November hingga tahun berikutnya sekitar
bulan April 2014, penulis melanjutkan membantu pekerjaan
operasional dalam perusahaan sebagai intern. Pada bulan
Januari 2014 perusahaan melakukan perubahan besar
berupa pivot produknya menjadi layanan sertifikasi online
di domain internet cert.kampus.co.id. Penulis mengamati
proses pengembangan produk yang sering diistilahkan
sebagai pemrograman koboi, yaitu desain awal seminimal
mungkin dengan kebutuhan fitur didapat dari investor dan
asumsi-asumsi tim, lalu segera membuat prototype desain
user interface (UI), melakukan aktivitas coding, dan terus
melakukan perbaruan secara iteratif.
Sampai di sini penulis merasakan banyak hal yang
berbeda dari teori proses pembangunan perangkat lunak
yang didapatkan oleh penulis sebelumnya dalam kuliah. Hal
ini menyebabkan timbul keinginan penulis untuk
menelusuri literatur akademik mengenai metode
pengembangan perangkat lunak yang sedang menjadi tren
dan populer menggantikan metode pengembangan
perangkat lunak lama. Seiring dengan itu, penulis juga
mulai memikirkan hipotesis sementara (working
hypothesis) untuk mengidentifikasi dan merumuskan
masalah dan rancangan penelitian (research design) yang
sesuai.
3.4.2 Strategi Wawancara
Masalah yang mungkin muncul dalam pelaksanaan
penelitian adalah keterbatasan akses, kesalahpahaman
terhadap tujuan, topik dan bidang penelitian antara peneliti
dengan informan/responden, ketidakterbukaan (atau
kekurang-terbukaan) responden terhadap pertanyaan yang
diajukan yang mempengaruhi data, dsb.
Untuk membangun akses, peneliti mengontak responden
beberapa minggu sebelumnya untuk menjelaskan tujuan
penelitian, meminta kesediaan wawancara (disertai tanda
tangan surat keterangan kesediaan jika perlu),
menjadwalkan kegiatan wawancara.
Untuk
menghindari
kesalahpahaman,
peneliti
menunjukkan proposal penelitian disertai draft pedoman
10
Lebih lanjut,
didetailkan sbb.
rumusan
masalah
tersebut
dapat
11
aktivitas pengembangan perangkat lunak, seperti
pembentukan tim, alur pekerjaan, penjadwalan rilis produk,
dsb. Dalam berbagai sumber literatur non-akademik yang
menyebutkan metode pengembangan yang mendekati gaya
kerja perusahaan startup adalah metode agile. Oleh karena
itu, diambil asumsi bahwa pengembangan perangkat lunak
agile adalah metode yang dipakai oleh perusahaan startup.
Selain isu tersebut, walaupun sudah ada berbagai
literatur yang membahas tentang perusahaan startup, masih
belum ada definisi perusahaan startup yang disepakati. Hal
ini akan menyulitkan untuk menelusuri literatur akademik.
Untuk itu, perlu dikumpulkan daftar karakteristik
perusahaan startup dalam literatur akademik. Kamudian,
karakteristik tersebut perlu dicocokkan dengan konteks
perusahaan startup dalam studi kasus untuk keperluan
konfirmatori.
Isu lain yang diidentifikasi adalah praktik kerja
(work practices) yang membahas tentang aktivitas
perusahaan startup selain pengembangan perangkat lunak.
12
membangun satu produk. Perusahaan dalam studi kasus
tidak hanya membangun satu produk namun fokusnya lebih
luas ke satu bidang, yaitu menyasar ke produk dan layanan
pendidikan tinggi. Perusahaan startup studi kasus ingin
membangun berbagai produk dan layanan yang inline
dengan fokus pendidikan tinggi, dan masing-masing produk
dan layanan diharapkan dapat saling terkait dan saling
mendukung dalam operasionalnya.
Kalau kita bilangnya bukan satu produk tapi
mungkin lebih ke satu bidang ya. Jadi ada benang
merahnya. jadi kalo kita misalnya bidangnya pendidikan
tinggi, misalnya perguruan tinggi dan sebagainya. Jadi
mungkin tidak satu produk. Tapi mungkin beberapa produk
tapi masih inline dan bisa saling mendukung. (Wcr.R1.18,
merespon pertanyaan karakteristik perusahaan startup:
membuat satu produk)
.. nggak selalu satu produk. Ada startup yang
misalkan startup di industri game misalnya. Dia bisa
menelurkan paling tidak dua game dalam setahun. Jadi dia
nggak cuma berkutat dalam satu produk. (Wcr.R2.16,
merespon pertanyaan karakteristik perusahaan startup:
membuat satu produk)
4.5.3 Praktik Pengembangan Perangkat Lunak Agile di
Perusahaan Startup Studi Kasus
Perusahaan startup studi kasus mengkonfirmasi tidak
adanya kumpulan praktik terstandar yang dipakai dalam
mengembangkan perangkat lunak. Namun setelah
dilakukan wawancara dengan menggunakan pedoman
daftar praktik agile, terdapat banyak praktik yang ternyata
dilakukan di perusahaan. Hal ini mengkonfirmasi temuan
Paternoster, dkk [2] bahwa perusahaan startup mengambil
praktik-praktik agile secara oportunistik, disesuaikan
dengan kebutuhan dan kemampuan untuk menerapkannya.
Dalam perusahaan startup studi kasus, praktik
pengembangan perangkat lunak yang dipilih adalah praktikpraktik agile. Praktik-praktik itu tidak diterapkan secara
kaku, namun pelaksanaannya membutuhkan disiplin diri
dan disiplin tim, sambil terus berusaha mematuhi prinsipprinsip agile. Praktik-praktik tersebut tidak diterapkan
semuanya secara sekaligus, namun dipilih-pilih lagi
berdasarkan situasi dan kondisi startup sepanjang siklus
hidupnya.
Dalam hal kolaborasi, perusahaan startup studi kasus
mempraktikkan saling bertanya dan saling belajar antara
satu sama lain, berkolaborasi dengan anggota tim, menjaga
pekerjaan agar tetap sederhana, membagi tanggung jawab,
dan mendorong budaya bekerja bersama sebagai tim
daripada sendiri-sendiri.
Dalam hal kemunculan kebutuhan (emerging requirement), perusahaan startup studi kasus membolehkan
munculnya kebutuhan-kebutuhan, dan memungkinkannya
untuk berevolusi ketika proyek sedang berlangsung. Hal ini
diperkuat dengan pernyataan penjelas responden
pertamadan kedua berikut.
Jadi requirement, misalkan kita sudah state bahwa kalo
ada penambahan pada tahap development itu
memungkinkan sebenarnya. Dan biasanya seperti itu, ada
penambahan yang harus dilakukan. jadi ya mungkin itu
agak sedikit salah ya, tapi mau nggak mau harus dilakukan
karena ya itu kan dinamis.. terlalu dinamis malah startup.
(Wcr.R1.27, saat menjelaskan pertanyaan penerapan
evolutionary requirement)
Nah habis wireframing ini, kita kasih ke desainer, jadi yang
menginterpretasikan wireframe yang kita buat itu desainer. Tentu
desainer juga terus kita kasih feedback sampe ketemu bentuk
prototype-nya. Baru setelah prototype itu jadi baru kita bikin
fungsi-fungsi aplikasinya.. backend.. dan segala macem dari
prototype itu.
Setelah prototype itu baru aplikasi itu jadi. 'Jadi' itu pun
belum tentu semua fturnya akan kepake, bisa ditambah bisa
dikurangi, tergantung nanti kondisi ke depan. Kita ada
wawancara dengan calon user. Kita konsultasi dengan
beberapa mentor, dsb.. ya intinya, akan terus berubah. Asal
ide besarnya untuk aplikasinya masih tetep sama.
(Wcr.R2.22, saat menjelaskan tahap-tahap pengembangan
secara garis besar)
Evolutionary requirement.. bener [ini dilakukan], jadi
requirement akan terus berubah selama project
berlangsung. (Wcr.R2.24, merespon pertanyaan tentang
evolutionary requirement)
Dalam manajemen kode dan pengujian, perusahaan
startup studi kasus menjalankan user acceptance test,
mengumpulkan test metrics, mengelola konfigurasi
perangkat lunak (version control), mengelola source code,
merencanakan perilisan, dan perencanaan saat sebelum dan
selama proyek berlangsung. Kode adalah aset intelektual
yang perlu dikelola sedemikian sehingga dapat digunakan,
dikembangkan, dan di-deliver kepada pengguna. Praktik
agile bukan praktik yang tidak mengindahkan manajemen
seperti yang mungkin dipikirkan oleh sebagian orang.
Justru manajemen kode dilakukan terintegrasi dalam proses
pengembangan, dan mengumpulkannya bersama aktivitas
pengujian. Pengujian yang dilakukan berfokus kepada
pengguna, maka pengujian dilakukan utamanya melalui uji
penerimaan kepada pengguna. Pengujian tidak dilakukan
khusus oleh tester atau hanya bisa melalui prosedur
penjaminan kualitas (quality assurance) formal yang bisa
memakan lebih banyak waktu.
Untuk manajemen kode, perusahaan startup studi
kasus menggunakan berbagai alat yang tersedia di internet
bagi para pengembang modern, seperti Git version control,
platform repositori source code Github dan Bitbucket.
Jadi untuk tools, kita bagi jadi dua aja ya; jadi ada
tools untuk software development, sama tools untuk
management software development. ... Kalau untuk
software development sendiri, tools and technology-nya
hampir semua sih open source. ... terus untuk version
control kita pake Git, open source juga. Kalau untuk
repository-nya kita pakai BitBucket. Trus untuk tools
pengembangannya kita pakai IDE/text editor Sublime
[Sublime Text]. Ya kebanyakan open source, dan ya
kalaupun nggak open source kita masih cari yang free,
kecuali terpaksa ... ya kita bayar. (Wcr.R2.32, menjawab
tentang Tools and Technologies yang dipakai oleh
perusahaan startup)
13
(kalau untuk development-nya? apakah pake tools
tertentu?) pake-nya github ya.. (Wcr.R1.66, menjawab
tentang Tools and Technologies yang dipakai oleh
perusahaan startup)
Perusahaan startup sangat mempedulikan produk yang
sedang mereka bangun, sebagai solusi berharga yang
mereka percayai dapat menyelesaikan masalah orang-orang.
Karena itu, mereka juga memperhatikan sarana pendukung
agar produk tersebut memenuhi standar, dapat memenuhi
kebutuhan skalabilitas dan berusaha men-deliver-nya
sesegera mungkin kepada pasar. Demikian juga, karena halhal tersebut perusahaan startup studi kasus menggunakan
standar kode, memperhatikan tentang arsitektur database,
dan men-definisikan cakupan menurut jadwal (tidak
berdasarkan anggaran). Standar kode yang digunakan oleh
perusahaan startup studi kasus mengikuti standar kerangka
kerja (framework) PHP Laravel. Teknologi database yang
dipilih adalah MySQL yang memiliki dukungan komunitas
open source yang kuat, sesuai dengan kemampuan sumber
daya perusahaan startup dan kebutuhan membangun produk
di atasnya dan mencukupi kemungkinan untuk menmpung
skalabilitas. Arsitektur database dipilih yang berbasis
teknologi cloud computing untuk menghemat biaya dan
memitigasikan risiko kegagalan skalabilitas kepada
penyedia layanan database server dan application server.
Perusahaan startup juga mendefinisikan cakupan (scope)
berdasarkan jadwal, karena waktu adalah sumber daya yang
sangat terbatas, yaitu mereka harus menghasilkan sesuatu
sebelum sumber daya finansial untuk operasional habis
digunakan [18].
Coding standards.. iya, soalnya kita pake framework,
kecuali kalau kita bikin sendiri kan nggak standard. (Pakai
framework apa itu kalau boleh saya tahu..) Pake Laravel..
PHP Laravel, ini udah ada coding standardnya sendiri, kita
bangun aplikasi di atasnya sudah pasti ngikuti coding
standard. (Wcr.R2.28, menjawab pertanyaan tentang
coding standards)
Khusus untuk pengujian, dalam perusahaan startup
studi kasus dipraktikkan unit test walaupun belum
terotomasi, dan mem-praktikkan TDD atau Test-Driven
Development. (lihat jawaban wawancara Wcr.R1.46 dan
Wcr.R2.30)
Bekerja pada peruusahaan startup menuntut anggota
tim di dalamnya untuk serba mandiri, tidak pasif menunggu
perintah atau
keputusan,
namun proaktif
dan
mengorganisasi sendiri secara berkelanjutan (sustainable
self-organization). Praktik-praktik yang termasuk cluster ini
adalah:
- Berusaha mengorganiasi-sendiri (mandiri, selforganizing)
- Menggunakan kepemilikan kode secara kolektif
- Melakukan integrasi kode secara terus menerus
(continuous code integration)
14
prototyping, namun jika sudah berumur dua-tiga tahun
seperti perusahaan startup studi kasus, meeting bisa
dilakukan secara mingguan, atau bahkan bulanan karena
yang menjadi target adalah pertumbuhan skalabilitas,
beralih dari fokus awal pada pembangunan produk. Dan
juga, pekerjaan yang tidak membutuhkan saling bertemu
bisa dilakukan dari jarak jauh (remote).
Untuk di Beenary Lab, kita cenderung ke Scrum
sebenarnya. Jadi Scrum itu ciri khas utamanya ada ...
standup meeting. Jadi standup meeting itu kita sebelum
kerja kita meeting singkat.. ya nggak harus standup.. jadi
yang pasti kita tentukan apa aja target hari ini.
(Wcr.R2.23)
Manajemen proyek dalam perusahaan startup studi
kasus dilakukan sekedarnya, tanpa dokumentasi dan tanpa
menerapkan planning game seperti dalam eXtreme
Programming (XP). Yang dilakukan adalah membuat
estimasi proyek secara agile.
Nah, documentation itu kita nggak ada.. sama sekali
nggak ada ... Making agile project estimation.. iya, tapi
mungkin nggak sesuai formatnya.. aku nggak tahu
formatnya [yang terstandar]. kayak yang pernah kita buat
itu.. termasuk cost nggak sih? Yang pertama timeline, rilis
per fitur, user acquisition.. nggak tau itu termasuk agile
(agile
project
estimation) nggak..
(Wcr.R1.33,
karakteristik estimasi yang tidak fixed, bisa berubah-ubah
seiring dengan perkembangan proyek menunjukkan bahwa
estimasi secara agile sedang dilakukan)
Pengembangan perangkat lunak pada perusahaan
startup studi kasus dilakukan secara iteratif, juga dalam hal
pemantauan proyeknya.
Delivering software continuously.. iya. (jadi kalo ada
fitur baru.. langsung di-push, gitu) iya, jadi langsung di-test
ke user. (Wcr.R1.30, merespon tentang praktik delivering
software conti-nuously)
Tracking dan reporting ini kita pake Basecamp
sebenernya, sama Time Doctor. (Wcr.R1.37, merespon
poin Tracking and reporting iteration progress)
Sayangnya, praktik pengintegrasian aktivitas manajemen secara langsung ke dalam development tasks masih
belum dilakukan. Ke depannya hal ini direncanakan oleh
CEO untuk dicoba terapkan pada perusahaan startup studi
kasus.
management activities.. iya harusnya. (untuk
pertanyaan ini sebenarnya untuk keadaan as-is.. bukan
'seharusnya'.. jadi as-is aja, bukan akan rencananya
dilakukan) iya, ini dilakukan. (harusnya akan dilakukan,
jadi to-be ya?) iya, harusnya.. akan dilakukan.
(Wcr.R1.38, merespon poin project monitoring:
Integrating management activities directly into
development tasks)
15
kasar belum.. hampir pasti akan sangat berbeda ketika
aplikasi sudah jadi.
Nah habis wireframing ini, kita kasih ke desainer, jadi yang
menginterpretasikan wireframe yang kita buat itu desainer.
Tentu desainer juga terus kita kasih feedback sampe ketemu
bentuk prototype-nya. Baru setelah prototype itu jadi baru
kita bikin fungsi-fungsi aplikasinya.. backend.. dan segala
macem dari prototype itu.
Setelah prototype itu baru aplikasi itu jadi. 'Jadi' itu pun
belum tentu semua fturnya akan kepake, bisa ditambah bisa
dikurangi, tergantung nanti kondisi ke depan. Kita ada
wawancara dengan calon user. Kita konsultasi dengan
beberapa mentor, dsb.. ya intinya, akan terus berubah. Asal
ide besarnya untuk aplikasinya masih tetep sama.
(Wcr.R2.22,
merespon
permintaan
agar
pengembangan dijelaskan secaara garis besar)
3.
5.2 Saran
Ada beberapa hal yang dapat disarankan sebagai
penelitian lebih lanjut atau penerapan dalam praktik kerja
dan pengembangan perangkat lunak pada perusahaan
startup:
1.
proses
2.
3.
4.
5.
5.1 Kesimpulan
Beberapa hal yang dapat disimpulkan dari penelitian
Tugas Akhir ini adalah :
1.
2.
6.
7.
16
8.
9.
DAFTAR PUSTAKA
[1]
[2]
[3]
[4]
[5]
S. Sutton, "The role of process in software startup," IEEE Software, vol. 17, no. 4, p. 3339,
2000. http://ieeexplore.ieee.org/stamp/stamp.jsp?
tp=&arnumber=854066&isnumber=18557,
http://dx.doi.org/10.1109/52.854066
[6]
http://dx.doi.org/10.1016/j.dss.2008.11.009
[7]
[8]
[9]
[10]
R. M. Fontana, I. M. Fontana, P. A. d. R.
Garbuio, S. Reinehr and A. Malucelli, "Processes
versus people: How should agile software
development maturity be defined?," The Journal
of Systems and Software, no. 97, pp. 140-155,
2014.
http://www.sciencedirect.com/science/article/pii/
S0164121214001587,
http://dx.doi.org/10.1016/j.jss.2014.07.030
[11]
[12]
[13]
17
http://dx.doi.org/10.1109/AFRICON.2004.14068
81
[14]
[15]
[16]
[17]
[18]
[19]
[21]
[22]
[23]
[24]
[25]
[26]
[27]