Source: recruitee.com

Harap minggir manajemen proyek

Sebuah era baru menuju manajemen developer experience

We invented management, we can re-invent it.
 — John Seddon
Developer experience as the new differentiator (hint: watch the ending)

Lucu sekali dunia ini. Saya baru saja menonton video di atas mengenai bagaimana banyak perusahaan-perusahaan di dunia menjadikan “developer experience” sebagai nilai kompetitif perusahaan. Siapa kira kalau sekarang ini software developer malah disanjung-sanjung agar perusahaan dapat kompetitif? Maklum saja software developer yang di banyak perusahaan Indonesia hingga hari ini masih dipandang tidak lebih dari kuli koding. Sejak kapan software developer menjadi begitu berharga dan dianggap sebagai faktor yang dapat meningkatkan nilai kompetitif perusahaan bukan lagi sebagai cost-centre ?

Semenjak dari dulu profesi software developer masih dianggap remeh di tengah masyarakat Indonesia, mulai dari akademisi hingga professional. Semua orang berlomba-lomba untuk tidak menjadi software developer terlalu lama karena jenjang karirnya dianggap tidak memiliki prospek yang cerah. Banyak orang Indonesia yang beranggapan kalau software developer adalah profesi rendahan, kerjanya banyak pusing menulis kode, sering disalahkan namun gajinya juga yang paling kecil di struktur jabatan perusahaan. Menjadi software developer bagi banyak orang Indonesia hanyalah menjadi batu loncatan sebelum mereka menjadi seorang manajer. Seorang manajer proyek yang melihat teman kuliahnya masih menjadi software developer setelah sekian tahun terjun di industri software development akan mentertawakan temannya tersebut karena karir temannya dianggap tidak berkembang.

Developers are now the new customers of the new breed of software products.
 — Jonny LeRoy

Sekarang kita sedang melihat gerakan baru di mana manajemen proyek justru semakin tidak relevan lagi di abad 21. Bukan hanya konsepnya, tetapi juga peran manajer proyek itu sendiri. Bukan tidak mungkin kita akan melihat fenomena dimana seorang software developer akan mentertawakan teman kuliahnya yang menjadi manajer proyek karena manajer proyek dianggap tidak lebih dari sekretaris yang hanya membuat laporan-laporan cantik mengenai proyek. Namun itu semua tergantung dari tingkat kekompakan software developer di Indonesia. Di abad 21 di belahan bumi lain kita sedang melihat dunia kerja yang software developer centric daripada yang project manager centric.


Manajemen Proyek

Untuk dapat memahami kenapa konsep manajemen proyek bermasalah, kita harus melihat definisinya terlebih dahulu.

project (n): A project is temporary in that it has a defined beginning and end in time, and therefore defined scope and resources.

Menurut Project Management Institute (PMI), manajemen proyek didasari oleh scope, schedule dan budget yang telah dikunci. Asumsinya adalah masa depan bisa tidak berubah dan perencanaan yang matang dapat merubah masa depan menjadi statis.

Konsep berpikir dari sudut pandang proyek mungkin masuk akal dalam proyek konstruksi bangunan, namun dalam software development cara berpikir seperti ini memiliki masalah dan seringkali menggiring orang-orang untuk memiliki perilaku yang salah. Yang lebih bermasalah lagi, orang-orang tidak memandang perilaku tersebut lumrah.

1. Memandang masa depan sebagai sesuatu yang statis

We project a straight line only because we have a linear model in our head.
 — Nelson Goodman

Ketika proyek baru diinisiasi adalah titik dimana kostumer dan vendor sama-sama tidak mengetahui mengenai proyek. Namun di titik itulah kostumer mengharapkan kepastian. Nilai kontrak, ruang lingkup pekerjaan dan tanggal delivery sudah harus dikunci. Namun hal ini sering kontradiksi dengan apa yang terjadi sepanjang proyek karena change request sering terjadi. Bahkan pada saat User Acceptance Test (UAT), waktu pertama kalinya kostumer melihat produknya, adalah saat dimana kostumer mendapatkan banyak hal yang tidak sesuai dengan keinginannya.

