2007年1月30日火曜日

工数をドブに捨てる奴

貴方のプロジェクトにこんな人はいないかな。作業指示を夕方にする人。これはたいてい×!もちろん作業タイミングを見て夕方になることはあります。でも、朝なんら状況を確認することなく作業を進めさせ、夕方になってからプログラムなり設計なりの変更指示をする人。こうなるとその日1日の作業が最悪全てやり直しになります。打ち合わせの関係でどうしても夕方に方針なり仕様変更が出てくる恐れがある場合、極力その可能性を早めに伝えてくれるリーダーやコンサルタントはある程度信頼できます。こちらもその心づもりで、修正がしやすいようにあるいはそこの作業を飛ばして別の作業をするなり、技術的なウラを予めとっておくなりできるからです。これは週単位、月単位でも同じです。行き当たりばったりの上長の下にはつきたくないもの。膨大な無駄工数が消費されていきますから。

2007年1月29日月曜日

OUTPUTが決まればINPUTが決まる

システム作りの基本は「OUTPUTが決まればINPUTが決まる」。これに尽きると思います。クライアントがどんなOUTPUTが欲しいのかを項目(コードやテキストの桁数も含めて)まず決めてしまうことです。もちろん、後から追加項目は出てくるでしょう。でも、何がいつのタイミングで欲しいのか即時?随時?日時?月次?半期?・・・。とにかく必要なレポートの顔ぶれを全て揃えてしまうことです。各レポート毎に正規化を試みます。自ずからテーブル構造が見えてきます。これでデータベースの論理設計はある程度完成してしまいますよね。それから、そのデータはいつのタイミングで入手されるのかが決まってきます。そうすればINPUTの設計が自然に出来上がるはず。実際、なかなかスムーズには行きませんが、とにかくOUTPUTを決める重要性を強調したいと思います。

2007年1月27日土曜日

仕様が決まらない

 今、参加しているプロジェクトでは困った問題が発生しています。それは全く仕様が決まらないままカットオーバーまで余すところ数ヶ月をきってしまっている状態です。しかもこんな時間にブログを書いている位だから残業もない。やらねばならない課題が山積しているにも拘わらず何も決定していないんです。残念ながら発言する立場にいないため何も言えないのですが、このプロジェクトの中心メンバーに自分達が非常にまずいことをしているという自覚が全く無いのでは?というシーンによく遭遇します。突っ込んだ仕様の質問に対し全く返答ができず全部ペンディング事項にしてしまうんですよね。かくして時間だけが過ぎていく。プログラムはほとんど全て7~8割方完成しているのですが、そこから先、全く進まないために1つも単体テストが完了していないという恐ろしい状態です。開発手法はスパイラル・モデルだからこれで良いんだという言い方をプロジェクトマネージャーはしています。スパイラルモデルの定義を述べよと言われると私も答えに窮しますが、明らかにこれはスパイラルではなく、開発手法についての無理解が原因です。

2007年1月26日金曜日

プログラムを知らない

 特にERPの世界で顕著なのは全くプログラミングを知らない人がこともあろうにプログラム設計をしている例がかなり見受けられます。プログラミング言語の特性を知り、どこまでなら仕様として盛り込めるのか、どのように将来のメンテナンスを考慮したプログラムのモジュール分割を行うかといった配慮が全くなされないことは珍しくありません。 
 結果、ユーザーインターフェースの使い勝手の向上によりやれることが増えた分、コーディングステップ数がただでさえ肥大傾向にあるのに無茶な仕様は考慮を欠いた設計により作った人間以外には理解困難な巨大なプログラムが出来上がります。
 共通機能をクラス化、サブプログラム化をしてないばかりに将来においてメンテナンスが行われたときに、思わぬ矛盾や潜在バグが健在する恐れがあるのです。 このブログではこうしたソフト開発にまつわる問題点を私なりの視点から独断も交えて指摘するとともに、一人一人のエンジニアが育つためにはどのような処方箋があるのか私なりに考えて行くつもりです。

2007年1月25日木曜日

熟練工がいない

ソフトウエア業界には熟練工はあんまりみかけないです。業界が若いせいもありますが、一般的にはプログラマー→システム・エンジニアorERPコンサルというキャリアパスを経て30代後半にはプロジェクトマネージャー、40代には管理職、いわゆるシステム開発のベテランがフリーエンジニアを除いてあまり見当たらない世界なんです。 例えば建築業界なら大工として左官として腕を磨いていく、設計するのはゼネコンでも施工するのはこうした職人達で技術の継承がなされるとともに役割がきちっと定まっている。逆をいえばコンピュータ業界では下手をすると素人に毛が生えた程度の人間がシステムを設計し、開発しているかもしれない、という怖さがあります。 コンピュータプロジェクトがうまくいかない、完成したものの運用に苦労するのは、まずこうしたところに問題があるのだろうと感じています。