悪態のプログラマ -4ページ目

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

自宅の押入れから古いシステム手帳(JMAM のBindex mini5)が出てきた。システム手帳では最も小さいサイズのものだ。ここ数年は会社から支給されている高橋書店 の縦長手帳を使っていたのだが、携帯するには少し大きいし、年替わりの「移行」も面倒なので、再びこのシステム手帳を使ってみることにした。


とはいえ、小さい手帳は1ページに書き込める量が少ない。短期的なメモはどんどん紙を差し替えればいい。しかし、スケジュール(ダイアリー)は、最低1週間分は1ページ内に収めて「展望」したいので、そうもいかない。



丁度その頃、会社で 0.05 mm のいわゆるミリペンを使っている人がいたので、私も文具店を覗いてみたところ、もっと細いペンを見つけた。.Too のコピック マルチライナー 0.03 mm である(ペン先とインクが交換可能な SP もある)。


0.03 mm ということは、0.5 mm のペンに比べて、16.66 分の1の幅、277.77 分の1の面積である。つまり、単純に考えれば、1文字分のスペースに 277 文字も書けるということになる。もちろん、実際には人の手でそこまで小さくは書けないが、それでも、その気になれば、英数や仮名1文字を 1 mm 四方に収めることは可能だ。


なお、ボールペンで現在最も細いのは、三菱鉛筆のユニボール シグノ ビット の 0.18mm(ボールの直径なので、引ける線はもっと細いはず)である。コピックは画材を扱う店でないと見つからないかもしれないが、ユニボールなら書店の文具コーナーなどでも入手可能だろう。


いずれのペンも実際に使ってみると、相対的に紙面が広くなったことを実感する。まるで縮小コピーをしたかのような感じだ。



しかし、いくつかの問題点もある。ひとつには、ペン先があまりに細いので、書き味が良くないことだ。筆圧を低くして書かないとペン先を傷めそうだ。また、小さい字を書くことに集中しすぎて思考が止まることもあるし、目も疲れる。また、電車の中など不安定な場所ではどうしても文字が大きくなる。


もうひとつの大きな問題は、ペンの携帯性である。上記のペンは特にボディが細いわけでも短いわけでもない。せっかくの細いペン先なのだから、手帳に挿せるサイズの製品も欲しいところである。まぁ、私のシステム手帳にはペンホルダがなく、胸ポケットに挿しているので、あまり関係ないのだが。



手帳用に使わないにしても、細いペンで小さく書くことのメリットはある。印刷資料の余白や付箋など、狭い場所に書き込むのにも便利だし、普通のノートなどに筆記する場合でも、紙やインクの使用量が少なくて済む。また、自分が書いた文字の印象も違って見えるので、気分が変わって面白いかもしれない。たまには、いつもより少し細いペンを使ってみるのもよいのではないだろうか。







■関連記事
書き込まれる資料作り
メモをさせない方法
ドキュメントへの「朱筆」について考える
プログラマは考えるのが仕事






Too COPIC(コピック) マーカー マルチライナー A-2セット
Too
売り上げランキング: 7173
おすすめ度の平均: 4.0
4 ミリペンで書く!描く!

「えいやぁ」という言葉がある。単なる掛け声ではなく、「思い切って」とか「勢いにまかせて」といった意味のいわゆる「オトナ語」だ。「えいやぁで決めちゃいましょう」といった具合に使われる。「ほぼ日刊イトイ新聞」の「オトナ語の謎。」では、「えいやっ」と紹介されているが、私の周りでは、どういうわけか、その意味とは裏腹に「えいやぁ」と勢いなく発音される場合が多い気がする。

実際にどう使われるかというと、例えば、開発工数の見積(あるいはスケジューリング)をするようなときだ。開発工数なんてやってみなきゃわからないというのが現実なので、結局のところ、えいやぁと気合で決めてしまう。あるいは、ユーザー要件が決まらないとき。無理やり期限を設定してプレッシャーをかけ、顧客の責任者にえいやぁと決めてもらったりする。



