5 Alasan Insinyur Perangkat Lunak adalah Artis

Bangun perangkat lunak seperti Gaudi membangun Sagrada Família

Sagrada Família, masih dalam pembangunan. Dengan Foto Gratis di Canva

Sejak saya pindah ke New York dari Bay Area tiga tahun lalu, saya telah memikirkan betapa hebatnya insinyur perangkat lunak menghasilkan pekerjaan yang hebat. Bisakah pola pikir dan pendekatan Lembah Silikon direplikasi di tempat lain? Ini mendorong saya untuk mempelajari beberapa proyek rekayasa perangkat lunak berkualitas tinggi, seperti Apache Spark, Tensorflow, dan Ethereum. Tetapi ketika saya bepergian di Barcelona tahun lalu, saya tersadar bahwa Sagrada Família mungkin menjadi salah satu contoh terbaik untuk dipelajari.

Inilah lima kesamaan yang saya amati.

1. Berikan ruang kreatif kepada artis

Jika Anda ingin membangun sebuah kapal, jangan mengebor orang untuk mengumpulkan kayu dan tidak menugaskan mereka tugas dan pekerjaan, tetapi mengajar mereka untuk merindukan luasnya laut yang tak ada habisnya.
- Antoine de Saint-Exupéry, penyair Prancis
Basilica della Santa Casa di Loreto, Italia. Oleh Massimo Roselli di Wikimedia

Sagrada Família awalnya disusun oleh Josep Maria Bocabella, yang, terinspirasi oleh Basilica della Santa Casa di Italia, ingin membangun sebuah katedral di Spanyol. Gaudi kemudian diberi otonomi penuh atas proyek ini. Dia bukan pengambil tugas, tetapi seorang arsitek; seorang seniman. Bisakah Anda bayangkan jika Bocabella menentukan jenis kayu, potongan batu, dan pecahan kaca yang akan digunakan? Dalam keadaan seperti itu, Gaudi kemungkinan akan menolak pekerjaan itu, dan kami akan kehilangan situs warisan dunia.

Insinyur perangkat lunak juga bukan pengambil tugas - kami adalah pemecah masalah. Kami berspesialisasi dalam menemukan solusi terbaik untuk masalah yang diberikan. Inilah sebabnya mengapa perusahaan teknologi seperti Google dan Facebook tidak peduli tentang bahasa pemrograman yang Anda tahu: mereka mencari kemampuan pemecahan masalah. Mereka percaya bahwa insinyur mereka akan memilih alat yang tepat untuk menyelesaikan masalah, seperti halnya Gaudi diberi kebebasan penuh untuk mengejar visinya tentang basilika.

Sebaliknya, saya sering melihat perusahaan di mana penjualan atau pemasaran sebagian besar memutuskan apa dan bagaimana membangun perangkat lunak. Model operasi ini menghambat perusahaan-perusahaan itu dari merealisasikan potensi inovatif penuh mereka karena mereka tidak memanfaatkan kekuatan pembangun mereka. Seperti dikatakan Bill Campbell, mantan eksekutif dan pelatih di Apple, "Insinyur yang diberdayakan adalah satu-satunya hal terpenting yang dapat Anda miliki di perusahaan [teknologi]."

2. Tidak ada cara tunggal yang benar untuk melakukan seni; itu adalah ekspresi dari artis

Tidak ada aturan untuk kreativitas.
- Laura Jaworski, penulis & artis Amerika

Ketika Gaudi mengambil alih sebagai arsitek utama Sagrada Família, ia membuat banyak perubahan pada desain Gotik asli dengan menggabungkan bentuk-bentuk alami, seni oriental, dan sistem yang seimbang. Beberapa petunjuk tentang gaya Gothic asli tetap ada, tetapi itu jauh dari bangunan lain yang dibangun pada zaman itu.

