Software Factory

8 tanda bahwa software developer sedang bekerja di pabrik software

Konten tentang Scrum
Modern Management
Published in
11 min readMay 7, 2018

--

Wah sudah cukup lama ternyata saya tidak menulis di blog ini ya. Dan tidak terasa ternyata kita sudah memasuki tahun 2018. Era digitalisasi katanya. Perusahaan-perusahaan pun ramai-ramai melakukan digital transformation dan tidak jarang mereka mengundang konsultan-konsultan beken dari luar negeri. Digital transformation pokoknya sedang menjadi hype lah. Sayangnya digital transformation tidak dibarengi oleh pemahaman yang modern dari era digital. Banyak korporasi yang masih terjebak dalam pola pikir era industrialisasi dari abad 20 ketika melakukan digital transformation. Banyak korporasi yang tertatih-tatih dalam digital transformation karena mereka pikir digital transformation hanyalah sekedar mengubah proses manual ke alat digital berbasis web atau berbasis mobile tanpa dibarengi oleh perubahan pola kerja dan pola pikir yang lebih modern dan relevan dengan era digital.

Scientific Management (Taylorism)

Sekarang mari kita bahas pola pikir industrialisasi yang kebanyakan dipengaruhi oleh Scientific Management atau sering disebut orang-orang sebagai Taylorism. Seperti yang saya sudah pernah bahas di artikel sebelumnya kalau model manajemen yang diimplementasikan oleh banyak korporasi dipengaruhi oleh teori Scientific Management yang dipelopori oleh Frederick Winslow Taylor. Model Scientific Management sangat popular di era industrialisasi dan banyak diadopsi oleh perusahaan-perusahaan manufaktur.

It is also clear that in most cases one type of man is needed to plan ahead and an entirely different type to execute the work.
— Scientific Management

Selain fokus pada cost efficiency, Scientific Management juga menitik-beratkan pada pemisahan antara yang berpikir (thinkers) dengan yang melakukan (doers). Dalam konsep Scientific Management, yang berpikir (thinkers) tidak boleh melakukan, dan yang melakukan (doers) tidak boleh berpikir.

The work of every workman is fully planned out by the management at least one day in advance, and each man receives in most cases complete written instructions, describing in detail the task which he is to accomplish, as well as the means to be used in doing the work.

— Scientific Management

Dalam Scientific Management yang berpikir hanyalah manajemen, atau biasa disebut sebagai HiPPo (Highest Political Power atau Highest Paid Person Opinion) dan para buruh pabrik cukup melakukan apapun yang diperintahkan oleh manajernya. Bukan hanya manajemen menentukan apa yang harus kerjakan bahkan sampai alat-alat yang pekerja gunakan dan alur kerjanya. Buruh pabrik dianggap tidak bisa berpikir sendiri karena itu perlu ada satu tingkatan di atas mereka yang lebih pintar yang memikirkan pekerjaan untuk mereka kerjakan setiap harinya.

Whenever the worker proposes an improvement, it should be the policy of the management to make a careful analysis of the new method, and if necessary conduct a series of experiments to determine accurately the relative merit of the new suggestion and of the old standard.

— Scientific Management

Menurut Scientific Management, dengan manajemen mengoptimalisasi setiap buruh pabrik maka keluaran dari pekerjaan mereka juga bisa optimal. Bukan hanya pekerja tidak bisa ambil inisiatif, mereka juga tidak dipercaya untuk membuat improvement dalam pekerjaan mereka. Scientific Management dibangun di atas low-trust environment di mana orang-orang dianggap tidak bisa berpikir sendiri. Maklum, karena yang di-manage adalah buruh pabrik. Peran manajer adalah sebagai controller yang menggerak-gerakkan setiap individu seperti boneka sesuai keinginannya.

Walaupun Scientific Management optimal untuk tipe pekerjaan di pabrik dan relevan di era industrialisasi, namun Scientific Management sudah tidak sesuai lagi dengan pekerjaan kreatif seperti software development dan di era digital. Sepanjang artikel ini saya akan menyebut perusahaan yang mengelola software development seperti mengelola pabrik sebagai pabrik software. Berikut adalah panduan yang dapat kalian gunakan untuk mengidentifikasi apakah saati ini kalian sebagai seorang software developer sedang bekerja di pabrik software atau bukan.

1. Software developer berada pada pay grade terendah di perusahaan

