2007年03月21日(水)

簡単に見える時ほど注意せよ

テーマ:見積
最初は簡単そうに見えた仕事だったが、やってみると意外と難しかった、ということがある。

例えば、「CSV ファイルを読み込むプログラムを作ってくれ」という依頼があったとしよう。初心者プログラマにありがちなことだが、CSV なんて読み込んだ文字列をカンマで分割するだけだ、などと簡単に考えてしまうことがある。

しかし、実際にプログラムを作って動かしてみると、うまく動かない。いくつかの考慮が欠けていたのだ。例えば、

・値の中にカンマを含む場合はどうするか。
・値の中に改行を含む場合はどうするか。
・カンマの前後の空白は値に含むか。

といったことである。

よくあるルールに従う(例えば、Excel が出力するような)場合には、既存のライブラリ等を利用して簡単に実装できるかもしれない。しかし、独自のルールが必要だとしたら、ちょっとした手間がかかる。


あるいは、「文字列検索機能を作ってほしい」という依頼を受けたしよう。単純な完全一致検索や部分一致検索を想定して、安請け合いしてしまうかもしれない。

しかし、依頼者の頭の中にあったのは、日本語の単語単位できちんと検索してくれるプログラムかもしれない。つまり、「京都」で検索して「東京都」が出てきては困るというわけだ。こうした要望に対応するには、形態素解析のような高度な技術や適切な辞書データが必要になってくる。


ここに挙げたような例は、ある程度の経験を積んだプログラマや SE であれば、すぐに頭に浮かぶような話である。彼らは、仕事が依頼された時に、その場で質問し、上記のような問題はクリアにするだろう。

「安請け合い」しないために肝心なのは、仕事を依頼されたその時に、どこまで踏み込んだ質問ができるか、ということだ。経験が浅い人には難しいかもしれないが、そういう意識を持っていれば、そのうちできるようになるだろう。


一方、ベテランの技術者でも難しいのは、依頼者しか知らないような独自の要件(業務ロジック)に関することである。

特に、顧客から「ここのデータは、単に××コードで引っ張ってくるだけですよ」なんていう、いかにも「簡単でしょう?」といった感じの説明があった場合は注意したほうがよい。意識的であるかどうかは別として、必要な情報が隠されていることがあるのだ。プロジェクトの後の方になって、「いや、通常のケースはそれでいいんですけど、こういった場合はこうなって、ああいった場合はああなって・・・」などと「例外」がどんどん増やされたりする。

依頼者からすれば、細かい例外的な条件などは、大したことではないと思っているのかもしれない。システムにとっては、「通常」だろうが「例外」だろうが、処理が必要なのであれば同等なのだが。

何か仕事を頼まれたときには、簡単そうに見えることほど警戒したほうがよい。安請け合いをする前に、なるべく多くの情報を聞き出すことである。





■関連記事
やってみなきゃわからないという現実
どのくらいでできる?
・タブ区切りのCSV?



ソフトウェア見積り―人月の暗黙知を解き明かす
スティーブ マコネル Steve McConnell 田沢 恵 溝口 真理子 久手堅 憲之
日経BPソフトプレス (2006/10)
売り上げランキング: 2407
おすすめ度の平均: 5.0
5 アートとしての見積もり


成功する要求仕様 失敗する要求仕様
アラン・M・デービス 萩本 順三 安井 昌男 高嶋 優子
日経BP社 (2006/11/02)
売り上げランキング: 49741
おすすめ度の平均: 5.0
5 要求マネジメントの良書

AD
いいね!した人  |  コメント(9)  |  リブログ(0)

argvさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

コメント

[コメントをする]

9 ■RE: この話。うちのボスにしてやってください。

sugitach さん、こんにちは。
ボスの立場で無茶言ってくると困りますね。。。

8 ■RE: 経験

DV さん、こんにちは。
たしかに、こういった問題はどうしても回避できないですからね。

7 ■この話。うちのボスにしてやってください。

何べん言ったって理解できねーんだから。。。( ̄o ̄;)

6 ■リスッパブログSTART!!

管理人様はじめまして。
いつも楽しく拝見しています!

このたび新しくブログサービスを始めました!
1アカウントで無制限にブログを作れる『Risppa blog』
更新もラクラク。是非一度お試しください!
------------------------
http://blog.risppa.com/
risppamail@yahoo.co.jp
------------------------

5 ■経験

後から後から仕様変更がくるような開発を経験することで、メンテナンス性の重要さがわかるというものです(笑)

4 ■RE: 勉強になりました!

新米プログラマ希望者さん、こんにちは。
経験のある技術者にとっては、あたりまえの話なのですが、初心者が改まって教えてもらえる機会も少ないない気がしたので、記事にしてみました。
参考になれば幸いです。

3 ■勉強になりました!

改めて言われると、あぁ~と納得してしまうくらいその通りだと思いました。

「簡単に見える時ほど注意せよ」をモットーに様々なことに応用していきます!

2 ■RE: 帳票

t-suzui さん、こんにちは。
最終的には、開発時間が十分にあれば問題ないんですけどね・・・。
ともあれ、「良い経験」と思えるのはいいことですね。

1 ■帳票

そういう仕事、昨年しました。プログラマとして。
C#.NETを使っていました。
「メンテナンスしたいから、データの出し入れをCSVで」・・・意外と曲者です。
でも「プレビュー表示とか印刷になるとSPREADでやりたい」と。今ではとても良い経験でしたが、あの頃やってて、ちょっとヘコみそうでした 笑

コメント投稿

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。