【エンジニアにとって必要なものとは何か?】
過去2回の投稿で、VBAの技術的なことについて記述してきたが、ちょっと趣向を変えて、
本記事では、SIerになって1年保守運用を経験してきて、エンジニアに必要な要素について触れていきたいと思う。
過去記事
1.継続力
まず何と言っても継続する力、これは必須条件だと思う。
何を継続するか?
- コードを書くこと
- わからないことをググること
- 動画学習等でInputすること
私の尊敬する野球解説者の野村克也さんこと、ノムさんは「まずは1日努力する」という言葉を用いている。
1日努力して、次の日もやってみる。それが1週間続き、1ヶ月が経つと、それは「努力」が「習慣」に変わる。
今日はやらなくていいか、と思う日ほどやることを継続する。
次第に、継続することが習慣となり、逆にやらないと気持ち悪く感じる。
そうやって自然と継続する力は身につくものと思っている。
イコール、数ヶ月、数年たったころに、初めはわからなかったことが、わかるようになっている。
これからプログラミングを学ぼうと思っている方には、習慣づけるということをぜひやってほしいと思う。ちなみになぜInputは動画学習かというと、その方が頭に入っていきやすいからだ。
初めのうちは調べても全くぴんと来ない。udemy等で、格安に学べる動画学習サイトがあるので、これを見て勉強した方が圧倒的に早い。
2.会話力(コミュニケーションスキル)
エンジニアなら誰もが口にする、コミュニケーションスキル。これは本当に大事だ。
元々サービス業的なことをやっていた私はこのコミュニケーションには自信があったのだが、ことエンジニアにとってのコミュニケーションとは、ただしゃべれれば良いものではない。
以下の要素が非常に重要になってくる。
- 意思疎通確認
- 理由を説明できる
意思疎通確認については、その言葉通りだが、お互いが間違いなく同じ認識でいること、これが大前提である。
「Aさんは1の認識だった。」
「Bさんは10の認識だった。」
これはあってはならない。
不明点は「これこれこういう動きをさせたら、DBに問い合わせを行い、存在すれば、数字をセットするが、存在しなかった場合はエラーメッセージの認識で合ってますか?」と、こう言った会話が必要になってくる。
曖昧な認識のまま話が終わってしまうと、後々面倒、「そんな仕様でOkにしたつもりはない」
など、仕様から見直し、再度開発に着手しなければいけないという無駄な工数を踏むことになりかねない。
そういう意味で、意思疎通確認とは非常に大事なのだ。
次に「理由を説明できる」だが、
私も未だに感覚で物事をやってしまいがちな部分があるので、それを常々反省しているのだが、
やったからには必ず理由があるはずだ。
- なぜ、そうしたのか?
- そうする必要があったのか?
先輩には常に問われます。
初めのころこそ、応えられないことが多かったが、最近はしっかり理由を説明できるようにはなってきた。
会話例①:
先輩「このマスタ、削除依頼があったけど、なんでこっちのマスタも消したの?」
私「このマスタは削除依頼のマスタと連動関係にあって、消しとかないとユーザーにとって不必要なメッセージが出ちゃうので消しました。」
会話例②:
クライアント「ここにこの数値を入力しても先へ進めないんだけどなんで?」
私「そこの入力値はDB上にある〇〇という承認データがあるかどうか問い合わせをしているのですが、DB上のデータを確認する限り、その入力値はまだ承認されていないので、申請⇒承認を行ってください。」
など、要求内容にはないが、不都合がある場合にはそれにも対応するという理由のため、作業したと説明ができればなんら問題はない、(もちろん他に影響がないことも想定して)
クライアント側からの質問に対しても、根拠を説明することで納得を得られる。
逆に何の根拠もなく説明すると納得を得られない。
こういう意味で会話力・コミュニケーションスキルというのは非常に重要であると思っている。
私は開発に携わったことがないので、開発に関する技術は劣っているかとは思うが、保守運用を経験することで、このコミュニケーションスキルというものが身についたと思っている。
【最後に】
ここまで、エンジニアにとっての必要な何か?を解説していたが、いかがだったでしょうか?
私は上記2つの要素はエンジニアにとって必要な何か、だと思っています。
もちろん技術力は必要だとは思うが、技術力だけではこれからのエンジニアは生き残れないのでは、とも思っている。(私の場合はまだまだ技術力が足らないので、これからも継続してプログラミングにいそしみたいと思っています…)