Dalam pabrik software, software developer hanya dipandang sebagai resource. Dalam pabrik software, software developer dianggap sebagai buruh ketik kode yang tidak dipercaya untuk berpikir sendiri sehingga harus mendapatkan perintah dari orang lain yang berpikir untuk mereka seperti manajer proyek atau system analyst. Sesuai teori Scientific Management, di pabrik software, software developer kerjanya hanya menulis kode dan tidak boleh berpikir apalagi men-challenge sebuah keputusan dari si bos. Yang diperintah tidak boleh memiliki gaji yang lebih tinggi dari yang memerintah. Logikanya membuat software adalah pekerjaan pabrikan. Ini adalah cara berpikir turunan Scientific Management yang sudah tidak relevan dengan era digital.

Software developer seharusnya bisa memiliki gaji lebih tinggi dari manajer seperti dokter di rumah sakit dan berkarir secara professional tanpa harus mengikuti hirarki dalam struktur perusahaan karena mereka bukan orang yang lebih bodoh dibanding manajer ataupun analyst. Di era digital software developer harus dipandang sebagai orang cerdas — yang tidak seperti buruh pabrik — dan seharusnya diberikan sebuah lingkungan dimana mereka bisa self-direct dan self-manage untuk berinovasi menghasilkan nilai tertinggi untuk bisnis bukan lagi dikontrol oleh manajemen seperti wayang. In digital era, business face new levels of complexity and uncertainty hence software developers need to be given greater decision making authority. The role of management in digital era is to create an environment where software developers can thrive not to control software developers.

Kalau software developer masih berada pada pay grade terendah, tidak bisa berkarir secara professional (satu level di atas office boy) dan harus selalu mengikuti perintah manajemen, ini adalah indikasi pertama bahwa software developer kerja di pabrik software.

2. Software developer dipindah dari satu pos kerja ke pos kerja lainnya

Dalam pabrik software, software developer tidak dipandang sebagai seorang inovator yang cerdas. Dalam pabrik software, sesuai jalan berpikir Scientific Management, software developer hanyalah resource yang dipindah-pindahkan dari satu pos ke pos lainnya bagaikan bidak-bidak catur. Mereka hanya mendapatkan perintah kerja dari manajer proyek. Software developer diharapkan untuk memiliki komitmen yang telah dibuat oleh orang lain di lapangan golf atas nama mereka. Mereka diharapkan untuk memiliki ownership terhadap proyek tetapi realitanya mereka tidak bisa punya ownership dan tidak bisa jatuh cinta terhadap produk yang mereka kembangkan karena sebelum itu terjadi mereka harus pindah ke pos lainnya sama seperti di pabrik-pabrik pada umumnya. Mereka tidak pernah tahu dampak dari software yang mereka hasilkan untuk kostumer karena sebelum mereka bisa tahu bagaimana kostumer menggunakan software ciptaan mereka, mereka sudah dipindahkan lagi ke proyek berikutnya bahkan tidak tahu siapa kostumer mereka. Software developer sebagai buruh pabrik software hanya mendapatkan limpahan production issue ketika mereka sedang menangani proyek lain.

3. Optimalisasi produktifitas dan utilisasi penggunaan waktu software developer 100%

Every new workers who came into the shop was told at once by the other men exactly how much of each kind of work he was to do, and unless he obeyed these instructions he was sure before long to be driven out of the place.
— Scientific Management

Seperti di pabrik-pabrik pada umumnya, di dalam pabrik software, produktifitas pekerja diukur berdasarkan seberapa sibuk mereka bekerja. Pabrik software sangat menekankan cost efficiency oleh karena itu software developer harus sesibuk mungkin dan tidak boleh pernah bengong. Bahkan untuk menghindari software developer bengong mereka ditugaskan beberapa proyek sekaligus (multitasking). Manajer proyek yang bertanggung-jawab untuk memastikan software developer waktunya terutilisasi hingga 100% dan tidak boleh bengong. Dan bila mereka tidak bisa menyelesaikan semua proyek tersebut sesuai waktu yang telah ditentukan, mereka akan dicap tidak berkomitmen.

Software development adalah pekerjaan inovatif dan bukan pekerjaan mekanik dan repetitif. Inovasi memerlukan slack time dan inovasi atau improvement tidak jarang datang dari sebuah lamunan. Software developer yang masih diukur produktifitasnya dari seberapa sibuk mereka bekerja menandakan mereka masih bekerja di pabrik software. Dan apabila masih ada manajer proyek yang memastikan seluruh waktu software developer terutilisasi hingga 100% berarti software developer tersebut masih bekerja di pabrik software.

