はじめに
こんにちは!
Classi 株式会社でiOSエンジニアをしている横田です。
先日開催されたiOSDC2021、弊社もスポンサーとして協賛させて頂きました。
当日はメンバー数名も参加してセッションを見て、リアルタイムチャットで感想を共有したり補足し合ったりして、とてもよい時間を過ごすことができました。
今年は2度目のオンライン開催で、運営もパワーアップしとてもスムーズに進行されていて、気持ちよくセッションを見ることが出来ました。運営のみなさまに感謝です!
来年以降はオフラインでの開催になるかもしれませんが、並行してオンラインでの開催もぜひお願いしたいところです。
というのも個人的には、沖縄県出身ということもあり、地方からの参加は旅費交通費のハードルが高いので、地方のエンジニアのためにもぜひご検討頂きたいです。
ただ、運用も例年以上に大変になってしまうと思うので、来年と言わず、将来的に実現してもらえれば嬉しいですね。
今年のiOSDC2021のセッションの内容も非常に有用なセッションが多かったのですが、個人的に印象に残ったのは、リファクタリングやサービスクローズの話、SwiftUIやGraphQLの話です。
iOSDC2021でのアンケートの結果について
弊社は、去年のiOSDC2020からスポンサーとして協賛させて頂いておりますが、今回、参加者のみなさまに向けてアンケートを取らせて頂きました。
参加されたみなさまには運営を通じてメールをお送りさせて頂きましたが、その中に弊社からのアンケートが含まれていますので、まだの方は今からでも遅くないのでぜひご回答頂けると嬉しいです。
既にアンケートにご回答頂いたみなさまについては、ご協力頂き本当にありがとうございました!
アンケートを取らせて頂いた目的としては、さまざまな会社や開発者からの運用の知見を集めて、まとめ記事のような形でご紹介することが出来れば、iOSのコミュニティなどに有益で面白そうな記事になるかなという狙いがありました。
その意味でこのアンケートの回答期限は設けておりません。いつでも構いませんので、ぜひアンケートにご協力いただければと思います。
アンケートはこちら forms.gle
アンケートの結果は以下のような興味深いものになりました。
※複数回答のパーセンテージは、回答者数に対するパーセンテージになります。
5人以下の人数が半数以上という結果が出ました。
GitHubが一番多いという結果になりました。コードレビューがしやすいからでしょうか?
その他の回答の中には、Google DocsやNotionといったツールを使っているという回答もありました。
モックサーバーが簡単に立てられるからでしょうか、Swaggerが多いという結果になりました。
その他の回答の中には、GraphQLを使っているという回答もありました。
Figmaが多いですね。
デザインツールに関連がある記事を見ていると、最近はFigmaを採用してるところがよく見受けられるのですが、思った以上に勢いがあるなと感じました。
その他の中にはZeplinも多く、中には手書きという回答もありました。
ほとんどの回答者がコード品質を高める方法としてSwiftLintを利用しているという回答でした。Dangerも半数いるので、どのように運用されているか参考にしたいところです。
テスト用アプリの配信・テスト実行・AppStoreへのアップロードでCIを活用しているという回答が多いですね。AppStoreの掲載情報更新は、弊社も取り入れたいところではあります。
意外と定期リリースは行っていないところが多いですね。
弊社だと学校単位での導入となるのでアプリのインストール数はコントロールできません。
そのため監視するデータとしてあまり見ることはないのですが、アンケート結果を見るとアプリのインストールを監視するというところは多いですね。
また、AppStoreのレビューは弊社だと非常にたくさんのコメントを頂いていますが、その中でもサービス利用に関する重要なレビューがないかどうかを監視しています。
開発者がQAも行うところが多いですね。QA部門がない会社が多いのかなと推測できそうです。
その他の中には「開発者がおおよそのテスト仕様書を作成し、それに基づいて企画チームがQAを行う」といった意見も見られました。
アンケートの最後に「クオリティの高いモバイルアプリを安定して提供し続けるために開発チームに必要だと思われることがあれば教えてください」という質問をさせて頂きました。
この質問の回答には、以下のようにご意見も頂きました。
- 自動テストを増やしていくことと、テストがちゃんとパスすること、壊れたらすぐに直すをキープし続けること
- チーム内のフラットな関係性、PO, エンジニアのデザイン理解度
- リファクタリング可能な状態を保つこと、コミュニケーションをとりやすい組織になるように努力すること
この質問に対して頂いたご意見をまとめてみると、以下を備えているチームならクオリティの高いiOSアプリを安定して提供できるのではないか?と感じました。
- コミュニケーション
意識や意思の統一や設計などの共通認識を揃えること - 技術力や人材
ユーザーへの価値提供を実現できる技術力や、価値を届けるための自己研鑽を続けることができる人材 - ユーザーファースト
プロダクトがユーザーを幸せにするかどうかを基準にする
iOSDC2021でのアンケートの結果をうけて
今回のiOSDC2021でアンケートを取らせて頂いたのですが、いろいろと弊社の運用改善にも活かせそうなものも多く、あらためてご回答頂いたみなさまには感謝です。
今回、iOSDC2021でのアンケートの結果を受けて、開発者ですぐに導入できそうなものとしてまずはDangerの導入を検討しようと思っています。
理由としては、社内でもコードレビューの質を高めて品質向上を計る取り組みが検討されているので、より効率よくレビューが行えるように機械的な指摘はなるべくDangerに任せたいと思ったからです。
例えば、レビューの際のルールに以下のようなルールがあります。
- PRの説明文にチケットへのリンクを貼る
- 1つのPRに対して変更が多いときは、なるべくPRを分ける
これらに対する指摘は、機械的にDangerで指摘できればよさそうです。
もちろん、Danger のみでコードレビューにおけるすべての問題を解決することはできません。
機械的に判断できる点をDangerにてチェックし、人間の目が必要な観点にフォーカスしてメンバーでコードレビューを行う。それによりコードレビューの質が上がり、ひいてはコード自体の質が上がることを期待し、検証を続けてまいります。
まとめ
今年のiOSDC2021は参加者のみなさまからアンケートを取らせて頂けたこともあり、個人的にも会社的にも、よい学びがありました。
今後は、iOSDC2021で学んだことや得た知識をもって、Classiのアプリの運用に活用させて頂だくことはもちろん、iOSのコミュニティなどへも貢献できるような活動ができればと考えています。