SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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
おしまい
ご清聴ありがとうございました

Mais conteúdo relacionado

Mais procurados

「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
Yoshiki Shibukawa
 

Mais procurados (20)

本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろう
 
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
 
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
 
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 

Semelhante a 社内のマニュアルを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
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
 

Semelhante a 社内のマニュアルを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の環境構築が再現できない問題を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 で手軽に作るドキュメント
 
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
 

Mais de Iosif Takakura

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

Mais de 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が終わったら帰りは警察署に行きましょう
 

Último

Último (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

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