SEのいうバッファとは

バッファの真意

見積りや作業スケジュールに際して、エンジニアやシステム会社から「バッファである」という回答を受けたことはないか。システム会社が言うバッファとは保険を意味していることがほとんどである。

不確実なバッファ

非エンジニアは見積りのバッファを聞いたときに、無駄なのではないかと感じる。「念のため」に必要なバッファは、裏を返すと知識がないから調べないと分からないので不安であるという意味である。知識があり、「念のため」が必要なければバッファはないと考えられる。

知識の不足

ほとんどのシステム構築プロジェクトは、バッファが多いほうが知識がないのに見積りが高くなるという矛盾が発生することになる。そう考えると「バッファ」とは「無駄」に聞こえるかもしれない。

本質のバッファ

さて、このバッファについて本来あるべき姿を説明する。本当にやってみなければ分からないといった高度な技術を使うときに、未知の領域に関するスケジュールの影響を勘案し、計画された期間のことをバッファと見るべきである。

まとめ

単なるシステム構築プロジェクトにおいて「無駄を削ればよい」というのは非エンジニアから見ると合理的でコストの軽減にもなる。しかし、研究開発分野において無駄を削ることは必ずしも合理的ではない。発想が乏しくなるからである。

関連記事

開発遅延の打開策

システム開発の現状と課題

数名で開発した初期のシステム構築から、システム会社を変更して大がかりなリプレイスを行い、保守運用を実施しているが、月々の費用が高額であるわりに、開発スピードも遅い。開発スピードが遅いため、新しい機能を実装していけない。

不具合と開発の不透明性

リリースから何年も経っているのに不具合がなくならない。開発会社からの報告が曖昧で何にお金を支払っているのか謎のままであることが多い。

コスト削減と資源最適化

開発スピードを上げるには、システム開発コストの削減をしなければならない。コストを削減するということは、それで浮いたコストを開発に割り当てることができるため、結果的に開発スピードがあがることを意味する。

開発の透明性と妥当性

そのためにしなければならないことは、開発工程や開発過程の見える化および妥当性を担保することである。システムの比較検討ができないため、システム開発のコミュニケーションは一般的なものであると思い込んでいる。システム発注の担当者はシステムのことがわからないから、システム開発の進め方に違和感があったとしても技術者が言うことを信用するほかないと思っている。

まとめ

結果として、技術者の工数と称して月々の費用や、ひどいものでは言語のバージョンアップと称して、何もしていないことに費用を支払っていることもある。不明点はシステム発注の担当者が理解できるまで聞くべきである。

続きを見る >

運用の昇華

開発現場の想定外

基幹システムの開発現場では、最初に想定した仕様とは異なる業務フローが後から発覚することが多い。

マネジメントの試金石

後から発覚した業務フローは、すでに構築が進んでいるシステムに組み込むことが難しいため、どのように対応するかがプロジェクトマネージャーの腕の見せ所である。

プロジェクトの舵取り

プロジェクトマネージャーとは何かと問われたときに、一言で言い表すならば、不測の事態にどのように対応できるか、ということではないかと考える。プロジェクトが何の問題もなく、完遂できることは少ない。したがって、イレギュラーケースが発生した時にどのような手立てを打てるか、迅速に行動できるかがプロジェクトマネージャーのレベルとなる。

パートナーシップの重要性

プロジェクトマネージャーがシステムの完成しか考えていなければ、途中から発覚した仕様は「運用でカバーせよ」とユーザー側に責任を押し付けてしまうことがある。しかし、より良いシステムを目指す、パートナーとしてであればこの回答は好ましくない。

まとめ

どのような事象がきっかけで、途中で使用漏れが発覚したのか、プロジェクトの進行状況を見ながら、ひも解くことが重要である。運用でカバーというユーザー側だけにだけ負担をさせるのではなく、運用をカバーするようなシステムを構築できるのが理想である。

続きを見る >

オフショア開発の変遷と現状

オフショア開発のコストダウン目的

オフショア開発における主要な目的は、プロジェクトの総コストを削減するために人件費を削減することです。日本の開発者の人件費が高いため、ベトナムの開発者と置き換えることで財務的なコストダウンを実現してきました。ただし、外国に発注するということは、品質の低さと言葉の壁という2つの問題がつねにつきまといます。

内部コストと労働者の負担

人件費の削減は財務上のコストダウン効果を直接的に実現しますが、品質の低さや言葉の壁といった問題は現場の労働時間や精神的な負担として現れる内部コストです。これらの内部コストは労働者に転嫁され、営業側が値引きを行い開発現場の労働に影響を与える仕組みとなっています。オフショア開発に対する開発現場からの評判の悪さは、このような直接的な感覚から生じていると考えられます。

品質の向上と言語の壁

品質の低さや言葉の壁は改善の兆しを見せています。20年前と比較すると、通信手段や開発ツールが進歩しました。チャットやビデオ会議、画面共有などの技術が利用できるようになりました。また、クラウドやソースコードの共有などの管理システムも進化しました。言語の壁も同様で、ベトナムにおける日本語の理解力や日本人における英語の能力は向上しています。さらに、機械翻訳の進歩により、外国語を交えながら技術的な会話が容易になりました。

品質と納期の重要性

オフショア開発において品質と納期は重要な要素です。納期を守り、仕様を満たすことが最終的な評価基準となります。優れた開発チームやツールの活用は重要ですが、納期の達成と仕様の達成が果たされなければ、プロジェクトは失敗となります。

新たなオフショア開発の戦略

オフショア開発におけるコストダウンの戦略は、技術の進歩を活用する方向に進んでいます。開発手法として、ウォーターフォール型ではなくジャイルやOSS的な手法を導入することが求められています。また、国際的な標準的なツールやバージョン管理などの利用も重要です。さらに、コミュニケーションの円滑化も不可欠です。言葉の問題だけでなく、コミュニケーションの円滑化は人間によって担保されます。

オフショア開発の変遷において、品質やコミュニケーションの改善は見られますが、人件費の差によるコストダウンは限界に近づいています。技術の進歩を取り入れた新たな戦略の導入により、より効果的なオフショア開発を実現することができるでしょう。

続きを見る >