【長期フィードバック分析講座について】P.F.ドラッカーが推奨した知識社会を生きる私たちに必須の自己分析を行う堅実で、実践的な方法を学び、実践するシリーズです
今回は、「強み」の理解を定着させるために、具体的な例を挙げて、それを分析します。強みの定義方法を知れば、フィードバック分析を効果的に行えるようになります。
では、さっそく始めます。
復習:強みとは何か?
前回の講座で、「強み」は、以下のように決まると説明しました。
貢献する相手を選び
貢献となる様々な成果から、ターゲットする成果を選び
その成果を卓越したものとなる、技能・知識・状況・仕事の仕方をデザインする
全てが完璧な人間はいません。必ず、得て不得手があります。また、能力も細かくみれば、様々なものに分けられます。それら全てが秀でている人間はおらず、多様です。
様々な構成要素と、それが強みとなり、卓越した成果となる組み合わせを「デザイン」することが、強みを作ることとなります。
逆に、特定の能力だけにフォーカスして、劣後順位をつけた結果、トップクラスにあるものを「強み」とは言いません。強みを構成する1要素にはなりますが、それだけで強みとはならないことが、ポイントです。
プログラミング能力を例に考えてみよう
このことを、私のプログラミング能力を例に、考察してみましょう。
私のプログラミング能力は、現役エンジニアと比較すれば、足元にも及びません。
なぜなら、現役エンジニア(プログラマー)は、日々の仕事で、毎日のようにコードを書き、多くのシステムや、アプリを構築しています。仕事を通じて技能、知識は溜まり続けるでしょう。仕事の合間に、最新のプログラミングのトレンドや、道具(ライブラリ)をチェックし、プログラミング漬けな日々を過ごしているでしょう。
これに対して、私は、「たまに、自分のためにだけ、プログラムを書く」程度です。現役プログラマに比べたら、その技能、知識量は、圧倒的に低いです。しかし、プログラミングは、私の「強み」になります。
トップクラスではないにも関わらず、「強み」となるのは、なぜでしょうか?
私のプログラミングにおける強み
私のプログラミング能力の源泉、構成要素は、今から20年前に得たものです。
大学で研究をしていた時、C言語、C++、Visual Basic、Java、PHP、Javascript、Python など、多種類のプログラミング言語を一通り使いました。ここに挙げていない、Tcl/Tk や、シェルスクリプト というもの含めれば、まだ増えます。
その結果、
どのプログラミング言語でも、比較的すぐに習得できる
構造化プログラミング、オブジェクト指向、デザインパターン、ライブラリ・API利用などの概念を持っている
情報検索と、ドキュメントを読むのが得意
これらの能力は、大学で研究しているときに、大きな強みになりました。
大学という状況での「強み」デザイン
私は、プログラミングという世界が面白く感じ、当時、最先端だったオブジェクト指向、その先のデザインパターンを学びました。
プログラミングの経験がない人には、イメージが湧きづらいかも知れませんが、優れたプログラマーほど、コード(プログラム)を書きません。なるべく、先人が作って、テストして、信頼できるコードの集まり(これをライブラリと言います)を活用します。
また、自分でライブラリを構築し、これを何度も、何度も使いながら、改良を続け、バグを減らし、洗練させていきます。
このような姿勢でプログラミングをすると、時間と共に、「生産性が圧倒的に上がり」ます。
私は、このような取り組み方を知り「自分専用の研究のためのライブラリ」を構築しながら、研究をしていました。
私が作るライブラリは、私のために作っているので、一般市場に売り出すほどのクオリティや、汎用性(応用の幅が広いこと)は、ありません。しかし、個人が研究する上では、同僚や、先輩や、同じ分野の研究者を、圧倒するほどのスピードで、研究のためのプログラムを構築できました。
多くの研究者が、1ヶ月半ぐらいかかるようなものを、私の場合、たったの半日で作れた上に、並列処理までできるようなライブラリを作っていました。
現役のエンジニアに比べれば、大したことがないプログラミング経験値、知識量ではありますが、ライブラリを作れる知識と研究分野という組み合わせにによって、プログラミングは「強み」になりました。
この強みのおかげで、たくさんの実験が行えて、多種多様な角度から、研究を行うことができました。
まとめると、大学で研究者をしていた頃の強みの構成要素は、
プログラミング能力(ライブラリを構築できる程度の知識)
特定の研究分野
という2つの組み合わせによって、生まれていました。
ソフトウェア会社における、私の強み
私は、人工知能の研究によって、情報学という分野で博士号を取得しました。その後、研究員をしながら、起業準備を行い、大学を辞め、ソフトウェア開発をする会社を立ち上げました。
従業員は、私を入れて、たったの4人です。しかも4人の構成は、プログラマー3人、サポート1人です。営業はいません。しかし、ピークの時は、売上が年間8,000万円ほどになりました。
このような成果を出すのに、私のプログラミング能力は、大きな貢献を果たしました。このことについて、詳しく説明します。
プログラミング能力を細かく見て、使い所を見極める
ソフトウェア開発となると、膨大なコードを書く必要があります。細かいところにも、手を突っ込んで、あれこれ調整が必要です。しかし、私は、この手の細かい調整を繰り返す作業は、弱みでした。発狂しそうになるタイプです。
その代わり、私は「機能のデザイン」が得意でした。
具体的には、Webマーケティングという知識と、その実行のためには、どんな機能が必要か、どのような機能があれば、インパクトを出せるか、思い切って削除してしまった方が良い機能はなにか?を考えることに強みがありました。
この思考パターンは、研究で行なっていたものと同じでした。
そこで、私は「ソフトウェアの設計」を担当することにしました。それと共に、ライブラリを選定する仕事も担当しました。私は、ものの構造や、仕組みを理解するのが得意でした。おそらく、さまざまなプログラミング言語を使ってきた経験によるのでしょう。
私は設計と道具選定を仕事とし、それをプログラマー2人に伝えて、彼らが膨大なコードを書くという役割分担をしました。
つまり、私の成果・貢献は「顧客にインパクトをもたらす機能を選定、デザイン」することと、それを作るためのライブラリ(道具)を選ぶこととしました。二人のプログラマーが、「作ることだけに集中できる」ようにすることを、私の仕事としました。
選定が終わって、デザイン設計が終われば、その知識を使って、私は「マーケティング」を担当しました。広告を学び、ランディングページを作成し、無料体験版の申し込みをした人に、自動でニュースレターを20通ほど送り、顧客教育する仕組みを構築しました。
この仕組みは、数年間機能し続け、数億円の売り上げをもたらしてくれました。
この当時、膨大なコードを書いてくれる「二人のプログラマーに貢献すること」を成果とするようにプログラミング能力の一部を見極め、それを磨き上げることによって、大きな見返り(報酬)に変換することができました。
現在においても、プログラミングが強みにできる理由
私は、ソフトウェア企業を譲渡し、toiee Lab という、人の学習を研究する研究所を立ち上げました。その結果、プログラミングをする機会は、完全になくなりました。
それでも、プログラミングが強みになる可能性を持っています。
現在、AIが登場し、AIに依頼することで、プログラムを書いてもらえます。ただし、AIに、適切な指示や、適切な情報を与えないと、使えるプログラムはできません。またAIが書いたコードを読んで、何をやっているか?を把握できないと、とんでもないプログラムを実行してしまう可能性があります。
ところが、私の場合、さまざまなプログラミング言語を使った経験によって、AIが書いたプログラムが、だいたい何をやっているか、すぐに理解できます。不明なところは、AIに質問することで、解決できます。
また、ライブラリを使うことなども理解しているので、AIに「このライブラリを使って作って。サンプルコードはこれ」という具合に指示する事で、適切なコードを得やすくなっています。
つまり、「1つ上のプログラミングの知識」+「AIの使い方の知識」によって、プログラミング能力を大幅に底上げできています。そして、この能力を活かすことで、以下のようなことができます。
例えば、1時間半のウェビナーを開催し、録画したとします。この録画から、以下のようなものを作りたいとします。
見やすくするために、15分程度に分割する
それぞれの動画のタイトル、概要を用意する
ウェビナーの文字起こしを作る(文脈から判断して、間違いを修正する。読みやすくするために、見出しや、箇条書きなどを使う)
オーディオファイルも作成し、オーディオブック化する
ウェビナーの内容を参考に、ワークシートを作る
自動のフォロアップメールを10通作る
これらを自分で行うとなれば、非常に大変ですし、時間もかかります。スタッフを雇うか、外部に依頼するとなれば、コストもかかります。結果、諦めることになります。
ところが、「1つ上のプログラミングの知識」+「AI」+「ライブラリ選定能力」があれば、上記を全部、自動化することができます。完璧なものではないかもしれませんが、十分なものを作れます。しかも単独で。
プログラミングができると、ボタン1つで、あとは全部やっとてもらうことが実現できます。具体的には、以下のような順で動くプログラムを作ります。
ウェビナー動画から、音声だけを取り出す
(1)の音声を文字起こしサービスに送信し、文字起こしを取得
(2) の文字起こしを、AIサービスに送り、文脈から間違っている文字起こしを修正させる
(3)を使って、AIに「分割する場所」を決めさせる
(4)の分割場所で、動画と音声を分割する
(5)の動画(音声)の文字起こし部分を使って、タイトルと概要をAIに生成させる
(3)の文字起こしを、読みやすい文章にする(見出し、箇条書きを使わせる)
(7)を参考に、アクションシートを作らせる
(7)を参考に、10通のフォロアップニュースレターを作ってもらう
実は、このようなプログラムを試作品で作りました。クオリティは、十分だと感じました。一度、作ってしまえば、あとは簡単です。私は、命令を実行したら、他の仕事をするか、コーヒーでの飲んでおけばOKになります。
私が作ったプログラムのクオリティは売り物になりません。現役エンジニアから見れば、その技能も知識も少ないでしょう。しかし、私の今の状況や、他の能力との組み合わせによって、大きな強みにできます。
まとめ
今回は、「プログラミング能力」を取り上げて、それが「状況」や「他の知識」と組み合わされたり、プログラミング能力を細かく分解し、貢献する先を選ぶことで、「強みに変わる」ことを説明しました。
このように、「強み」とは、デザインするものです。
貢献先を選び
貢献内容 = 成果を選び
自分の能力、知識、経験のどれを、どの部分を組み合わせるか?
を考えることが、デザインです。
このデザインが、思っていたように機能するか?を確かめるのが、フィードバック分析になります。
次回は、いよいよフィードバック分析そのものを解説していきます。
あなたなりの「気づき、学び、発見」を、是非、コメントでお寄せください!