SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
1
社内の
マニュアルを
Sphinxで
作ってみたIosif Takakura
(@huideyeren)
1
2
はじめに
3
自己紹介
名前:Iosif Takakura
所属:とあるアパレル系の特例子会社
職種:一応エンジニアになりました
レガシーシステムとExcel方眼紙のお守りをしてます
主な技術:C#、JS、Ruby
Pythonは学習中
興味のあること
機械学習
モバイルプログラミング
ソーシャルネットワーク
発達障がい当事者
4
Sphinxとのかかわり
1. すでに退社した某氏による紹介
2. 同人誌を書くのに使ってみた
ただし新刊はRe:VIEWに移行
3. 社内ドキュメントをSphinxで作ってみた
今日はこの話を予定
どう書くか、といった話は少なめ
むしろ技術的負債メインだよ
5
導入編
6
Sphinxで書いたマニュアル
業務マニュアル
技術解説文書
7
業務マニュアルが必要になる背景
HP作成業務でドキュメントが必要だった
1. HP作成にMiddlemanを使った
2. Middleman扱える人の退社が相次ぐ
3. 最低限更新ができるレベルのマニュアルがほしい
4. Sphinxで書いた
Excel方眼紙大嫌い
2次元的な表現(図表・グラフなど)が苦手
レイアウトを決めながら文書を書けないタイプ
文章はそこまで苦手じゃない
ただし長くなる傾向あり
Excelは単一ファイルなので同時編集できない
Sphinxなら分担して書きやすい
8
技術解説文書を残した理由
中身を理解していじれる人が1人になってしまった
想定読者が「この通りに操作すれば更新できる」レベル
だけどこんなんじゃぜんぜんたりない
技術とともにエンジニアとしての心構えを伝えたかった
9
社内環境
勝手にソフトウェアを入れられる環境にない
ただし、社内ネットワークの管理外ならOK
Macは社内ネットワーク管理外
親会社IT部門の管轄下
技術的にはWindowsメイン
結局、独断で導入した
様々な技術レベルの人が混在
社内にはWordやExcelしかできない人も
コマンドライン使えるのはごく少数
Excel方眼紙が跳梁跋扈
勘弁してください
コスト管理はしっかりしている
ただし、余計な工数は割きづらい
10
なぜ業務マニュアルにSphinxを使ったか
HTMLで見やすいドキュメントができる
図表が苦手な私にとって助かる
でもスクリーンショットは必要
レイアウトとコンテンツを分離できるため
MacはIT部門の管轄外
独断で環境を整える場合Macしか選択肢がない
11
文書の作成
内部の構成は分けられるように
includeを多用
toctreeで項目ごとに書いていく
apidoc的なものは一切使ってない
まあRubyだし……
連携できる何かはあるのだろうけど知らなかった
Pandocを使ってMarkdownから変換
素のreST教えるよりよいかな、と
これからのスキルにMarkdownは必須、ということで
余計に書きすぎる癖が炸裂
内容の校正に時間がかかってしまった
12
開発環境
macOS
Python3
Atom
Pandoc
MacTeX
CIとかは使わない
13
執筆者
私
Aさん
2016年度の新人
ITスキルはある方
Java経験あり
ただしSphinxは初めて
UNIX系経験も多いとは言えない
CUIに慣れていない
14
完成後の運用編
15
チームメンバーの変遷
1. 社内でソフトウェア開発に取り組むため私がチームを抜ける
このときAさんに内部の詳細まで教えきれなかった
2. Aさんがさらに新人Bさんに教える
3. そのAさんも開発案件に専従になる
4. Bさんが中心となってプロジェクトの保守を行っている
5. 現在、Bさんは新人Cさんにプロジェクトのことを教えている
ドキュメントの不備が山のように見つかる
6. 別案件に忙殺されて私はドキュメントをメンテナンスできない
16
ドキュメントのメンテナンス
メンテナンスには手間がかかっていた
わざわざMacに行くのが大変
reSTやMarkdownは学習コストがかかる
Sphinx本なんてあるわけない
上司「なぜExcelやパワポで作らないの?」
Excelやパワポなら一応誰でも使える
うまく反論できなかった
余計に書く癖がどんどん文書量を増やしてしまう
ドキュメントのダイエットが必要
結果的にメンテナンスコストが増大
学習コストに割ける工数がなくなってしまった
17
メンテナンスコストがかかると
1. メンテナンスされなくなる
2. 現実と内容の乖離
3. 修正の仕方がわからない
4. 放置されて技術的負債に……
5. 枯れた技術でリプレース!
実際、ドキュメントは素のHTML で書き直されつつあります……
18
ふりかえり
19
教訓
独断での技術の導入はうまくいかない事が多い
組織がボトムアップ的改善を受け入れる余地がないと厳しい
コストや周りの人の技術レベルなども考える必要がある
理解の難しい技術はオーパーツ化し、技術的負債になりやすい
最悪、ドキュメント自体が技術的負債になる
中心メンバーが抜けた後の運用も考える必要がある
特に、知識や技術の伝授をしっかりと
コストについて考えることも忘れずに
楽に書けても学習コストが高いと釣り合わない
それ故に誰でも使えるExcelなどが選択されやすい
20
技術的負債とどう向き合うか
1. わかりやすい技術・構造を選択する
技術レベルに合わない技術は爆死しやすい
かといって枯れすぎた技術を選んでも爆死する
2. 周りの人やマネージャー、経営層に説明できるようにする
ここをうまくやらないと導入はうまくいかない
マネージャーや経営層には数字で説得できる必要がある
特に、工数やコストは非常に重要
さらに、顧客にも説明できるとなおよい
3. 共通の認識を持てるように技術・知識を社内で広める
教え方を常に磨く必要がある
4. 共通認識ができたら技術的負債の解消に向けて動く
個人的には技術的負債と向き合う時期を作りたい
そのためには常にコミュニケーションする事を忘れずに。
21
メンテされやすいドキュメントの作り方
1. 「何で作るか」にこだわってはいけない
ただし、誰でも編集できることは大事
ドキュメント作成者のスキルセットを考えよう
2. 必要最低限のドキュメントだけ作る
3. 定期的にメンテナンスする機会を設ける
4. コミュニケーション、大事!
積極的にコミュニケーションしよう
5. コスト意識を忘れずに
その中には学習コストも含まれる
22
おしまい
ご清聴ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
 

