Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

【デブサミ2016】19-B-6レポート
開発者よ、ビジネス現場をハックせよ! ビジネス駆動開発からソフトウェア駆動ビジネスへ

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/03/30 14:00

 ソフトウェアとビジネスの世界はやがて融合し、各々の世界は破壊され、創造されるだろう。創造は破壊なくしては始まらない。デベロッパーは、それらの世界を巡る旅をしなければならないのである。ソフトウェアとビジネスの世界を行き来する橋からは何が見えるのか。本セッションでは、アトラシアン シニア エバンジェリストの長沢智治氏が、継続的デリバリーを支えるソフトウェア環境、およびそれらのビジネス現場での活用について、デモンストレーションを交えながら語った。

アトラシアン シニア エバンジェリスト 長沢智治氏
アトラシアン シニア エバンジェリスト 長沢智治氏

バックログ、情報Hub、作業のシフトチェンジで価値の流れを作る

 セッションの冒頭で長沢氏は、WebブラウザNCSA MosaicやNetscape Navigatorの開発で著名なマーク・アンドリーセン氏の言葉を紹介した。「Software is eating the world.」ソフトウェアが世界を飲み込んでいく、という意味である。現在のビジネスは、ソフトウェアの力で成り立っており、会場に集まったデベロッパーたちは、いわばその原動力というわけだ。

 またビジネスも、従来のモデルがそのまま進む時代ではなくなっている。したがって、仮説を立て、検証して進めていくことが求められている。たとえ今、万全なビジネスだとしても、それがテクノロジーにより脅かされる時代になっている。「意思決定権が会社内部ではなく市場に移り、その結果競争が激化している」と長沢氏は現状分析する。

 この状況を受けて、ソフトウェアの開発自体も変わっている。ビジネスが動いているため、要求が固まりにくい。そのビジネス自体の状況をしっかり分析し、そこから何をすべきなのかを自律的に判断することが求められている。そこから企画、計画、開発、ビルド、デプロイ、改善のサイクルを繰り返す、継続的デリバリーという発想が出てきている。

 ここで長沢氏はデモを披露した。ストーリーは「ビジネス側が企画書を作り、開発チームに要件を投げる。開発チームが意思決定をして担当者が作業を行い、チームでコードレビューする」というものだ。ここで、チームを結束するために中心に使うのが、アトラシアンのソフトウェア開発者向けプロジェクト管理ツール「JIRA Software」。

 まず企画書があり、目的、背景、前提条件などが書かれている。欲しい機能は表になっている。この段階である程度固まっている要求に関してはカンバンボードに置かれ、それに対して開発チームが意思決定する。その結果は、企画書のドキュメントの方にも反映されるので、企画側も開発側の意思決定事項など、進捗状況が分かる。

 ここでは検索機能を作ることになったので、開発チームはツール上の「提案済み」から「準備完了」にアイテムをドラッグ&ドロップして開発側の意思決定を示す。ドロップしたタスクをクリックすると詳細が出てくる。その中にリンクがあり、そこからGitのリポジトリであるBitbucketのブランチを作成する画面に遷移する。そこでJIRA Softwareが管理しているユニークなIDが自動的に入ったブランチを作成する。

 この作業を受けて、カンバンのステータスも遷移している。注目したいのは、ブランチが作成されたことが確認できることだ。この時点で何も作業をしていないのにも関わらず、「この開発者は開発の意志がある」ということが分かる。さらに作業してコミットすると、カンバンボードに項目が増えることで、他のメンバーへの通知になる。

 開発が終わると、コードレビューを依頼するため、プルリクエストを出す。この時点でメンバーは、どういう課題があり、どの要件を開発しているのか分かる。またCIの仕組みで、勝手に自動ビルドされている。ここまで材料が揃った上でのコードレビューになる。全員が承認するなど条件が整えばマージ、さらにステージング環境に自動デプロイする設定にすることも可能だ。

 JIRA Softwareをチームの中心に据えると、チームで共有すべき情報が俯瞰でき、Git操作やプルリクエストなどの開発作業もクリックするだけで実行できる。そして、それらの情報は自動的に収集されるため、チームは常に正しい情報に触れていることができるわけだ。現在プロダクションで動いているものを更新すると、そこに差分が発生する。どういう機能が取り込まれるのか、バグが修正されるのか、差分で見られると状況を把握しやすい。

 ここに、チームのコミュニケーションを担うチャットツールのHipChatを活用する。様々な開発ツールからの通知を受け取り、迅速に把握して作業につなげるだけではなく、ChatOpsをより実践的に遂行する仕組みも紹介された。今実装しているのはクラウド版のBitbucketだけなのだが、通知だとタイムラインを流れてしまいがちな重要な情報を、チャットツール内にステイする機能を用意した。これにより、プルリクエストの見逃しを防ぐとともに、最短距離でアクションを起こせるようになる。