Ketika seseorang sudah didoktrin semenjak kuliah hingga sepanjang karirnya kalau Unicorn itu benar-benar ada maka dia akan hidup mempercayai kalau Unicorn itu benar-benar ada dan dia akan berusaha untuk mencari Unicorn sampai ia mendapatkannya sebodoh apapun mungkin itu kelihatannya. Buku-buku manajemen proyek seperti PMBoK mengajarkan kalau masa depan itu dapat diprediksi bahkan dapat dirubah. Mindset ini merupakan turunan dari manajemen proyek konstruksi. Andaikan software development seprediktif proyek konstruksi, maka kita tidak perlu software developer yang cerdas untuk mengembangkan software cukup sekelas kuli bangunan saja. Mindset dari manajemen proyek mengarahkan orang ke arah mimpi kalau mereka bisa mendapatkan semua yang mereka mau dalam software development. Sayang sekali, manajer proyek ini mungkin tidak pernah mengetahui Lindy effect dan lebih percaya dengan Unicorn.

Jangan heran kalau banyak manajer proyek yang hingga hari ini masih hidup dalam dunia mimpi kalau scope, budget dan schedule dapat dikunci dan masa depan dapat diprediksi dengan melakukan perencanaan yang sangat lama. Mereka belum bisa move-on dan menerima realita kalau masa depan tidak dapat dirubah dengan perencanaan yang panjang. Bahkan mereka masih hidup mencari formula-formula yang dapat membuat timeline proyek dapat diprediksi. Seringkali waktu untuk mendapatkan predictability ini menghabiskan banyak waktu dan energi software developer. Pola pikir ini sudah tidak sesuai lagi dengan era abad 21 yang kompleks dan cepat berubah.

Tapi sudahlah. Kalaupun kita harus berdebat panjang dengan manajer proyek perihal pola pikir tradisional ini, mereka lebih percaya kalau Unicorn itu memang ada.

The past is finite, the future is infinite. The past is static, the future is dynamic. The past is defined, the future is random. We can not trust ourself in predicting the future and we can not trust ourself how we interpret the past. In 21st century invest in preparedness not in planning.

Bacaan terkait:

2. Menaruh otoritas terpusat

Managers love empowerment in theory, but the command-and-control model is what they trust and know best.
 — Chris Argyris

Konsep manajemen proyek menaruh otoritas terpusat pada manajer proyek. Manajer proyek adalah orang yang akuntabel terhadap suksesnya proyek. Walaupun konsep centralised authority kelihatannya bagus di atas kertas, secara praktik konsep ini memiliki banyak masalah dan tidak sesuai dengan perkembangan di abad 21. Centralised authority membuat software developer memiliki sense of ownership yang rendah. Mereka akan patuh terhadap perintah yang diberikan namun mereka tidak memiliki rasa kepemilikan terhadap software yang dikembangkan.

Selain masalah sense ownership konsep manajemen proyek juga memiliki masalah di sisi collective intelligence. Konsep manajemen proyek yang kebanyakan dianut saat ini menggunakan push-system dimana software developer di-assign pekerjaan oleh manajer proyek. Orang tidak akan lebih komitmen terhadap komitmen yang telah dibuat oleh orang lain. Dengan push system, perusahaan telah menyia-nyiakan collective intelligence yang ada di dalam perusahaan karena orang-orang tidak dilibatkan dalam pembuatan keputusan.

