見出し画像

ネイティブアプリのPLを経験して大事だと思ったこと(初心者向け)

こんにちは、rikuです。
エンジニアとクライマーを彷徨ってる者です。

現在、大手IT企業でSEとして働いています。(俗に言うSler)
今回は、バックエンドエンジニアからネイティブアプリのPLに転向して1年弱が経ったため、その中で得たことををお伝えできればなと思います。

誰に向けて

・ネイティブアプリ(iOS/Android)開発に興味がある方
・PLに興味がある方
・とりあえず読んでみようと思っていただける心優しい方

そもそもPLとは?

PL(プロジェクトリーダー)について、ググると以下が出てきます。

・プロジェクトの実行責任者
・要件定義〜リリースまで一貫して現場管理する人

あまりイメージがわかないですね。。
現場によって役割は異なりますが、私の中では以下と捉えています。

1. プロジェクトのゴールを決めること
2. そのゴールを完遂すること

もう少し具体的な話をします。

1. プロジェクトのゴールを決めること

プロジェクトのゴール(=成功)を定義します。
例えば、2名のエンジニアでXX機能を3ヶ月で開発できれば成功ですね!とクライアントと決めます。(超ざっくりです)
その手段として、スコープ作成やスケジュール作成等を行います。

2. そのゴールを完遂すること

定義したゴールを完遂するために、プロジェクトを推進します。

ちなみに、プロジェクトが全く問題なく進むことはあまりありません。
そして、問題が起きた際はなんでもやります。

障害調査や要件の再定義など。ゴールを再設定することもあります。
そのような乱雑な状態の中で、PLはゴールに向かってタスクの優先度を随時考える。方針を立てていく必要があるなと感じました。
(タスクが肥大してきて、結局何が大事だったんだっけ?となることがしばしば)

前置きが長くなってしまいました・・
それでは本題に入りたいと思います。

初めてのPLで苦労した話

そもそも初めてのPL。そして、バックエンド出身者がネイティブアプリのことをよくわからない状態から始まったため、毎日てんやわんやな日々を過ごしていました。(iOS/Androidの開発は研修でさらっと経験済み)

1年弱が経ち、少しは大切なことが見えてきたのでお伝えしていきます。
ネイティブアプリの開発に携わっている人から見たら当たり前のことかもしれませんが、お付き合いください。

OSアップデート対応

iOSやAndroidのOSアップデートは毎年9月頃に実施されます。
AppleさんとGoogleさんには逆らえないので「今回のアップデートではこの機能が使えなくなるから気をつけてね〜」とさらっと重大なことを言われます。

※リリースの数ヶ月前から、開発者用にベータ版がリリースされるため、それをみて早めに対応します。

OSアップデートと共に自分の頭もアップデートする必要があるため、日々のキャッチアップが大切だなと痛感しました。(エンジニアなら当たり前かもしれませんが、それでも大変。)

また、OSアップデートに伴い下位OSをどこまで担保するかも検討が必要です。
ユーザーのバージョン利用率やOS利用推移等を参考にOSバージョンをどこまで担保するかクライアントと決めることが大切です。
(ここ本当に大事です!全てのバージョンを担保することは現実的に難しいので開発前に話しておくべきです!)

複数の機種端末でアプリを担保

iOSならiPhoneやiPad、AndroidならPixelやGalaxyなど機種端末には様々な種類があります。
そして、これら複数の端末でも正常にアプリが動作するように開発することが必要となります。

ユーザー視点で考えたら、基本的には1機種しか所持していないのであまり意識することはありませんよね。(私もなかったです。)

ここでお伝えしたいことは、先程のOSバージョンの話と同様に機種端末やサイズをどこまで担保するかクライアントと先に決めておきましょうという話です。

サイズは基本的に相対比で開発するため、極端に小さい/大きい端末でなければ表示ズレが起こることは少ないです。

しかし、機種端末に関しては、「iPhoneSEだけ変な挙動が起こる!」、「HUAWEIだけアプリが動かない!」などという話がざらにあります。(今回はあくまで例です。)

また、調査やテストをするために検証端末を確保することが必要です。

「とりあえずどの端末でも動くようにお願いね!」や暗黙知のままにしておくことはあまりおすすめしないです。(クライアント、開発どちらも辛い思いをしてしまいます。)

iOSとAndroidは別OS

当たり前ですが、iOSとAndroidは別OSです。
何を今更と思うかもしれませんが、意外な落とし穴があります。

それは、iOSアプリと全く同じようにAndoridアプリを作って欲しいという要望です。(逆も然り)

できる限り近づけることは可能ですが、全く同じようにをするには限界があります。そのため、各OSで機能(要件)をどのように満たすかを考えることが必要になってきます。

各OSにはそれぞれの強みを生かしたデザインがあります。
ガイドラインがあるため、一度目を通しておくと良いかもしれません。

Apple:Human Interface

Google:Material Design

さいごに

もっとお話したいことがあるのですが、今回は一旦以上です。
今回、慣れないながらも初めてnoteを書いてみました。

きっかけは堤 修一さんのサロンに入り、エンジニアは発信した方が良いんだな〜と思ったからです。とりあえず、やってみよう精神です。

至らぬ点が多々あると思いますが、最後まで読んでいただきありがとうございました!


この記事が気に入ったらサポートをしてみませんか?