1. はじめに
私はコンピューター系の専門学校を卒業して、プログラムに関わる仕事がしたくてソフテックに1994年4月に入社しています。
入社して31年目に突入しましたが、入社前、入社時〜現在までの出来事や、現在の仕事の内容や毎日の仕事のスケジュールやトラブル時の考え方などを整理してみました。
人生100年と考えると、すでに折り返し地点を過ぎたところ。今までは自分の仕事をまずはキッチリとやるという事を最優先としてきましたが、
最近は次の世代へうまく仕事を引き継ぎや補助、一人前に育てていく手伝いができれば・・・という事も私の中では優先度が上がってきました。
ソフトウェア会社の人たちはどんな仕事をしているのか?とかなぜソフテックに入社したんだろうとか、
やっぱりソフトウェア開発の現場は大変なのかな、とか会社の外に居る人にとっては分かりにくい物だと思います。
2. 入社の経緯
なぜソフテックを選んだのか?というのは、下記4点が理由でした。
・単純にソフトウェア開発関連の仕事をしたかった
・その当時の専門学校の先生方の評判(良いところだけど、けっこう厳しいよと聞いていました)
・会社(八戸事業所)が自宅から近い
・給与が良かった
ソフトウェア開発といっても、ゲーム、市販ソフトウェアとか色々あると思いますが、ソフテックのメインとなっている「工業用ソフトウェア開発がしたいんだ」等の具体的な目標はありませんでした。
入社試験・面接を受た後も、ソフテックでは何をやっているのか?がその当時は、市販ソフトではない別な系統の仕事かぁ、
ぐらいの理解度でハッキリとした目的を持てないまま「ただプログラミングがしたい」という動機をもとに、ソフテックに入社しました。
そして入社して2か月後の6月の休日。その日は天気がよく、海岸線沿いをバイクで気持ちよく走っていたのですが、自損事故を起こしてしまい、約1ヶ月入院する羽目になったものいい思い出です。。
3. 入社前の不安、入社後は?
入社後、研修を受けながら、私はどこまで会社の戦力になれるのか?人と話すのが苦手だけど、なんとかなるのか?など数々の不安があったことを覚えています。
そんな状態でソフトウェア開発のイロハも分からない中、一般的なWindowsの開発言語のいくつかを研修で学ばせて頂きながら、
新入社員同士でチームを組んで、取り組むテーマを決めて、発表会を経て実践投入という形で仕事を覚えていきました。
その当時は同期の社員が10人以上いて、チームを組んで研修に取り組んでいたので、合宿的な雰囲気もあり、楽しくやっていましたが入社後半年以上は会社の売上に貢献できない研修期間がありました。
しかし楽しくやっているのもつかの間の出来事でした。これらの費用は全部先輩社員方の仕事でまかなってもらっている、という事実があり、
うまく仕事できてないなぁ。。。と焦っていた時期が1〜2年ほどあったと記憶しています。
それでも初めて1人で最初から最後まで全部やり遂げた時の達成感と充実感は特別なものでした。
それを経験したあとは、そういった不安や焦りは減ったと実感しています。
4. 仕事の受注から〜売上までの流れについて
弊社では基本的にWebや電話、既存顧客からのお問い合わせをスタートとして、下記のような流れで仕事の受注〜売上までを行っています。
新人の内は@〜Cまでは先輩社員が対応して、D〜Jを対応することが多いです。
ですが経験を重ねていくと@〜Jの全てを一人で対応することになります。
弊社には営業部門が無いので、一人ひとりの社員が技術者であり、見積〜売上まですべての事を対応しています。
また受注してどのぐらい時間を使ったから赤字、黒字とか、会社の売上高や経常利益なども
B/S(Balance Sheetの略、貸借対照表のこと)、P/L(Profit and Loss statementの略、損益計算書)で1円単位で全てオープンにされています。
オープンゆえに、今回はうまくいった。ダメだったが自己判断できるのですが、時には大成功、大失敗と利益だけみて一喜一憂したりしている時期もありましたが、
会社として意味ある赤字、未来への投資なども考えていくと、単に金額だけで判断もできず、トータルでどうだったかなぁ?と考えるようになってきました。
また仕事をするうえで出張は切り離すことができない、重要な作業の一つです。お客様との打合せや調査、成果物の動作確認を現地で行うなどといった場面
「A、E、H、I」は出張することになります。
お客様と対面で打合せして要求事項の明確化や、設計内容の説明、あとは成果物を確認頂く立ち合いと、現地での最終的な動作確認などです。
日本全国津々浦々、出張して仕事の合間に美味しい食べ物や魅力的な地域が見つかるかもしれません。
一つの仕事は短納期の小規模開発は1人で1〜2週間程度、大規模開発の場合は2〜3人でチームを組んで1年〜2年といった形で実施する場合もあり、ケースバイケースです。

図1. 受注から売上までの流れ
5. 日々の仕事の時間割りについて
人によって異なりますが、私の普段の仕事の進め方を2つ(平日と出張時)書いてみたいと思います。
フレックスタイム制(コアタイム10〜15時)ですので、私はちょっと遅めに出て、その分遅く帰るというのが自分のペースにあっています。
平日
私は9時前後に出社し、@の時間帯はその日のやるべきことの整理と、客先からの問い合わせ及び優先度の高い仕事を片付けています。
Aではその時メインにしている仕事の設計や製作などじっくり腰を据えて考えながら、資料作成やプログラミングをしている事が多いのですが、
割り込みも多くある時間帯なので、集中したいのに!と思いながら仕事をしていることもあります。
Bでは少々疲れが出てくる時間帯になりますので、あまり頭を使わなくてできる単純作業を行ったり、時には単純操作をアプリを使って自動化して、
繰り返し操作をまかせて様子を見ていることもあったりします。
そして夜にはその日の出来高を見て、問題なく進んだから帰ろうか、、いやもう少しやっておこう、など自分が決めたスケジュールに収まりそうかを基準に帰る時間を調整しています。
出張時
私は八戸に勤務していますので、ほとんどのお客様が東京周辺となっており長距離移動がつきものです。作業開始時間に合わせて移動を開始して、
移動時間となるCではその日に行う事の整理や、資料のまとめなどを新幹線内で行ったり、社内への報告を書いたりして過ごしています。
出張時の昼食は、事前に買っておいたものを新幹線内で食べたり、目的地の駅周辺で取ったりしていますが、あまり食べ過ぎると午後がつらくなるので、軽く済ませる事が多いです。
Dでは事前に客先に提出した作業内容を元に、調査や動作確認などを行い18時ごろにはその日の内容を報告して現場を引き上げ(ホテルもしくは帰宅)となります。
出張も短期、長期とあったりしますが、基本的にはお客様の最寄り駅のホテルに宿泊して、レンタカーやタクシーで移動するというのが基本です。