Di abad 21 ini paradigma kita seharusnya mulai bergerak dari hanya memiliki orang-orang yang hanya datang ke kantor untuk mendapatkan gaji bulanan ke memiliki orang-orang yang memiliki sense of ownership yang tinggi bukan hanya terhadap software yang dikembangkan namun juga terhadap perusahaan. Selain meningkatkan sense of ownership dari para pegawai kita juga bertanggung-jawab untuk memaksimalkan collective intelligence yang ada di dalam perusahaan.

Bacaan terkait:

3. Deadline / Schedule Driven

Manajer proyek bertanggung-jawab untuk memproteksi timeline proyek karena memang salah satu success factor seorang manajer proyek adalah on-schedule. Perilaku seseorang sangat dipengaruhi oleh ukuran yang diberlakukan terhadap dia. Oleh karena itu perilaku manajer proyek lebih fokus ke schedule, scope dan budget.

Lagi-lagi konsep iron triangle ini kelihatannya secara teori bagus di atas kertas, namun memiliki banyak masalah dan mengarahkan perilaku seseorang ke arah yang salah.

Kalau software development dianggap sama seperti membangun jembatan maka software dipandang sebagai jembatan yang mengalami depresiasi nilai. Kenyataannya perusahaan selalu menambahkan fitur pada software agar software tersebut bisa meningkatkan nilai terhadap perusahaan. Di dalam iron triangle manajemen proyek ini kita tidak bisa melihat value sebagai success factor. Proyek software yang on-schedule, on-budget dan on-scope belum tentu menghasilkan nilai tinggi untuk perusahaan. Seberapa sering kita melihat proyek software yang akhirnya tidak digunakan oleh kostumer walaupun software tersebut telah dihantarkan on-schedule, on-budget dan on-scope. Konsep manajemen proyek membuat orang-orang hanya berpikir pendek, goalnya hanya sebatas project lifecycle tidak sampai ke product lifecycle. Value dari produk tidak dipikirkan karena value dari produk baru kelihatan ketika produk mulai digunakan oleh pengguna di lingkungan produksi.

Karena schedule, budget, dan scope sudah dikunci, tidak jarang kita menemukan software developer yang memotong kualitas karena tidak ada lagi yang bisa dinegosiasikan. Software developer sering kali jadi pihak yang harus kalah. Mereka tidak bisa mengatakan tidak, walaupun mereka sedang memproteksi kualitas dari software. Karena kualitas begitu rendah, secara tidak langsung value dari produk juga menjadi rendah dan kostumer tidak bisa mencapai return on investment (ROI) yang diharapkan. ROI yang rendah sebenarnya juga sudah merupakan kegagalan dari proyek tersebut. Wajar saja banyak perusahaan yang hingga hari ini masih melihat software sebagai cost-centre daripada sebagai profit-influencer.

Di abad 21 pandangan orang-orang lebih ke product lifecycle daripada hanya sebatas project lifecycle, perilaku orang-orang seharusnya lebih product focused yang membawa nilai kepada kostumer daripada project focused yang deadline/schedule driven. Fokus utama software development seharusnya adalah bagaimana bisa menghantarkan value kepada kostumer setinggi mungkin lewat produk yang dikembangkan bukan sekedar on-time, on-budget dan on-schedule.

Bacaan terkait:

4. Penuh dengan kebohongan

You [corporates] did have superstar developers, we hired them from you and got out of the way.
 — Adrian Cockroft

Etika adalah sebuah topik yang hampir tidak pernah dibahas dalam komunitas manajemen proyek software development secara umum. Konsep manajemen proyek membuka celah untuk menggiring orang-orang, mulai dari software developer itu sendiri hingga manajer proyeknya, untuk melakukan tindakan yang tidak etis. Mindset dimana orang bisa mendapatkan semua yang mereka inginkan dalam software development seringkali mengarahkan pihak vendor ke arah perilaku tidak etis. Memotong kualitas adalah salah satu tindakan tidak etis yang sering dilakukan oleh praktisi software development, yang berikutnya adalah memberi buffer nilai kontrak proyek setinggi mungkin.

