1. yimajo

    No comment

    yimajo
Changes in body
Source | HTML | Preview
@@ -1,55 +1,59 @@
自分が他社のiOSアプリ開発者と話す時にいつも同じことを聞いていたのでそれをまとめておく
- バージョン管理システムは何を使っているか
- ホスティングサービスは何を使っているか
- プロジェクト管理ツールは何を使っているか
- コードレビューはどのように行っているか
- ブランチの運用はどのようにやっているか
- Storyboardやプロジェクトファイルなどでコンフリクトが起こらないように工夫しているか
## バージョン管理システムは何を使っているか
Xcode標準のバージョン管理システムはgitのため聞く必要もないことだけど、例えばそこであえてsvnを使っているのであればそれには何かしら外部要因があるはずなのでそれを確認したいところ。
また、ホスティングサービスとしてGitHubを使っているのか、Bitbucketなのかというのも話として知っておきたい。よくある「GitHub Enterpriseが高い/安い」などの話題で開発運用への予算について決裁がおりやすいなどの解釈ができる。他の新しくて素晴らしいツールやホスティングサービスを社内に導入したい時には決裁で嫌な苦労することは少ないと思える。
これと同時にプロジェクトの管理ツールなどについても聞いておきたい。
### コードレビューをどのように行っているか
コードレビューをどのようなやり方で運用しているかというのも聞きたい。
大抵、自分の得意分野でもなくパターン数が多く複雑な処理の場合のコードレビューは面倒で、時間を取られるため時間がもったいなく感じ、自分の作業を進めたいという気持ちになると思う。
そういう気持ちにならないようにするために、どのような工夫をしているのか、していないのかというのも聞くとためになるし、開発工数として計上しているかどうかなど開発フロー全体のことが聞き出しやすい。
## ブランチの運用はどのようにやっているか
バージョン管理システムでのブランチ運用は経験とその会社のルールがよく反映されている。
具体的な参考例として下記のエンジニアブログの記事が知りたい内容になる
LINE iOSアプリ開発についてのご紹介
http://developers.linecorp.com/blog/?p=2921
特徴を箇条書きにすると
- バージョンごとのmasterがある(バージョンごとにデプロイ可能なものを積む)
+ - 次の次のバージョンで実装など先の計画に対して実装をすすめるリソースがあるからっぽい
- リリースされたら上位のバージョンのブランチにマージして消していく
- 元々はgit-flowを元にして変化していった
-
これとは逆の極端な例としては、GHEを使っていてもmasterブランチしか使っていない、などがあればその開発スタイルの改善の必要性を感じない鈍さがまかり通っても問題ないのかもしれないし、もしくは問題意識が低いのではないかと感じてしまう。
+
+ちなみに、自分もgit-flowを元にすることはあるが、LINEが次の次のバージョンでの実装予定の計画を立ててバージョンごとのmasterを用意しているのは自分の環境には当てはまらないために違ったものになっている。
+
+
## Storyboardやプロジェクトファイルなどでコンフリクトが起こらないように工夫しているか
StoryboardやプロジェクトファイルはXMLファイルの仕様が公開されておらず、手動でのマージが厳しいのでコンフリクトしないような工夫をしていると思う。その工夫があれば教えて欲しい。
# まとめ
自分としては開発や会社全体のことを聞いても抽象的な質問になってしまうので、質問に答えやすいように具体的で細かなことを聞いて、全体に繋がっていければと思う。