INTER-Mediatorが目指す
エンドユーザー開発
INTER-Mediator勉強会2014-#7
Nov. 25, 2014
Masayuki Nii - nii@msyk.net
Agenda
- 業務システムとエンドユーザー開発
- INTER-Mediatorが改善する開発
- INTER-Mediator in Future
業務システムと
エンドユーザー開発
開発コストの中の保守費用
日経システム運用ナレッジ「企業情報システムの運用管理に関する実態調査」
開発24%,保守31%,運用45%:全体の平均値
開発21%,保守34%,運用45%:売上高が100億円未満の企業
日本情報システム・ユーザー協会「ソフトウェアメトリックス調査2011」
初期開発にかけたコストに対し,5年にわたる保守と追加開発の費用を集計
保守と追加の開発のための費用合計:1.23倍
開発の費用≓保守の費用
保守開発をしないとシステムが早期に陳腐化する
エンドユーザー開発
「内製」と呼ばれることもある
社内の開発部門、あるいはシステム部門によって実施される
自身の業務の傍ら、システム開発を行う 本命はこちら
エンドユーザー開発の利点と問題点
利点 | 問題点 |
予算を抑えられる | 人件費に転化される,兼任スタッフが多忙になる |
保守の即時対応 | (同上) |
現場担当者が取り組める | 技術の習得が必要,少ない学習コストで使えるツールが必要 |
現場の知識を活用 | システムの抽象化が不十分になる,仕様書不在になりがち |
要件の明確化 | 担当者の知識範囲外が考慮されない,将来を見越した設計にならない |
的確なテストができる | システム的な限界点をテストできない |
自由にシステム運用ができる | 組織から見れば非効率,セキュリティ方針やコンプライアンスに対する違反の可能性 |
INTER-Mediatorが改善する開発
宣言的な記述で実現できる機能
コア機能
バインド、繰り返し、リレーション、計算プロパティ
応用機能
認証・アクセス権、ページネーション、新規レコード、レコード削除
上位概念の機能
入力専用フォーム、マスター/ディテール、検索コントロール、クライアント間同期
INTER-MediatorとCodeIgniterの開発結果を比較
簡単な資産管理アプリケーション
マスター/ディテール形式の2画面、入力編集あり
HTML+JS(CSS除く)+PHPの行数を比較
INTER-Mediator:181行、CodeIgniter:352行
保守作業に対する適合性
保守作業を6つに分類
1〜3については、一般的なフレームワークでは手続き的なプログラムの変更が必要
INTER-Mediatorでは宣言的な記述の変更で可能
| 概要 | 例 |
1 | ページ要素 |
- 表示する順序変更
- 非表示フィールドを新たに追加表示
- 文字の色の変更
|
2 | データベース要求 |
- レコード取得のための検索や並べ替え条件の変更
- リレーションシップを伴うコンテキストを記述
- レコード作成や削除機能を追加する
|
3 | 単一フィールド応答 |
- 小数以下の桁数を2桁から3桁に増やす
- 一定の文字列を前後に追加する
- 計算フィールドを定義する
|
4 | ユーザーインタフェースの カスタマイズ |
- 特別な処理を行うボタンの設置
- ページ生成のための拡張処理の記述や変更
|
5 | データベース応答 (サーバーサイドスクリプト) |
- データベースだけで実現できない集計処理を追加
- PDF生成などの追加処理が必要なデータ
|
6 | スキーマ変更 |
- 新たなビューを作成する
- テーブルやフィールドを新たに作成する
|
INTER-Mediatorの学習は可能か?
手続き的プログラミングと聞くだけでパス?
Webデザイナに対する実験結果
学習コンテンツで宣言的な記述の手法を学習
試験を受ける:12人中4人はあきらめた
残る8人は40〜90点の範囲で分布した
分野ごとの結果は、5つの分野ともに8人中6人は50点以上の得点だった
学習と試験で、およそ2時間程度。合理的な時間内で学習できると結論付けた
INTER-Mediatorの開発に必要な知識
HTML/CSSによるWebページ構築
データベースに対する知識+経験
手続き的プログラミングの知識と得点はある程度連動した
INTER-Mediatorの特性からの提案
開発に必要な記述が宣言的にできる
保守の作業は一定の範囲であれば、宣言的な範囲の記述の修正で可能
前提知識があれば、記述の学習は数時間程度の学習でできる
エンドユーザーによる保守が可能となる
開発プロセスにエンドユーザーが参画できる
INTER-Mediator in Future
INTER-Mediatorは何を目指したか
プログラム開発は目的ではなく手段
作りたいのは「システム」であり、プログラムはその手段である
短い記述でやりたいことが実現できないか?
シンプルなものほど把握しやすい
プログラムは書けば書くほど混乱を増大させていないだろうか?
温故知新+新しい酒は新しい革袋に盛れ
温故知新:HTMLへの記述を中心とした記述
新酒新革袋:DOMを利用したクライアントサイドでの動作
INTER-Mediator in Future
基本的な機能は概ね実装できた
デバッグは必要だが、機能セットは概ね実装できている
プラクティスを取り込むことを続ける
「フレームワークはコミュニティのベストプラクティスと共に進化する」(Katz and Dale、Ember.jsの開発者)
2015年からは普及を狙う
ドキュメントを中心としたノウハウの公開
開発ツールの製作に取り掛かるか?どうか?
開発者は何をすればいいのか?
INTER-Mediatorは開発者の仕事を奪うものではない
エンドユーザーが可能な技術的なことは、エンジニアにもできる
エンジニアは何をすればいいのか
上流工程、初期的な実装
プログラミングが必要な保守開発
エンドユーザーに対するコンサルティング
取り組む時間が減るのは減益につながるのか?
プログラムとデバッグに費やした時間が
エンドユーザーの話を聞く時間に変わり
品質の高いソリューション提供につながる
まとめ
- 宣言的な記述を中心とした開発は、エンドユーザーが取り組みやすい
- INTER-Mediatorは、一定範囲の保守作業を宣言的な記述の変更や追加で実施できる
- INTER-Mediatorの記述方法は、業務の片手間に学習可能である
- 外注中心の業務システム開発プロセスに、エンドユーザーが保守やテストで参加することで、コスト構造を変革させ、ユーザーの知見を直接システムに反映できる