HipChatを利用したChatOpsの例
HipChatを利用したChatOpsの例

 長沢氏は「ツールが進化しているので、企画、計画、開発、ビルド、デプロイという流れが非常にやりやすくなっている」と語る。ツールを多用する際のポイントは、各ツールが連携できるかだ。「作業の流れに沿ってツール間で、裏でうまくやってくれるかに注目し、ツールの選定をしたい」と長沢氏。

バックログ駆動
バックログ駆動

 今回のデモで紹介された流れを長沢氏は「価値の流れ」と呼んでいる。それを行う上でのポイントが3つある。「バックログ駆動」「情報Hub」「作業のシフトチェンジ」だ。

 バックログは、次の意思決定のベースになる非常に重要なポイントだ。テクノロジー側にいる人もいない人も、開発者も企画担当者も運用担当者も関わってくることで、様々なアイデアが出てくる。「バックログの状況を見ていれば今の状況が分かるし、次に何をしなければいけないのかが分かる」(長沢氏)

 二番目の「情報Hub」は長沢氏オリジナルの言葉になる。開発に限らず、仕事は成果物に紐付いている。ところが成果物が散在していたり、アップデートが激しかったり、粒度の違いがあったりすると、それらを追うのは大変だ。そこで間に「情報Hub」という触媒を入れることにより、整理し、捉えることができるようになる。

 最後は「作業のシフトチェンジ」だ。開発者による開発作業を例に出すと、既存のコードを変え、コミットしてからチームメンバーに報告をするのが一般的な作業の流れだ。それから作業内容を説明し、コードレビューしているようでは、今の時代が求めているスピード感が出ない。この流れでは、作業しているかどうかは、終わるまで当事者しか分からないからだ。

 そこでやり方の順番を変える。コードに手を加えるなどのアクションをした時点で情報Hubに記録し、メンバーはその状況を確認できるようにする。作業を記録し、タスクだけでなく成果物も含めて情報Hubで把握できれば、企画、開発、運用の人すべてが、大体の状況が分かる。テクノロジーが分からない人の場合、ソースコードだけではお手上げだが、バックログに紐づいたタスクであればついていける(上述したデモのストーリーがまさにそれを実践していたのである)。

 すると、今まで孤立無援だった開発者は、色々な人からフォローを受けるようになる。情報がダッシュボードやカンバンのような形で見えていれば、正しく俯瞰して見られるし、個々の情報も把握できる。プラスしてHipChatのChatOpsの仕組みを使い、チームが迅速に意志決定するなど、コラボレーションしていく。

