設計者の発言

業務システム開発とデータモデリングに関する語り

実装スキルと業務知識のバランスをはかる

 日経クロステックの連載「本音で議論、企業情報システムの勘所」で記事を書いた。システム開発者は業務知識を広く浅く学ばねばならない。そして、業務知識は実装技術と統合されなければいけない。それがシステム開発者の「高度専門性」であるという主張である。

第3回 本当は怖い「プログラミングの学び過ぎ」、実装オジサンを避ける必須知識はこれだ

第4回 顧客の要件が曖昧すぎる?プロは嘆く前に「専門性」を磨く  

 まず理解してほしいことは、ソフトウエア開発で食べている技術者が「あらゆるソフトウエア」を相手にしているわけではなく、ソフトウエアの適用分野を周到に限定しているという事実だ。それぞれの適用分野で顧客の信頼を得るためには、①適用分野そのものに関する知識(業務知識)と、②適用分野向けに最適化された開発スキルのセット、の2つをバランス良く身につける必要がある。

 ①と②のバランスを次図の4象限で説明しよう。誰でも「新人」から始めるわけだが、①に偏れば「知識オジサン」、②に偏れば「実装オジサン」として成熟してしまう。知識オジサンはまだコンサルあたりに鞍替えできるかもしれないが、実装オジサンは厳しいかもしれない。遅かれ早かれ、実装スキルだけでは若手にかなわなくなるからだ。ぜひとも技術者は新人時代から、両者のバランスがとれた「達人」を目標として意識してほしい。

20200501

 達人がたんに「①と②を両方持っている人」ではなく、「①と②とを統合している人」である点に注意しよう。①と②がバラバラに働くのではなく、それらが脳内でダイナミックに相互作用するところが肝心だ。これがユーザの深い知識(ドメイン知識)に触発されることで、システム開発における創造は起こる。たとえば、業務上のノウハウを持ちながらもデータ管理上の行き詰まりを感じている顧客に対して、異業種のモデリングパターンを提案することで革新的なシステム仕様を生み出せるようになる。

 革新的なシステム仕様を生み出せるようになる――それは大きな利点ではあるが、われわれにとって最も重要なのはそこではない。システム開発の仕事がめっぽう楽しくなるという事実だ。誰も想像していなかったシステムを顧客とあれこれと悩みながら生み出し、うまく機能したときの喜びは何にも代えがたい。一度知ったらやめられなくなる。

 ただし①と②の統合は一朝一夕で出来ることではないので、上掲記事でも強調したように実装過程の合理化に励んでほしい。書くべきコードの量を10分の1に減らすくらいの抜本的合理化をしないと、①を学ぶ時間を捻出できないからだ。案件毎にクラスとメソッドを丁寧にコーディングするようなやり方にこだわっていては、②の学びに人生が消費され尽くされてしまうだろう。