コラボロジックでは、LAMP環境での業務系Webシステムの開発を主な事業としています。
業務系Webシステムを効率的に開発するため、独自のWebアプリケーションフレームワーク、
「Collabo-X」を開発し、日々バージョンアップを行いながら、実際の案件に利用してきました。
ちょうど、ちょっとした機会があって、Collabo-Xを紹介するプレゼンを作ったりしたので、
その特徴をここでも紹介させて頂きます。長いので3回ぐらいに分けますね。
今回は、フレームワークそのものじゃなくて、フレームワークを作る際に考えた、
目的と方針について。
1.目的
コラボロジックで請け負う業務系Webシステム案件は、多くの場合1人月から10人月以下の、
小規模案件となっています。こうした小規模案件には共通した問題があります。
・納期が短いため仕様変更やトラブル発生に対応するための予備の日数を確保しづらい。
・要求が不明確な状態で開発が始まるので、予備の日数が少ないにもかかわらず、戻り工数が多い。
・エンドユーザ側に専任の担当者がいないため、システム開発へ積極的にかかわって頂くことが難しい。
多くの場合、納期前後の期間に集中的に担当者がシステムについての意見を述べ始める状態になるため、
納期を守れなかったり、トラブルになりやすい傾向があります。
結果として開発者と発注者の間に不信感が募り、
継続的なパートナーシップを築けないということになってしまいます。
実は、中規模、大規模のシステムの開発よりも困難が付きまとうのが、
小規模システムの開発なのです。
コラボロジックでは、こうした問題を解決するための開発工程を検討し、
それにあわせたアプリケーション開発を行うためのフレームワークを用意しました。
2.開発の工程
小規模システムを開発するのにふさわしい開発工程のあり方として、次の特徴が必要と考えました。
・早い段階で意識の違いや明確な仕様を発注者が考えられるよう、見た目から開発を進められること。
・仕様変更に柔軟に対応できること。
・仕様変更などの状況の変化に対応して、工程を動的に組み替えられること。
・システム開発の専門家ではない発注者にも理解できる明確でシンプルな開発工程であること。
これらの特徴を備えるために、次のような手順を考えました。
1.基本設計(システムの基本的な仕様、画面遷移、データベースの概念設計)
2.機能設計(基本的な画面項目の定義、データベースの定義、必要に応じてモックアップ、画面設計書)
3.開発環境の準備(フレームワークの基本構成を構築)
4.テンプレートプロトタイピング(Smartyタグを含むHTMLに入力データを定義する記述を加えて、動作確認可能な動的HTMLを作成)
5.動的テンプレート作成(プロトタイプテンプレートのデータ定義部をデータベース参照タグに変更、または画面表示に関する処理を記述したビュー関数を作成)
6.画面遷移実装(コントローラにアクションメソッドを作成し、テンプレート内のURLを変更)
7.データ変更処理を作成(オペレーションメソッドを作成し、データベースへの変更処理などを記述)
8.ワークフロー、操作権限などの処理を作成(テーブル定義関数を利用し、EXCELの表形式などで定義される仕様を、そのまま表形式データとして作成し、表形式データから実行する関数を決定する処理を利用して実行する形を作る)
9テスト
このうち5から8までの実装作業部分は、機能や業務単位で繰り返し実施することも可能です。
こうした工程で開発することを前提とした上で、フレームワークの機能を検討し、実装してきました。
大事なのは、仕様変更がしやすく、また、出来るだけ早く、仕様の勘違いや方針変更に気付けること。
特にワークフローなどは、画面が出来てこないと何が問題なのか、ユーザにはわかりにくいところなので、
一番最後に作る形式が必須と考えました。
次回以降、この方式で開発するためにフレームワークに実装した機能を紹介していきます。
業務系Webシステムを効率的に開発するため、独自のWebアプリケーションフレームワーク、
「Collabo-X」を開発し、日々バージョンアップを行いながら、実際の案件に利用してきました。
ちょうど、ちょっとした機会があって、Collabo-Xを紹介するプレゼンを作ったりしたので、
その特徴をここでも紹介させて頂きます。長いので3回ぐらいに分けますね。
今回は、フレームワークそのものじゃなくて、フレームワークを作る際に考えた、
目的と方針について。
1.目的
コラボロジックで請け負う業務系Webシステム案件は、多くの場合1人月から10人月以下の、
小規模案件となっています。こうした小規模案件には共通した問題があります。
・納期が短いため仕様変更やトラブル発生に対応するための予備の日数を確保しづらい。
・要求が不明確な状態で開発が始まるので、予備の日数が少ないにもかかわらず、戻り工数が多い。
・エンドユーザ側に専任の担当者がいないため、システム開発へ積極的にかかわって頂くことが難しい。
多くの場合、納期前後の期間に集中的に担当者がシステムについての意見を述べ始める状態になるため、
納期を守れなかったり、トラブルになりやすい傾向があります。
結果として開発者と発注者の間に不信感が募り、
継続的なパートナーシップを築けないということになってしまいます。
実は、中規模、大規模のシステムの開発よりも困難が付きまとうのが、
小規模システムの開発なのです。
コラボロジックでは、こうした問題を解決するための開発工程を検討し、
それにあわせたアプリケーション開発を行うためのフレームワークを用意しました。
2.開発の工程
小規模システムを開発するのにふさわしい開発工程のあり方として、次の特徴が必要と考えました。
・早い段階で意識の違いや明確な仕様を発注者が考えられるよう、見た目から開発を進められること。
・仕様変更に柔軟に対応できること。
・仕様変更などの状況の変化に対応して、工程を動的に組み替えられること。
・システム開発の専門家ではない発注者にも理解できる明確でシンプルな開発工程であること。
これらの特徴を備えるために、次のような手順を考えました。
1.基本設計(システムの基本的な仕様、画面遷移、データベースの概念設計)
2.機能設計(基本的な画面項目の定義、データベースの定義、必要に応じてモックアップ、画面設計書)
3.開発環境の準備(フレームワークの基本構成を構築)
4.テンプレートプロトタイピング(Smartyタグを含むHTMLに入力データを定義する記述を加えて、動作確認可能な動的HTMLを作成)
5.動的テンプレート作成(プロトタイプテンプレートのデータ定義部をデータベース参照タグに変更、または画面表示に関する処理を記述したビュー関数を作成)
6.画面遷移実装(コントローラにアクションメソッドを作成し、テンプレート内のURLを変更)
7.データ変更処理を作成(オペレーションメソッドを作成し、データベースへの変更処理などを記述)
8.ワークフロー、操作権限などの処理を作成(テーブル定義関数を利用し、EXCELの表形式などで定義される仕様を、そのまま表形式データとして作成し、表形式データから実行する関数を決定する処理を利用して実行する形を作る)
9テスト
このうち5から8までの実装作業部分は、機能や業務単位で繰り返し実施することも可能です。
こうした工程で開発することを前提とした上で、フレームワークの機能を検討し、実装してきました。
大事なのは、仕様変更がしやすく、また、出来るだけ早く、仕様の勘違いや方針変更に気付けること。
特にワークフローなどは、画面が出来てこないと何が問題なのか、ユーザにはわかりにくいところなので、
一番最後に作る形式が必須と考えました。
次回以降、この方式で開発するためにフレームワークに実装した機能を紹介していきます。