ソフトウェアの知見をビジネスに生かし、ビジネスをサービス化する

 セッション後半のテーマは「ソフトウェア駆動ビジネス」だ。ここで長沢氏が紹介した言葉は「Software is teaching the world」。ソフトウェアが世界を教導する、という意味だ。

 長沢氏は「ソフトウェア開発という仕事は、もっとも複雑な業務と言える。開発で出てきたナレッジは、世界中のビジネスシーンに生かせる」と語る。「価値の流れ」で出てきたポイントを、ビジネス寄りの表現に当てはめると、バックログ駆動は「やることの交通整理」、情報Hubは「情報収集の交通整理」、作業のシフトチェンジは「やり方の交通整理」ということができる。

 要は「人・作業・成果物」の交通整理だ。たとえば顧客や営業同士のやり取りには様々なものがあるが、業務の現場では大体、情報が残らない。また、それぞれの頭の中にしかない情報も多い。

 それをどのように解決するのか。長沢氏は「一般的には、とにかくナレッジを軸にする。ファイル共有の仕組みを持つ。そこに正式で正確な情報を入れるとされている」と言う。ただ、自分が持っている情報が正確であることに自信がある人はほとんどいないため、場所を作っても情報が載らない。もしくは作って、蓄積して、咀嚼して、寝かせて、それから勇気を振り絞ってアップするのだが、誰も見てくれない。情報が遅いからだ。

 そこで情報Hubを使い、ミーティングの議事録などに、必要な人がアクセスできるようにする。議事録があると、誰が参加していたか、誰に知ってもらいたいか、ミーティングの目的、そこでの依頼の結果が分かる。

 例えば、ミーティング直後に議事録がメール添付で送られてきても、添付ファイルを開かないことも多いが、チャットで展開されると目に止まりやすくなる。ドキュメントを横串で刺して見れば、やるべきことの中で、やったこと、やっていないことなどのアクションアイテムも気軽に見ることができる。同様に他の人に依頼したアクションへの反応も確認できる。また検索に引っかかり、思わぬ収穫を得られることもある。議事録を取ったあとに入った情報で、アップデートすることもできる。

 これまで紹介したように、ソフトウェア開発で行ってきたことがビジネスのシーンで活かせるが、とはいえまだ成熟はしていない。「ビジネスシーンは多様化しているため、情報Hub、チャットといった基本的な仕組みをベースにお客様に応じたソリューションを作る必要がある。これができるのは開発者だけ。このようなソフトウェア開発のシーンがこれから出てくるだろう」と長沢氏は予言する。

 アトラシアンでも2015年10月より、JIRAを3つの製品構成にして、ビジネス向けタスク管理ツール「JIRA Core」を提供している。これは、ソフトウェア開発のように複雑なプロジェクトではなくても、タスクフォースを作ったり、プロセスを管理して承認の仕組みを作ったりといったところに特化したJIRAである。今後、カンバンボードも搭載予定だ。

協調のための情報整理
協調のための情報整理

 ソフトウェア開発もビジネスも、どちらも同じ仕組みで複雑さに対応することができる。変化が大きく、仮説で動く必要があり、情報の正確性は選別しなければならない。そんな状況下では、チームの力を活かすことが重要だ。「チームが使うインフラは、ソフトウェア開発もビジネスも同じものを使うことができる」と長沢氏。

 実際に働く人が働きやすいしくみをつくるところにも、ソフトウェア開発者の知恵が生きてくる。例えば「JIRA SoftwareとJIRA Coreを連携させることで、お互いの間にあった壁を取り払うこともできる。そのプラットフォーム上にお客様に応じたソリューションを構築できるのも開発者だ」と長沢氏。

 ビジネス現場の知的創造プロセスについて、長沢氏は「SECIモデル」を引き合いに出しつつ、次のように述べた。例えば、ビジネス現場では「課題やいいアイデアを思いついた時に、誰に伝えればいいか分からない」といった問題が発生する。これまで述べたような仕組みを作ることにより、ふわっとした情報を上手く見せることができる。その仕組みを使うことで、「誰に伝えればいいか」といったことを自分で探し出せるようになる。これがビジネス現場のサービス化だ。サービスがいくつかメニュー化されて、自分がやらなくてはならないことを適切に選べるような仕組みができている。さらに発展すると、色々な問題を自己解決できるセルフサービスモデルになるというわけだ。

 最後に長沢氏は「どんどん新しい、イノベーティブなソフトウェアを作ってほしい。さらにテクノロジーのハックだけでなく、ビジネスもハックしていただきたい」と呼びかけ、セッションを閉じた。

お問い合わせ

 アトラシアン株式会社

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5