今回は、私が普段携わっている
科学者達のデータ解析に
関わる、エンジニアの
特殊性について
説明したいと思います。

 

世の中、金融にせよ
物販にせよ、教育にせよ
さまざまな分野で
IT 技術が導入されており、
そこで、たくさんのエンジニアが
活躍しています。

そして、それは
サイエンス (科学) の分野も
例外ではありません。

科学者達は、
日々、研究の為に
実験や調査を繰り返し、
そこから得られたデータを
解析して、研究成果を
出しているのです。

 

ところで、研究者達は
誰一人として、
他の人と同じ事をしていません。

他の人の後追いをしていたら、
それは「研究」とは
認められないからです。

 

サイエンスとは、
そういった「独自性」が求められる
分野でもありますので、
ソフトウェアの方も
それを反映したものを
求められる事が多々あります。

つまり、サイエンス分野に
携わる、ソフトウェア・エンジニアは
常に、スピード感を持って
科学者達のアイデアを
実現する事が求められているのです。

 

これまでに、
ソフトウェア開発には

計画を決めて、それの通りに進める
「計画型」の開発と
当初の計画にはこだわらず、
ユーザーにとっての価値を重視する
「アイデア型」の開発・・・・

計画型←→アイデア型

 

そして、技術者が
依頼主の指示通りに動く
「作業型」の開発と
技術者が積極的に
ソフトウェアについて提案する
「創造型」の開発があるという
説明をしました。

作業型←→創造型

 

ここで、サイエンスの分野に
携わるエンジニアは

「アイデア型」であり「創造型」の
開発をしなければなりません。

図表

 

それは、つまり

● 当初の計画にこだわって
開発するのではなく、
常に先端の研究をしている
科学者達のアイデアを実現するべく、
スピード感を持って対応する。

● 科学者の意図をくみ取って
それを、効果的に行う事が
できるツールを
ソフトウェアのプロとして
提案・実装する。

という事が求められます。

 

私は、もう16年・・・
この科学者向けの
ソフトウェアを作成していますが、
一度、こんな事がありました。

それは、ある大学と共同研究を
していたのですが、
研究者の方から、
ちょっとした要望を受けて、
それは、すぐに作れば 3日程で
できるものだったのですが、

当時の私の上司の方針で、
きちんと、要求分析をして
仕様書を書き、
リリース計画を立てて
作成、テストをし、
インストーラを作るというという
手順を踏まなくては
ならなくなりました。

私自身は、その上司よりも
実際に科学者達と近い現場で
働いた経験はあると思っていて、
それは駄目だという確信はあったので
反対はしたのですが、それが
認められる事はありませんでした。

結局その研究者の方に
その機能を提供できたのは
3カ月後で、提供した時には
研究も次の段階に入っていて

「今更、こんなもの
作られても・・・」

と、言われてしまった・・・

なんていう事もあります。

 

当然、市販のソフトや金融等の様に、
品質が最重要な分野では
この様なきちんと手順を踏むと
いうのは必要なステップです。

 

しかし、日々先端の研究をしている
科学者達と仕事をするエンジニアは、
この様に平気で時間をかけて
プロセスにこだわる開発を
やっている様では、はっきり言って

「無能」

の部類に入ります。

 

科学者達は、時間がかかって
品質の高いものが出てくるのを
望んでいるのか?

科学者達が
本当に望んでいるものは何か?

科学者達と真剣に接すれば
その答えも自ずと
明らかになってきますし、
どの様に進めていくべきか
方針も見えてきます。