検索
特集/連載

AIが開発者を支援するソフトウェア開発ツール「Stepsize Layer」のゴールとは?キーパーソンインタビュー

各種開発ツールに接続してデータを収集し、コードにコンテキストデータを付加する「Stepsize Layer」。このツールで何が実現するのか。CEOのオマイヤー氏にインタビューした。

Share
Tweet
LINE
Hatena
Computer Weekly

 Stepsizeは、開発ツールに特化した新興企業だ。この会社は、DevOps業務にある程度の人工知能(AI)を導入することを目指している。同社の「Stepsize Layer」(以下「Layer」)は開発者向けのデスクトップアプリケーションで、コードベースに自動的にコンテキストを追加する。これは、ソフトウェア開発ツールに接続して履歴データを収集し、その履歴をコードの必要な箇所に添付することで実現する。

Computer Weekly日本語版 10月19日号無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 10月19日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。

ボタンボタン

 コードを選択してそのタイムラインを表示し、スマートロジックを実行すると、コードの実質的な作者を突き止めることができる。「Slack」と完全に統合されており、これを使ってコードの作者に連絡を取ることもできる。

 Stepsizeの共同設立者にしてCEOであるアレックス・オマイヤー氏が本誌Computer Weekly内ブログの1つ「Open Source Insider」のインタビューに応じて、Stepsizeのテクノロジーが進化した過程を語った。

CW:このアイデアはどのようないきさつで生まれたのか。

オマイヤー:自然言語処理に深層学習を取り入れる方法をオンラインコースで学んでいたときに、これはプログラミング言語にも適用できるのではないかと思い付いた。プログラミング言語は、英語やフランス語よりも構造が明確で曖昧さが少ないからだ。

 開発者仲間とそのことを議論するうちに、機械学習をソフトウェア開発に応用できるのではないかというアイデアが飛び出し、われわれはStepsizeを立ち上げた。

 「Stack Overflow」と「GitHub」で公開されているデータを使い、ニューラルネットワークで遊んでみた結果、正しいアプローチとはデータを収集して、そこから適切なデータを生成することだという結論にわれわれは達した。こうすると、ソフトウェア開発プロセスのさまざまな部分を繰り返し合理化し自動化することができる。また、このアプローチで、プログラミング言語を最終的には抽象化できる。

 そこでわれわれは、このデータ収集の実験をしながら、開発者の日々の作業を支援する方法を考え始めた。チームで活動している何人もの開発者に話を聞き、開発者が日常的に取り組む作業として多いのは、コードベースに何かを追加することだと気づいた。ただし作業の出発点であるコードベースについて理解してから作業に取り掛かることはほとんどないし、コードベースが現状に至るまでの経緯を把握するという目的に特化したツールもない。(開発者は)誰がいつ、何のためにその部分のコードを書いたのかが知りたいのだ。われわれはコードにコンテキストを追加するLayerを開発した。コンテキストがあるコードベースなら、開発者は(必要な)情報を全て得た上で、1つのコードベースを共有して作業を進めることができる。

CW:具体的にはどのような動作をするのか。

オマイヤー:先に説明した通り、Layerにはソフトウェアの開発に使われる主要なツールのほとんどを接続できる。ツールに含まれる履歴データを構造化して、コードに添付する。

 ユーザーは単純に、コードのスニペットを選択し、ショートカットキーをたたけばいい。するとわれわれが開発したオープンソースのエディタプラグインが起動して、そのコードと同じロジックを実行するアプリに送信する。その際、このコードに関連する情報を追加する。続いて、Gitに含まれている情報やその他のツールを使ってコードの作者を特定し、作者がそのコードを完成させるまでの完全な履歴を作成する。

 履歴は、コミット、プルリクエスト、それらに関するユーザーのコメントや懸案事項が全て時系列で整理されている。われわれは、テストのカバレッジの分析だけでなく、継続的な統合、コードレビュー、他にも多数あるツールの情報なども追加し、コードにその情報へのリンクを張って戻す計画を立てている。われわれの目標は、コードの各部分について、そこに関する情報を全て整理し、直接関連付けることだ。そうすれば、開発者がコードを把握するために、ツールをあれこれ駆使しなくても済むようになる。

 また、LayerはSlackも統合している。これは開発者が仲間と連絡を取り、ソフトウェア開発で発生するあらゆることを議論するために利用しているツールだ。ユーザーは、アプリを調査している環境上で直接、コードの作者にSlackのメッセージを送ることができる。LayerはSlack APIを使って選択されたチャネルへメッセージをプッシュし、開発チームにとって必要となるコンテキストを全て埋め込んで、コードに関する(Layerユーザーとコードの作者との間で)生産的な対話を実現する。

CW:開発者の働き方はどのように変わるのか。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る