« iPhone 第一印象 | トップページ | (X)HTML, XML のコメント記述位置 »

2007-01-21

プロとして気に留めておきたい 8ヶ条

プロとして仕事を遂行していくための心構えとか、指針とか、そういったようなものの備忘録です。なんとなく、考えていたことの断片を整理して書き留めてます。たぶん、個別的には、随所でよく見かけるスローガンばかりだと思いますが、要するにマイチョイス(というか、完全に自分用)です。ここに書き留めたような境地にいたるのには、まだまだ修行が全然足りませんけど..。(- -;;)

  1. 目的を明確にする
  2. 目的の優先順位を明確にする
  3. 目的を達成する手段はひとつではない
  4. 複数ある手段の中から、最適な手段を採れるのがプロ
  5. なぜその手段が最適なのかを説明できるのがプロ
  6. 問題解決力よりも問題発見力
  7. 問題を切り分ける(問題点のモジュール化)
  8. 依存関係を把握する

目的を明確にする

目的の優先順位を明確にする

戦略レベル/戦術レベルでの目標を明確にしておくこと。曖昧にしておくと、往々無駄な作業に余計な時間を費やしてしまうことになる。また、目的が複数ある場合には、優先順位をつけておくこと。これも無用なトラブルを回避するのに役立つ。

たとえば、ある Web サイトを構築する時、以下のような要求があったとする。

  1. ユーザーの求める情報を素早く・快適に提供すること
  2. メンテナンスコストはできるだけ下げたい

この時、(1) の優先度が (2) よりも上なら、「ユーザビリティは高いが、コードはテーブルレイアウトベースのサイト」の方が、「使い勝手に若干問題があるが、コードは構造と見栄え・振る舞いを分離した Web 標準準拠サイト」よりも勝る。もちろん、この場合、(1)(2) の条件を両立させることが望ましいことは言うまでもないが、制作者のスキル・納期・予算・ターゲットユーザー層といった、ほかの制限事項により両立がむずかしい場合には、あらかじめ確認した優先順位が方針の判断材料になる。

目的を達成する手段はひとつではない

複数ある手段の中から、最適な手段を採れるのがプロ

なぜその手段が最適なのかを説明できるのがプロ

Perl では TMTOWTDI という成語(成句)もあるが、プログラム言語に限らず、ある目的を達成するための手段、ある問題を解決するための手段というのは、大抵の場合、複数あるのが常。一般に、直面している課題を満足させる手段にどんな選択肢があるのかを熟知、ないし調査・把握することができ、かつ、その中で可能な限りの最適な手段を選択できるのが(デザイナーにせよ、プログラマーにせよ、教師にせよ)プロとアマチュアの違いといえる。中でも優れたプロは、なぜ他の選択肢ではなく、みずから選択した手段が最適なのかを、必要に応じて他者に論理的に説明することができる。(ただし、選択した手段やその根拠について、ことさら技術的な説明をするのは、顧客にそれを求められない限りは避けるべき。大事なのは、あくまで目標を達成することであって、手段の選択は二の次。)

問題解決力よりも問題発見力

折角、問題を解決する能力を持っていても、重要な問題を発見できなかったり、妥当な問題設定ができなければ、労して功 寡なしという結果になることも少なくない。この意味で、一般に重視されている問題解決力よりも、はるかに大事なのが「何が問題なのか?」を見いだすスキルといえる。(→ 参考書:『ライトついてますか?』)

問題を切り分ける(問題点のモジュール化)

依存関係を把握する

ある問題を解決したり、ある目的を達成する際に最も重要な鍵となるのは、問題を細かくモジュール化して、それらの依存関係を整理・把握すること。特に問題を可能な限り細く切り分けて単純化することで、問題をチームで理解・共有・解決しやすくすることができる。

|

« iPhone 第一印象 | トップページ | (X)HTML, XML のコメント記述位置 »

[Web]その他」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/15394/5012905

この記事へのトラックバック一覧です: プロとして気に留めておきたい 8ヶ条:

« iPhone 第一印象 | トップページ | (X)HTML, XML のコメント記述位置 »