効率化の誤解

目標設定の要諦

SESと呼ばれる派遣や準委任契約では、プロジェクトを完遂することが難しいとしている。これはゴールが未設定であったり、曖昧になってしまう場合が多くあるからである。ゴールの設定や未来像は非常に重要で、プロジェクトマネージャーなどリーダーが必ず持っておくべき指針である。

真のリーダー像

システム開発に参画するメンバーは一般的に経歴書やスキルシートによって決まる。プロジェクト経験数が多かったり、扱える言語が多かったりするだけでは、本当のスキルは推しはかれない。やはり、確認すべきは不測の事態が起きたときの対処方法を豊富に持つリーダーが必要となる。

アジャイルの本質

犬小屋を建てるときに設計書はいらないが、マンションを建てるには設計書がいる。アジャイル開発といっても、例えばマンションを設計図なしに建てるといったことを考えるとある程度は見通しや知見などを持つメンバーが方向性を決めていく必要がある。システム開発はその時その時の条件によっていい悪いの判断軸が変わる。さらに時間の経過でも判断軸が変化していくのである。

部分最適の罠

日本には「カイゼン」という高度経済成長期を支えた力強い言葉がある。しかし、時と状況によって判断軸が変わるソフトウェアという無形財産の前では、「善」に「改」めることができているのか、変化してしまう背景がある。職人気質である国民性も相まって、どうしても部分改善、部分最適を繰り返してしまうというプロジェクト現場が少なくない。

まとめ

システム運用や保守における部分最適は必ずしも全体最適になるわけではない。むしろ、この部分最適が全体を考えたときの労働生産性を下げていることすらある。小回りが利く人であればあるほど属人化してしまったりするため、誰が全体最適を見るのがベストなのか、改めて考える必要がある。

関連記事

ベトナムオフショア開発に向く3つのプロジェクトと、向かない3つのプロジェクト

ベトナムに向くプロジェクトの特徴

ベトナムへのソフトウェアのオフショア開発については昔から肯定的な意見と否定的な意見があります。昨今のベトナムの人件費の向上と日本の人件費の低下、そして円安もあり、コストダウン効果が見込めなくなってきています。しかし、単に海外オフショア開発が良いか悪いかという単純な問題ではなく、ベトナムの特徴を踏まえて、どのようなプロジェクトが向いているのか見極めることが重要です。本記事では、ベトナムにおけるオフショア開発に向く3つのプロジェクトと、向かない3つのプロジェクトを紹介します。

ベトナムに向くプロジェクト

1. 生産拠点や流通拠点を持つERPシステム開発

日本企業がベトナムに自社の生産拠点や流通拠点を持ちそのためのERPシステムを開発する場合、ベトナムは適した場所と言えます。ベトナム企業はベトナムの市場に精通しており、日本企業もベトナムの物流や製造現場に慣れています。また、ERPシステムの構築経験も蓄積されており、ベトナムのソフトウェア業界は成熟しています。さらに、ベトナム人の日本語通訳者の能力も向上しており、生産や流通に関わる日本語も習得しています。このような環境下でのERPシステム開発は、効率的かつ円滑に進めることができます。

2. ライトなWeb開発など経験を必要としない開発分野

技術の進化が激しいWeb開発など、比較的ライトで長年の経験を必要としない開発分野においても、ベトナムは適した場所と言えます。これらの分野では、若くて習得の早い技術者が求められます。ベトナムの技術者は熱意を持ち、新しい技術の習得に積極的です。また、技術自体も日本やベトナムといった特定の地域に依存せず、汎用性の高いものが多いため、ベトナムの技術者との協力により効果的な開発が行えます。

3. BPO的なプロジェクトでの教師モデル開発や画像タギングなど

ベトナムはAIにおける教師モデルの開発や画像のタギングなどのBPO的なプロジェクトにも適しています。ベトナムの基礎教育レベルは高く、労働者の字の読み書きやPCの使用能力に問題はありません。また、ベトナムはピラミッド型組織を構築しやすい文化的環境が整っているので大量生産に向いています。これらの要素を活かして、BPO的なプロジェクトをベトナムで展開することは効果的です。

