LoginSignup
1
5

More than 3 years have passed since last update.

設計書をMarkdownで作成し、フィードバックループに乗せる

Posted at

概要

以前、業務で設計書を作成する際に行った改善活動をまとめます。
その現場では、設計書をスプレッドシートで作成するという悪習があったため、
設計書をMarkdownで作成するように変更し、gitで管理できるようにしました。
また、その現場の社内用gitlabではplantumlを画像として表示する機能が提供されていなかったため、
jenkinsを使ってplantumlをsvgに変換、Markdownと共に別サーバに転送し、
docsifyというツールでhtmlとして参照しました。

全体の概要図は次の通りです。
overview.jpg

説明

①gitへpush

ローカル環境で編集したMarkdownファイルをgitのリモートリポジトリへpushします。

②pushにhook

①のpushイベントにhookさせてjenkinsのjobを起動させます。
webhookはgitlabの各リポジトリーの設定画面から設定可能です。
https://docs.gitlab.com/ee/user/project/integrations/webhooks.html

③md・puファイル取得

jenkinsのjob内でgitリポジトリーからMarkdownファイルと、
図作成用のpu(plantuml)ファイルをチェックアウトします。

④pu→svg変換

puファイルを画像として参照するために、svgファイルに変換します。
jenkinsのslaveサーバにplantuml.jarを配置し、拡張子がpuのファイルに対して変換処理を実施します。
http://plantuml.com/ja/

⑤docsifyへdeploy

docsifyが動作しているサーバへ、Markdownファイルとsvgファイルをdeployします。
ファイルのdeployはjenkinsのsshプラグインをjob内で利用します。
https://wiki.jenkins.io/display/JENKINS/SSH+plugin

docsifyはmdファイルをお手軽にhtmlとして参照できるツールです。
https://docsify.js.org/#/

⑥参照

レビュアはdocsifyにwebサイトとして公開された設計書を参照します。

⑦フィードバック

編集者はレビュアから指摘事項をフィードバックとして受け取り、
設計書の修正を行います。

フィードバックループ

⑦のフィードバックを得た後に設計書を修正し、gitにpushすることで①~⑦の手順をループさせ、
フィードバックループを用いて設計書を改善していきます。

工夫した点

puファイルの格納フォルダ構成

docsifyではplantumlを画像として認識できないため、
プロジェクトのフォルダ構成を次のようにしました。

ページ名(フォルダ)
 └ ページ名.assets(フォルダ)
   └ ignore(フォルダ)
     └ .pu(ファイル)

ページ名.assetsフォルダの直下にはファイルは配置しないままpushしておき、
jenkinsのjob内の処理でignoreフォルダ内のpuファイルをsvgファイルに変換します。
変換したsvgファイルはページ名.assetsフォルダ直下に配置し、
ignoreフォルダはフォルダごと削除します。

jenkinsのjobの処理後は次のようなフォルダ構成になります。

ページ名(フォルダ)
 └ ページ名.assets(フォルダ)
   └ .svg(ファイル)

こうすることでdeploy時に不要なpuファイルを削除し、svgファイルのみが残るようにしました。
Markdownファイルからは上記のフォルダ構成時のsvgファイルを参照します。

この工夫についてはgitlabのplantuml参照機能が使えれば気にする必要はないので、
さほど重要ではありません。

最後に

今回は設計書をMarkdownで書き、plantumlで作図してhtmlとして公開する方法の1例を紹介しました。
概要でも触れましたが、個人的には設計書をエクセルやスプレッドシートで作成するのは、
"バージョン管理"や"別の人が作った図の編集のしにくさ"から考えるとナンセンスだと思っています。

インフラ構成の自動化として"infrastructure as code"という言葉がありますが、
設計書についても同様に"as code"としてgit管理し、修正や参照のしやすい方式を模索していく風潮が
広まれば良いと思います。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5