Software developer akan memberi buffer setinggi mungkin terhadap estimasi karena dia diukur atas keakuratan estimasi sebuah pekerjaan. Bila dia tidak bisa deliver software sesuai estimasinya, ia akan dihakimi sebagai seseorang yang tidak komitmen terhadap proyek. Semakin senior software developer yang bersangkutan, semakin cerdas ia dalam memberikan buffer. Dan bila ia bisa selesai lebih cepat dari estimasi awal, dia pun tidak akan proaktif karena ia takut hasil pekerjaannya yang lebih cepat dijadikan tolak ukur baru untuk lama pengerjaan tugas oleh manajer proyeknya. Lagipula siapa yang ingin disalahkan terus-menerus sebagai seseorang yang tidak komitmen terhadap proyek? Bukankah kalau keadaannya seperti itu lebih baik software developer berbohong?

Manajer proyek pun akan memberi buffer lagi di atas estimasi yang diberikan oleh software developer. Manajer proyek telah belajar kalau software developer tidak pernah akurat dalam memberikan estimasi. Ketidak-akuratan tersebut akan berdampak buruk terhadap karir manajer proyek karena ia yang dipandang bertanggung-jawab terhadap suksesnya proyek. Namun hasil pembelajaran manajer proyek ini menuju ke arah perilaku yang salah bukan yang lebih baik. Manajer proyek memberi buffer dengan mengatas-namakan manajemen resiko, karena ia takut kostumer memberi denda apabila software tidak bisa dihantarkan sesuai estimasi. Bukannya mereka menjadi pemimpin yang menjadi contoh, mereka juga turut berbohong dengan mengatasnamakan “manajemen resiko”. Dan apa yang terjadi ketika buffer tidak digunakan? Apakah uangnya dikembalikan kepada kostumer?

Kostumer bersikap tidak mau tahu dengan kompleksnya software development. Software development dianggap sama dengan proyek konstruksi jembatan. Software development adalah industri yang tidak memiliki kode etik yang disepakati bersama. Manajer proyek dan software developer pun menganggap memberi buffer sebagai sesuatu yang lumrah dilakukan demi survival karena sikap dari kostumer mereka yang tidak mau tahu dengan kompleksitas software development. Gara-gara konsep proyek ini vendor menjadi pintar berbohong agar bisa menghindari denda karena budaya yang dibangun adalah budaya saling menyalahkan dan defensif. Gara-gara kebohongan berlapis-lapis ini, kostumer jadi membayar nilai proyek lebih mahal dari semestinya dan kostumer semakin tidak percaya dengan vendor software development. Dan akhirnya para pelaku di industri software development terjebak dalam lingkaran setan karena kedua-belah pihak bertahan pada haknya masing-masing.

Bacaan terkait:

5. Mengesampingkan aspek manusia

Di setiap keputusan yang dibuat oleh manajemen, di belakangnya ada asumsi mengenai sifat dan perilaku dasar manusia.

Aspek manusia adalah aspek yang hampir tidak pernah menjadi concern dalam manajemen proyek karena dalam iron triangle manajemen proyek aspek manusia tidak menjadi aspek yang perlu dipertimbangkan. Fokus utama adalah bagaimanapun juga adalah scope, schedule dan budget. Tidak jarang karena fokus ini, aspek manusia jadi dikesampingkan. Bahkan dalam ilmu manajemen proyek, software developer dianggap hanya sebagai resource, tidak berbeda dengan resource lainnya seperti semen, batu bata dan mesin cor. Konsep manajemen proyek seringkali mengarahkan para manajer proyek dan pimpinan perusahaan ke arah perilaku yang tidak manusiawi yang tidak mengutamakan orang-orang yang mengembangkan software itu sendiri.

