
第7回 「できるか!」な設計書に、どう立ち向かう?
アクセンチュア・テクノロジー・ソリューションズ
新楽清高
2007/10/4
| 開発現場は日々の仕事の場であるとともに、学びの場でもある。先輩エンジニアが過去に直面した困難の数々、そこから学んだスキルや考え方を紹介する。 |
プログラムをやっていて、腹の立つことってどんなことがありますか?
今回は設計と設計書、特にコーディングするためのインプットとなるいわゆる詳細設計書について、私が感じたこと・思っていること・学んだことをお話ししようと思います。
■初めてのクライアント/サーバ型システム
社会人2年目か3年目のころのことです。当時、在籍していた会社では、プロジェクトの多くはホスト型でした。そんな中で私は、はやりの言葉だった「クライアント/サーバ型」システムの開発プロジェクトに配属となりました。
そのプロジェクトは、会社が始まって以来初めて、基幹系システムをクライアント/サーバ型で構築するというものでした。もともとホスト系の会社でしたので、リレーショナルデータベースに精通した技術者はいません。というよりむしろ、経験者自体が存在しない、そんな中でスタートしたプロジェクトでした。
そこでの私の役割は、「プログラマ兼技術調査係」という、なんともイヤな予感のするものでした。
■プログラミングで、プライドを捨てた瞬間
まぁ予想どおり、このプロジェクトではいろいろなことがありました。中でも特に奇怪だった現象が、あるバッチ系プログラムが、数十件処理するとなぜか落ちるというもの。最初はまったくわけが分かりませんでした。しかしいろいろと調べた結果、50件くらいまでの処理には耐えられること、その段階で一度プログラムからデータベースとのセッションを切って接続し直せば大丈夫なことが分かりました。
悩み抜いた揚げ句、「処理50回ごとにデータベースとのセッションの切断・接続を繰り返す」というカルトなプログラムにすることに決めました。正直、ITエンジニアとしてのプライドを捨てた瞬間でした。
結果、なんとシステムは安定稼働を始めました。
この決断が正しかったのかどうか、いまでもよく分かりませんが(というかおそらく技術的には正しくありませんが)、ユーザー側の視点からは正しいことをしたと確信できました。私はこのとき、理屈ではなく、とにかく解決しなければならないこともあることを学んだのです(これも正しいかどうかは分かりませんが、共感してくれる人がいれば非常にうれしいです)。
そんな不確定要素が満載だったからなのか、このプロジェクトが終わるころには、私は設計書に対して不満を抱くようになっていました。……というか、常に仕様書を疑いながらコーディングをするようになってしまっていました。
社会人1年目ではコーディングすることだけで精いっぱいでしたが、このころになるとそれなりにコーディングもできるようになり、「結構できるんじゃない?」なんて勘違いをし始めていました。これも理由の1つだったかもしれません。
余談ですが、ITエンジニアというのは経験年数が増えていくにつれ、そして技術力がついていくにつれ、生意気になっていくのかなぁと思います……。あまり悪い意味ではなく、いろいろと意見を述べることができるようになってくるという意味です。
■設計者に確認に行ったら、その場で仕様変更……
さて、当時の私が設計・設計書に対して不満を抱いたのは、だいたい以下のようなときでした。
- 設計書の記述内容がおかしく、設計者に確認に行ったら、その場で仕様が変わってしまった
- 設計書の記述内容があいまいで、設計者に確認に行ったら、まだ仕様が決まっておらずペンディングになってしまった
- 設計書の記述内容があいまいで、設計者に確認に行ったら、逆に自分が設計することになってしまった
- 設計書を読んでも何をしたいのかよく分からなかった
- 複雑怪奇としかいいようのない設計書を見てしまった
- 「そんなことできません!」と突っ込みたくなるほどアクロバティックな設計を見つけてしまった
やっぱり、不満を抱きながら仕事をするのは、楽しいことではありません。
当時の私にできたのは、それでも前向きに仕事をするよう努力することくらいでした。しかしこの経験は、自分が実際に設計するようになったとき、「どうすれば意図をきちんと伝えられるのか」を考えるきっかけとなりました。どうせなら不満を発生させる要素は取り除き、楽しく仕事をしたいですよね。
| 不満の出にくい設計書の作り方とは? | |
システム開発プロジェクトの現場から バックナンバー
- 第1回 試行錯誤で分かったスパゲッティコード撃退法
- 第2回 セットアップ全国行脚で九州弁に大苦戦
- 第3回 未経験のデータベース構築に挑戦
- 第4回 定まらない要件、ユーザーからのむちゃな要求
- 第5回 メンバーとの仕様打ち合わせは海を越えて
- 第6回 専門用語で「カッコよく」話すのは簡単だけど
- 第7回 「できるか!」な設計書に、どう立ち向かう?
- 第8回 初めてのトラブル対応。これで直ると思ったのに!
- 第9回 この案件、ぜひ新しいテクノロジでやりましょう!
- 第10回 3プロジェクト同時にリード! どう乗り切る?
- 第11回 オフショアなんて、怖くない
- 第12回 障害対応とチューニングの危うい関係
- 第13回 最強チームで挑んだ、「40時間でデータ移行」の壁
- 第14回 運用って、あまりいいイメージはなかったけれど
- 第15回 「バッファ込み」の工数がスケジュール遅延の原因
- 第16回 大規模プロジェクトでは「同じ言葉を、同じ意味で」
- 第17回 現場デビューのお供はビジュアル多用の報告書
- 第18回 1人チームで悩む新人。「この作業って意味あるの?」
- 第19回 新人、アーキテクチャチームで「運命の出会い」
- 第20回 新人(3年目)、先輩デビューで「最悪の振る舞い」
- 第21回 新人、集合研修で「伝説」を作る
- 第22回 新人(3年目)、プロジェクトで「忍耐」を学ぶ
- 第23回 本当は楽しいドキュメント作成
- 第24回 基本設計文書の質を下げる「4つの心理バイアス」
- 第25回 文書ドリブン開発 DB設計文書編
- 第26回 文書ドリブン開発 詳細設計文書編
- 第27回 文書ドリブン開発 テスト文書編
|
|
| スキルアップに役立つ問題を無料で出題 | |
| ITスキル研修4000件、最新情報の検索できます |
キャリアアップ
スポンサーからのお知らせ
・ケ・ュ・チマツ、クヲオ貍シ・ケ・ン・・オ。シ
- - PR -

点数に応じてレベル認定、PHP技術者認定上級試験が開始へ