イメージできないシステムはプロが作った完成形やUIをベースに考えてみる

「なぜこのことに早く気づかなかったんだろうか・・・」

 

何らかのシステムを作ることになった時、特にシステムを作る経験が少ない人は、完成したシステムの姿やあるべきシステムの姿をイメージするのは難しくはないでしょうか。

 

プログラミングの知識やシステムを作ってきた経験が豊富な人であれば、顧客からの要望に対して大まかにでも完成したシステムの姿をイメージするのは難しくはないと思います。

 

最近、とあるきっかけからこのことについて、

「つくるシステムがどうしてもイメージできない時は、プロが作ったシステムを真似すればいいのではないか」

ということを考えるようになりました。

 

このことについて考えたことを今回書いていってみます。

とある先輩社員のつくっているシステムを見た時

とあるきっかけから、今いる会社の先輩社員がつくっているシステムを見せてもらった時がありました。

 

その時驚愕しました。なぜなら非常に「本物っぽかった」からです。自分の言う「本物っぽい」というのは、例えばExcelやAccess、会計システムの勘定奉行や弥生会計といったメジャーなシステムに雰囲気が似ていたからです。

 

なんというか、Excelなのに自分の知っているExcelじゃないというか、ほとんどがフォームで出来ている感じでした。他にも「あぁ、こんな機能あるんだぁ」という風に、自分の今までの概念ではどうしても発想できないような機能もたくさんありました。

 

見せてもらったシステムは自分の努力の延長線上にはイメージできない感じで、その先輩社員は相当勉強と経験を積み重ねてきたんだろうなぁと思わされました。

 

一方で、この時に気づいたのは、自分は狭い世界しか知らなかった、ということです。

 

というのも、現在使っている環境と言語はExcelとExcelVBAなので、どうしても作るシステムにExcelのシートとかExcelの機能をイメージしてしまうというか、自分の中でいつのまにか制限を作ってしまっていた気がします。

 

別に「ExcelVBAでも勘定奉行みたいな会計システムが作れてしまうのであれば作ってしまってもいいんだ」という考えに至れたのは、自分の中での大きな発見でした。

 

この部分で重要なのは、この「本物っぽさ」です。

Excelの印刷設定画面を見た時

最近、ExcelVBAの勉強のために沢内晴彦さんの『入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術』を読んでいました。

 

以前にも少し書いたのですが、本書はExcelVBAの初心者向けではなく、ある程度勉強して実際に業務で使ってきた人向けの本になります。

 

本書を読んでいたとき、P208のページの以下のようなExcelの印刷の設定画面が載せられていました。

Excel印刷画面

全く同じ画像ではなく、自分のパソコンにあるExcelからPrintScreen(プリントスクリーン)を使って便宜的に使わせていただきました。

 

本書にも上記の画像のような印刷の設定画面が載っていて、真ん中から左側の「部数」の所に「印刷部数を指定。引数Copiesで指定」、その下のプリンターの部分が「使用するプリンタを指定。引数ActivePrinterで指定」という風に書かれています。

 

その部分を見たときは、「なるほど、印刷の設定画面の各項目にはこういったコードが対応しているんだ」ということを感心しながら読んでいたのですが、その時ふと思いました。

 

「あれ?システムってこういう風に作ればいいんじゃないか?」と。

 

先ほどの先輩社員の「本物っぽいシステム」とも繋がってくるのですが、「目の前にこんなに良い最強の見本があるのに何で真似しなかったんだろう」とその時自分は思いました。

 

冒頭部分で、システムを作ってきた経験が少ない人は完成した姿をイメージするのは難しいのではないか、といったことを書きました。

 

というのも、かくいう自分がまさにそうだったからです。今だからこそわかりますが、以前作ったシステムは機能が不完全で、エクセルのようなメジャーなシステムをお手本にすればもっと良いものを作れたのではないかと今更ながらに思います。

 

例えば、今回載せたExcelの印刷の設定画面には、印刷部数の他、

  • プリンタの選択
  • 対象のシートの選択
  • ページ指定
  • 部単位での指定
  • 印刷する紙の向きの指定(縦か横か)
  • 印刷する紙のサイズの指定(A4かA3かなど)
  • 余白の指定
  • 印刷範囲の拡大縮小の指定

などの機能があります。他にも気づいた点としては、

  • テキストボックス
  • スピンボタン
  • 押すとドロップダウンリストが表示されるボタン
  • リンク

などが使われていますし、印刷する紙の向きを縦方向から横方向にセットすると、それに連動してボタンに表示されている紙のアイコンも縦方向から横方向に変更されます。

 

開発者の視点になったからこそ気づけたと思うのですが、とにかく様々な工夫がされていますし、ユーザーにとって非常に使いやすい設計になっているのではないでしょうか。

 

自分が以前つくったシステムも見本となる物やUIをちゃんと見ていれば、もっと本格的な本物っぽいシステムが作れたかもしれません。

「まずは真似してみる」という考え方

見本になるシステムは別にExcelに限らず、WordやAccess、PowerPoint、Outlookなどのマイクロソフトが開発したものはもちろん、

 

普段多くの人が使っているGoogleの検索画面からネットサーフィンしたりする時の画面、銀行のATMからお金をおろす時の画面、電車の定期を購入する時の画面等々、見本になるシステム、UIは私たちの生活の中にたくさんあります。

 

こんなに良い見本があるのに、なぜ今までこの考えに至らなかったのか不思議なくらいです。やはり、知識、経験が少ない人が0から何かを作り上げるのは限界がある気がします。

 

もちろんシステムを作るときに「なぜ」を考えることも必要なのでしょうが、自分のようにシステム開発経験が少ない人は見本となるシステムを真似する所から入るのもありなんじゃないか、と今回思いました。

 

Excelとか勘定奉行などの入力画面とか設定画面に配置されているボタンとか入力箇所、機能はただなんとなくそこに配置されているわけではなく、プロ中のプロが作ったわけですから、なんらかの「合理的な理由」があるはずです。

 

だから真似していく内に、作っていく内に、前後のコードの文脈やできあがったシステム全体から「なぜそれがそこにあるのか」も、たぶん気づけていけるのではないでしょうか。

コメント