ITプロマネに必要な技術スキルとキャッチアップ方法とは
はじめに
プロジェクトマネージャーに求められるスキルとは何でしょうか。
パッと思いつくものとしては、コミュニケーション能力や調整力、交渉力なんて言われるものがあるのではないかと思います。
それに加えて、技術開発系のプロジェクトマネージャーだと技術的な知識を求められることもしばしあります。
技術知識が無くても頑張ればマネージメントを完遂することはできるかもしれませんが、お客さんやエンジニアとのコミュニケーションにおいて問題が発生する場面もあるかもしれません。
今回は、モバイルアプリ開発におけるプロマネが持っておきたい技術知識について書いてみようと思います。
アプリ開発ではどのような技術が使われるか
全体
・ソースコード管理 : git
・CI/CD : Jenkins, Bitrise, Circle CIなど
アプリ(iOS)
・言語 : swift, Objective-C
・IDE : Xcode, AppCode
・依存管理 : SPM(Swift package manager), CocoaPods, Carthage
・フレームワーク : CoreFrameworks, UIKit, SwiftUI
アプリ(Android)
・言語 : Kotlin, Java
・IDE : Android Studio, Eclipse
・依存管理 : Gradle
・フレームワーク : Jetpack(AndroidX)
クロスプラットフォーム系(専門外なので簡単に)
・Flutter (Dart)
・React Native (Javascript)
・Cordova (Javascript)
・Unity (C#)
サーバーインフラ
・環境 : AWS, Azureなど(サービスたくさん)
・仮想化 : Docker, Vagrantなど
・構成管理 : Ansible, Chefなど
サーバー
・言語 : PHP, Java, Kotlin, Ruby, Pythonなど
・IDE : いろいろ(Jetbrains製が人気)
・依存管理 : Composer, Gradle, Gemなど
・フレームワーク : Laravel, Spring, Railsなど
・DB : MySQL, PostgreSQLなど
フロントエンド
・言語 : Javascript, Typescriptなど
・IDE : いろいろ(Jetbrains製が人気)
・依存管理 : npm, yarnなど
・フレームワーク : Angular, react, vueなど
その他
・デザイン : Photoshop, Illustrator
・プロトタイプ : XD, Sketch
・リソース管理 : Zeplin, Abstract
・mBaaS系 : Firebase(fireStore, Analytics, Cloud messagingなど)
すいません、他にも大事なのはいろいろあるのですが、本筋を見失いそうなのでここら辺で。
言いたいこととしては、全部の領域をカバーするのはとっても大変って事です。
アプリ1つ作るにも多岐に渡る技術領域が絡んできますし、新しい技術が日々増えていくので、それのキャッチアップも必要になってきます。
では、どうやってこれらの技術の知識をつければ良いでしょうか。
どれか1つでも良いので軸となるものを持つ
さらっと難しいことを言いましたが、アプリ(iOS, Android)、インフラ、サーバー、フロントエンドなど大きいトピックに対して得意とする領域を持ちます。
薄く広く知識を得ようとするとどうしても器用貧乏になりがちなので、1つだけでも良いので得意領域を作って、それをベースとして知識を広げていくと効率が良いです。
これはエンジニアにも言えることなのですが、1つの言語をある程度マスターすると他の言語はマスターした言語との対比でパッと見で何となく理解することができます。
それは一見して別領域に見えるアプリやサーバーでも同じで、構造は大体似ているのです。
開発に使う言語があり、開発環境があり、ライブラリがありパッケージ管理ツールがあります。
例えばiOSでのパッケージ管理ツールにCocoaPodsというものがありますが、AndroidではGradle、PHPではComposerなど(厳密にはそれぞれの歴史などがあるので一括りできないケースがありますが)、同じ役割のものがありますので、名前だけ聞いてもわからなくとも役割が分かればイメージしやすくなるのではないかと思います。
開発経験の全く無い人は大変かと思いますが、興味のある分野を見つけて、個人的な開発をしてみると良いと思います。
最新技術をキャッチアップするにはどうすれば良いか
さて、次に問題になるのが、どうやってキャッチアップするかという事になります。
プロマネをやっているとコードを書く時間もあまり取れなくなりますし、業務に追われてどんどん知識が遅れていってしまいます。
これに関しては自分も絶賛悩み中なのですが、考えられることとしては下記でしょうか。
・勉強会などへの参加
・WWDC, Google I/O, re:Inventなどへの参加(または動画を見る・記事を読む)
・twitterなどのSNSでエンジニアをフォローする
・↑流れてきた情報や記事を斜め読み
・まとめサイトみたいなのでも良き
・会話で知らない単語が出てきたらググる
・個人開発でガチる(業務レベルの開発をする)
最新技術へのアンテナを高くしておかないと、実務であまり関わりが無い状態だと関心が薄くなってしまいます。
個人的にはtwitterで受動的に情報が拾えるようにしておくと楽なのでオススメです。
最低限新しいリリースでこんなことができるようになった!くらいを知っておけば業務で困ることは無いのですが、それを自分で試せないというのがプロマネの辛いところです。(個人開発してないとモチベーションが続かない。。。)
おわりに
自分がエンジニアだった頃は、技術知識のないプロマネとかありえん!と思っていましたが(今でも思っていますが)、実際に実務から離れて時間が経っていくと自分がそういうことを言われるのではと戦々恐々しております。
実務から離れると技術的なトレンドとかにも疎くなりがちですし、常にアンテナ高くしておかないといけないなぁと再認識しました。
最後愚痴っぽくなりましたが、何かオススメの方法とかあれば教えて欲しいです!
この記事が気に入ったらサポートをしてみませんか?