放射状

勉強のメモ。

社内の開発環境を一新したわけですよ

忙殺されているうちに気が付けば北国の短い夏は終わっているわけです。


以上、一か月以上放置した言い訳です。(一行)
lispとかF#とか半分忘れかけてる…けど、もう少しでSICPの問題1.11の記事が書けるから待って!

開発環境

なんか最近、社内の開発環境がトレンディーじゃない気がする…なんかおいて行かれてる感がする…やだ…「まだsubversion|csv使ってるの?! プークスクス」なんて状態になるのが一番やだ…かっこわるい…。
だって余所の会社に「弊社はこんなに今時ですよ! 今時なかっこいい開発環境で効率的にやってますよ!」自慢したいですもんね。
具体的に言ってしまうと、同じ職業やってる弟や友人に自慢できる環境で常にありたい。(超私的要因)(モチベーション源なんてこんなものでいいんですよ)

改善前
  • タスク管理はTodoist for Businessでやっている。 でも見積時間と実作業時間を記録しておけるわけではないから、いまいちふりかえり(反省)に活かしにくい。あとバグ管理も何となくここにつっこんでるけど、なんか違うんじゃないかなあとは思う。
  • バージョン管理はローカルサーバ上のgit。しかし、ろくにルールを定めずに使い始めたため、みんなmasterにpushしやがる。他に何かのシステムと連動させているわけではないので、コードレビューが全くされていない。
  • 社内チャットはYammer。デスクトップアプリがただの通知アプリになってからはかなりカスい。
  • 技術共有はWiki。書き込みは牛歩だが、意外と閲覧はされている。
制約条件
  • 無料に勝るものはない
  • どうしても課金が必要だったらまあ話せない会社ではないけど正直めんどくさい
いろいろ試してみる
  • github → ああーいいなあー、プルリでコードレビューも捗るし、お金持ちの会社っぽくgithub enterpriseとか使えたらさぞかっこいいだろうなあー → 値段を見る → 見なかったことにする。 あとやっぱり、いくらprivateリポジトリでもソースコードを外部に出すのは会社の許可がおそらく出ない。
  • Slack → すばらし! 軽い! いろいろ連携できる! なんでYammerなんか使ってたんだろう! 無課金でも全然使い物になるし!
  • Trello → TodoistのSlack連携が残念すぎる(IFTTTを経由しないとできない)ので、代わりに使えないかな、と試してみる。が、今日のタスクをプロジェクト(ボード)をまたいで把握できない・繰り返しタスクが登録できない時点で論外。
  • Qiita → 情報共有にいいんだろうなあ…あっお高い無理
  • gitlab → これをローカルサーバにインストールして使うのが妥当な落としどころか。
改善後

gitlab(バージョン管理・情報共有・バグ管理・コードレビュー) + Slack(社内チャット) + Todoist for Business(タスク管理)という組み合わせになりました。gitlabがローカルサーバにある関係上、どうしてもツールの連携に問題があるけれど、まああとは運用でどうにかしてみる方針。

運用ルール例)

  • gitの運用ルールを徹底:gitlabのメンバの権限設定でmasterにpushやマージできる人員を制限できるので、ある程度そのあたりのルールを強制できる。あとはpushされるとSlackに通知がくる(ローカルのgitlabからでもwebhookでslackに通知できるんですな。べんり)ので、おかしなことをしてるとすぐにコラー! って怒れる。マージリクエストでコードレビューも捗る。はず。
  • Todoist:ほかのサービスとの連携がなあ…いまいちなんだよなあ…IFTTTの機能もしょぼいしなあ…。と、不満点は多々あれどGTDツールとしては最高なんですよね。このサービスのお蔭で紙の手帳を捨てられたし。見積と経過時間に関しては、タスクメモに書いておいてそれをAPIで引っ張ってこようかなあ、とかいろいろ考え中。Slackへはタスク追加のときだけIFTTT経由で通知するようにしています(しょぼい)。githubのissueとの連携はできるのに、gitlabとはできないのが結構痛い。やっぱりいつかgithab使いたいなあ…。
  • Slack:なんでもっと早くに出会わなかったんでしょうなあ…。IFTTTを弄ったり、HubotをHerokuに入れて遊んだりして、完全なるおもちゃ。

という感じです。まだ使い始めたばかりなので、不満点など洗い出せていませんが、結構快適なので元の環境に戻ることはないでしょうな。