Wawancara

Peter McKee, Kepala Hubungan Pengembang di Sonar – Seri Wawancara

mm
Tambahkan Unite.AI ke sumber pilihan Anda di Google

Peter McKee adalah Kepala Hubungan Pengembang di Sonar, sebuah platform yang memecahkan tantangan miliaran dolar dari kode yang buruk. Sonar mempersenjatai pengembang dan organisasi untuk secara sistematis mencapai keadaan Kode Bersih sehingga semua kode siap untuk pengembangan dan produksi. Dengan menerapkan metodologi Clean as You Code dari Sonar, organisasi meminimalkan risiko, mengurangi utang teknis, dan mendapatkan lebih banyak nilai dari perangkat lunak mereka dengan cara yang dapat diprediksi dan berkelanjutan.

Apa yang awalnya menarik Anda ke ilmu komputer?

Saya selalu tertarik dengan komputer sejak usia muda. Bahkan ketika saya awalnya mengejar jalur karir lain, saya terus-menerus tertarik kembali ke komputer dan pemrograman. Pada satu titik, ayah saya menjalankan sebuah perusahaan baja di Virginia dan mereka kehilangan kelompok konsultan mereka. Karena saya telah belajar memprogram ketika saya lebih muda, dia mengundang saya untuk bekerja dan membangun sistem untuknya. Saya tidak tahu, secara jujur, apa yang saya lakukan 100% pada awalnya, tetapi saya belajar dari buku dan melakukan pekerjaan di lapangan, dan menjadi sepenuhnya self-taught. Hal itu terus mendorong minat saya dalam coding dan komputer dan benar-benar membentuk minat saya dalam ilmu komputer.

Bagaimana Anda mendefinisikan Kode Bersih dan mengapa itu sangat penting?

Sudah dikatakan selama beberapa tahun sekarang bahwa perangkat lunak akan menguasai dunia, dan saya akan mengatakan bahwa sekarang kita berada di titik di mana itu resmi – dunia dibangun di atas perangkat lunak dan setiap perusahaan secara efektif adalah perusahaan perangkat lunak. Di dasar perangkat lunak yang baik adalah kode berkualitas, karena kode adalah inti dari semua perangkat lunak dan menentukan perilakunya dan kinerjanya. Ini adalah mengapa Kode Bersih — kode yang konsisten, disengaja, adaptif, dan bertanggung jawab — sangat penting. Kode yang bersih mudah dipahami dan diubah, beroperasi dengan lancar pada saat runtime dan tidak mengandung utang teknis, sehingga membuatnya sesuai dengan tujuan. Kode Bersih adalah standar yang harus diterima oleh organisasi untuk memastikan bahwa perangkat lunak mereka terus menjadi aset — bukan liabilitas — dan merupakan kunci driver untuk kesuksesan bisnis hari ini.

Kode Bersih memberikan manfaat bagi tim dan organisasi dari semua ukuran dan tingkat kematangan, dan meningkatkan nilai perangkat lunak sebagai hasilnya. Beberapa manfaat spesifik adalah bahwa itu:

  • Meningkatkan keterampilan pengembangan — Pengembang dapat mendeteksi, memahami, dan menyelesaikan masalah saat mereka mengkode sambil juga mempelajari praktik terbaik
  • Meningkatkan efisiensi dan produktivitas — Mengurangi pekerjaan ulang terus-menerus dan siklus umpan balik yang panjang, menghasilkan produktivitas yang lebih besar
  • Mengurangi risiko reputasi dan bisnis — Kode Bersih memastikan bahwa ada sedikit risiko keamanan dengan memungkinkan tim untuk secara proaktif mengatasi masalah sebelum mereka mencapai produksi
  • Mengurangi utang teknis tingkat kode — Kode Bersih secara bertahap mengatasi utang kodebase tanpa perlu melakukan perubahan besar-besaran dan gangguan aplikasi
  • Meningkatkan kecepatan pengembangan perangkat lunak — Kode Bersih memenuhi standar dan aliran yang dioptimalkan, meningkatkan kecepatan DevOps, mempromosikan waktu ke pasar yang lebih cepat

