継続的に開発フローを見直し、改善の重要性

一つのシステムの開発フローの種類は、多種多様に存在します。

ただ会社に属していると、その組織で決められた開発フローに対して、なんの疑問も抱かずに日々を過ごしてしまいます。
また、もし自分自身が気づいたとしても、組織の開発フローは、周囲の理解と同時にそれに参加する人たちを本気に出来るのかが、鍵となります。
最近、チームの長という立場に立たせてもらって、痛いほど痛感しいる。
これを打破するには、どうするか?

これ、非公開にしたいのだけど、どうするの?

PhabricatorとGitHubの1つの大きな違い

前にGitHubも使ったことないのに、GitHub Enterpriseの勉強会に参加したことがあった。

GitHub Enterpriseを利用する場合、今まで運用していたリポジトリとは別に運用する必要性もあったり、そもそもGitしか選択できない。そんなこんなで、業務で利用したいけど、エンジニア以外の壁は、大きすぎて乗り越えることができない。

はい、そこでPhabricator!

このソフトは、現状の運用を変更せずに導入することが可能なんです。

それを可能にしているのが、GitHubのように内部にリポジトリを持つという設計ではなく、外部のリポジトリをトラッキングするという設計なんです。
しかもレビューの方法が、2つ用意されていて、Differential(pre-push)とAudit(post-push)になっている。

Differential(pre-push)は、用意されているArcというコマンドツールによって、リポジトリにコミットする前にPhabricator上でレビューをして、その後、OKだったら、コミットするというGitHubにpull requestに似ているかなぁと思います。

もう一つのAudit(post-push)は、リポジトリにコミットのメッセージにレビュアーの名前を記載して、コミットするとレビュアーにレビューして!!という通知が飛んで、Phabricator上でレビューができるようになっている。

自社サービスだけを運用しているのであれば、Differential(pre-push)は強力なサポートになりますし、Audit(post-push)は、受託系のサービスや案件にアサインされているエンジニアが1人で、他のエンジニアはまた別の案件にアサインされている場合に役立ちそうです。

今後のPhabricatorのバージョンアップが楽しみです。

Phabricatorを使ってみた

PhabricatorというFacebookのエンジニアがメンテしていて、Facebookの社内でも実際に使っているプロジェクト管理ツールを使用開始した。

http://phabricator.org/

英語で、ソフトウェア開発用語の単語なのか、イマイチ理解できないところがあったが、ここに出ている単語は、どうも海賊の用語ぽい。

バージョン管理ソフトのsvn、git、Mercurialとも連携が可能で、ソースレビューもできる。ただ、ソースレビューをちゃんとやろうとすると、arcというコマンドラインツールを使用する必要性がある。
そうなると、コマンドラインツールを使用していない人がプロジェクトにいると破綻してしまう。ここで、redmineみたいに、コミットメッセージとかで、自動でタスクなどと連携できたらいいのになぁっと思っている。

arc diffのドキュメント
http://www.phabricator.com/docs/phabricator/article/Arcanist_User_Guide_arc_diff.html


あと、良い点は、タスクのフィールドをカスタマイズできる点。
グループによって、必要なフィールドは、異なるので良い。

custom fieldの話
http://www.phabricator.com/docs/phabricator/article/Maniphest_User_Guide_Adding_Custom_Fields.html

ただ、追加したカラムに対して、何かしらの集計やフィルターをかける機能が現在はないらしいが、こんなissueを発見した。
https://github.com/facebook/phabricator/issues/243

つまり、custome fieldにフィルタを設定する機能が既に開発が進んでいるようなので、バージョンアップが楽しみだ。

さらに付け加えると、まだ開発中のベータの機能が設定によっては、使えるのですが、そっちに結構、良いものがあったりしている。一応、自分が良かったものを以下にリストアップしときます。
・Tracking Time(タスクのストップウォッチ機能)
・Design Review(プログラムと同じようにデザインの履歴管理的な機能)

あと、Roadmapのほうの機能に結構、胸熱な機能が控えているので、すげぇ楽しみです。
http://phabricator.org/upcoming/

gitに移行したい

会社で利用しているバージョン管理をsvnからgitに移行したいと最近考えている。

ただ、同僚含め自分も全然、gitを理解していないので、しっかりと理解を深めようと思い、今日から再度gitを学ぶ事にしました。

Rubotoおもしろそうだなぁと。。。

前々から、Rubyを勉強しようとして、なかなか動けていない自分。反省。。。

でもほんの少しずつですが、始めてます(忙しいので、通勤の電車の中だけとか)。

RubyMotionとかきになりつつ、お高いので、何かにたものないかなぁと探していたら、AndroidのネイティブアプリをRubyで作成できるRubodoを発見しました。

今は、開発環境がセットアップしたところ。。。