こんにちは、 id:yutailang0119 です。
今回は「はてなブックマーク開発チームでのスマートフォンアプリエンジニアの暮らし方」について紹介します。
私の所属の正式名称は「サービスシステム開発本部 第1グループ ブックマークチーム (以下、ブックマークチーム)」です。
現在、ブックマークチームでは「テックリード」としての役割が2人いて、得意な領域としてWebとスマートフォンアプリ (以下、アプリ) に役割を分けています。
私はアプリのテックリードを担っています。
はてなブックマークにおいて、アプリからの利用ユーザー、記事の閲覧、ブックマークはどれも多く、サービスの中でアプリの位置付けは重要なものです。
私たちは、はてなブックマークの利用を支えるアプリの開発に取り組んでいます。
現在のアプリ開発状況とこれから
まずは、直近1年間での開発と現在の状況のサマリーです。
アプリAPI刷新プロジェクト
ブックマークチームでは直近の1年間で、「アプリAPI刷新プロジェクト」を進め、Web APIの定義とiOSアプリでの置き換えを完了しました。
これまでのアプリAPIは一言で表すならば “カオス” な状況となっていました。
サービスの変遷や終了したスピンアウトサービス *1 からの機能統合によってルールが統治されていない状態であったり、エントリー統合の仕様変更に対応するために一時的にクライアント側での対処が必要になったりがあったためです。
これは私がブックマークアプリの開発に携わり始めた当初から解決したかった課題の一つであり、システムリニューアルプロジェクト が完了し、取り組むことができました。
Androidアプリでの新API刷新
現在注力する開発の一つとして、AndroidアプリでのAPI刷新に取り組んでいます。
旧APIを置き換えながら、多重に継承した画面の整理やKotlin Coroutineを取り入れるなど、Androidアプリ開発環境自体のアップデートも進めています。
API層の整理を終えることで、ナビゲーション構造などの大幅なUI変更も含めた機能開発ができるようになります。
その他にも、Androidアプリの開発状況について言及をいただくことがありますが、iOSアプリと比べるとユーザーが期待する機能追加が追いついていない状況です。
今後の開発にご期待ください。
iOSアプリの開発状況
iOSアプリではAPI刷新が完了した恩恵により、閲覧履歴機能 や ホーム画面の「技術・カルチャー」表示 などの開発を行うことができました。
また、iOSアプリにはSwiftUIやCombineといった比較的新しい技術を積極的に取り入れています。
SwiftにおけるConcurrency対応も、WWDC直後から取り組んでおり、すでに準備を整えている段階です。
私がSwiftを好きなこともあり、業界の先頭集団として、開発を進められるようにしています。
ブックマークチームでの暮らし方
次は、はてなブックーマーク全体にスコープを広げて、チーム開発の取り組み方を紹介します。
前述のAndroidアプリでのAPI刷新やその他基盤タスクは進めながらも、ユーザーに向けた開発を止めないため、開発手法やマインドの改善を日々行っています。
ブックマークチームには、Web、アプリのエンジニアに加え、デザイナー、プランナー、カスタマーリレーションなどが所属しています。
基本は上記のメンバーを”One Team”としながら、Web、アプリの2つのスプリントを行なっています。
スクラムによる開発
ブックマークチームではスクラムを採用しています。
組織や開発プロセスに興味を持つエンジニアが以下の責任を持ち、「スクラムマスター」を務めることにしています。
- プロセスとコミュニケーションの側面からアプローチし、チームが筋良くデリバリーを改善し続けることに責任を持つ
- サーバントリーダーとして、チームの自己組織化を促し、土台の仕組みづくりや開発チームが集中できる環境を整える
現在はWeb、アプリにそれぞれ1人ずついます。
このエンジニア主導の基、教科書的なスクラムを開発に取り入れ、読書会などを通じてチーム全員で学びながら、全体の底上げを図っています。
ワーキングアグリーメント
ブックマークチームにはワーキングアグリーメントがあります。
フレキシブルワーク制度 でメンバーの生活が大きく変わっているため、チームとしてのワーキングアグリーメントを明に設定しました。
就業規則などの全社ルールをグランドルールに、それぞれのメンバーの働きやすさを反映したルールにしています。
これを元にメンバーの意見を取り入れながらミーティングを設定、変更したり、チーム開発の方針の決定に役立てています。
例えば、午前中にはなるべくミーティングを設定しないルールになっているので、朝に弱い私も暮らしやすく過ごせています。
それ以外のチーム活動
ブックマークチームでは、デイリースクラムとして昼会を行なっています。
これは前述のワーキングアグリーメントにも載せており、チーム全員が参加します。
昼会では、進捗共有や障害の確認に加えて、 “ひとこと日記” 記入タイムを設けています。
はてなではリモートワークを機に、 “ひとこと日記” という非同期でのコミュニケーション文化が生まれました。
チームでは昼会内で同期的な時間を用意することで、昼会以外では顔を合わせることが少ないメンバーのことを知る機会になっています。
また、教科書的スクラムの一環として始めたスプリントレビューは、自分が関わっていない施策の進捗を知る機会として、とても好評です。
これ以外にもチーム外からビジネス開発本部のメンバーを巻き込んだデザインスプリントを行なったり、ロードマップにアウトカム指標を取り入れたりと新しい試みにチャレンジしながら、はてなブックマークを前進させています。
まずは気軽にお話してみませんか?
はてなブックマークはサービス開始から15周年 を迎えました。
iOS/Android向けのアプリもフルスクラッチやリノベーション を経て、10年続くアプリとなっています。
このエントリーでは複数のトピックについて触れましたが、深くは語れていません。 興味を持たれた方は、ブックマークチームのスマホアプリエンジニアや開発スタッフとこれからの開発について話してみませんか?
はてなブックマークのアプリを一緒に作る仲間は、通年で募集しています!
ご応募お待ちしています!!!
id:yutailang0119
アプリケーションエンジニア。2018年中途入社。スマートフォンアプリ、特にiOSアプリ開発が得意。
Twitter: @yutailang0119
GitHub: yutailang0119
blog: がんばってなんか書く