Bagaimana Anda membahas pentingnya konsistensi dan struktur dalam kode, dan apa contoh-contoh kode yang konsisten dan Kode Bersih?

Kualitas kode yang konsisten adalah sesuatu yang setiap manajer atau direktur teknis ingin dipertahankan. Konsistensi sangat penting ketika datang ke kualitas kode karena konsistensi mengarah ke prediktabilitas. Ini ditulis dalam cara yang seragam dan konvensional — semua kode terlihat sama dan mengikuti pola yang teratur, bahkan dengan kontributor yang berbeda pada waktu yang berbeda. Kode yang konsisten diformat, konvensional, dan dapat diidentifikasi. Ketika standar kode yang konsisten diadopsi, pengembang menjadi lebih efisien dan dapat memenuhi harapan pengiriman mereka dengan kecepatan dan presisi.

Bagaimana Anda membahas pentingnya kode yang dapat menangani kondisi yang tidak terduga, dan mengapa ini tidak boleh diabaikan?

Pengembang selalu mencoba untuk memprediksi dan mempersiapkan kejadian yang tidak terduga selama proses desain dan pengembangan, tetapi ini tidak dapat dicegah dalam setiap kasus. Kondisi yang tidak terduga dapat muncul karena penyalahgunaan yang tidak disengaja atau serangan yang disengaja. Kondisi yang tidak terduga ini dapat secara tidak sengaja memperkenalkan kerentanan keamanan yang dapat dieksploitasi oleh penyerang. Ini adalah mengapa pengembang harus selalu berusaha untuk meningkatkan kualitas dan stabilitas kode mereka dan menguji kondisi yang tidak terduga. Dengan mengikuti pendekatan Clean as You Code, tim dapat mempercepat fitur baru, menghindari biaya pekerjaan ulang yang tidak perlu, dan mempromosikan pertumbuhan dan retensi bakat. Kode Bersih mempromosikan keamanan, kemaintan, dan keandalan, dan dapat memungkinkan pengembang untuk memprediksi dan menangani kondisi yang tidak terduga dengan lebih efektif dan mendapatkan perangkat lunak kembali dan berjalan lebih cepat.

Bagaimana Anda membahas manfaat menggunakan AI Generatif untuk generasi kode?

Mengintegrasikan AI ke dalam siklus hidup pengembangan perangkat lunak memiliki manfaatnya, seperti memungkinkan pengembang bekerja lebih efisien. Faktanya, GitHub penelitian menemukan bahwa pengembang dapat menyelesaikan tugas lebih dari 50% lebih cepat menggunakan AI. GenAI juga dapat menghasilkan kode lebih cepat, dan sebaliknya mengambil beban tugas yang lebih membosankan, rutin — seperti dokumentasi atau menghasilkan potongan kode — dari piring mereka, sehingga mereka dapat lebih fokus pada pekerjaan yang lebih berharga dan menantang untuk memecahkan masalah yang lebih kompleks. Tidak peduli bagaimana kode dibuat, itu sangat penting bahwa itu diperiksa terhadap standar Kode Bersih untuk memastikan kode itu aman, andal, dan dapat dipertahankan.