Push system diberlakukan karena software developer dianggap sebagai orang-orang yang tidak bisa bertanggung-jawab dan tidak tahu apa-apa mengenai kompleksnya proyek. Software developer diharapkan untuk lembur untuk mencapai schedule dan komitmen yang sudah ditentukan oleh orang lain. Lingkungan kerja begitu menakutkan dan tidak safe-to-fail untuk software developer mengarahkan software developer untuk pintar berbohong karena transparansi hanya akan berakhir pada masalah. Kebahagiaan software developer tidak pernah menjadi faktor yang penting.

Memanusiakan software developer tidak pernah menjadi topik bahasan di dalam konsep manajemen proyek, boro-boro ngomongin konsep developer experience. Di abad 21 ini software telah menjadi kebutuhan utama umat manusia. Software terbaik akan dihasilkan oleh software developer terbaik. Mari alihkan perhatian dari proyek ke software yang akan dikembangkan dan software developer yang ada dibelakangnya.

Bacaan terkait:


Manajemen Proyek→Manajemen Developer experience

Managers must give up the old dogma of planning, organising and controlling and realise the almost sacredness of their responsibilities for the lives of so many people. Managers fundamental task is providing the enabling conditions for people to lead the most enriching lives they can.
— Bill O’Brien

Dunia telah berubah. Sebuah pimpinan perusahaan dari sebuah korporasi di Indonesia mengeluhkan ke saya karena banyak software developernya yang bertalenta harus pindah ke perusahaan teknologi lain yang lebih developer experience oriented. Perusahaan ini memperlakukan software developer tidak lebih dari kuli koding. Sudut pandang kebanyakan perusahaan dahulu memang seperti itu karena fokusnya adalah mengelola schedule/timeline, budget dan scope dan mereka beranggapan kalau tidak perlu software developer canggih untuk mencapai hal tersebut. Software developer cuma dianggap tidak lebih dari kuli koding.

A better project management in a broken corporate system is not going to deliver better software. We don’t need a better project management, we need to find a better way!

Di abad 21 ini developer adalah raja dan menjadi fokus utama untuk suksesnya software development. Konsep manajemen proyek seperti telah dijabarkan memiliki banyak lubang dan bisa menghambat software developer untuk menghantarkan kick-arse software. Fokus perusahaan yang ingin sukses di era yang penuh persaingan ini bukan lagi mengelola proyek agar mencapai on-time, on-budget dan on-scope tetapi mengelola developer experience agar software development mencapai continuous-flow, under-budget dan optimum value. Hal tersebut dicapai dengan fokus pada developer experience. Untuk bisa meningkatkan developer experience, kita harus punya empati untuk memahami apa yang dikerjakan oleh software developer.

Manajer di abad 21 harus shift the mindset dari memberi instruksi menggunakan otoritas menjadi servant leader bagi software developer. Manajer bukan lagi menjadi penghambat yang cuma menyusahkan hidup software developer. Apakah kita mau minggir, membuang konsep manajemen proyek dan mengelola software developer dengan manajemen yang lebih modern agar software developer untuk dapat menghantarkan kick-arse software ke kostumer? Apakah kita memiliki keterbukaan dan kerendahan hati mengosongkan gelas kita dari cara berpikir orthodoks yang tidak sesuai lagi dengan abad 21?

Software developer mari kita rebut kembali software development dari manajer proyek. Konsep manajemen proyek sudah merusak indahnya software development. Mari kita ambil lagi trust dari kostumer kita dengan bersikap profesional dalam mengembangkan software.


Jangan lupa untuk menekan tombol 💚 di bawah dan sebarkan di sosial media atau milis kantor agar lebih banyak orang lagi yang dapat melihat artikel ini sehingga ekosistem software development di Indonesia bisa menjadi jauh lebih dewasa. Artikel ini adalah sekelumit pemikiran saya untuk buku saya yang kedua. Dapatkan buku “Manajemen Modern dengan Scrum” di toko buku terdekat bila anda belum membaca buku saya yang pertama.

Baca juga: