なにをやっているのか
1.悩み事があるお客様(エンドユーザ様の場合もあるし、ベンダー様の場合もある)からの依頼により、システムを提案したり、開発して提供したり、協力して開発を行う事になります。
特に、ベンダー様や協業他社からの依頼の場合は、短期でのSESや持ち帰り仕事となる場合もあります。
2.10年ほど前から継続的に弊社が開発している某自動車会社様の組立生産管理・品質管理系のシステムの保守/機能拡張/サポートを実施。
3.運送会社様のトラックや幼稚園・学校等の送迎バスの位置情報をクラウドで管理するシステムを開発・運用していて、お客様の要望等をシステムに反映し、カスタマイズやバージョンアップを行う。
と言う事を行っています。
そのためと言う分けではないですが、金融・証券系や保険系のシステムはほとんどやってません。
1の項目に関しては、開発まで行かず、提案レベルで終わってしまう事も結構ありますが、エンドユーザとの会話は結構勉強になったり、知見を広げるのに役に立ちます。
2の項目は、愛知県が主に作業拠点となります。東京から長期で行く場合は、会社でアパート代や手当を支給してます。まあ、それ目当てに行きたいと言う人材もいますが...。
開発・改造ボリュームが多いときは、東京在住メンバーのスケジュールを調整して、東京で開発もします。
とにかく、10年と長い年月をかけて開発しているシステムで、全世界の工場で利用されているので、生産の中心的なシステムとなります。直ぐには理解できないでしょうが、まだまだ途中。組立以外の工程への横展開もありますので、まだまだ続きそうですね。
3の項目は、自社のクラウドサービスになります。
できるだけお客様の意見を伺って、標準機能として反映するのか、オプションとするのかなど、自社内で検討会を開いて、すったもんだしながら仕様を検討してサービスに追加したりします。機能を追加すると、マニュアル類も直しが必要なので、結構手間が掛かります。マニュアルレスで使えるシステムは理想ですね。
どれの担当になるかは、経験や能力や希望により判断します。
まあ、1つにとらわれず、ますは何でもやってみて欲しいと思います。
なぜやるのか
○○のシステムを作っていると言うのは分かっているが、自分が今作っているのは何をやるためのものなのか、どんな人が使うのか等、ユーザの顔が分からないで、ただ黙々と仕様通りにモノを作らされている事やプログラマが多いと思っています。
当然、巨大なシステムになれば、そういう開発者も必要になっていしまうのかもしれませんが、
弊社の場合は、できるだけ全員がユーザに近い部分の仕事をする事で、使う人の顔が分かるシステムの開発を手掛けたい。
使う人の顔を思い浮かべながら、入力している時、表示している時、どうだったら便利だろう、分かりやすいだろうと言う事を考え、提案したり、仕様に落とし込んだり、それをプログラミングします。場合により、開発言語やDBの種類も自分たちでそのシステムに最適だと思うものを選ぶ事もあります。
出来上がった時の達成感もそうですが、利用して満足しているユーザを見る事で、その達成感を何度も味わえます。
どうやっているのか
会社全体でも10名程度の極小の会社です。でも、各メンバーはみな優秀です。ですので、よく意見の衝突もあります。
ただ、それは「良いものを提供したい」と言う気持ちの表れでもあります。プログラミング(システム)目線で考える事も必要だし、ユーザ目線で見る事も必要。いつも先輩技術者が正しいとは限らない。だから、見当外れかもしれないと思っても、気になるなら意見を言うことが重要です。
また、経験を積むだけでなく、日頃新しい物に目を向け、これはユーザに提案できるかもしれないと、いつもアンテナを立てておく事が必要です。