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の記述方法は、業務の片手間に学習可能である
  • 外注中心の業務システム開発プロセスに、エンドユーザーが保守やテストで参加することで、コスト構造を変革させ、ユーザーの知見を直接システムに反映できる