Slide 1

Slide 1 text

開発効率を上げる!
 攻めのドキュメンテーション
 2019/08/24
 株式会社ソニックガーデン
  業務ハッカー 田中 一紀


Slide 2

Slide 2 text

はじめに
 ドキュメンテーション
 システムの内容などを他の人にわかるように詳しく説明し た文書、書類を作ること
 
 ドキュメント
 文書、書類のこと


Slide 3

Slide 3 text

本日の内容
 ● 自己紹介
 ● 納品のない受託開発とは
 ● 意思疎通について
 ● ドキュメンテーションについて
 ● ケーススタディ
 ● まとめ


Slide 4

Slide 4 text

自己紹介
 ● 出身地:千葉
 ● 4年前に北海道札幌に移住
 ● エンジニア歴:二十数年
 ● 首都圏を中心に大小様々なプロジェクトに参画
 ● 2年前にソニックガーデンに入社
 ● 趣味:旅
 ○ 昨冬に仕事しながら車でオーストラリアを一周


Slide 5

Slide 5 text

オーストラリアを車で一周


Slide 6

Slide 6 text

ソニックガーデンについて
 ● 2009年社内ベンチャーとして創業
 ● 某大手SIからスピンオフ
 ● 納品のない受託開発
 ● オフィスなし、全員リモートワーク
 ● 受賞歴
 ○ 第19回テレワーク推進賞「特別賞」 
 ○ 第3回ホワイト企業アワード イクボス部門賞」 
 ○ 「働きがいのある会社ランキング」ベストカンパニー賞 


Slide 7

Slide 7 text

納品のない受託開発とは
 月額定額・顧問・成果
 クラウド ツール


Slide 8

Slide 8 text

納品のない受託開発とは
 開発プロセス
 デ モ 
 開発
 決 定 
 ソフトウェア
 定例打合せ
 タスク
 1週間〜
 2週間
 ・振り返り
 ・要件整理
 ・優先度
 少しづつ機能を UPDATEしていく


Slide 9

Slide 9 text

納品のない受託開発とは
 端的に言うと、
 ○ 定期的に打合せして相談
 ○ 少しずつ作りながら確認
 ○ できたものを振り返って改善
 意思疎通がとても重要


Slide 10

Slide 10 text

意思疎通の手段
 意思疎通を行うには・・
 ○ 対面の会話、打合せ
 ○ メール、チャット
 いろいろと課題や問題がある


Slide 11

Slide 11 text

意思疎通の手段
 たとえば打合せ
 ○ 打合せ日程がなかなか合わない
 ○ 議論が発散して決まらない、時間が長い
 ○ 人により言葉の認識が違う
 とにかく時間がかかる


Slide 12

Slide 12 text

意思疎通の手段
 じゃあメールやチャット?
 ○ 大量のメッセージに埋もれる、見逃す
 ○ 意図が伝わらず何度も送る
 ○ 誤送信の発生
 情報伝達の効率が悪い


Slide 13

Slide 13 text

意思疎通の手段
 ○ なるべく効率良く楽に伝えたい
 ○ 簡素な表現で分かりやすく伝えたい
 ○ 認識の齟齬を極力減らしたい
 ドキュメントを用いた意思疎通


Slide 14

Slide 14 text

意思疎通の手段
 ○ 時間を共有せずに情報共有できる
 ○ 論点が明確になる
 ○ 理解までの時間を短縮できる
 打合せの時間を大幅に短縮できる
 ドキュメントの利点


Slide 15

Slide 15 text

意思疎通の手段
 ○ 皆が同じ情報にアクセス
 ○ 表現の工夫で理解度アップ
 ○ 図式や形式を用いた標準化
 ドキュメントの利点
 認識の齟齬を極力減らす


Slide 16

Slide 16 text

ドキュメンテーションの具体例
 ● 文章 → テキストツール
 ● 表 → スプレッドシート
 ● 概要図 → ポンチ絵
 ● 図 → フロー図、UML図
 ドキュメントの表現方法


Slide 17

Slide 17 text

ドキュメンテーションの具体例
 様々な状況に応じて表現を使い分ける
 
 ドキュメントの表現方法


Slide 18

Slide 18 text

ドキュメンテーションの具体例
 テキストツール
 ● 会話内容の記録
 ● 要点の記録
 
 注意点
 ○ 必要な情報に限定
 ○ 簡潔に
 


