仕事でよく「枝葉末節にこだわってはいけない」という言い方で、何かの提案が否定されたりする場合があります。私が若いころよくわからなかったのは
どれが枝葉で、どれが幹なのか
が区別がつかなかったことです。
私はソフトウエアの開発をしていたので、ソフトウェアについて言うと、ある機能(A)をSQLデータベースによって実現したとします。その後、機能(B)を実装するにあたり、SQLデータベースでは実現が難しく、Postgre だと簡単にできることがわかったのですが、いまさら乗り換えるにはコストが掛かり過ぎる…、というような場合。
さて、これをどう判断するかは、もう2000年以上前に答えが出ていたそうです。
ということで本日から数回にわけて、ある過去の資産に対する判断を迫られた時に私が指針にしている方法についてご紹介したいと思います。
本日はその理論的背景
前回は、本質的特性と偶発的特性について概念を説明したので、今回はそれを仕事に対してどのように応用できるかというお話。
■アリストテレスはソフトウエアを考えるか?
ソフトウエアと言うのは、単純なものから複雑なものまで多種多様にあります。
この複雑さもアリストテレス的にいうと
・本質的特性 ・偶発的特性からなっています。
元来ソフトウエアを作る目的は、特定の問題をコンピュータシステムによって解決することであって、そのソフトウエアで解決すべき問題が持つ多様な要望に答えた部分が本質的特性を生んでいます。
一方で、「偶発的特性」は問題の解決には直接かかわりなく生じてしまう複雑性です。たとえば、
ある問題の再発防止策として自動検証システムを導入する
というのは我々が作るシステムの本質的特性ですが、
自動検証システムを C 言語+MS-SQLでつくる
というのは、その機能の目的である「問題の再発防止」とは全く関係がありません。したがって、これは偶発的特性であるといえるわけです。たまたま、その担当者が使えるツールが C と MS-SQL だったに過ぎないわけです。
これらの本質的特性と偶発的特性が相まって、あらゆるシステム(これはプログラムにかぎらず、人間が関わる全ての活動)がどんどん複雑化していくわけです。
これは会社のルールなどにも見られます。
ある作業ミスをすると、その作業ミスの再発防止としてチェックリストが作られます。他のミスも発見されるとチェックリストに追加されて、やがて紙数枚では収まらなくなります。そうなるとチェックリストを全部やったかという問題が提起されて、チェックリストのチェックリストが作られて、これも膨大になるとチェックリストのチェックリストのチェックリストが…。
それで何年も経つと、意味不明なチェックをしているチェックリストがたくさん生き残るわけです。
たとえば、かつては液晶には信号に反応しない点がひとつやふたつはありました。
顧客からクレームが来るので、いろんな画像パターンを表示させる検査が追加になりました。ところが今の液晶製造技術なら、ppm(100万分の1)レベルまで品質は上がっています。それでも検査は残っています。
万が一未満の問題ですよ。
■本質的特性と偶発的特性の複雑性
本来、これらの特性が複合して発生する複雑性は極力排除することが望ましいのですが、間違えて本質的特性を偶発的特性がブロックしてしまったり、本質的特性を排除してしまったりする失敗が少なくありません。
ソフトウエアにかぎらず、その目的達成をより確実に確保するためには、複雑性を排除することが基本思想に必要ですが、本質的複雑性を排除してしまうとそのソフトウエアは役に立ちません。
ですが、「偶発的複雑性」は本来の目的には寄与しないものなので、これを排除することはソフトウエアの品質を高める効果があるわけです。
私が時々やってイライラする経験があるのですが、
1.ある大量のデータを処理しようとして簡単なソフトを作る
2.実際にそのデータを処理させる
3.処理が始まったところで、すごく時間がかかりそうなことに気がつく
4.これをデータをクレンジングしておいてからやればきっと早くなるとかんがえる
5.でも処理を始めてしまったので続けようか一旦止めるか迷う
6.最終的にはやめることにして、強制停止させる
7.データのクレンジングのために新たなソフトを書く
8.クレンジングを始める
9.始めてみるともっと効率のいいアルゴリズムを思いつく
または途中経過のデータを見て、クレンジング処理である特定のデータがフィルタされていないことに気がつく
10.項番 5 に戻るか、そのうちに何をやっていたか忘れて、「綺麗かつ流麗な」ソフトを作ることに熱中する
とやって、最終的には出来上がるのですが、かけた時間と作ったプログラムは当初のものより何倍も大きくなる…、と。
で、さらにまた、それが作りすてのプログラムだったりすると更に腹が立つ………
項番 1 は本質的特性ですが、それ以降やっているのは偶発的複雑性を増加させているだけですね。
ようやく終わった時には、こうつぶやくことになります。
「何をやっているんだか…」
アリストテレスの時代にソフトウエアがあったわけではありませんが、万物(人間?)の持つ特性はソフトウエアも避けられないということですかね?
◆このテーマのおすすめ図書
■関連する記事
役員会議などのように座る場所が決まっている会議は別ですが、私たちのような平凡サラリーマンが参加するような会議は座るところが決まってません。この「座る場所が決まっていない」ときに、壁際のなるべく目立たないところに座りたがる人が結構います。ま、過去は私もそうでした。が、本書『他人に軽く扱われない技法』を読んでから、考えを改めました。遠慮せず、目立つ場所に席をとる宴会でも、..
仕事でよく「枝葉末節にこだわってはいけない」という言い方で、何かの提案が否定されたりする場合があります。私が若いころよくわからなかったのはどれが枝葉で、どれが幹なのかが区別がつかなかったことです。私はソフトウエアの開発をしていたので、ソフトウェアについて言うと、ある機能(A)をSQLデータベースによって実現したとします。その後、機能(B)を実装するにあたり、SQLデータベースでは実現が難しく、Postgre だと簡単にできることがわかったのですが、いまさら乗り換える..
仕事でよく「枝葉末節にこだわってはいけない」という言い方で、何かの提案が否定されたりする場合があります。私が若いころよくわからなかったのはどれが枝葉で、どれが幹なのかが区別がつかなかったことです。私はソフトウエアの開発をしていたので、ソフトウェアについて言うと、ある機能(A)をSQLデータベースによって実現したとします。その後、機能(B)を実装するにあたり、SQLデータベースでは実現が難しく、Postgre だと簡単にできることがわかったのですが、いまさら乗り換える..
仕事でよく「枝葉末節にこだわってはいけない」という言い方で、何かの提案が否定されたりする場合があります。私が若いころよくわからなかったのはどれが枝葉で、どれが幹なのかが区別がつかなかったことです。私はソフトウエアの開発をしていたので、ソフトウェアについて言うと、ある機能(A)をSQLデータベースによって実現したとします。その後、機能(B)を実装するにあたり、SQLデータベースでは実現が難しく、Postgre だと簡単にできることがわかったのですが、いまさら乗り換える..
■同じテーマの記事
上司に怒られた、なんてのはわりと慣れっこなので、私はあまりあとには引かないほうかもしれませんが、何かの失敗をやらかしたこと自体とか、軽蔑の目で見られたみたいなは、私は結構あとに引きます。フラッシュバックこういう気になること、とくに自分の責任のチョンボなどは、夜になってもなかなか頭から離れてくれません。あんな事言うんじゃなかった…もうちょっとあそこで注意していれば…あ〜!!しまった………なんてことをグチグチ考えちゃいます。こうなると、食事をしていようが、フロに入..
昨日の続きで、プレゼンのコツについて。昨日の要約最近、ウチの会社では昇進試験にプレゼンテーション試験というのが取り入れられました。以前の記事昇進試験グループディスカッションでもちょっと書きましたが、やっぱり昇進してリーダーなり管理職にになれる人というのは、自分の主張を持っていることも大切ですが、その主張を人に聞き入れてもらえるというのも大事ですね。前回の記事では、試験で評価されるポイントを書いたので、今回は実際..
最近、ウチの会社では昇進試験にプレゼンテーション試験というのが取り入れられました。以前の記事昇進試験グループディスカッションでもちょっと書きましたが、やっぱり昇進してリーダーなり管理職にになれる人というのは、自分の主張を持っていることも大切ですが、その主張を人に聞き入れてもらえるというのも大事ですね。前回の記事では、試験で評価されるポイントを書いたので、今回は実際に自分の主張を通しやすくするためのヒントを少し。アリスト..
だれかと議論になって、結局相手の言い分が通ってしまって非常に悔しい思いをしたことがあるかたは多いのではないかと思います。殆どの場合は、あとで思い返してみると、「あの時にこういうふうに切り返せばよかった…」などと、もう取り返しのつかないことを思い出して、ちょっとブルーになってみたりして。ただ、なかなか議論が伯仲している時など、結構熱くなっているので、なかなか冷静に相手の言うことを分析できないんですよね。今日は、「反論」という事について、心理学の法則をビジ..
今日は、すごいプレゼンテーションの技術の本。プレゼンの小手先のテクニックを書いたビジネス書はたくさんありますが、これはプレゼンの本質に迫る素晴らしい本です。一つ一つの身振り手振りや、目立つようなアニメーションの技術はさておき、プレゼンにおいて、どのように人を感動させ、どのようにプレゼンターの望む行動を起こさせるか、それが過去の素晴らしいプレゼンテーションを例に解説がしてあります。2007年のMacworldで、90分のうちに80..
昨日の続きです。やりたいことリスト昨日は、やりたいことリストを作るところまで書きました。今日はその続きについて書きます。やりたくないことリストやりたいことリストと同じ要領で、30枚程度の付箋を用意して、机の上に広げます。そして、今度はやりたくないことを書きだしていきます。最初は何も見ないで、思いつくものをどんどん書いていきます。もう思いつかなくなったら、昨日紹介したトリガリストを、ゆっくり読み上げてください。たとえば、私の例で言えば・家事・営業活動・知らな..
あなたは、自分がどのようなものを望んでいるのか、それをはっきり言えるでしょうか?よく希望を叶えるためには手帖の最初のページに、自分のありたい姿を書き出すなんていうことが、ビジネス書には書いてあります。でも、そもそも自分が10年後にどうなりたいかなんて、わかっている人が少ないのではないでしょうか?少なくとも私はそうでした。もし、あなたも同じであれば、私のやった方法が役に立つかもしれません。準備するここから30分くらいは、集中してやれる時間を確保します。会社であれば..