もっと軽く。最近のトレンド

もっと軽く。最近のトレンド

昔のソフトウエア開発は、1個の大きなシステムを全部1つのアーキテクチャで作り上げるような大型工事でした。一方、最近では、いろいろなシステムがつながって、お互いに利用することができるような状況にあります。すべてを完結させる必要はなく、小さいものを段階的に、場合によっては異なるアーキテクチャで作ることができます。

こうなってくると、ツールが想定するプロジェクトの定番パターンというものがなくなってきます。もし、このままツールがカバーする領域を広げていき、フレームワークのサポートや開発プロセスの統合などを推し進めていくと、とてつもなく多くの組み合わせをサポートしなければならなくなってしまいます。

開発ツールは、その方向に向かうのでしょうか。

答えは「ノー」だと思います。ベンダーにそんな体力はありませんし、結局理想的な組み合わせで使える人はごくわずかだからです。

また、多くのツール・ベンダーは、同時にプラットフォーム・ベンダーでもあります。自社のOSやデータベース、アプリケーション・サーバーなどに囲い込むようにベクトルが働いています。そうすると、理想的な組み合わせセットを提供するのが、ベンダーの方向性に合うことになるわけです。

一方、開発者は、こうした単一ベンダーによるロックインを嫌う傾向にあります。いろいろなシステムと連携したり、既存システムの改修や統合を行ったりしなければならない昨今、ベンダーが用意した特定の組み合わせだけというのは、受け入れがたいでしょう。

適材適所の使い分け

オープンソース系の言語やフレームワークが普及するのに伴って、プログラミング・ツールにエディタしか使わないというケースも増えています。そのためか、高機能な開発ツールを一度も触ったことがないという人もいます。

エディタだけでコンパクトに済ますことができるというのは便利ですが、煩雑なコーディング作業に時間をとられるというのは、プログラマが本来注力すべき創造的な仕事ではありません。

プログラミングを労働集約的な仕事と考えると、「タイピング量をどれだけ減らせるか」が、ツールの生産性を測るバロメータになってしまいます。そもそも「生産性なんて測れるのか」という疑問もあります。

ここで、見方を変えて「開発者がより創造的な仕事に従事できるようにする」という視点に立つと、ツールに求める機能と、その機能を判断するために何を尺度にすればよいかということが見えてきます。以下では、こうした機能を3つ紹介します。

  1. 定型的な作業を自動化し、複雑な作業を簡略化してくれる
    フレームワークで使う定型的なコードを自動的に準備してくれるウィザード機能や、変数名の変更やメソッドの宣言方法などを安全に変更してくれるリファクタリング機能などが、時間短縮とコード品質の平準化といった点で役立ちます。
  2. 作ったものをすぐに見えるようにして、試行錯誤できるようにしてくれる
    ある程度組みあがらないと確認できないようなユーザー・インタフェースやデータベース・アクセス機能などを、その場で確認したりテストしたりできるビジュアル・ツールなどが相当します。動きを簡単に確認できるので、早めに問題点に気づき、軌道修正できます。
  3. 手作業では見つからない問題点を検出したり、可視化したりしてくれる
    メモリー・リーク検出ツールやSQLチューニング・ツール、静的コード解析ツールなどが相当します。プログラムの動作を追っているだけでは気づかない潜在的な問題点を、ツールの力を使って発見できます。

ツール導入のメリットというと、しばしば1番目の作業の自動化/効率化のことばかりが言われる傾向にあります。ところが、その後の部分も非常に重要です。「ツールを駆使する」という表現は、まさにこれらの機能を使いこなした場合に当てはまります。

「ツールがなければできなかった」、「ツールのおかげでこれだけの品質向上が可能になった」というようなケースは、まさにこれらの部分が関係します。つまり、ツールの導入効果に対しては、量的な改善(生産性)を求めるだけでなく、質的な改善(品質)を求めることが重要になります。そうすると、「エディタだけで十分」という議論にはならないと思います。

今回は、ツールの変遷を追いながら、現在の課題について考えてきました。開発者にとって理想的なのは、適材適所でツールを使いこなせることです。ただし、ツール導入にはそれなりにコストがかかりますから、導入のメリットについて、社内で正しい共通認識を持って検討してもらいたいですね。

次回は、稼働後のシステム更新などシステム開発プロジェクトのライフサイクルに着目し、開発ツールがどう関与するのかを解説します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30