Belakangan ini saya terus memikirkan tema seperti pembelajaran, pertumbuhan, dan produktivitas, jadi saya jadi penasaran dengan topik ini.
Lebih jauh lagi, menurut Anda apa perbedaan antara developer yang baik dan developer yang luar biasa?
Saya juga akan berterima kasih jika Anda menjawab dengan mengganti "developer" menjadi peran/profesi lain yang Anda geluti atau yang Anda kenal dengan baik. (misalnya tech lead, CTO, CEO, founder, desainer, PM, ...)
Menurut saya, secara garis besar developer luar biasa memiliki tiga kesamaan berikut.
-
Mengenali masalah: menemukan hal-hal yang bahkan tidak disadari orang lain sebagai masalah, lalu mencari kemungkinan untuk memperbaikinya.
-
Mendefinisikan masalah: melihat situasi dan penyebab masalah dari berbagai lapisan dan sudut pandang, lalu mempolakan pengalaman yang telah dimiliki sehingga masalah tersebut direduksi menjadi masalah yang jauh lebih mudah (atau lebih efektif, lebih mendasar).
-
Menyelesaikan masalah: mampu memikirkan beberapa solusi yang bisa dipilih, memahami trade-off dari masing-masing solusi, lalu memilih solusi yang sesuai dengan kondisi organisasi saat ini. Mereka juga tahu pada titik mana dan dengan melihat sinyal apa keputusan itu perlu diubah. Dan mereka menerapkan solusinya dalam unit-unit kecil, dengan cara yang memungkinkan mendapatkan umpan balik dengan cepat.
7 komentar
Selera fashion: 0.
Kalau bicara soal kesamaan, cuma itu yang terpikir oleh saya.
Setengah bercanda, setengah serius.....wkwk
Pada dasarnya, saya juga berpikir bahwa developer adalah orang yang memecahkan masalah.
Namun, rasanya tidak perlu membatasi pembicaraan hanya pada developer saja; saya akan memilih "keterhubungan" sebagai ciri orang-orang yang luar biasa.
Di dalam kepala seseorang ada banyak hal seperti pengetahuan, pengalaman, ide, dan sebagainya, dan menurut saya yang penting adalah apakah ia mampu menghubungkan hal-hal itu dengan baik.
Saat menemukan masalah, memikirkan solusinya adalah bentuk keterhubungan yang pertama,
tetapi menghubungkan satu masalah dengan masalah lain untuk membayangkan situasi yang lebih kompleks lalu mencari solusi berbeda juga merupakan keterhubungan,
begitu pula menghubungkan berbagai solusi dan ide untuk menghasilkan solusi yang lebih sederhana, fleksibel, dan unggul juga merupakan keterhubungan.
Bukan hanya dalam pengembangan, menghubungkan pengembangan dengan aspek bisnis atau menghubungkan hal-hal yang sama sekali tidak berkaitan menurut saya adalah kemampuan yang sangat penting di era sekarang.
Saya juga sempat menanyakan ini di Facebook, dan Kim Chang-jun meninggalkan komentar agar saya merujuk ke sebuah paper. Jadi merasa heran kenapa saya tidak terpikir soal itu.
Saya berencana membaca paper tahun 2015 berjudul “What Makes a Great Software Engineer?” karena sudah dikutip 150 kali.
https://ieeexplore.ieee.org/abstract/document/7194618
Hai spilist2! Saya rasa saya juga pernah melihat Anda mengajukan pertanyaan ini di Facebook :) Ini juga selalu menjadi hal yang saya pikirkan, tetapi adakah isi makalah yang menurut Anda layak direkomendasikan?
Sepertinya itu adalah tesis doktoral (dissertation), dan berdasarkan PDF panjangnya sampai 300 halaman. https://digital.lib.washington.edu/researchworks/bitstream/…
Jadi saya baru sempat membaca sampai bab 2 saja (introduction, related works), tetapi sampai sejauh ini pun isinya sangat saya suka. Kalimat-kalimatnya juga ditulis dengan cukup mudah dipahami. Saya rekomendasikan.
Saya membaca karena dari makalah yang Anda bagikan, sepertinya bab 6 adalah bagian yang paling inti hehe, dan isinya bagus! Itu juga membuat saya kembali merefleksikan diri!! hehe Terima kasih.
Saya melempar pertanyaan ini lalu mencoba mencari di Google, dan ternyata ada beberapa tulisan. Ada juga kata kunci 10x engineers.
https://linkedin.com/pulse/great-engineer-vs-good-marissa-fayer-mba/
Developer yang baik memiliki alat-alat khusus untuk memecahkan masalah. Developer yang baik itu sistematis dan rasional, melihat dari semua sudut, serta menganalisis semua kemungkinan input dan output.
Developer yang unggul, berdasarkan semua kemampuan yang disebutkan di atas, menerapkannya pada solusi yang bisa langsung digunakan. Mereka menerapkan pola-pola yang sudah dikenal (prinsip sains dan matematika, prinsip lean development, dan lain-lain) dengan cara kreatif pada masalah baru di dunia nyata.
Developer yang paling unggul tahu cara mendengarkan. Mereka mendengarkan masalah, mendengarkan para pemangku kepentingan dan apa yang mereka anggap bernilai, mendengarkan pasar, dan mendengarkan umpan balik. Lalu mereka juga mendengarkan suara batin yang memunculkan cara-cara kreatif.
==
https://www.quora.com/How-do-you-identify-a-good-vs-great-engineer
Jawabannya sangat banyak, tapi kalau hanya melihat beberapa yang vote-nya tinggi:
(Dengan contoh orang yang membawa kipas angin ke conveyor belt) orang malas selalu mencari cara agar tidak perlu bekerja. Engineer yang malas adalah engineer terbaik.
Engineer yang baik menyelesaikan masalah yang diminta. Sesekali mereka mengikuti kelas untuk meningkatkan kemampuan teknisnya sendiri. Engineer yang unggul melangkah satu langkah lebih jauh dari yang diminta.
Orang-orang mencarinya ketika mereka punya pertanyaan.
Terus belajar tanpa henti.
Secara konsisten membagikan apa yang mereka tahu.
Tetap berpegang pada hal yang menurut mereka benar, tetapi juga tahu kapan harus melepaskannya.
Tidak takut turun tangan langsung.
Memeriksa apakah sistem lain juga memiliki bug serupa (atau apakah itu sudah diperbaiki).
Mengusulkan solusi atau desain jangka panjang untuk mencegah bug serupa terulang lagi. (dengan melampirkan cost/benefit analysis di antara tiap solusi)
Mengalihkan pandangan ke luar area keahliannya sendiri untuk mencari apakah grup lain mengalami masalah serupa. (atau mungkin sudah menghubungi mereka)