Demikian juga, tidak ada satu pun cara yang tepat untuk membangun perangkat lunak, hanya pertukaran yang berbeda. Facebook terkenal memiliki repositori kode monolitik tunggal. Ini memastikan semua proyek dan dependensi kompatibel satu sama lain. Di sisi lain, Amazon memiliki repositori terpisah untuk setiap layanan, memungkinkan siklus iterasi yang lebih cepat karena setiap layanan dijalankan secara independen satu sama lain.

Perangkat lunak juga mencerminkan penulisnya. Tensorflow, kerangka pembelajaran mesin yang bersumber dari Google, menangkap ratusan ribu pengembang karena kegunaan, kecepatan, kualitas kode, dan dokumentasi yang komprehensif. Atribut-atribut ini secara langsung terkait dengan filosofi inti Google yang berfokus pada pengguna, menekankan kecepatan, dan berusaha melampaui kehebatan.

3. Inspirasi datang dari rutinitas yang gigih

Bakat adalah kesabaran yang panjang, dan orisinalitas merupakan upaya kemauan dan pengamatan yang intens.
- Gustav Flaubert, novelis Prancis
Salah satu model 3-D Gaudi digunakan untuk mengevaluasi integritas struktural dari desainnya.

Citra orang tentang seniman sering kali merupakan kehidupan kreativitas yang menenangkan. Kenyataannya adalah mereka mengembangkan tindak lanjut yang rutin dan konsisten. Pemenang Hadiah Pulitzer, Maya Angelou, akan bangun pukul 5.30 pagi setiap hari dan mulai menulis pukul 7 pagi selama lima jam atau lebih. Ketika Michelangelo menyimpulkan, "Jika orang tahu betapa kerasnya saya berusaha untuk mendapatkan penguasaan saya, itu tidak akan tampak begitu indah sama sekali."

Gaudi tidak berbeda. Dia memulai konsep sistem yang diseimbangkan - bangunan yang dapat berdiri sendiri tanpa dukungan internal atau eksternal. Karena gaya arsitektur baru ini belum dibangun sebelumnya, tidak ada yang tahu jika desainnya akan tahan terhadap hukum fisika. Solusinya adalah membangun model 3-D dan mencoba ratusan konfigurasi. Banyak desain terakhirnya terinspirasi oleh eksperimennya.

Demikian juga, dalam rekayasa perangkat lunak, Anda pergi bekerja setiap hari dan mencari solusi desain untuk masalah-masalah. Dengan konsistensi, sering kali Anda akan mendapatkan inspirasi yang mengarah pada dampak besar. Misalnya, sekelompok insinyur meretas perangkat lunak anti-penipuan untuk Paypal. Ini membuat Peter Thiel menyadari bahwa itu bisa diterapkan pada masalah yang telah lama dipikirkannya: keamanan nasional. Dari realisasi itu, ia ikut mendirikan Palantir, yang sejak itu telah tumbuh menjadi perusahaan 20 miliar dolar.

4. Iterate dengan mekanisme ringan sebelum implementasi akhir

Kreativitas membutuhkan banyak ide. Semakin banyak Anda berinvestasi dalam prototipe Anda dan semakin dekat ke "final" itu, semakin sulit untuk melepaskan konsep yang tidak berfungsi.
- David Kelley, pendiri IDEO dan Stanford University d.school

Sementara ketekunan diperlukan, seseorang juga harus strategis. Gaudi memilih untuk mengulangi eksperimennya pada model 3-D-nya karena memiliki siklus iterasi yang pendek. Setelah memutuskan konfigurasi tertentu, ia akan mengeluarkan spesifikasi final untuk orang-orang untuk membangun arsitektur fisik ketika ia secara metodis pindah ke bagian selanjutnya dari proyek.

Rekayasa perangkat lunak tidak berbeda. Kami mulai dengan desain awal. Lalu kami membangun prototipe dan beralih di atasnya. Setelah kami menyelesaikan suatu solusi, kami menyelesaikan kode kami untuk rilis dan beralih ke serangkaian fitur berikutnya.