Slide 19

Slide 19 text

ドキュメンテーションの具体例
 スプレッドシート
 ● 表作成に特化
 ● 比較する場合に有効
 
 注意点
 ○ 二次元を超える表 現は控える
 ○ 項番を入れる
 


Slide 20

Slide 20 text

ドキュメンテーションの具体例
 ポンチ絵
 ● 全体像の表現
 ● 全体の関連を表現
 
 注意点
 ○ 図形のルール化
 ○ 関係性を明示
 


Slide 21

Slide 21 text

ドキュメンテーションの具体例
 フロー図
 ● アクターの関連性
 ● 処理の流れを表現
 
 注意点
 ○ 時系列を意識
 


Slide 22

Slide 22 text

ドキュメンテーションの具体例
 UML
 ● 実装レベルの表現
 
 注意点
 ○ 読み手に知識必要
 ○ 技術者同士の認識 合わせが最適
 


Slide 23

Slide 23 text

ドキュメンテーションの具体例
 受注業務における複数のアクターの関係性を分 かりやすく表現したい
 ケーススタディ1


Slide 24

Slide 24 text

ドキュメンテーションの具体例
 業務フロー
 使用ツール:Gyomy
 https://www.gyomy.com/


Slide 25

Slide 25 text

ドキュメンテーションの具体例
 構想している受注システムの全体構成を表した い
 ケーススタディ2


Slide 26

Slide 26 text

ドキュメンテーションの具体例
 ポンチ絵
 使用ツール
 Google Slides


Slide 27

Slide 27 text

ドキュメンテーションの具体例
 導入を検討するプリンターのメリット・デメリットを 比較したい
 ケーススタディ3


Slide 28

Slide 28 text

ドキュメンテーションの具体例
 表・マトリクス
 XX-BBB XX-AAA XX-CCC XX-DDD XX-EEE 使用ツール
 Google Sheets


Slide 29

Slide 29 text

ドキュメンテーションの具体例
 システムの管理者・利用者がそれぞれシステム をどう利用するのかまとめたい
 ケーススタディ4


Slide 30

Slide 30 text

ドキュメンテーションの具体例
 UML(ユースケース図)
 使用ツール:Draw.io
 https://www.draw.io/


Slide 31

Slide 31 text

ドキュメンテーションの具体例
 顧客情報と受注データの関係性をお客さんに提 示して相談したい
 ケーススタディ5


Slide 32

Slide 32 text

ドキュメンテーションの具体例
 ER図
 使用ツール:Draw.io
 https://www.draw.io/


Slide 33

Slide 33 text

アジャイルソフトウェア開発宣言
 プロセスやツールよりも個人と対話を、
 包括的なドキュメントよりも動くソフトウェアを、
 契約交渉よりも顧客との協調を、
 計画に従うことよりも変化への対応を、
 
 価値とする。すなわち、左記のことがらに価値があることを
 認めながらも、私たちは右記のことがらにより価値をおく。
 (抜粋)


Slide 34

Slide 34 text

まとめ
  納品のない受託開発 ≒ アジャイル開発
 ○ 最良のやり方を模索
 ○ 結果的にアジャイル開発に近づいた


Slide 35

Slide 35 text

まとめ
 アジャイル=ドキュメントは作らない?
 ○ 全く作らない訳ではない
 ■ 仕様書 ← 作らない
 ■ コミュニケーションの一手段
 ■ ソースコードもドキュメント


Slide 36

Slide 36 text

まとめ
 ● メンバー間の共通認識を得る
 ● 書き手自らの考えを整理する
 ● 議論のたたき台にする
 ドキュメントを作る目的
 議論を引き出す


Slide 37

Slide 37 text

まとめ
 ● 時間や場所に縛られない
 ● 標準化が容易
 ● 記録として残る
 ドキュメントを作ることの利点
 時間の効率化
 認識の齟齬防止


Slide 38

Slide 38 text

まとめ
 ● 情報量を適切にする 
 ● 読み手に対する敷居を下げる
 ● 落とし所を明確にする
 ドキュメント作成での心がけ


Slide 39

Slide 39 text

まとめ
 ドキュメントはコミュニケーションの潤滑剤
 形式張らずに自由にドキュメントを作成すべき
 みなさんも積極的にドキュメントを作成してコミュニ ケーションを楽にしましょう!!


Slide 40

Slide 40 text

ご清聴ありがとうございました