こういうと、いいかげんな印象を受けるかもしれないが、この「えいやぁ」というのは、ある程度必要なものである。「えいやぁ」ができないプロジェクトでは、決めなければならないことがいつまでも決まらない。「もう、どっちでもいいから誰か決めてくれよ」と言いたくなるような状況が多発するのである。


もちろん、皆が「誰かが・・・」と思っているからそうなるのだ。誰も決定したことに対する責任を取りたくないのである。自分が決めてしまって、あとで問題が起こったら困るというわけだ。



SE で言えば、仕様を全てお客さんに決めてもらわないと、気がすまないという人がいる。お客さんに細かい質問をするのだが、お客さんからは「そんなのどうでもいいから、好きなようにしてくれ」と言われたりする。


もちろん、システムを受託開発する場合、最終的な仕様の決定権は顧客側にある。しかし、明らかに顧客にとってこだわりのなさそうな問題は、開発者の「おすすめの仕様」で進めていかなければ、効率が悪い。顧客には、ユーザー・レビューやユーザー・テストなどの際に、まとめて確認してもらえばよいことである。



例えば、理髪店では、いつも「眉の下を剃るかどうか」を聞かれる(つまり、マブタのことなのだが、なぜかいつもそのように表現される)。しかし、「眉の上を剃るかどうか」を聞かれたことはない。眉の上については、理髪師が勝手に剃ることを決定しているが、ほとんどの客はそれで文句は言わないだろう。


この眉の上と下を分ける境界(つまり眉そのものか・・・)をどこに引くかということ、つまり、顧客に決めてもらうべきことと、自分で「えいやぁ」と決めてしまってよいこととの境界を見極めることが重要なのである。


開発者として経験を積んでいけば、ある程度は常識的な境界は分かってくる。しかし、顧客によって、「おまかせタイプ」だったり、「こだわりタイプ」だったりと、大きく違ってくるので、簡単にはいかない。このあたり、顧客の顔をよく見ながら、その都度考えていくしかないのである。







■関連記事
気の利いたプログラムは顧客満足度を上げ、開発工数を下げる
やってみなきゃわからないという現実
普通の言葉
情報求む
YAGNI ~ 予想でモノを作るな
外見も重視してください




要求定義のチェックポイント427
本園 明史
翔泳社 (2004/10/21)
売り上げランキング: 20898
おすすめ度の平均: 4.0
3 過ぎたるは及ばざるがごとし
4 初めての顧客、初めての業界で、どのようにして要求を聞きだすか悩んでいる時に!
5 これは使えるチェックポイント


オトナ語の謎。 (新潮文庫)
糸井 重里 ほぼ日刊イトイ新聞
新潮社 (2005/03/29)
売り上げランキング: 10258
おすすめ度の平均: 4.5
4 あるある(笑)
4 ほくそ笑む
4 ウヒヒヒヒ

このところ、私が仕事中に一番よく使うペンは「フリクションボール 」だろう。パイロットの「消せるボールペン」である。鉛筆代わりに気軽に使え、色も8色あるのがいい。昔から消しゴムで消せるタイプのボールペンはあったが、フリクションは摩擦熱で消えるので、消しカスも出ない。


ちょっとした打合せをするときにこのペンを使えば、普通の紙がホワイトボードのように使えて便利だ。そんなとき、私が書いた字を消すのを見て驚く人も多い。テレビ CM も流れていたし、この業界でも ITmedia Biz.ID で紹介されたりしているのだが、まだそれほど認知されていないのだろうか(ちなみに消せるラインマーカーもある)。



フリクションボールを使うようになってから、紙の資料を読みながら下線引いたり、余白に書き込みをするようなことが多くなった。例えば、会議中のメモは、ノートではなく配布された資料に書き込む。そうすることで資料とメモが直接に関係づけられ、後から情報を整理しやすくなる。


