薬は毒、毒は薬
よく受託開発案件などでは、ユーザーの現状をヒアリングし、問題点の洗い出しを行うことがあるかと思います。洗い出した問題点に基づいて業務を再考し、適切な形へと組みかえる、BPR(ビジネスプロセス・リエンジニアリング)と呼ばれるものです。
実際、どのように分析して対応策を考えていくかについては、世の中にたくさん記事やら解説やらが揃っていますのでそちらを参考にしてもらうとして。
わたしは、気のせいや考えすぎのきらいがあるのですけど、どうにも見ていると、ある1つの「正解」をあてはめよう、としている雰囲気が感じられるのです。特にその風潮は、実装<設計<分析……というように、上層へ向かえば向かうほど強まっていると思えます。
恐らくは分析時などに限定した話題でもなく、プログラムの組み方や設計の行い方など、エンジニアとして関わる分野ほぼ全てに見受けられる傾向なのでしょうが。
要件定義はこうするべき。
ビジネスプロセスの分析はこうするべき。
データベースはこう扱うべき。
プログラムはこう組むべき。
いろいろな記事や解説において、ほとんどがこの表現に落ち着くことと思います。
ここで注意してもらいたいのは「すべき」という表現が使われている点です。「でなくてはならない」といった表現ではなく、あくまでも推奨するにとどめているのです。しかしこの表現を誤って捉えてしまい、「こうでなくてはならない」と受け止めてしまっている人を多々見かけます。
多くの記事や解説は、間違いなく「薬」となる存在です。Web上での質問掲示板などでのやりとりもそれに属するでしょう。ですがこの薬は万人に効くものではないのです。方法として用いる自分達に合っているかどうかを考えなくては、薬は猛毒へと変化することさえあります。
以前にコラムに書いたオブジェクト指向も同じような例でしょう。オブジェクト指向自体は間違いなく有用です。ですがそれを使う人達にある程度の技術力、もしくは応用力がなければただの足かせと化してしまいます。
またわたし達が作成するシステムやソリューションにおいても同様です。
たとえモノとしてどれほどまでに素晴らしいシステムであったとしても、使うユーザーによってはまったく適さないということも当たり前のように存在します。そのユーザーにとって、オーバースペックな状態に陥るのです。そのようなシステムは存在価値自体が疑問視されることになります。会社によってはその状態においてもシステムの利用を命じることもあり、その場合は猛毒も猛毒、しかも致死性ではなくじわじわと蝕んでいくとても性質の悪いものとなってしまうことでしょう。
しかしその方法自体に問題があるのではありません。問題があるのは「そのユーザーに適さない技術・方式を用いようとしたこと」なのです。
アーキテクトの選定において、技術面に囚われ他の要因を考慮することを忘れた(もしくは重要度の付け方を誤った)ことが原因なのです。利用方法が悪ければ、どのような素晴らしい技術も真価を発揮することはできません。
少々異なった話ですが、この仕事を続けているとどうしても「データを入力する」という発想に捉われてしまうことがあります。エントリ系APで入力させたデータを元に様々に処理を行い、後続にて利用する形です。よくエントリで入力したデータを更新系で加工し、帳票として出力するなどは作成されている方も多いのではないでしょうか。ここにも問題が潜んでいます。
ユーザーによっては「入力」するよりも「別ファイルを取込む」ことの方が、業務改善に役立つケースというのが存在したのです。むしろ余分にエントリAPのことを覚えなくてよい分浸透度合は好転することさえあります。
これは、システムの形が悪いのではなくこのユーザーにはこのシステムの形が適さなかった、だけなのです。
そのあたりを踏まえると、記事や解説などは読み手の知恵・引き出しを増やすためのものであり使う必要があるものではない、ということを改めて意識していくことが必要なのではないでしょうか。
「使いどころをよく考慮する」、そこが最も忘れてはならない点なのだと思います。
最後に余談ですが、今年のTechEdではマイクロソフト北陸支店の方々によるテクニカルセッションがあったということです(残念ながら地方からの出張は認めらなかったので参加できませんでした……)。色々な方が紹介されていますのでご存じかも知れませんが、その方々のBlogにて「データベース思考からの脱却」というキーワードが使われています。開発者としても一読されることをお勧めします。
※それ以外にも読むべき内容が非常に多いBlogです。ぜひ皆さん一度目を通してみてください。読み終わった時にはきっとOneNoteとタブレットPCが欲しくなります(笑)。
コメント
インドリ
このコラムの内容に同感です。
私もよく同じことを感じます。
技術者は生涯鍛錬をするのが当たり前なのに、日本の情報産業では一つのやり方を死守(押しつけ?)しようとする傾向が目立ちます。
私が推測するに、生涯学習という当たり前の事をしない人や組織が蔓延っているのと、情報産業が腐っているのが原因だと思います。
それはすなわち、「エンドユーザーはこれぐらいでいい」と侮っている証拠であり、エンドユーザー軽視の表れです。
これは道徳的にもにもビジネス的にも許されないことです。
詐欺をしなければ、生長せずに設けられるほどビジネスは甘くない筈なのです。
でも、実際問題エンドユーザーも甘いんですよね・・・
当たり前のことが当たり前になる事を私は願わずには居られません。
Ahf
インドリさんコメントありがとうございます。
産業構造として・・・というのはなかなか過激ですね。
「エンドユーザーはこれぐらいでいい」と考えているのは少数かな、と私は思っています。というのも、そこまでできるところはある程度以上の開発力を持っていると思うからで、今の情勢としてそこまでできるところはあまり多くはないのではないでしょうか。
反対に「これしかできない」というところが増えているのではないですかね。
インドリ
>「エンドユーザーはこれぐらいでいい」と考えているのは少数かな、と私は思っています。
ならば何故プロとして当たり前の鍛錬を怠るのでしょうか?
その態度は、これぐらいのスキルで大丈夫だとエンドユーザーを嘗めていると思います。
たとえば、Ahfさんが家がほしいとき、いつまでも3級レベルでとどまっている人が家を建てるといえば、不安になって「もっとレベルの高い人をよこせ」と望むでしょう。
その際に産業全体がほとんど3級レベルだったら「やるきがあるのか?」と疑問に感じるのではないでしょうか?
それに加えて、情報処理技術を嘗めている態度だと思います。
情報処理技術は生涯学習しても極められない広大な分野です。
一つの手法を習得しただけでOKな浅い知識体系ではありません。
それがプロとしてまかり通っている上に、組織がそれを強要する(年齢が来たら意地でもプログラミングさせないなど)のは本当にエンドユーザーやシステム作りを嘗めていると私は考えます。
もし嘗めていないのであれば、鍛錬したり教育したりします。
CMP
ところで、インドリさんの言う「プロ」って何ですか?
(ついでに言うなら「サラリーマンってプロなの?」も回答してほしいかもだ)
技術者とプロがイコール関係なのが気になったのですが。
ちなみに私が思っているプロは「お金を貰って仕事をする人」です。
パート、バイトだろうが初めてやる作業だろうが関係ないです。その仕事をすることでお金を貰っている人は全て「プロ」です。
その人が技術者である必要はないと思ってます。
インドリ
>ところで、インドリさんの言う「プロ」って何ですか?
納期内に求められた製品を求められた形で提供する者です。
また、自分の仕事をよりよいものにするために常日頃鍛錬を怠ってはなりません。
お客様にとって無用な機能を押し付けるのも、
お客様の業務にとって負担となる金額のシステムを売りつけるのも、
納期を守らないのも、
鍛錬を怠るのも、
すべてプロの態度ではありません。
プロとはスキルだけではなく、心がけも大事なのです。
スキルだけではアマチュアでも持っています。
お金をもらっているだけではだめです。
適切にお金を貰っているという事が大事です。
そうでないと詐欺でもなんでもしてお金を貰ったもの勝ちとなってしまいます。
※偽装会社などがよい例です。
ちなみに、情報処理技術全般は広く、何もプログラミングだけではありません。
システムを完成するのにあたって必要な役割すべてが平等なのです。
SEがプログラマよりも偉い(もしくはその逆)なんて変な階級制度を言っているうちはプロとは言えません。
自分が定められた役割を滅私して遂行し、その能力を給えるために日々精進するのがプロです。
役割に優劣はありません。
プログラマも重要。
SEも重要。
管理者も重要。
営業マンも重要。
運用管理者も重要。
テストエンジニアも重要。
ヘルプディスクも重要。
・・・・
あるのは同じ役割の実力差です。
この辺を階級社会的発想で考えてる会社が多いので性根が腐っていると私は考えております。
Ahf
インドリさん、CMPさんコメントありがとうございます。
>ならば何故プロとして当たり前の鍛錬を怠るのでしょうか?(インドリさん)
そこは恐らく「今の自分でいい」という保身というか何というか。
そのような守りの気持ちが、「無意識」に招いている結果なのだと思います。
自分達で意識していないから、より高みを目指そうと思う人が少ないのかな、と。
わかっていて努力しない人は恐らく少数で、大半は気づいてもいないのではないですかね。
>その仕事をすることでお金を貰っている人は全て「プロ」です。(CMPさん)
私もそう思います。仕事の対価としてお金を貰う事をしている=プロ、だと。
残念ながら他の業界に比べ、プロ意識をもたれる方というのは少ないかも知れませんが。
多分、ここ@ITとかそういったサイトを見られる方というのは比較的プロ意識が高い方だと思っています。さらにコメントしてくださる方というのは、更にしっかりと自分たちで考えることができる人達なのだと思っています。
はてブとかでブックマークしてコメントを残している様な方も同じですね。そうやって何かしらアクションを起こしている方々というのは、他の何も行っていない見ようともしていない人達に比べ、遙かに意識が高いと思っています。
CMP
Ahfさん、インドリさんへ
「技術者とは基礎となる学問や知識を具体的なものづくりやプロセス、システムの開発に応用する専門家のこと」
専門家である以上、常に基礎となる学問や知識を探求し続けなければならないと思っています。
残念ながら、最近この業界に入ってきている人達は「プロ意識」も「技術者としての自覚」も希薄・・・というかないですw。
ただ、保守的と思われるかも知れませんが、常に最新の技術を吸収し続ける以外にも、その技術を自身の手で枯れさせるためにがんばっている人もいることを忘れないでください。
鍛錬を怠っているように見えなくもないので(汗)。
セロ
>~すべき。
スキルが低いときはどうしてもわかりやすい解答を求めてしまいますね…。
で、別の仕事に追われて振り返るのを忘れて、前回の成功例にすがってしまいます。
(大概通用しなくて、また別の方法が必要になりますが)
「色々な道具」の「色々な使い方」を学ばないといけないんですよね。
そして「ユーザーが一番使いやすい部品」を作り上げる知恵を持ちたいです。
Ahf
CMPさん、セロさんコメントありがとうございます。
>ただ、保守的と思われるかも知れませんが、常に最新の技術を吸収し続ける以外
>にも、その技術を自身の手で枯れさせるためにがんばっている人もいることを
>忘れないでください。(CMPさん)
もちろんCMPさんが言われる方は多いと思います。
最新技術は特にそうですが「使わないといけない」ものではないですからね。
枯れさせるために頑張っている、それも立派に先へ進むための事だと思います。
>で、別の仕事に追われて振り返るのを忘れて、前回の成功例にすがってしまいます。(セロさん)
・・・よくわかります。
個人的にはたとえ前回の成功例であろうと、そこにもう一手間は加えたいですね。
私もなかなか上手いこといかないです。
ユーザーが一番使いやすい部品、システムを作り上げるのは私達の目標ですから、
いつたどり着くか、たどり着けるかもわからないところですが、常に目指していきたいですね。
がる
がるです。
ふと…二つの言葉を思い出しました。
万人受けは誰にも受けない
我々は皆 少しずつ狂っている
各々、個体差があって状況の環境の違いがあって。
その違いに沿ったサービスが提供できてこそのプロ、だと思うんですがねぇ。
或いは。
靴を作る職人さんがおっしゃった言葉を思い出します。
「あたりまえの足というものはないんです」
銀の弾丸は。あれば便利だとは思うのですが、それは見方を変えるとただの「思考停止」ですから(苦笑
最近お気に入りの「リファクタリング ウェットウェア」によるところの、最低限「熟練者」くらいまでには、なっておきたいといつも思います。
インドリ
>ただ、保守的と思われるかも知れませんが、常に最新の技術を吸収し続ける以外にも、その技術を自身の手で枯れさせるためにがんばっている人もいることを忘れないでください。
鍛錬を怠っているように見えなくもないので(汗)。
OK大丈夫です。
私は温故知新だと考えておりますので、新旧なんて関係ありません。
この業界には新旧をやたら気にする人がいますが、プロにとって新旧なんてどうでもよく、どれだけ学ぶかが大事だと思います。
それが古い技術であってもハックしているのであれば立派な仕事です。
Ahf
がるさんコメントありがとうございます。
>万人受けは誰にも受けない
>我々は皆 少しずつ狂っている
いいですね、この言葉。「万人受け・・・」の方もそうですが、個人的には
「我々は皆 少しずつ狂っている」の言葉が非常に好みです。
個々で少しずつ異なるところを良く見て、技術やサービスの適用方法を変化させていくのがいいですよね。それでこそプロだと思うがるさんの意見はその通りだと思います。
私はそうできている人に対して尊敬できますね。
Jitta
> ここで注意してもらいたいのは「すべき」という表現が使われている点です。「でなくてはならない」といった表現ではなく、あくまでも推奨するにとどめているのです。
う~ん??
べし:
1.当然の成り行きと見なされる、確信を持って推量できる意を表す。…はずだ。
2.そうするのが当然だと義務づける意を表す。…なければならない。
3.《終止形「べし」を文末に使って》命令を表す。
4.可能である、または実現が見込まれる意を表す。
5.意志を表す。…しよう。
(明鏡国語辞典より)
1は、「確信を持って」という意味が重要かと思います。1と4の「意」は、「自分の気持ち」を意味しますから、推奨(人・事物などのすぐれていることをあげて(推)、それを人にすすめる(奨)こと。)以上の意味があるかと思います。
「べきだろう」であれば、推奨と言えるかもしれません。
> 記事や解説などは読み手の知恵・引き出しを増やすためのものであり
文脈からは、ここは「知恵」ではなく、「知識」かと思いました。「知識」は蓄えるもの。「知恵」は使うものです。引き出しや、その中に入っている物は「知識」。必要な場面で適切な引き出しを開く、あるいは中に入っている物がその場で必要なものだと判断することが「知恵」です。
知恵:物事を筋道立てて考える心の働き。物事の道理を正しく判断し、適切に処理する能力。
知識:ある物事について認識し、理解していること。また、その内容。
(明鏡国語辞典より)
CMP
日本語って難しい・・・。
4.可能である、または実現が見込まれる意を表す。
5.意志を表す。…しよう。
の意味で使ってた。
1.当然の成り行きと見なされる、確信を持って推量できる意を表す。…はずだ。
の意味で使いたいけど、「何事にも例外あるので例外が発生しない限りはこのままでいこう、例外が発生したらそのときは最善策を考えようね」くらいの感じだと思ってた。
これは普段使っている言葉を全部調べなおさないといけないかもだ(大汗)。
Jittaさんありがとう。
Ahf
JittaさんCMPさんコメントありがとうございます。
本当日本語は難しいですね・・・私は1・2・3の意味合いで用いてました。
3の用法をイメージしていたから、どこか「しなくてはならない」という部分に目がいっていたようですね。
Jittaさん指摘ありがとうございます。
まだまだ精進が足りませんね、自分。