少し前の話になりますが、2016年2月にサルでもわかるプロジェクト管理入門というサイトを公開しました。
正解のないプロジェクト管理についての解説サイトということもあり、みなさんにどのように受け取られるのか不安だったりもしたのですが、概ね好評価をいただいて胸をなで下ろしています。
サイトの内容や、内容に込めた思いについてはリリース時の記事に書きました。
そこで今回はメイキングとして、サルでもわかるプロジェクト管理入門がどのように作られたのか、主に技術面から書いてみます。
期間とメンバー構成
期間: 約2ヶ月(80人日程度)
砂川 |
エンジニア・ライター |
福田 |
デザイナー・ライター |
縣・中村・藤田 |
相談役 |
ヌーラボ社員全員 |
フィードバック |
プロジェクト全体としては、弊社CTOの縣を含めた相談役とディスカッションしながら、以下の流れで進めていきました。
- 記事の構成を固める
- 記事の執筆とサイトの構築
- フィードバックを受けてブラッシュアップ
- リリース
このプロジェクトの目的と、その為に技術が貢献できること
このプロジェクトは、プロジェクト管理について読者にわかりやすく伝えることが第一の目的でした。
そのためには記事の内容とそれを適切に伝えるサイトデザインが重要です。しかし一つのサイトを作るには細かいマークアップやインフラの調整など、コンテンツ作成以外の作業も多いもの。このプロジェクトでは記事の執筆だけをするメンバーはいません。
コンテンツの作成に集中できる体制を作ることが、目的に対して技術面から最も貢献できることでした。
貢献したこと1: Markdownでマークアップの手間を減らす
まず最初に記事はMarkdown形式で執筆することを決めました。
Markdown形式で執筆をすればHTMLのマークアップに意識を割かれることが少なくなります。また記事内容とスタイルを完全に分離できるので、記事執筆とサイト作成を並行で進められるようになりました。
当初はSphinxやPandocのような既存のドキュメンテーションツールを利用することを検討していたのですが、最終的にはもっと小さなMarkdownエンジンをPHPで開発し、利用することにしました。
左カラムのナビゲーション部分も配置したディレクトリ構成を解析して動的に生成しています。
これにより、記事を書いてファイルを配置していくだけでサイトの大部分のマークアップが完了する環境が整いました。
自前のドキュメンテーションエンジンは弊社藤田が数時間でベースを作ってくれました。すごい。
貢献したこと2: Elastic Beanstalkでフィードバックを多くもらえる環境を作る
インフラ面では、本番・開発環境へのデプロイや公開後の負荷対策の手間を減らすため AWS Elastic Beanstalk (以下EB)を利用してサイトを公開することにしました。
結果、コンソールからコマンドを1つ叩くだけで即デプロイができるようになり、最新の状態のサイトを全社員が常に確認できる環境が整いました。これにより、多くのフィードバックを受けてクオリティを上げていくループを早く回せるようになりました。
またサイト公開直後のピーキーな負荷にも、インスタンス追加からロードバランシングまでやってくれるオートスケーリング機能が勝手に対応してくれました。
EBに関しては年末年始の休みのうちに中村が(誰も出してない)冬休みの宿題と称して環境を整えてくれました。ありがたい。
コンテンツの内容に集中する
先に挙げたような環境を整えた結果、プロジェクト期間の2ヶ月のうち、80%以上の時間をコンテンツの作成に注ぐことができました。
コンテンツの内容だけを考えていられる時間が増えたことで、執筆の前段階である記事の構成固めと、執筆後のブラッシュアップにより多くの時間をあてることができました。このことが特にクオリティアップに寄与したのではないかと考えています。
まとめ
このプロジェクトは技術面でそれほど難しいことをしているわけではありません。しかし「記事の執筆に集中できる環境を作ること」という視点から見れば、プロジェクトに対して技術が充分に貢献をしたと言えるのではないでしょうか。
ヌーラボではプロジェクトに技術で貢献したい!というエンジニアを募集しています。