図2. 仕事の時間割り
6. 仕事上の問題とその解決について
これまでに様々なプログラミング言語、システム開発に必要な機材の知識、関連するアプリケーションなどを組み合わせ、最適なシステムを作るために試行錯誤してきました。
まったく新しい取り組みや、得体のしれない機器からデータを取得したい、、などといった要求があったり、仕事の途中で問題にぶち当たってしまう事もあります。
問題といっても様々ありますが、ここでは「通信」にフォーカスを当てて書いてみたいと思います。
最近の仕事にも関係しますが、「通信」については一筋縄ではいかない事が多いと実感しています。
人と人の通信と考えると「言葉や文字」になるので聞こえたり、目に見えたりしますが、機器間の通信はケーブルや無線を使っていて、目に見えないし、
通信データは人がしゃべる言葉とは違って、数値や文字列で暗号とも思える意味不明な内容で、かつ高速にやりとりされているので厄介この上ないです。
全ての通信は「1種類」にしてほしいと何度願った事でしょうか。
そういった見えない、分かりにくい、通信の方法・種類が多い・・という敷居が高いと感じられる通信に精通していて調査から実施できる会社は少ないと感じていますが、
ソフテックにはこれら通信のエキスパートが居ます。
工場など現場で稼働しているある装置と通信してデータを取得したい、となった場合弊社では一般的な方法として、下記のように調査を進めていき、
最終的に異常ケースを含んだ通信確認までを行っています。
@対象機器の調査
A調査により判明した通信インターフェースの確認
Bプロトコルや通信設定の確認
C実機の調査
D通信の実装とテスト
E現場での実機通信確認
@〜Eまでを対応して、やっと最終的な確認となりますが、ここからが本番です。何度繰り返しても初めての装置との通信確認は、大丈夫かな、と緊張し想定外の事があるとドキドキもします。
それゆえに事前調査や検証を念入りに行うのですが、ここまでやっても想定外の事が発生することがあります。たとえば、下記のような問題は現地ではありえます。
・ハード的な結線不良
・客先ネットワーク内の装置(ファイアウォール、インテリジェントスイッチングHUBなど)の設定不足による通信異常
・通信距離による信号減衰による問題
・通信経路の終端抵抗の有無(CC-Linkなど)
・通信設定の不一致
・取得できるデータの不一致(アドレス間違い、小数桁の扱いの相違など)
・マニュアル記載事項の間違い
・その他のセキュリティ(ログインユーザー、パスワード、権限)による問題
これらをクリアして「やっと通信できた」と言って手放しで安心できないのが通信の怖いところです。
短時間では問題なくても、長時間だと安定しない場合や、通信中に装置電源が切れたり、通信ケーブルが途中で抜けた時の通信異常発生から通信が正常化する過程も考慮する必要があります。
これらの通信相手と問題なく通信できるか?は相手があって初めて成立する事であり、社内では100%の確認を行える事はありません。
それゆえに事前調査と検証、プログラム実装時のエラー処理など、細かい配慮の積み重ねが、通信品質を大きく左右することになります。
そのため、現地環境を使った通信確認というのは貴重な機会です。
通信環境(通信経路やケーブルなど)も社内とは異なりますし、相手の通信設定も想定していたものとは違うかもしれません。
またお客様の機材や対応して頂く時間などのリソースを使わせて頂く場でもありますので段取りや準備に手間暇をかけたぶん、
お客様が期待している「通信できました、問題ありません!」という結果が得られる確率があがります。
それでも実機での通信テストで「問題無し」と判断して納めたあとに、まれに通信異常が発生することがあります。
再現性が低い通信異常については、通信異常が発生した時の状況や時間帯、基本的なハードウェア面の物理的な接続の確認なども含めて再確認して、
それでも解決できない時にはラインモニタなどを接続して異常時にどのようなデータが流れているのか、そもそもまったく通信できていないのか?などを順番に絞り込みしていき、問題解決を図ります。
新しいシステムに関する問題解決方法について
ここからは未経験の事に対して問題が発生したとき、問題が発生しないようにするために考えていることを書いてみます。
私の場合は、「過去の経験ベースでどうするか?」を考える事が多いのですが、
まったく新しい技術やシステムを使った案件の場合は、経験ベースでどうするか?を当てはめる事が難しいことがあります。
そういったときには社内の経験者や、同じグループ内で相談しながら、場合によってはセミナーで情報を仕入れたりします。
あとは基本的なところでは書籍、機器やアプリケーションのマニュアル、Webなどから情報を得たりしています。
大規模案件ではいくつかのシステムを組み合わせて運用することもありますので、それらのシステム連携のために必要な情報を集めていきますが、
「これなら問題ない」と確信を得るための最後の一押しは実機調査や検証、あとは上司や関係者とのレビューが一番有効だと感じます。
自分が考えていること、相手が考えていること、仕様上できること、できないことを明確にしてすり合わせしていく過程がそういった不安を無くための特効薬となりますが、
簡単にこの薬が得られない時もあるのが厄介ですが、そこは頑張っています。
7. まとめ
入社前、入社後、ソフテックの仕事の流れ、私の時間の使い方やトラブルに遭遇したときの対処や考えている事などを思うがままに書き記してみました。
トラブルについては、社内に報告として上げたあと調査することになりますので、ときおりグループ内の社員やまったく関係無い社員から、
解決の糸口となる情報が寄せられることもあり最近は1人であれこれと悩む時間は減ってきているように感じます。
ちょっとした疑問はChatGPTなどのAIに聞いて自己解決するという、これまでとは違った切り口からの問題解決方法が出てきていて、
新時代への切り替わりを感じています。数年前までのAIなんて使い物にならない・・・と思っていたのが、ChatGPTで一気に壁をぶち破ったあとの技術革新のスピードは凄まじいです。
社内のデータベースに蓄積されているそういった情報をすべてAIに読み込ませ、知識ベースとして改良を進めていくと、便利な自社用AIが誕生して、
「面倒な定型作業はやっておいて」とお願できるようになる未来を期待しています。
ただ地道な泥臭い調査や検証については、AIでの補助や自動化は、まだ先の未来のように感じますし、時間効率も上げにくい難しい部類の仕事だと実感しています。
また、プログラムは1人で作業する時間も多いのですが、仕事をスムーズに進めるためには関係者とのコミュニケーションがかかせません。。。
とここまで書いて、入社前に思い描いていたプログラマーという仕事は
・社内で、パソコンの前でずーっと開発している
・人との関わり合いが少ない仕事
だと思っていたことを思い出しました。
が、、、そんな事はありません。過去の自分に「目に見えないプログラム開発だからこそ、人とのコミュニケーションが大事なんだよ」と伝えたいです。
お客様が困っている事、やりたい事をヒアリングしたり、ときには提案・開発過程での問題・トラブル状況の説明、成果物の説明会などコミュニケーションスキルが求められます。
自分はその辺を、勘違いして入社したのですが、だいぶ鍛えられました。
ちょっとしたことで認識ずれなどが出ないように言葉を選んだり、Web会議などでは顔が見えないので理解しているかな?と考えながら説明をしています。
社内でも同じく文字による報告や会話でも、言葉のチョイスに注意していますが、なかなか自分の癖を払拭できないところもあったりと難しい部分もあります。
自分自身まだ未熟なところもありますが、今後も私と一緒に仕事をする人たちと、共に成長できるような仕事をやっていきたいと考えています。
(S.N.)