comment 0

エンジニアとしての専門性

先程の記事「顧客と同じ意識に立つ」で書いた、

できるだけ、顧客と同じ意識に立つ。その上で、エンジニアとしての専門性を提供出来る。そういう仕事をしたいと思います。

という文章で、「エンジニアとしての専門性」という言葉を出したので、それって何だろうかと考えてみました。

いま僕のチームで進めている高齢者施設の設計作業を参考に話してみましょうか。今年の一月から始めて来年の九月に実施設計をまとめ上げる。全体で二十ヵ月ほどのプロジェクトです。

先程の記事は上流工程を意識していたのですが、エンジニアとしての専門性といって思い浮かんだのは、「MECEを作る」ということでした。
MECE。モレなくダブリなくというやつですが、上流工程の責務である「仕様を定義する」ことにおいて、仕様がMECEであることは何よりも重要なことです。

そこで作る仕様は、顧客が念頭に置いている要件はもちろんのこと、あらゆる例外ケースを網羅しなければなりません。例外ケースをすべて取り上げ、MECEにすれば、その仕様はそのままテスト仕様書にもなるのです。

顧客と同じ意識に立って、さらにエンジニアとしての視点を加えることで、はじめてMECEな仕様が出来る。これが上流工程におけるエンジニアの専門性です。

結局のところ、システムを作るというのは、何が起きても大丈夫な構造を論理的に作ることです。そのような構造を作り上げたあとで、次のステップとして、その構造をソフトウェアとして実装するのです。

仕様を定義する上流工程に対して、ソフトウェアを実装することを下流工程といいます。上流工程における専門性と、下流工程における専門性は、種類が違うのかどうか。

自然言語で定義したMECEな仕様を、より論理的な言語であるプログラミング言語で再定義してみる。上流工程で定義された仕様が本当にMECEなのか検証することが出来ます。こう考えれば、下流工程は上流工程の延長線上にあるものに過ぎず、専門性に違いはないことになります。

一方で、ソフトウェア・システムを実際に稼働させるにあたっては、様々な非機能要件を検討せねばならず、それをソフトウェアとして実現させる手段も必要です。まさに「技術」的な部分です。こう考えれば、上流工程と下流工程の専門性は異なるということになります。

まぁ、そうは言っても、やはり上流工程と下流工程の専門性は違うと思います。ただ、業務アプリケーションのプログラマとかだったら、比較的上流に分類した方が良いかもしれない。上流と下流というより、アプリケーションとインフラくらいの方が素直というか。

今後クラウドが進展していくとすると、クラウドの外にいる人とクラウドの中にいる人で、アプリケーションとインフラといった違いが出てきて、きれいに分業出来たりするのではないかと。

そうやって分けて考えれば、明らかに私はインフラの方は苦手なわけです。だから、業務をしっかり理解できて、それをMECEに組み上げられる人にはなりたいと思います。

Filed under: キャリア・教育

About the Author

Posted by

ITエンジニア/経済産業省推進資格ITコーディネータ 株式会社ビビンコ代表取締役 AI・IoTに強いITコーディネータとして活動していたところ、ビジネスコンテスト「北九州でIoT」での入選をきっかけに、株式会社ビビンコを創業。IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行う。 日本全国でセミナー・研修講師としての登壇も多数。 近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。

コメントを残す