今まで長年さまざまな技術者たちと働いてきた中で、ふと思い出す事を書いてみます。ベテラン技術者の中には、コンピューティング技術の成長と共に生きてきた生き字引のような技術者たちがいます。いった技術者は、与えられた環境(OSや商用ミドルウエアなど)の中にバグがある事に慣れています。組み込み系では、OSやミドルウエアなどのソフトウエア基盤メーカに対してバグや性能的な問題を報告し、フィードバックを行いながら進めていく事がありますし、業務系の開発においても、同様のこともありますし、OSSの場合ですと内部で修正してしまう事も多々あります。ベテラン技術者たちは若手たちにそのような経験を伝え、若手たちはソフトウエア基盤の作りや仕組みに興味を持ったり、あるいは問題解決に際してすべてを疑う意識を持つ良いきっかけとなります。いった根っからの技術者たちでも、その経験が逆に仇となり問題の解決を邪魔する事があります。ある程度一般的な機能においてテストがうまくいかない時、OSやライブラリなどのバグだという報告がくる、あるいは難易度の高い機能の場合でも、そのような報告が重なったときはアラートとして捕えたほうが良いと考えています。このシステムはJavaで組まれているので、これ以上の高速化は不可能だと再度断言します。この描画が時たまうまくいかない事があるのは量子化誤差でしかあり得ません。このフォントの回転は特定の角度でバグります。このシステムで仮想マシンのオブジェクト管理を安定化させる事は不可能です。このシステムは書き直した方が費用がかかりません。これらは過去実際に聞いた言葉です。ところがすべてのケースにおいて、問題は作成したコードにありました。いった事はJavaや.Netでの開発においてよく聞かれますが、それには以下のような理由があると感じています。仮想マシンに対する不信感、あるいは勉強不足オブジェクト指向モデリングを設計に取り込めていないエンドユーザの要望を理解していない、あるいは気にとめていないこう挙げててみると、ひとつの技術的な問題への解決ではありますが、ポイントはなぜそのシステムでJavaが選択されたのかといった上流で決められた事項の意味を納得することが重要ではないかと思えます。いまやオフショア開発で国をまたいで現場が広がっている中、保守、運用含めたビジネスのスピードを感じていれば、おのずと自分が今まで関わって来た技術の範囲にとどまらず基盤、セキュリティ、モデリング、新しいアーキテクチャなどへの関心が起こってくると思います。すれば、日常の業務では問題に対してありとあらゆる角度で検討するようになるでしょう。いった努力の継続には時間がかかります。経験豊富な技術者が問題を解決できなかったとき、私は問題を切り離して一旦引き取り、技術者にはプロジェクトの他のタスクに引き続き集中してもらいます。ほかの技術者に振って問題を解決してもらい、元の担当技術者へフィードバックします。違う視点で先入観無しに対処すると、すんなり解決できる事が多いですよね。元の担当技術者には、精神的なもの含め何のペナルティもありませんし、評価が下がるわけでもありません。盲点は誰にでもあり、担当者の強みを買ってプロジェクトに参加してもらっているという共通意識を大事にしています。チームとして目的を達成すれば成功だと考えているからです。FAX:045-476-9989システム開発・保守ならお任せ下さい。