ピーター・マッキー、Sonarの開発者担当責任者-インタビューシリーズ
Revised title in Japanese 『Sonar』開発者担当責任者ピーター・マッキーにインタビュー!- シリーズ編
Peter McKeeは、Sonarというプラットフォームの開発者リレーションのヘッドです。Sonarは、不良なコードという兆ドルの課題を解決するプラットフォームです。Sonarは、開発者や組織がクリーンなコードの状態を体系的に達成し、全てのコードが開発と製品に適したものとなるようにサポートします。SonarのClean as You Codeの手法を適用することにより、組織はリスクを最小限に抑え、テクニカルデットを減らし、ソフトウェアから予測可能で持続可能な価値を引き出すことができます。
コンピューターサイエンスに最初に惹かれたのはなぜですか?
幼い頃からコンピューターに興味を持っていました。最初は別のキャリアを追求していたにも関わらず、常にコンピューターやプログラミングに引き寄せられていました。ある時、父親がバージニアで鉄鋼会社を経営しており、彼らはコンサルタントグループを失ってしまいました。私は若い頃にプログラミングを学んでいたため、彼は私を招待して彼のためにシステムを構築して働くようにしました。最初は正直、100%私が何をやっているのかわかりませんでしたが、本や仕事の中で学び、完全に独学で身につけました。これが私のコーディングとコンピューターに対する関心をさらに高め、コンピューターサイエンスに興味を固めることになりました。
「クリーンコード」とはどのように定義し、なぜ重要なのでしょうか?
- 「エンタープライズサービスマネジメントがAIを活用したチームを実現する」
- 「Pythonにおけるコードゴルフ:簡潔なプログラミングの技術をマスターする」
- 「Andrej Karpathy LLM Paper Reading List for LLM Mastery」のためのアンドレ・カルパシーの論文読書リスト
ソフトウェアが世界を飲み込むと何年も言われ続けてきた結果、今や公式な状態になっていると言えます。世界はソフトウェアに基づいて構築され、すべての企業は事実上ソフトウェア企業です。良いソフトウェアの基盤となるのは品質の高いコードです。コードはすべてのソフトウェアの中心であり、その動作とパフォーマンスを規定します。そのため、一貫性があり意図的で適応性のある「クリーンなコード」が非常に重要です。クリーンなコードは理解しやすく変更しやすく、ランタイムでスムーズに動作し、技術的負債を含まないため、目的に適したものとなります。クリーンなコードは、組織がソフトウェアが資産であり続けることを確保するために受け入れるべき基準であり、現代のビジネスの成功の鍵です。
クリーンなコードは、チームや組織のサイズや成熟度に関係なく利益をもたらし、ソフトウェアの価値を高めます。具体的な利点は以下の通りです:
- 開発スキルを向上させる — 開発者はコードを書きながら問題を検出し、理解し、解決することができ、ベストプラクティスを学びます
- 効率と生産性を向上させる — 継続的な再作業や長いフィードバックサイクルを減らすことで、生産性が向上します
- 評判とビジネスリスクを軽減する — クリーンなコードにより、チームは本番環境に達する前に問題を予防的に対処することで、セキュリティリスクを減らすことができます
- コードレベルのテクニカルデットを低減する — クリーンなコードは、大規模なアプリケーション全体の大幅な変更や中断なしに、コードベースの負債を徐々に解消します
- ソフトウェア開発の速度を向上させる — クリーンなコードの基準と効率的なフローは、DevOpsの速度を向上させ、より早いマーケット投入を促進します
コードの一貫性と構造の重要性、一貫性のあるクリーンなコードの例について話してもらえますか?
一貫したコード品質は、すべてのマネージャーやテクニカルディレクターが維持しようとするものです。一貫性はコード品質において重要です、なぜなら一貫性は予測性につながるからです。一貫したコードは一貫した形式や慣習に従い、識別可能です。一貫したコーディング基準が採用されると、開発者はより効率的になり、スピードと正確さを持って納期を迎えることができます。
予期しない状況に対処できるコードの重要性について話してもらえますか?その重要性は見落とされてはならない理由は何ですか?
開発者はデザインや開発のプロセス中に予期せぬ出来事に備えるよう常に努めていますが、すべての場合においてそれを防ぐことはできません。予期しない状態は、意図しない誤用や意図的な攻撃によって発生する可能性があります。これらの予期しない状態は、攻撃者が悪用できるセキュリティの脆弱性を意図せずに導入することがあります。そのため、開発者は常にコードの品質と安定性を向上させ、予期しない状態に対応するためのテストを行うべきです。Clean as You Codeのアプローチに従うことで、チームは新機能の開発を加速させ、不必要な作業コストを回避し、才能の成長と定着を促進することができます。クリーンなコードはセキュリティ、保守性、信頼性を促進し、開発者が予期しない状況に効果的に対処し、ソフトウェアを迅速に復旧させることができます。
Code generation using Generative AIの利点について話し合えますか?
AIをソフトウェア開発ライフサイクルに組み込むことには、効率的に作業を行うことができるという利点があります。実際、GitHubの調査によると、AIを使用することで開発者はタスクを50%以上高速化できることがわかりました。さらに、GenAIはより迅速にコードを生成することができ、面倒なルーチン的な作業(文書化やコードスニペットの生成など)の負担を軽減するため、より高い価値のある、報酬のある作業に集中して、より複雑な問題を解決することができます。ただし、コードがどのように生成されるにせよ、セキュアで信頼性の高いメンテナンス可能なコードであることを確認するために、クリーンコード基準に対してチェックすることが重要です。
生成されたコードの潜在的な欠点やリスクは何ですか?
AIが開発者の時間を解放し、効率を高める一方で、リスクも伴います。これが、AIの時代でも開発者の需要がなくならない理由です。GenAIツールは大量のコードを迅速に生成することができるため、エラーの可能性があります。以下に具体的な欠点をいくつか挙げます:
- 責任: AIによって生成されたコードは、作成した人物に対する責任を負う能力を低下させます。このため、問題の解決や対処が困難になる可能性があります。
- 脆弱性: コードの生成には主にクラウドソーシングされた情報が使用されているため、生成されたコードが安全でクリーンであることを保証するものではありません。さらに、ビジネスのリスクを引き起こす可能性があるバグやセキュリティ上の問題が存在するかもしれません。
- 品質: AIは品質の二重チェックを行いません。AIから生成されたからといって、必ずしも効率的で高品質なコードであるとは限りません。
- 文脈の欠如: 人間の要素を失ったことにより、問題やプロジェクトの文脈も失われます。AIに生成されたコードは、完全に仕事を遂行していることを確認するために、レビューする必要があります。
開発者が手動で作成されたコードやAIによって生成されたコードに対してクリーンコードの原則に基づいたアプローチを取ることで、それが開発と製品化に適しており、組織の要件を満たしていることを確実にすることができます。
製品コードに適しているかを判断する際に考慮すべき他の変数は何ですか?
クリーンコードの原則に従ってコードを記述する開発者は、コードが開発と製品化に適していると確信できます。つまり、コードは次の特性を持っているはずです:
- 一貫性: コードは一貫しており、共通のスタイルに従っています。複数の異なる開発者が時間をかけてコードを作業した場合でも、それは似たような外観を持ち、以前に確立されたパターンに従っています。
- 意図的: 意図的なコードは、目的を伝えるために注意と注意を払って記述されたように読み取れます。コードには一つの解釈しかできないはずです。
- 適応性: 適応性のあるコードは、コードの各行の関係が見えやすく管理しやすいようにセグメント化され、編成されています。これにより、コードは簡単で確信を持って進化できるように構造化されています。
- 責任感のある: コードとその開発者は、データに関する倫理的な義務と、社会的な基準への潜在的な影響について留意すべきです。コードは、第三者に意図しない害を与え続けるリスクを最終的には提示しないはずです。
Sonarのさまざまな提供について、コーダーが責任ある、安全で高品質なコードを素早くかつ体系的に構築するのにどのように役立つのかについて話し合えますか?
業界をリードする分析ツールを通じて、Sonarはコーディングの問題を包括的に特定し、フィードバックループを短くし、開発者にコンテキストを提供しながら修正を勧め、組織が責任ある、安全な、高品質なコードを素早くかつ体系的に構築するのを可能にしています。Sonarの主要な要素は、SonarLint、SonarQube(自己管理型。オープンソース)およびSonarCloud(SaaS)であり、30以上のプログラミング言語、フレームワーク、インフラストラクチャをサポートし、11のIDEおよび5000以上のコーディングおよび言語固有のルールを提供しています。
IDEの拡張機能であるSonarLintは、コードを書き始めた瞬間からリアルタイムで問題を検出します。コードの大部分の問題を先に見つけることができ、コードのスペルチェックのようなエラーを開発者が見つけて修正するのを助けます。SonarQubeとSonarCloudは、SonarLintの統合を活用してコードベースを継続的に検査および分析します。品質ゲートを使用して、コードが製品化において品質、セキュリティ、信頼性の定義された基準を満たしているかどうかを判断し、SonarQubeとSonarCloudはコードをバグ、脆弱性、セキュリティホットスポット、コードの臭いについて検査します。
私たちのソリューションセットとClean as You Code方法論を組み合わせることで、開発者や組織はClean Codeを提供し、既存のコードを有機的に修復することができます。これにより、彼らはビジネス価値を生み出す新しい革新的なプロジェクトに集中することができます。
Sonarは、コードが規格に準拠し、業界基準を満たしていることを保証するためにどのように役立つのでしょうか?
Sonarは、開発者に即時かつコンテキストに即したフィードバックを提供し、言語解析の経験に基づいて開発ワークフロー内でコードベースのどの部分に問題があるかを強調します。開発者は、なぜ問題が発生するのか、そしてそれを迅速に解決する方法について明確な説明やより詳細な学習リソースにアクセスすることができます。IDEからCI/CDまで、ワークフロー全体に教育が組み込まれています。たとえば、Sonarは SonarLintで使用可能な特定のMISRA C++ 2023 のルールを持っており、これはチームが将来の認証に最適に準備されたコードを作成するのに役立ちます。それはコーディングのガイダンスを提供し、フラグが立った問題の背後にある理由や修正方法を説明し、書かれたコードがMISRA準拠であることを確認します。
将来、AIがコーディングをどのように変革するかについてのあなたの展望は何ですか?
私はAIが開発者の過労に取り組むためにさらなる価値を提供し続けると考えています。AIが開発者の思考や人間の手を完全に代替できるとは思いませんが、数か月後にはまったく新しいセットのGPTを見ることができると思います。数年後はまた別の話でしょう。技術者や開発者がなくなるとは思いませんが、彼らが日常的に仕事をする方法は確実に変わるでしょう。開発者がAIを使用する方法は、Googleで何かを検索することと同じくらい簡単で一般的になるでしょう。AIの使用についてはまだ多くの探索が必要ですが、AIの欠点をチェックするために人間の要素を常に考慮する必要があります。ソフトウェア開発には変革の可能性がありますが、私たちはそれをチェックなしで運用してはいけません。特に今日のデジタルビジネスはソフトウェアに依存しているからです。
素晴らしいインタビュー、さらに詳しく学びたい読者はSonarを訪れてください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles