ノンプログラミングで業務システムを提供できまいか?
今、Node-Redという製品というかなんというかを自習してます。
どのようなものかというと、プログラミングの一種で、Scrachというものをしたことがある方(大人より子供の方が多いかも)ならご存じでしょうが、各機能がブロックのように用意されていて、それを組み合わせて動かせるものです。
「ブロックのように組み合わせる?」と言われると、「プログラミングとは違うじゃないか?」と思われてしまいますが、一言ずつ入力する手間を省いて、ある決まった動きが用意された各ブロックを組み合わせて作るものであり、単に組み合わせるのではなく、何かをするために手順立てて組み上げる点では、プログラミングと同じ効果を生むため、手法が異なるプログラミングと言えば理解しやすいかと思います。
ですので、従来の手法とは異なるため、ノンプログラミングと言われている分類であり、アメリカあたりではこの動きがメジャー化しつつあるそうで、日本ではまだまだなのだそうですが、ことIotにおいては、私はそうでもないだろうと感じてます。
多くのコンピュータ系エンジニアは、従来であれば業務系、今であればWeb系の開発に従事されているのだと思います。制御系、組み込み系のエンジニアは、全体からすれば母数が少ない為、IoT関係もそうですが、このノンプログラミングの分野においても急速な話題としての動きはでてきていないのかもしれません。
ですが、既に機能的に業務系やWeb系のシステムが作れる製品は存在してます。
入力するためのTextBoxや選択するためのプルダウンメニューといった部品は基より、必要最低限であろう項目をもった、例えば顧客管理機能といったものや受発注機能などが最初からあり、あとは自由にカスタマイズしてくれというものです。
開発の難易度の差や、操作の良し悪しはあるでしょうが、それら最低限の業務機能いくつかをもったERPパッケージという製品群が、各社から昔から存在してますし、パーツ組み合わせであればKintoneやGoogleのサービスがあったりします。
しかし、Node-Redの場合、そのようなものはありません。
もっと最小限の動きを持ったパーツ(ブロック)があるだけです。
業務としての機能がなく、何かをする最長単位の機能しかありません。
例えば、表示する、計算する、音を鳴らすなどです。
私自身、まだ取り組んだばかりなので、果たしてこれが実用として、どう使えるのかさっぱりなため、市販本でフンフンと感じながらページをめくっているだけです。
「ブロックを用いて、ロジックを組む」事になります。
ブロックの中に、数行のプログラミングコードが収まっているといった方が、ご存じない方は認識し易いのでしゃないでしょうか?。
業務系製品の多くは、「画面がまずありき」です。
ですので、画面単位に機能わけし、画面という目に見える箇所に入力エリアや選択エリアの部品をぺたぺた貼り付け整えて、動きとなる内部を作りこむ(つまりプログラミング)という流れになります。
対して、制御系や組み込み系の場合、画面があるものはあまりないと言っても過言ではないと思います。
画面の事は、I/O(インプット/アウトプット)なんて言われます。
インプットアウトプットは、何も画面のみではなく、スイッチも相当します。
私自身は大規模制御のシステムに従事したことがあり、インプットは、専用の机にあるボタンを押すと、系統版と言われる電光掲示板のようなすごくおおきな装置に、アウトプットとして結果がランプで反映されたりします。
皆さんが目にするものと言えば、駅にある電車の電光掲示板や高速道路の込み具合なんかは、直接都度オペレータが入力する場合もあるでしょうが、時刻表データや現状の込み具合を自動監視して、表示させているケースにもなっているかと思います。
つまり、何らかの機械製品をキーとして、別の機械製品に仕事を命じる事になります。
業務系製品の場合は、まま用意されているわけですが、制御や組み込みの場合、ハードが主となるケースが多いかと思います。
Node-RedでもWeb関係での作りこみはできるようですが、それとて、ごくごく普通に一からロジックを組むイメージですので、画面がどうのというのは、また別の段階の話になるでしょう。
もしかすると、製品開発というより、コンピュータ学習に近い製品なのかもしれませんが、天下のIBMが開発したものだそうですので、この点、未熟すぎる私の話は、導入的な段階での閑話とさせてください。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERPパッケージを導入しても、日本という国は、ほぼ大掛かりなカスタマイズを要求してきます。
そのため、ERPの良いところを得て導入しておらず、ただでさえ高い製品購入代に加えて、更に高く発生するカスタマイズ代のわりに、使いこなせてないというのが現状かと思われます。
対して、ある程度用意されている簡易版に関しては、ほぼ目を向けないばかりか、少し手を加えようとすると、社内にエンジニアがいないため、少額であるにもかかわらず、外部に依頼する有様でもある企業が少なからず存在するのではないでしょうか?。
そこで本題となりますが、ふと思ったわけで、このNode-Redというものは、部品はないけど、仕組みがブロック化されていることから、これをうまく、業務系システム開発の製品として利用できないものか?と。
ただ、部品をペタペタ貼り付けるだけでは、既存製品と同じです。
Node-Redのいいところは、最小機能がブロック化されているという点。
但し、ロジック能力がないと作れない点は、素人では扱いが無理になるでしょう。
というわけで、一般的に企業で使われるよう、『Node-Red含めたノンプログラミングで業務系システムが作れはしないものかと思った』次第です。
ですが、受注機能を作るにしても、やっぱり画面が最初に思い浮かぶだけに、ロジックからの提供という考えは難しいですね。
ですが、操作感というのは必ずついてきます。
開発者(開発企業)が、「これでいい」「これがいい」と思って提供しても、依頼側は「下の部分は、上にして」なんていう要望がでてもきます。
この辺は、デザイン力にも絡んできますが、単なるデザインではなく、相手の業務を理解した上での配置になります。
そうなると、折角パッケージとして先行投資して売り出しているのに、依頼主事に改良(カスタマイズ)しなくてはなりません。
これが、画面上の配置入替だけで済むならいいのですが、往々にしてそうはならず、内部のプログラムも書き換える必要がでてきて、折角の完成品を崩してバグを内包させる要因にもなってしまうのです。
誕生日ケーキでもウエディングケーキでもいいです。
一応既製品としてあったとして、あるいは作ったはいいが、「私は、このチョコ板のメッセージが嫌」とか「周りのデコレートクリームの形がちょっと」なんて要望でたら、折角作ったその部分だけ変えても、周りにかかっていたクリームまで作り直しになったりしませんか?。
「そこの部分だけの修正で終わらない」というパターンもあるわけです。
こういう開発者泣かせの要望が、結構後を絶ちません。
だったら、画面は依頼主が作るようにした方がいいのです。
そのため、KintoneやGoogleフォームのようなものは結構私は好きなコンセプトです。
但し、今後は無料化の方向が強い製品の方が好まれるに加えて、何かの機器と組み合わせてという動きが強くもなってくると思うのです。
そうなった場合、既存の業務系システムやこれらの製品はカバーしてません。
何か使えないかなあと業務系に移ってからは、そう考える日が多いです。