ベトナムに向かないプロジェクト

1. コストダウンが目的のインクルーシブなプロジェクト

単純なコストダウンが目的のインクルーシブなプロジェクトは、ベトナムにとって戦略的な選択肢とは言えません。最初は若くて安いエンジニアを投入することで一時的なコストダウン効果を得るかもしれませんが、時間が経つにつれて人件費が上昇し、コストが増加してしまいます。また、ベトナムのエンジニアも自身のキャリアパスを考えるため、離職率が高く、人材の取り替えが困難になる場合もあります。

2. AIなど最先端技術のラボラトリーとしてのプロジェクト

ベトナムはAIなどの最先端技術のラボラトリーには向いていません。ベトナムは積極的な技術開発を行っていますが、他の国々も同様に積極的であり、特にアドバンテージがあるわけではありません。また、最先端技術になるほど人件費が高くなり、ベトナム価格でも他の国と競争することが難しい場合があります。このような背景から、ベトナムにおける最先端技術の開発には慎重な判断が求められます。

3. 最終消費者向けのセールスやマーケティングシステム

最終消費者向けのセールスやマーケティングシステムは、ベトナムとの文化や商習慣、法律、税制などの違いにより、開発が困難となる場合があります。ベトナム側で日本のマーケットに適したシステムを開発することは難しく、逆に日本側でもベトナム市場に合わせたシステムを構築することは容易ではありません。ただし、バックエンドのシステムに関しては国による違いは少ないため、ERPのようなバックエンドのシステム開発はベトナムでも適しています。

以上がベトナムにおけるオフショア開発に向くプロジェクトと向かないプロジェクトの一例です。プロジェクト選定においては、ベトナムの特徴や環境を的確に把握し、ベターな組み合わせを選ぶことが成功への重要な戦略となります。

続きを見る >

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

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

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

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

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

品質の向上と言語の壁

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

品質と納期の重要性

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

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

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

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

続きを見る >

開発の遅延「技術的にはできます」の罠

素人仕様と開発遅延

なぜ、システム開発の進捗が悪いのか?
それは、ずばり素人が考えた仕様を開発者に伝えてしまうからである。
すべての原因ではないが、もしシステムのユーザー側の現場担当者や営業担当者がシステム仕様を決めている場合は、ほとんどの場合で満足のいくスピード感はだせていない。

潜む技術的負債

システム仕様さえ伝えていれば、きちんと動くものを作ってくれるので、あとはスピードを上げるだけ。と考えているようであれば、技術的負債が溜まっていることに気付けていない。非エンジニアが決して理解できない技術的負債の怖さは、開発スピードが遅いということだけではない。開発者側から見てシステムが複雑になっていて、メンテナンス性も低い状態になっている。

「できます」の罠

非エンジニアには技術的負債は見えないし説明もわからないことと思う。しかし、技術力でカバーしてくれているから、きちんと動いているのだと思っているなら、それは実は技術力ではない。
「技術的にはできます」このような言葉を聞いたことはないか?
システムエンジニアは「できない」と言えない。「できないことはない」ということが価値なので、素人が考えたシステム仕様でも、言われた通りに作ってしまう。

持続可能な開発へ

システムエンジニアから「技術的にはできます」を聞いたときは、いったん立ち止まるべきである。
エンジニアには、様々な影響範囲や未来のメンテナンス性への懸念などが見えている。これを必要以上のコストだと考えるのか、必要コストと考えるのかで、技術的負債は変わる。

まとめ

自分の理解の範囲でしか人間は発想しないので、システムのことを知らない非エンジニアは、システム仕様を考えるべきではないと言える。また逆に、システムにおいてはシステムエンジニアの方が発想の幅は広いが、業務に関する知識は乏しい。
システムをよく知り業務のこともわかるシステムエンジニアがシステム仕様を考えるべきだが、そんな万能な人は多くはない。だから、その間を取り持つ人間が重要なのである。

続きを見る >