システム開発

概要

システム開発では、画面・帳票・DB 設計、コーディング、テストを仕様に沿う形で決められた期日までに終えることが求められます。アプリケーション開発者がこれらの作業を滞りなく進めるために、開発基盤・アプリケーションアーキテクチャを整備し、設計・実装・テスト方針などを決定する必要があります。さらに昨今 DevOps のように高度な作業の自動化が重要になっており、プロジェクトに参画するベンダーには知見がない場合もあります。

豆蔵では多くのプロジェクトにおいて、フレームワーク構築やガイド作成、各種自動化を実現し、開発生産性・成果物の品質向上に貢献しています。
 

特長

  • スクラッチでフレームワークを開発し、アプリケーションアーキテクチャを構築
  • アプリケーション開発の進展に合わせてフレームワークも継続的に改善
  • 開発プロセス・規約の定義と開発者向けガイドの提供
  • 開発者向けのコードレビュー、QA サポートなど技術的な支援によりアプリケーションアーキテクチャを定着化
  • ビルド・テスト・デプロイのオートメーションを実現
  • 技術移転

豆蔵はソフトウェア資産として内製フレームワークを保有していません。顧客プロジェクト毎にスクラッチでフレームワークを構築します。既存のフレームワークがある方がプロジェクトのスタートが早くできると思われるかもしれませんが、一般的な SIer の担ぐ内製フレームワークの多くは陳腐化が進行しています。簡単なアプリケーションを作るだけでも煩雑な作業が必要だったり、機能追加・変更に素早く対応できなかったりして、開発者の生産性やモチベーションの低下を招く結果となります。豆蔵では要件にフィットしたフレームワークを構築しつつ、リファレンスアプリケーションに適用することで、開発者が書く典型的なコードの保守性、生産性、実行性能を担保するように最適化します。この段階でアプリケーションの構造をどのようにするか、各レイヤーでどのようなコードを書くべきかなど、アプリケーションアーキテクチャの基礎を確立します。

アプリケーション開発が始まると、フレームワークも定期的にリリースし、継続的な改善を実施します。フレームワークは顧客の資産となり技術移転が成功すればその後のアプリケーション開発の基盤として継続的に利用可能です。

フレームワークとリファレンスアプリケーションだけでは開発プロジェクトは成り立ちません。開発で発生するイシューの管理や VCS(Version Control System: Git や Subversion などのソフトウェアの変更管理システム) のブランチング方針なども決めていく必要があります。データクラスの作成のような機械的な作業を省力化するツールの提供や、業務で共通的に使用する部品の開発も必要です。これらは、アプリケーションアーキテクチャの構築と比べると比較的難易度の低い作業ですので、顧客社員に実施していただき豆蔵がレビューするという役割分担をすることもあります。

アプリケーション開発が本格化すると多くの開発者が参加します。この際、フレームワークを用いてどのようにアプリケーションを開発するのか、どのようにコードを書けばいいのかを身につけた上で開発作業に着手してもらう必要があります。本格開発に先立って、設計・開発のプロセスや成果物を定義し、リファレンスアプリケーションの実装を元にガイドを提供します。コーディング規約についても整備し、開発者が自らのコードをセルフチェックできるようにします。長大なドキュメントではなく、設計思想を理解でき、実際の開発作業をイメージしやすいよう、記載内容に気を使います。ガイドもフレームワークの改善に合わせて改訂していきます。これにより、初期に構築したアプリケーションアーキテクチャが、実際のアプリケーションに適用されは、高品質なアプリケーションを開発するための組織文化も醸成されていきます。

ガイドを提供しただけでは、開発者がアプリケーションアーキテクチャに即したコードを書けるわけではありません。本格開発時は、開発者のコードをレビューしアーキテクチャに違反したコードや、保守性の低いコード、性能を劣化させるコードが出荷されないようにチェックします。実現したい機能をどのように実装するべきかについてもサポートを行い、開発者が抱える問題の解決を支援していきます。

業務アプリケーションもリリース後の改善が重要になっている昨今、テストやデプロイなどの作業自動化が求められています。豆蔵ではテストも開発のプロセスに組み込み、重要機能については網羅的なテストを書いて自動実行するように勧めています。仕様書に基づきコードを書いて、IT / ST とビッグバン的に結合していくのではなく、自動化されたテストを開発者が書いて手元でも CI でも実行できるようにすれば、早期にバグを検出でき、後続の工程での手戻りを防止できます。テストコードの作成や CI の構築も支援します。

技術移転で重要なのはアプリケーションアーキテクチャの維持です。豆蔵は開発の初期段階から本格開発までの過程で関わることが多く、その後は顧客や他ベンダーで開発・保守をしていくことになります。それまでに技術移転を行うことになります。アプリケーション部分はすでにガイドや開発者の知識として定着しているので、フレームワークの保守やオートメーションなどの部分で豆蔵が離任してもつつがなくアプリケーションのリリースができるように技術移転を行います。
 

導入事例紹介

システム開発を導入いただいた企業様の事例をご紹介します。