プログラミングをしていて気づいたことシリーズ【その2】

プログラム

完全主観シリーズ第2弾です。

自己紹介
東証一部上場企業に勤務
主に工場で使う検査装置や、
自動化するためのソフトを日々開発中

【現場で使うためのソフト開発をするとは】

今回のテーマは、生産現場での使用を前提としたソフト開発についてです。

私自身、生産現場で実際に使用されているソフトを開発・改良・修正しています。

日々一つのソフトではなく、様々なソフトに携わっています。

プログラミングを始めたての方が陥りやすい間違い?や思い込みについて、

現役プログラマーの私が解説していきます。

そもそも何のためにプログラミングを学ぶのか?

まず最初に陥りやすい、プログラミングを学ぶ動機です。

何となく、これからの時代はデジタルの時代だからプログラミングを勉強しよう。

志はとても良いと思いますが、私の経験上それでは勉強が続きません。

どういうことなのか、というと

勉強することを目的とすると、はじめのころは良いのですが

そのうち飽きてやめるか、とりあえずできることにしてやめてしまいます。

周りに熱心にプログラミングを教えてくれる師匠のような人がいるなら、

モチベーションとしては保てるのですが、全員が全員そのような環境ではないでしょう。

では、どうしたら良いのか。

それはプログラミングを使った最終目標を決めるのです。

例えば、Pythonを使って普段面倒だと思っているExcelの事務作業を自動化してみる。

生産現場の、人が行っている工程の一部を自動化する。

などです。勉強する目的が勉強するためだと続きません。

最終目標に何らかの成果物があると人間頑張れるものです。

実は制限が無ければ意外と簡単。

基礎的なプログラミングの文法が理解できて、かつ目的達成のための

情報の検索ができるようになれば、できるだけのソフトは実は作成可能です。

ここで重要なのが、できるだけのソフトです。

できるだけとは、単純に言うと、例えば読み込むデータ数をあらかじめソースコード上で決定しておいたり、

通信するパラメータをソースコードに書いたりするソフトです。

汎用性の全くない、いわゆるかっこ悪いソフトです。

それでも所定の目的を達成できれば良い。ソースコードは誰にも見せない。というのであれば問題ないでしょう。

ただし、そんなに限定的な使い方で済むパターンはそこまで多くないです…

実際には制限や要望が多数存在する。

とりあえずの目標が自分で使うためのソフト作成であれば気付きづらいですが、

例えば人に使ってもらうソフトだったとすると、

当たり前ですが、作成者自身の考えが通用しないことがあります。

ソフトの流れとして、ここまで来たらこのボタンを押すはずだ。

よくある思い込みですね。

この思い込みは自分専用のソフトでは問題ないのですが、

人に使ってもらうソフトであれば大問題です。

現場では思い込みでソフトを作成していて、作業者に使ってもらって、

エラーが発生することもよくあります。

いかに自分が何もわからない作業者だったとしたら…という想像力が必要とされます。

現場で使えるソフトとは

今までの内容から何となく予想がつくと思いますが、

現場で使える=作業者が使いやすい

となります。

誤解を恐れずに言い換えるとするならば、

独りよがりなソフトは現場では使えません。

自分が使えるから作業者も使えるでしょ。というのは大きな間違いです。

さらに使いやすさに加えて、現場では常にデータ取りをして管理をしています。

ですから、ソフト上でどのデータを保存してどのデータをソフト上に表示させて、

検査するソフトであれば、OKorNGの判定結果はどのタイミングでどのように表示させるか。

それらの扱いも、使えるか使えないか大きな指標になります。

もちろん最初のころはこんなソフトが欲しいといわれて作成することが多く、

データも必要最低限の保存しておらず、

後からこのデータも保存してほしい。なんて要望が来るのは日常茶飯事です。

慣れてくるとこのデータも保存しておこう。という先回りもできるようになってきます。

目指すのは…

現場で使えるとはどういうことかここまでで説明してきましたが、

重要なのは、使用するのが自分ではない時には細やかな気配りや

データの使用用途などを考えて先回りで保存しておくことが重要です。

では、これらのことを効率的かつ完璧にこなすにはどうしたらよいのでしょうか?

それは現場の人に直接聞く。です。

プログラマーの中でも、工場系の設備のソフトをやっている人は

おそらくすぐにでも現場に投入したいソフトを要望されることが多く、

細かい仕様書などは省いて取り掛かることが多いですが、

細かい仕様書がないからこそ、聞き取りが必須となります。

プログラマーというと自分の世界に入ってソフトを作成する。

というイメージがあるかと思いますが、

生産現場に近ければ近いほどそんな仕事をしている人はいません。


書かれている仕様書はここまでだから、この項目は保存していません。

その項目を保存するなら新たに仕様書に追加して発行してください。


なんて言っていたら現場が混乱します。

ちなみに私はソフトの作成依頼が来るときは口頭かメールで、

仕様書なんてものは1度も受け取ったことがありません。(※良いか悪いかは別として)

ですから、現場に近い工場系プログラマーの目指すところは、

コミュニケーションが円滑に取れて、柔軟かつ迅速に対応できる人であると私は考えています。

ということで私の目指している理想像を紹介したところで、

本記事は終わりにします。

最後まで読んでくださったかた、ありがとうございます!!

コメント

タイトルとURLをコピーしました