Saya pernah memiliki seorang manajer proyek yang bersikeras bahwa kami “mengeluarkan beberapa kode” untuk fase proyek berikutnya sebelum persyaratan dikumpulkan. Alasannya, selain menunjukkan kemajuan, adalah karena kami "harus tetap memperbaiki kode, jadi [kami] mungkin juga mulai menulis kode sekarang." Saya menyarankan agar kami belum sepenuhnya menyelesaikan fase berikutnya, jadi mungkin kita harus beralih pada desain sambil menyelesaikan persyaratan fungsional. Setelah bolak-balik, kami akhirnya sepakat untuk memulai dengan desain.

Bayangkan jika salah satu sponsor Gaudi mengatakan, "mari kita mulai memotong batu dan menumpuknya sehingga kita dapat menunjukkan kemajuan," tanpa mempertimbangkan integritas struktural basilika. Jika salah satu bagian ditempatkan dengan tidak benar - yang kemungkinan akan terjadi tanpa model dan eksperimennya - akan membutuhkan biaya lebih banyak upaya untuk mengembalikan penempatan tersebut. Gaudí dengan bijak memilih untuk beralih dengan sesuatu yang mudah dimodifikasi - model 3-D-nya - sebelum pindah ke konstruksi fisik, sama seperti yang kita lakukan untuk membangun perangkat lunak.

5. Seni tidak pernah selesai

Anda tidak dapat membatasi kreativitas.
- Dr. Dre, penyanyi rap & produser rekaman Amerika
Bagian kuning dari model mencerminkan apa yang belum dibangun. Pada 2015, diperkirakan 70% basilika telah selesai.

Leonardo Da Vinci pernah berkata, "Seni tidak pernah selesai, hanya ditinggalkan." Ketika ditanya tentang lambatnya pembangunan, Gaudi, seorang Katolik yang taat, menjawab, "Klien saya tidak terburu-buru." Ketika dia meninggal pada tahun 1926, kurang dari 25% basilika telah lengkap.

Meskipun dia perfeksionis, dia juga tahu kapan sesuatu siap digunakan untuk umum. Misalnya, ketika bagian elevasi dan altar Kapel St. Joseph selesai pada tahun 1885, ia membukanya untuk misa keesokan harinya. Sejak itu, ratusan juta telah mengunjungi basilika melalui berbagai tahap konstruksi.

Demikian pula, perangkat lunak tidak pernah benar-benar lengkap. Selalu ada lebih banyak fitur untuk dibangun dan lebih banyak cara untuk melayani pengguna. Sangat penting untuk mengidentifikasi kapan sesuatu siap untuk dirilis namun menyadari bahwa tidak ada yang sepenuhnya disempurnakan. Contoh kasus: bahkan setelah Amazon mengambil alih penjualan buku online, Amazon terus memperluas penawarannya untuk meningkatkan pengalaman pengguna dan sekarang menjadi perusahaan ritel online terbesar di dunia.

Teknik dan seni sering dipandang sebagai ujung yang berlawanan dari spektrum karier. Namun, kesamaan mungkin lebih umum daripada yang Anda pikirkan. Jika Anda mendapati diri Anda sibuk dengan tugas-tugas coding kasar setiap hari, tanyakan pada diri sendiri: "Bisakah saya mendekati tugas saya lebih holistik? Apakah tempat kerja saya menyediakan lingkungan yang memiliki ruang putih yang cukup bagi saya untuk diwarnai dengan kreativitas saya? " Jika jawabannya tidak, saya meninggalkan Anda dengan kutipan dari Smallville: "Anda dimaksudkan untuk hal-hal yang jauh lebih penting."

Untuk renungan lebih lanjut tentang budaya teknologi, pembangunan organisasi, dan manajemen, ikuti saya di Twitter @ kenk616.