Apa beberapa potensi jebakan dan risiko dari kode yang dihasilkan?

 While AI dapat membebaskan waktu pengembang untuk bekerja pada proyek yang lebih berharga dan meningkatkan produktivitas, itu tidak datang tanpa risiko. Ini adalah mengapa permintaan pengembang tidak akan pergi dalam era AI. Karena alat GenAI dapat menghasilkan banyak kode dengan cepat, ada potensi untuk kesalahan. Berikut beberapa jebakan spesifik:

  • Akuntabilitas: AI yang dihasilkan kode mengurangi kemampuan untuk mempertanggungjawabkan orang-orang untuk kode yang dibuat, yang dapat membuat memecahkan/mengatasi masalah lebih sulit.
  • Kerentanan: Karena itu mengambil informasi yang sebagian besar bersumber dari crowdsourcing, tidak ada jaminan bahwa kode yang dihasilkan aman atau bersih. Mungkin ada bug atau masalah keamanan yang dapat membahayakan bisnis.
  • Kualitas: AI tidak memeriksa kualitas, dan hanya karena itu dihasilkan dari AI tidak berarti itu efisien atau berkualitas tinggi.
  • Tanpa konteks: Kehilangan elemen manusia secara alami berarti bahwa Anda kehilangan konteks dari suatu masalah atau proyek. Kode yang dihasilkan oleh AI harus ditinjau untuk memastikan bahwa itu melakukan pekerjaan dengan lengkap.

Ketika pengembang mengambil pendekatan Clean as You Code dengan kode mereka — manusia atau AI yang dihasilkan — mereka dapat memastikan bahwa itu sesuai untuk pengembangan dan produksi dan memenuhi standar yang diperlukan oleh organisasi mereka.

Apa beberapa variabel lain yang harus dipertimbangkan dalam kode yang sesuai untuk produksi?

 Pengembang yang menulis kode yang memenuhi prinsip-prinsip Kode Bersih dapat yakin bahwa kode mereka sesuai untuk pengembangan dan produksi, yang berarti kode itu mengikuti karakteristik tertentu:

  • Konsisten: Kode harus konsisten dan mengikuti gaya yang umum. Bahkan jika kode itu dikerjakan oleh beberapa pengembang yang berbeda selama waktu, itu harus memiliki penampilan yang sama dan mengikuti pola yang telah ditetapkan sebelumnya.
  • Disengaja: Kode yang disengaja harus dibaca seperti itu ditulis dengan perhatian dan perawatan untuk menyampaikan tujuannya; itu harus hanya memiliki satu interpretasi yang tersedia.
  • Adaptif: Kode yang adaptif dipisahkan dan diatur dengan cara yang membuatnya lebih mudah untuk dikelola dan melihat hubungan antara setiap baris kode. Ini membuat kode terstruktur untuk evolusi yang mudah dan percaya diri.
  • Bertanggung jawab: Kode, dan pengembangnya, harus menyadari kewajiban etisnya mengenai data dan pengaruh potensialnya terhadap norma-norma sosial. Kode itu pada akhirnya tidak boleh menyajikan risiko yang berkelanjutan dari merugikan pihak ketiga secara tidak sengaja.

Bagaimana Anda membahas beberapa penawaran oleh Sonar, dan bagaimana itu membantu pengembang untuk membangun kode yang bertanggung jawab, aman, berkualitas tinggi dengan cepat dan sistematis?

 Melalui analisis industri yang memimpin, Sonar mengidentifikasi masalah pengkodean dengan cara yang komprehensif dan merekomendasikan perbaikan dengan umpan balik yang singkat sambil mendidik pengembang dalam konteks, pada akhirnya memungkinkan organisasi untuk membangun kode yang bertanggung jawab, aman, berkualitas tinggi dengan cepat dan sistematis. Elemen inti dari solusi Sonar adalah SonarLint, SonarQube (self-managed; open source), dan SonarCloud (SaaS), dengan cakupan yang luas yang mendukung lebih dari 30 bahasa pemrograman, kerangka kerja, dan infrastruktur, 11 IDE, dan lebih dari 5.000 aturan pemrograman dan bahasa yang spesifik.

SonarLint, ekstensi IDE, menyediakan pemeriksaan pertama untuk menemukan masalah secara real-time dari saat kode ditulis. Ini menangkap sebagian besar masalah di awal dan membantu pengembang menemukan dan memperbaiki kesalahan seperti pemeriksaan ejaan untuk kode. SonarQube dan SonarCloud, alat tinjauan kode analisis statis Sonar, terus-menerus memeriksa dan menganalisis kodebase, dengan integrasi SonarLint. Menggunakan gerbang kualitas untuk menentukan apakah kode memenuhi standar kualitas, keamanan, dan keandalan yang ditetapkan untuk produksi, SonarQube dan SonarCloud memeriksa kode untuk bug, kerentanan, hotspot keamanan, dan bau kode.

