Arithmer Blogをお読みいただき、ありがとうございます。
Arithmer研究開発本部・先端技術事業部の野崎です。今月のBlogは私が担当します。
私はArithmerでプロジェクトマネージャーを務めています。
仕事柄、プロジェクトマネジメントに関する文献を読むようにしていますが、『アジャイルソフトウェア開発宣言』というアジャイル開発に関する有名な文書のある一節を目にした際に、深く感銘を受けたことを今でも覚えています。
それは次の一節です。
Customer collaboration over contract negotiation.
契約交渉よりも顧客との協調を
(引用:アジャイルソフトウェア開発宣言)
お客様とプロジェクトを進めているとさまざまなご要望をいただくことがありますが、納期や予算を超えないようにするため、時には「契約にないから」という理由でご要望をお断りしなければならないこともありました。
ただ上記の一節を知ってからは、(契約をしっかり行うことは前提としつつ)契約交渉に拘泥するよりも、お客様とともに課題を解決し、プロジェクトの真のゴールを目指すべきなのではないかと考えるようになりました。
契約に縛られている限りは「発注者と受注者」の関係でしかなく、そのような状態では契約の範囲内で役務を提供・受領するだけの関係性になりがちです。
しかしお客様と協調し、ともにプロジェクトの成功を目指すようになれば、「パートナー」としてプロジェクトを進めることが可能になると思います。
そのような協調関係を実現する手段がアジャイル開発であると考えられ、弊社でもアジャイル開発の取り組みが行われています。
ただアジャイル開発はウォーターフォール開発と比べて
- お客様のご要望にきめ細かく対応するため、プロジェクトマネジメントの方法が複雑になる。
- さまざまなご要望に応えられるようにするため、多様なスキルを持つ開発者が必要になる。
などの難点もあります。
このような難点を克服できるように、弊社でも
- アジャイル開発とウォーターフォール開発を組み合わせる(ハイブリッド)
- スキルアップ支援、教育、社内セミナー
などの工夫が行われています。
このような取り組みを通じて、「お客様との協調」を実現できるように引き続き努力していきたいと思っています。
※アジャイル開発
チームを組んで、要件定義や設計、製造、テスト、リリースといった開発の工程をひとつずつ分けて小さな機能単位で反復させながら完成させていく。クライアントの要望や変更などは開発期間中ならいつでも取り入れながら、ニーズに合わせて機能を変更ブラッシュアップしながら完成させる手法。
※ウォーターフォール開発
企画の段階でシステムの全体像を定義し、クライアントの要望や仕様の変更希望などは開発に取りかかる前に聞いて対応する。システムの設計書ができあがったら、次の工程で製造する。変更や要望などを製造の途中で取り入れることはできず、システムができあがったあとにテストを行って完成となる手法。