アプリ開発はきつい?大変と言われる理由をインタビュー
こんにちは。株式会社ペンタゴンの山本です。
今回の記事では、アプリ開発って大変なの?どんな時にどんなところが大変なのか?という疑問について答えたいと思います。これからアプリ開発を仕事にしたいと思ってる方だったり、エンジニア転職に興味がある方の参考になればと思います。
「よくアプリ開発ってきついよ」とか言われたりします。更には「エンジニアって大変だよ」って言われたりします。具体的にどんなとこがきついのか・大変なのかという点について社員にインタビューしてまとめてみました。
※別の記事で、アプリ開発の魅力だったり、やりがいについて解説したいと思います。
そもそもアプリケーションエンジニアの仕事とは?
まずはアプリケーション作るエンジニア、アプリケーションエンジニアの仕事ってどんなことを具体的にしてるのか紹介できればなと思います。以下で紹介するのは、弊社のいち社員の業務なので、人それぞれ違う部分はあるかもあるかもませんが、 参考にしていただければなと思います。大体入社1年目ぐらいの社員にインタビューしました。
毎日の仕事のルーティーン
- 出社(リモートワークなので在宅)
- バックログ(タスク管理ツール)を確認
- チームの進捗確認・タスク管理
- お客様からの連絡対応
- アプリ仕様・デザインの確認
- プログラムの実装
- テスト・動作確認
- 会議のアジェンダ用意
株式会社Pentagonでは、エンジニアがプレイングマネージャーとして、プロジェクトを管理しています。なので「単にプログラミングをしている」のではなく「プロジェクトを成功させるにはどうしたらよいか」というマインドで業務を行っています。
設計書・ドキュメント作成
以上が毎日のルーティンですが、プロジェクトのフェーズに応じて次のような業務も発生します。
- データベース設計
- 見積もり・見積書作成
- 契約書作成
- 請求書作成
- プロジェクト憲章の作成
先日、APIの設計がめちゃくちゃ重要だよという記事を書きましたが、それと同じでデータベースの設計もアプリの品質に大きな影響を与えます。関連:アプリ開発におけるAPIとは?API設計でアプリの品質の9割が決まる!?
他にも、書類作成関連の業務があります。見積書の作成であれば、「この機能つけるのにいくらかかりますか」「 どれくらい個数かかりますか」っていう質問が挙がってくるので、開発工数の見積もりをしたり、契約書を交わしたりします。
また、プロジェクト検証の作成を行ったりします。プロジェクト検証とは何かと言うと、そのプロジェクトを進める上で、どういう体制で開発するかだったり、どんなところに開発のリスクがあるか、誰がどういう責任を持っていて、こういう条件のもと開発を進めていきますよ、というプロジェクトの羅針盤のようなものになります。
アプリ開発予算の管理
エンジニアの仕事っていうよりか、プロジェクトリーダーの仕事に近いのですが、プロジェクトの予算(お金)が無限にあるわけではないので、「1つのアプリをつくのにこれくらいの金額で開発しなければならない」という設定があるので、その予算の中で開発していくために、 誰にどんな仕事を依頼して、どれだけのコストで開発してもらえば予算内に収まるのか、という管理を行います。
このように当社のアプリケーションエンジニアの仕事は、プログラミングだけ留まりません。
アプリ開発が大変・きついと言われる理由とは?
コミュニケーションが難しい
多くの会社でリモートワークが導入されていると思いますが、 弊社は創業以来ずっとフルリモートでやってきています。私自身も8年くらいフルリモートで働いています。フルリモートなので、話しづらかったりとか、特に新入社員からすると「これ質問してもいいのかな?」といった具合に話しづらかったりするという障壁があったりします。
また、チャットでコミュニケーションを取るので、言葉選びとか気をつけないと、勘違いされたりとかしたりします。そういったフルリモート下での「対面じゃないコミュニケーション」が大変だなと感じることもあるということです。
会社の雰囲気、雰囲気に寄りますが、質問して良いのかわからなくて、そわそわするみたいなのがあるとのことです。
やっぱり新入社員からすると「そんなこともわからないの?と思われないすごく心配で「質問していいのかどうなのかわからない」ということもあります。これはプログラミングやエンジニアだけの話ではないと思いますが「質問したいけど質問して良いのか?」というマインドが働くのが大変っていうところでした。
もちろん当社では社員が話しやすいようにきっかけをつくったり環境整備をしていますが、確かに課題を感じる部分です。
ある程度プログラミングスキルがないと厳しい
わからないことが多くて「何がわからないのかわからない」現象があります。これは、プログラミング初心者は、自分は頑張ってるんだけども、何がわからないかわからないから、質問もうまくできないし、どうしたらいいのかわからないといった状況です。これがアプリ開発でかなり大変な部分かなと思います。
今回インタビューした社員によれば、ペアプロがすごい良かったという風に聞いてます。ペアプロとは、一緒にビデオチャットで画面共有を繋いで、一緒にプログラミングを書いていくことを指します。「自分だったらこういう風に書きますね」というやりとりをリアルタイムで行います。ペアプロをすることで「そうやって考えてプログラミングしていくのか!」といった発見があり成長につながったとのこと。
プログラミングスキルがないと、もちろんアプリ開発は難しいですが、ペアプロでスキルアップするのは良い方法です。
なかなか進捗が出せない
アプリエンジニアは、プログラミング以外にもたくさんやらないといけないことがあります。なので、 コーディングをする際は集中できるまとまった時間を確保する必要があります。そのタイムマネージメントが大変だという話を社員から聞きました。
また、バグが発生した時の修正は、アプリの開発においてとても大変な部分です。自分で開発していて、うまく動かないところがあったり、 誰かが書いたコードがバグっているみたいな時もあったりします。
バグを修正する時に、なかなかバグの原因がわかんないわけですね。そのバグの原因特定に時間がかかります。結構時間が解けます。動かないなあ、なんで動かないんだろうみたいなところを、試行錯誤してどんどん潰しいきます。これに結構時間かかるので、意外と1日中調べてても解決しないみたいなこともあったりするんですよね。そうなると、「あれ?今日自分は1日何してたんだろう?」みたいなことがかあったりして、 頑張ってるんだけど、物事が前に進んでない感じ、がなかなかつらい部分ではありますね。
ユーザーの声を聞きにくい
ユーザーの声を聞きにくいっていう、良いフィードバックが耳に入りづらいという現実があったりします。プログラミングしてるとですね、悪い報告が9割ぐらいですね。「バグっている」「エラーが発生してちゃんと動かない」といったような障害報告の方が多くなりがちです。なかなかユーザーから「このアプリ出会えてよかったです」といった声っていうのが、そんなに聞こえないという問題があったりします。感覚で、障害報告:良い評価 = 9:1 くらいなイメージです。
まとめ
今回は、アプリ開発における大変・つらいポイントについて紹介しました。もちろん、辛いことばかりではありません。次回は、アプリ開発の魅力だったりやりがいについて社員インタビューをもとに記事を書きたいと思います。
この記事がこれからエンジニアになろうとする方に参考になれば幸いです!