会議では話が二転三転するのが普通で、メモを取っていると、何度も書き直しが発生する(ホワイトボードはまさに会議にうってつけである)。普通の「消せないペン」で書き込みをすると、「取り消し線」だらけで読みにくくなるばかりか、資料の「貴重な余白」が無駄になってしまう。修正液を使うのは手間だし、元々印刷されていたものまで消えてしまう。かといって、普通の鉛筆やシャープペンシルのような薄い黒色では、資料の印刷に負けて目立たない。


フリクションボールなら、書き直しを気にせずにどんどん書き込める。発売当初はペン先が 0.7mm のものしかなかったが、0.5mm が出たことで、「貴重な余白」がより有効に活用できるようになった(資料の印字部分をペンのおしりに付いているゴムで擦ると、トナーが剥がれて少し汚れてしまうのが玉に瑕だが)。



読む人が書き込みを加えることで、その人にとっての資料の価値が上がる。そう考えると、資料を作るときには、書き込みをしてもらう前提で作るとよいのではないだろうか。


一般的には、上下左右の余白を広めにとるとか、メモ欄を作る、行間を広くするといったことが考えられる。更に、資料の用途によっては、他にも工夫はできるだろう。例えば、打合せのために質問事項をまとめたような資料であれば、回答を手書きで記入できるように、質問に並べて広い回答記入欄を用意しておくと便利だ。



そういえば、本を読むときには本に直接線を引き、書き込みをすることで理解を深めるべきだという主張もあるが、それも同じ理屈なのだろう。私には、どうしても心理的な抵抗があって、本に書き込みをすることはできない。しかし、仕事で使うような資料であれば、ほとんどの場合、原本である電子ファイルが手に入るため、そのような抵抗もない。むしろ、紙資源を有効活用できるという意味で、気分もよいのである。







■関連記事
ドキュメントへの「朱筆」について考える
メモをさせない方法
議事録係
書かずに伝える




ボールペン字書き込み練習帳―美しい楷書を書くコツが身につく!
岡田 崇花
新星出版社 (2005/04)
売り上げランキング: 1019
おすすめ度の平均: 5.0
5 おすすめです!!


読書力 (岩波新書)
読書力 (岩波新書)
posted with amazlet on 07.11.03
斎藤 孝
岩波書店 (2002/09)
売り上げランキング: 10337
おすすめ度の平均: 4.0
5 読書
5 脳トレとして最高
4 読書をしようと思う!

一般的なアプリケーションの機能として、いわゆる「マクロの記録」というものがある。Microsoft Office(Word や Excel)にも付いているので、ご存知の方も多いだろう。商用アプリだけでなく、フリーソフト(テキストエディタなど)でも、同等の機能が付いていることがある。これは、アプリケーションに対する一連の操作を「記録」し、後で同じ操作をしたい場合に「再生」するというものだ。一連の操作を何度も繰り返し行いたいときには便利な機能である。


ここで、「マクロの記録」機能で記録された一連の処理は、どのような形で「記録」されているのだろうか? 記録したマクロを編集機能(あるいはテキストエディタ等)で開いてみると、プログラムのソースコードが書いてあるはずだ。つまり、ユーザーの操作が、そのままソースコードとして「記録」されているのである。一般に、マクロとは、そのアプリケーションを操作するためのライブラリが付属したプログラミング言語である。例えば、Microsoft Office のマクロは、VBA(Visual Basic for Applications)という言語に、Word や Excel を操作するためのオブジェクト等が組み込まれたものである。


つまり、「マクロの記録」という機能とは、非常に簡単なプログラミング手段なのである。こうして記録されたマクロを更に自分で編集すれば、「一連の操作の繰り返し」以上の複雑な処理をさせることができる(もちろん、それなりの勉強は必要だが)。



マクロは、その性質上、アプリケーションによって書き方が違う。例えば、Excel マクロの知識だけでは Word のマクロは書けない。同じ VBA でも、アプリケーションを操作する機能の書き方(ライブラリの使い方)が全く違うからだ。プログラミング経験者でも、全く初めてのアプリケーションのマクロを書く場合には、そういった書き方を調べるのは面倒なものである。


