検索
特集/連載

モダンなソフトウェア開発のための開発チーム運営方法モダンなソフトウェア開発の課題【前編】

コンテナ化されたマイクロサービスや自動化されたテストを効果的なコラボレーションやコミュニケーションと組み合わせれば、ソフトウェアのイノベーションを加速することができる。

Share
Tweet
LINE
Hatena

 モダンなソフトウェア開発の定義についてComputer Weeklyが話を聞いた専門家の間で共鳴する技術分野が複数あった。コンテナ化されたマイクロサービスはその筆頭だ。このアプローチの主なメリットの一つは、ITシステム全体への影響を抑えながら、本番環境でコードの開発、テスト、デプロイ、運用ができることにある。

マイクロサービスの組織化

 コンウェイの法則によれば、システムを設計する組織は自身のコミュニケーション構造を複製した設計を作り出す(訳注)。Couchbaseの顧客成功担当ディレクター、ペリー・クラグ氏によると、コンウェイの法則にあらがうことはできなくても、その影響を認識することによってその制約の範囲内で動くことはできる。

訳注:コンウェイの法則の原文は、「Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.」。

 その影響はソフトウェア開発の領域に及ぶ。つまり、モダンなソフトウェア開発は社内に存在する組織構造に影響される。

 一つの側面において、これはモダンなソフトウェア開発を定義付ける協調的な働き方と矛盾するように見えるかもしれない。「アプリケーション開発を成功させるためにはコラボレーションが必要だ」とクラグ氏は言う。「新しい働き方のために緊密なコラボレーションが難しい場合は、緩いコラボレーションにすればいい。共有リソースが制約や障害を発生させているのであれば、ソフトウェアとその基盤との組み合わせを緩める。マイクロサービスのようなトレンドはそうした制約を明白に認識したものであり、これを自分たちのものとする必要がある」

会議よりワークフロー

 コロナ禍のためにチームコミュニケーションは最優先課題となった。

 クラグ氏は言う。「ソーシャルディスタンスの世界では、プロダクトマネジャーの重要性がかつてなく増している。開発者は、解決すべきことが分かれば解決策を作り出すために何をする必要があるのかが分かる。そうした問題を解決するということは、顧客の頭の中に入り込むということだ。開発者が心理学者になることを期待するのはあまりにも行き過ぎだ。それよりも、プロダクトマネジャーと開発者の間で、顧客がどんな問題を抱えていて、最終的にどんな状態になるのが理想なのかについて、はっきりとしたコミュニケーションが必要だ」

 つまり分散したチームとの迅速なコミュニケーションが不可欠だとクラグ氏は指摘し、「もしそれができていないのであれば、チームにとっての優先課題はそれが確実にできるようにすることだ」と言い添えた。

 ソフトウェア開発はチームの取り組みであり、情報は定期的な会議や進捗(しんちょく)の報告を通じて共有される。

 クラグ氏は、会議をできる限り生産的なものにすることに力を入れるよう促している。

 「数人以上が関わる会議は生産的ではない。そうした会議は良くても発表の場になり、悪ければ2人の人が話していて、残る全員は自分の名が呼ばれるのを待っている」

 クラグ氏の経験では、管理職やマーケティングなど組織の他の部門は、開発者のやり方を取り入れて課題追跡、スプリント、ワークフローの使い方を学び、会議の運営効率を高める必要がある。

 「会議をコンピュータのように考える必要がある。目標とすべきは、会議を高速のシステムにして行動に対する制約を排除し、人がもっと独立して働くために必要なデータと権限を与えることだ」(クラグ氏)

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る