4. Jumlah fitur yang dikerjakan dalam deadline oleh developer sebagai metrik sukses

Di pabrik software, output lebih penting dibandingkan outcome. Di pabrik software, definisi sukses adalah on-time, on-budget dan on-scope. Primary measure of success in software factory is delivered number of features, not delivered business values. Jumlah fitur dianggap lebih penting dibandingkan nilai dari fitur. Logikanya deliver banyak tetapi bernilai rendah itu lebih sukses dibandingkan deliver sedikit yang bernilai tinggi. Nilai masing-masing fitur tidak pernah diukur, lagipula kan software developer adalah buruh pabrik dimana produktifitas mereka hanya diukur berdasarkan kuantitas fitur di dalam deadline yang sudah ditentukan sepihak oleh manajemen.

Coba lihat aplikasi mobile banking yang ada di telepon genggam kamu saat ini. Apakah kamu pernah bertanya-tanya kenapa user experience-nya begitu s*cks? Karena aplikasi ini dibuat dengan fokus selesaikan fitur sebanyak mungkin sesuai deadline bukan dengan fokus menghantarkan user experience yang menyenangkan bagi kostumer.

Dalam pabrik software, praktik Test Driven Development yang mungkin menurunkan jumlah fitur yang dapat di-deliver namun dapat meningkatkan kualitas software pun diabaikan karena tujuan utama dari pabrik software adalah jumlah fitur. Di pabrik software produktifitas software developer dinilai bukan dari nilai inovasi dan business value yang mereka hasilkan, lagipula tahu apa sih software developer mengenai business value? Di pabrik software, software developer tidak bisa menjadi seorang software craftsman karena mereka tidak pernah sempat atau tidak diijinkan melakukan technical practices yang dapat meningkatkan kualitas dan value dari software.

5. Optimalisasi individual performance

Dalam pabrik software, manajemen mengoptimalisasi masing-masing individu sesuai prinsip Scientific Management dan layaknya di sebuah pabrik pada umumnya daripada mengoptimalisasi team performance. Lagipula di pabrik software kan tidak ada yang namanya konsep tim. Pairing yang mungkin bisa mengoptimalisasi kualitas dan value software dianggap terlalu boros karena fokus pabrik software adalah optimalisasi individual performance. In software development, optimising individual performance is sub-optimal because software developers do not work in isolation. Ada banyak faktor lain yang menyebabkan software development lambat, seperti misalnya politik para HiPPo dan birokrasi korporat. Tetapi karena manajemen menggunakan pola pikir Scientific Management, manajemen merasa tidak ada yang salah dengan diri mereka karena mereka merasa mereka berada di atas hirarki perusahaan karena kepintaran mereka sehingga yang kalau ada yang lambat maka yang perlu dibenahi hanyalah orang-orang yang mereka kelola di bawah.

6. Software developer tidak tahu nilai bisnis dari fitur-fitur yang dikerjakan dan tidak tahu asal-usul datangnya deadline

In Scientific Management fully one-half of the problem is “up to the management”.
— Scientific Management

Dalam pabrik software, software developer tidak pernah tahu nilai bisnis dari masing-masing fitur yang mereka harus kerjakan dan tidak tahu asal-usulnya deadline. Mereka tidak boleh men-challenge nilai bisnis dari masing-masing fitur yang harus mereka kerjakan apalagi asal-usul deadline. Sesuai prinsip Scientific Management, dalam pabrik software, manajemen selalu benar dan tidak boleh di-challenge. Pokoknya bos bilang harus selesai tanggal segitu. Software developer tidak tahu tujuan dan dampak yang dihasilkan dari software yang akan mereka kembangkan. Mereka tidak dipandang sebagai seorang partner kerja bisnis. Sama seperti prinsip Scientific Management, software developer cukup melakukan saja apa yang sudah dipikirkan dan diperintahkan oleh manajemen. Dalam pabrik software, software developer bekerja terisolasi dari bisnis dan tidak pernah melihat sendiri bagaimana bisnis berfungsi. Dalam pabrik software, software developer tidak dianggap sebagai bagian dari bisnis yang dapat meningkatkan kinerja bisnis dan menjadi profit influencer lewat inovasi tetapi dianggap sebagai cost centre. Dalam pabrik software, software developer tidak bekerja bersama bisnis tetapi bekerja untuk bisnis.