Menggabungkan solusi kami dengan metodologi Clean as You Code kami — pendekatan yang mengikuti standar yang ditetapkan untuk menjaga kode baru, ditambahkan, atau diedit tetap bersih — pengembang dan organisasi dapat mengirimkan Kode Bersih dan memperbaiki kode yang ada secara organik, sehingga mereka dapat fokus pada proyek baru yang inovatif yang menghasilkan nilai bisnis

Bagaimana Sonar membantu memastikan bahwa kode itu sesuai dan memenuhi standar industri?

Sonar membantu pengembang mendapatkan umpan balik yang segera dan kontekstual, menyoroti masalah di mana mereka berada di kodebase, dalam alur pengembangan berdasarkan pengalaman analisis bahasa selama bertahun-tahun. Pengembang mendapatkan akses ke penjelasan yang jelas tentang mengapa suatu masalah terjadi dan bagaimana memperbaikinya dengan cepat, serta sumber daya tambahan untuk pembelajaran yang lebih mendalam. Kami memiliki pendidikan yang dibangun melalui seluruh alur kerja, dari IDE ke CI/CD. Sebagai contoh, Sonar memiliki aturan MISRA C++ 2023 yang spesifik tersedia di SonarLint untuk membantu tim membuat kode yang terbaik untuk sertifikasi yang akan datang. Ini menawarkan panduan pengkodean, menjelaskan mengapa di balik masalah yang ditandai, dan bagaimana memperbaikinya, untuk memastikan bahwa kode yang ditulis adalah MISRA-compliant.

Apa visi Anda untuk bagaimana AI akan mengubah pengkodean di masa depan?

 Saya pikir AI akan terus memberikan nilai besar dalam mengatasi kelelahan pengembang. Saya tidak berpikir AI akan pernah dapat membuang pemikiran dan sentuhan manusia dari pengembang, tetapi saya pikir bahwa bahkan beberapa bulan dari sekarang kita akan melihat satu set GPT yang sama sekali baru — tidak peduli apa yang akan terlihat beberapa tahun dari sekarang. Saya tidak percaya bahwa teknolog atau pengembang akan pergi, tetapi cara mereka bekerja setiap hari pasti akan berubah. Cara pengembang menggunakan AI akan menjadi sesederhana dan umum seperti mencari sesuatu di Google (GOOGL ) sebagai jalan pintas. Masih banyak hal yang perlu dijelajahi tentang penggunaan AI, tetapi kita harus tetap mempertimbangkan elemen manusia di garis depan untuk memeriksa kelemahan AI. Ada potensi transformasional untuk pengembangan perangkat lunak, tetapi kita tidak boleh membiarkannya berjalan tanpa cek — terutama ketika bisnis digital hari ini bergantung pada perangkat lunak yang mendasarinya.

Terima kasih atas wawancara yang luar biasa, pembaca yang ingin mempelajari lebih lanjut harus mengunjungi Sonar.

Antoine adalah seorang pemimpin visioner dan rekan pendiri Unite.AI, yang dipandu oleh semangat tak tergoyahkan untuk membentuk dan mempromosikan masa depan AI dan robotika. Sebagai seorang wirausaha serial, ia percaya bahwa AI akan menjadi sangat mengganggu masyarakat seperti listrik, dan sering tertangkap berbicara tentang potensi teknologi disruptif dan AGI.

Sebagai seorang futuris, ia berdedikasi untuk mengeksplorasi bagaimana inovasi ini akan membentuk dunia kita. Selain itu, ia adalah pendiri Securities.io, sebuah platform yang berfokus pada investasi di teknologi-teknologi canggih yang mendefinisikan kembali masa depan dan membentuk kembali seluruh sektor.