~introduction~ (序論)
BOXENはMacの環境自動作成ツールである。
今回は導入した実績をもとに
以下の3点を共有させていただきたい。
- BOXENやった目的
- BOXENやって幸せ♡
- こんなはずじゃなかった
~Subject~ (本題)
BOXEN入れた目的
- 開発環境を共有すること
- 開発者間で同じ環境を得ること
- 新規参画者、新規プロジェクトの環境の自動ウォームアップ
よく皆さんが書かれているような目的だと思う。個人的には、会社と家で合わせて3つMacがあるので、どのMacでも同じ環境であるのは嬉しい。(Windowsの頃からそういうことは思ってて、Windowsの場合の同じ手段を知らない。)
Yes!BOXENやって幸せ♡
ほぼ同じ3つのMac
個人で利用するMacが3つあって、それがほぼ同じ環境になること。
「あれ入れて、これ入れて」って考える必要が無くなった。当然、完璧ではないのだが。
暗黙知から形式知へ
簡単にいうと設定が保存できたことが嬉しい。難しくいうと、暗黙知を形式知に変えることができたこと。Cheff、Puppet、Ansible、Dockerなどに代表されるような構成管理が得意とする、環境(インフラ)のコード化ができたことは大きなメリットだと思う。
形式知化することの習慣化と手順の確定
自分のお気に入りの環境設定を今までどのようにバックアップしてきたかというと結構バラバラだったし、基本的にはメモベースだった。バックアップという考え方よりは作る方法を記載することで同じ環境を作るわけだから
ほんとに便利と思うのはSublime TextのPackage管理
SublimeTextのPackage Controlでインストールってとても簡単で便利ですよね。だけど、何をインストールしたかって覚えてないし、また同じものをインストールするって面倒。これをテキストで管理できるのは素晴らしい。逆に入れ過ぎて何がどの機能なのかがわからなくなってますが・・。
No!こんなはずじゃなかった
- 本当に細かい設定はできない(頑張ればできるけど、そこまで頑張ってやる意味あるのか?と思えてくる)
- 本来の目的を完全に達成するのには遠い
- 完全な構築にはならないので壊してまた作る、って気分にはならない
~Conclusion~ (結論)
Boxenは開発環境のみであれば、良い要素をいっぱい持っているが、
PCがビジネスツールとして存在しており、簡単な例だとメールの設定など、個人に依存する項目があるので労力や目的を考慮するとその多様性に対応できない。
- 「ツールよりも対話を」とアジャイル開発宣言にもあるように、BOXENを使っても対話による形式知化が必要だということ。
- 環境構築自動化による削減はあまり見込めないこと
- 「BOXEN使えば環境構築何もしなくて良い」ができるのは、個人のみで利用する場合に実現しやすい(が、大変なので現実的ではない。)
(あとがき)
自分はサーバーサイドの人間だが、今までほとんどWindowsOS上で開発をやってきたのでMacの場合いろいろノウハウ教えて欲しい状況。
Macのほうがものすごく便利なので、組織全体でMacに乗り換えるとかいう場合など一気に環境が整うし、一度に情報交換ができる。
実際、開発環境の場合は情報の共有よりも実際に便利なツールやアプリだったりする。(環境構築作業に問題が多い場合は別だろうが現実的には少ない。)この辺りがBOXENの有効性に関してモヤモヤしてしまう一因でもありそうだ、と思う。dotfilesのように全て設定ファイルで網羅できるようになれば、そのファイルを取得して戻すっていうことができそう。でもそれってバックアップと同じなんだよなぁ。