7. Orang-orang saling melempar pekerjaan dan saling menyalahkan satu sama lain

Kolaborasi tidak ada di dalam pabrik software. Orang-orang hanya berada dalam silo dan kotaknya masing-masing. Dalam pabrik software tidak ada yang namanya konsep sebuah tim, yang ada hanyalah sekumpulan orang dalam departemen yang berbeda-beda yang saling mengoper pekerjaan satu sama lain. Sama seperti pabrik, pekerjaan berjalan sepanjang assembly line dari satu orang ke orang berikutnya. Tidak jarang mereka saling menyalahkan satu sama lain karena masing-masing mereka memiliki KPI yang saling konflik satu sama lain. Sales memiliki KPI memenangkan tender atau kontrak proyek sebanyak mungkin. Namun mereka kadang menjanjikan sesuatu yang tidak realistis demi memenangkan tender. Dan sering-kali software developer yang harus menanggung janji-janji tidak realistis mereka kepada kostumer. Demikian juga dengan designer, analyst, tester dan programmer yang memiliki KPI yang saling konflik. Dalam pabrik software, setiap orang yang ada di dalam silo tidak mengoptimalisasi kolaborasi untuk meningkatkan value dari software tetapi mengoptimalisasi KPI-nya masing-masing.

8. Software developer tidak boleh gagal

Dalam pabrik software, failure is not an option karena pabrik software punya target bikin fitur sebanyak mungkin. Software developer akan diminta komitmen dan komitmen tersebut akan dikonversi menjadi deadline oleh manajemen. Ketika mereka tidak berhasil memenuhi komitmen tersebut mereka dibilang terlalu lambat. Kegagalan akan berakhir pada punishment.

Dalam pabrik software, tidak ada yang namanya retrospektif. Dalam pabrik software, kegagalan tidak dipandang sebagai kesempatan untuk berinovasi tetapi kesempatan untuk menghukum dan menghakimi seseorang. Lagipula software development kan cuma fungible resource.

Software development adalah pekerjaan inovatif. Pekerjaan inovatif memerlukan eksperimen dan pembelajaran. In software development we need small experiments where you can learn and improve througout the process. proses ini dinamakan probe, sense and respond. Oleh karena itu safe to fail work environment adalah kebutuhan utama dalam software development. Blaming dan punishment environment tidak akan mendukung inovasi tetapi justru membuat orang-orang takut untuk mengambil resiko. In software development, problems and failures are opportunities for innovation.

Dalam pabrik software, software developer dibayar bukan untuk belajar, bereksperimen dan berinovasi tetapi dibayar untuk menjadi sempurna. Ketidak-sempurnaan adalah sebuah keniscayaan dalam software development karena software development adalah pekerjaan inovatif yang kompleks dan penuh dengan ketidak-pastian. Dalam software development kita perlu mencari inovasi dan mencari customer value dalam ketidak-pastian tersebut bukan justru menghukum dan menghakimi setiap kesalahan yang berasal dari ketidak-pastian.

Berbahagialah kalian software developer yang sudah tidak bekerja di pabrik software lagi saat ini karena realita di job market mayoritas software developer masih bekerja di pabrik software walaupun mereka sudah berada di abad 21. Bahkan embel-embel digital transformation masih dikelola dengan Scientific Management. Demikianlah panduan ini saya tulis yang dapat kalian gunakan untuk mengidentifikasi apakah kalian sedang bekerja di pabrik software hari ini.

Artikel lanjutan: 8 pertanyaan interview untuk mengidentifikasi pabrik software.

Masih bekerja di software factory dan jenuh dengan keadaan seperti ini? Ingin ada perubahan dari manajemen mengenai cara memandang software development? Silahkan tekan tombol 👏🏻 sebanyak mungkin dan sebarkan artikel ini tanpa minta ijin saya supaya semakin banyak yang membaca artikel ini dan supaya ada perubahan cara berpikir dari orang-orang yang masih memandang software developer menggunakan pola pikir Scientific Management. Semoga dengan kekompakan dan solidaritas kita bisa menyelamatkan lebih banyak lagi software developer untuk keluar dari software factory.

--

--

Konten tentang Scrum
Modern Management

Bukan hanya konten tentang Scrum, tapi disini kita akan ngobrolin Scrum yang efektif agar kostumer happy dan para pegawai juga happy dan menghasilkan cuan.