Was ist angesagt? (20)

最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
研究分野をサーベイする
研究分野をサーベイする研究分野をサーベイする
研究分野をサーベイする
 
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
『機械学習による故障予測・異常検知 事例紹介とデータ分析プロジェクト推進ポイント』
『機械学習による故障予測・異常検知 事例紹介とデータ分析プロジェクト推進ポイント』『機械学習による故障予測・異常検知 事例紹介とデータ分析プロジェクト推進ポイント』
『機械学習による故障予測・異常検知 事例紹介とデータ分析プロジェクト推進ポイント』
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
 
データサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたことデータサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたこと
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
 

Ähnlich wie 社内のマニュアルをSphinxで作ってみた

Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpSphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Takeshi Komiya
 
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjpSphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Takeshi Komiya
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
Yoshiki Shibukawa
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
 

Ähnlich wie 社内のマニュアルをSphinxで作ってみた (20)

Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpSphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
 
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjpSphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
 
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
 
Flex入門
Flex入門Flex入門
Flex入門
 
Sphinxの使い方事例
Sphinxの使い方事例Sphinxの使い方事例
Sphinxの使い方事例
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみたSphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
 
React+fluxを導入した話
React+fluxを導入した話React+fluxを導入した話
React+fluxを導入した話
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
 
scala未経験者がフルペアプロで新規事業の開発をしている話
scala未経験者がフルペアプロで新規事業の開発をしている話scala未経験者がフルペアプロで新規事業の開発をしている話
scala未経験者がフルペアプロで新規事業の開発をしている話
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでSphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
 
ひとりsphinx
ひとりsphinxひとりsphinx
ひとりsphinx
 
Zappa で Serverless CMS を作ってみる
Zappa で Serverless CMS を作ってみるZappa で Serverless CMS を作ってみる
Zappa で Serverless CMS を作ってみる
 
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
 
SeeedJP User Group 情報交換会発表資料
SeeedJP User Group 情報交換会発表資料SeeedJP User Group 情報交換会発表資料
SeeedJP User Group 情報交換会発表資料
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
 
Sphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメントSphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメント
 

Mehr von Iosif Takakura

Osuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょうOsuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょう
Iosif Takakura
 

Mehr von Iosif Takakura (11)

取り込んだネガ画像の色を変換する Python スクリプトを書いてみた
取り込んだネガ画像の色を変換する Python スクリプトを書いてみた取り込んだネガ画像の色を変換する Python スクリプトを書いてみた
取り込んだネガ画像の色を変換する Python スクリプトを書いてみた
 
Marp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライドMarp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライド
 
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化する
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化するscikit-image でフィルムスキャナで取り込んだネガ画像をポジ化する
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化する
 
Django 製 CMS Wagtail で Blog を作ってみる
Django 製 CMS Wagtail で Blog を作ってみるDjango 製 CMS Wagtail で Blog を作ってみる
Django 製 CMS Wagtail で Blog を作ってみる
 
Django と Wagtail で作る Headless CMS
Django と Wagtail で作る Headless CMSDjango と Wagtail で作る Headless CMS
Django と Wagtail で作る Headless CMS
 
DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!
 
技術的負債との戦い方
技術的負債との戦い方技術的負債との戦い方
技術的負債との戦い方
 
C#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみたC#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみた
 
Sphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみたSphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみた
 
ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日
 
Osuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょうOsuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょう
 

社内のマニュアルをSphinxで作ってみた