そんな時にも、マクロの記録機能が役に立つ。書き方を知りたい機能を手動で操作すれば、自動的にマクロのコードが保存されるので、それを参考にすればよい。もちろん、自動で生成されたコードは理想的な書き方になっていないことも多いが、手直しするのはそれほど難しいことではないだろう。



プログラミングの入門に適した言語は何か、という質問を時々受けることがあるが、アプリケーションのマクロは、その選択肢のひとつだと思う。マクロの記録機能で作られたコードを参考にできるため、プログラミング初心者でも、アプリケーションがどう動くのか、ということをイメージがしやすいからだ。また、記録したマクロを編集して汎用性を高めていくという過程からは、学ぶべきことは多いだろう。


このブログでも何度か書いていることだが、プログラミングを学ぶには、とりあえず「自分にとって役に立つプログラム」を作ってみるのがよい。マクロを作るということは、いつも自分が利用しているアプリケーションを自動化するということであるから、実用的な題材を設定しやすいというメリットもある。


プログラミングを始めるにあたり、「つぶしのきく」言語を学ぼうとする人も多い。マクロなんて覚えても、大した仕事はできないと思うかもしれない。しかし、初めてプログラミングを学ぶ際に重要なのは、言語(文法やライブラリの使い方)を覚えることよりも、普遍的な知識(プログラミングのセンス)を身に付けることである。その第一歩として、身近なアプリケーションのマクロを選ぶというのも、そう悪くはないと思うのである。







■関連記事
面白いプログラムを作ろう
プログラミングを始めようとして何度も挫折した人へ
プログラミングの入門書は何が良いか?
コマンドラインのすすめ




VBA の絵本
VBA の絵本
posted with amazlet on 07.10.13
株式会社アンク
翔泳社 (2005/10/21)
売り上げランキング: 16468


すっきりわかった! エクセルVBA マクロ作成のツボ (ASCII dot PC BOOKS)
アスキー・ドットPC編集部
アスキー (2007/09/28)
売り上げランキング: 136526

自分が参加した会議の議事録を書いたり読んだりする機会は多い。最近は、誰かに書いてもらった議事録の内容をチェックすることがよくあるのだが、一度でOKが出せることはあまりない。


一般的にも、「議事録係」は若手に任されることが多いのではないかと思う。しかし、実は、議事録を書くのはそれほど簡単ではない。


よくある問題のひとつは、情報の抜け漏れである。といっても、メモを取っていなくて重要な内容が抜けてしまうようなのは論外である。問題は、会話を要約するときに、必要な内容を削ってしまうことだ。議事録といえども、全ての会話を全て残すわけにもいかない。しかし、重要な発言だけを適切にピックアップするには、十分な前提知識を持った上で、その会議の目的や位置づけをきちんと理解していなければ難しい。


もうひとつの困った問題は、議事録の大筋は違っていないものの、細かいニュアンスなどが違っていることだ。例えば、「個人的には○○ではないかと思う」といった軽い発言だったはずのものが、「○○である」と断定的な表現で記述されていたりする。言葉のニュアンスは聞き手によって受け止め方が違ってくることもあり、やっかいだ。


このように、議事録は会議の内容を機械的に記録するだけのものではない。議題に関する前提知識、メモ力、記憶力、理解力、文章力はもちろん、あちこちと飛躍する会話をまとめる能力、話し言葉をビジネス文書に適した言葉に変換するためのボキャブラリなど様々なスキルが必要だ。


そんなわけで、同じ会議であっても、書き手によって、全く違う議事録ができる。本来は客観的事実を記録するはずのものなのだが、現実はそんなものである。







■関連記事
書かずに伝える
この文書は誰が読むのか
メモをさせない方法




作成しなかったではすまない中小企業の議事録の重要性
松本 守
TKC出版 (2007/04)
売り上げランキング: 3605


デジタル法令&文例 新会社法対応 会議議事録 Vista/Office2007 対応版
インターチャネル・ホロン (2007/03/02)
売り上げランキング: 7015