- 新卒や未経験で最近プログラマになった人
- 開発タスクにアサインされたが、納期に間に合わない人
- 開発スピードを上げたい人
こんにちは、開発事業部の藏野です。
本記事では、私が開発事業部に配属されてからの半年間で、実装よりも大切だと感じた前準備 3 つを実体験を元に紹介します。
皆さんがプログラマとして就職して、開発タスクをアサインされた時に本記事を読んでいるだけで業務効率が格段に上がると思います。
①プロダクトの仕様を理解する
まず、開発タスクをアサインされた際、実装イメージを持てるようにプロダクトの仕様を理解します。
仕様の理解には以下の 2 ステップが必要です。
この 2 つのステップについて細かく説明していきます。
機能(システムの挙動)の理解
機能の前後関係を意識しながら、アプリケーションがどのような挙動をするか確認します。
ここでの前後関係とは、以下のようなイメージです。
前:ページ内のログインボタンをクリック
機能:ログイン
後:ログイン後のページへ遷移
実装の際には、各ファイルで値の受け渡しが発生することが多いので前後の関係を意識することは重要なことです。
コードからロジックを理解
機能の理解ができたら、機能に対応するコードの意味を理解します。
基本的に最初に任されるタスクは、既にある機能の修正や機能を付け加えるなど、既存コードに書き足していくことがほとんどです。
なので、実装を行う前にコードを理解しておくことや自分以外の人が書いたコードを読むことで、スムーズに実装を行うことができます。
②タスクを細かく分ける
プロダクトの仕様を理解することで開発に必要なインプットはできたので、具体的にどのような順番で何を行うのかをリストアップしていきます。
大きいタスクを細かく分けてリストアップする目的は、2 つあります。
- タスクからどのようなコードを書くべきかイメージを持てる
- 分けたリストを先輩にレビューしてもらえる
タスクからどのようなコードを書くべきかイメージを持てる
プロダクトの仕様を確認したとはいえ、実装経験が少ない新人の頃は、実装したい機能(タスク)だけでは実装をイメージを持つことは難しいです。
皆さんが「お問い合わせフォームを作成する」というタスクにアサインされたと仮定します。これだけを聞いて、すぐにコードを書き始めることができるでしょうか。不可能ではないと思いますが、常に考えながら実装を行うことになると思います。
これを避けるために、お問い合わせフォームを作成する(タスク)を細かく分けていきます。
リストアップする際には、チェックボックスにして実装が完了した際にチェックをつけることで,どこまで完了したか把握しやすいようにします。
※ 画像はイメージです

分けたリストを先輩にレビューしてもらえる
画像のようにリストアップができたら、先輩にレビューを行ってもらいます。ここで、細かいタスクに抜け漏れや誤りが無いかの確認を行いましょう。
もしレビューを行わず、依頼の内容とズレていたりしたらコードを書き直すことになります。
これは時間の無駄ですし精神的にも辛いと思います。この状況を避けるためにもレビューをしてもらうことは必須です。
最初、タスクを細かく分けることは面倒に感じてしまうかもしれませんが、コードを書き直して時間を無駄にするよりかは圧倒的に楽なので、しっかりと行いましょう。
③類似アプリケーションを触る
タスクを細かく分けることで、これまで以上にスムーズに実装を行うこともできますが、アサインされるタスクが少ないと実装経験すら積むことができません。
また、自分でも現在のアプリケーションに必要な機能を考え設計して実装を行っていきたいですよね。案が採用されたら実装経験を積めれますし、採用されなくても設計を行う練習に繋がります。
このような時に有効的なのが、類似アプリケーションを触ってどのような機能がどのような目的で実装されているかを確認することです。
ここでも前後関係を意識してアプリケーションを触ることが重要です。どんなに便利な機能でも、機能にたどり着くまでの導線がないと利用されないですよね。
キカガクでも週に 1 回は開発事業部で新機能案を出す場があります。案を元にディスカッションを行い、より良い機能を考える時間はとても楽しいですし、設計力も身につきます。
最後に
私も初めの頃、開発タスクをアサインされた時には、すぐにコードを書き始めて常に考えながら実装を行っていました。
だからこそ、実装前の準備の大切さをとても実感できています。
株式会社キカガクでは、動画学習プラットフォーム キカガク をはじめとして、これからもユーザ体験を上げるような機能を多く実装予定です。
少しでもキカガクの開発チームに興味を持っていただけた方も興味ない方も、ぜひカジュアルにお話させてください。
参考
副社長&CTO直下!新規サービスの開発を進めるフロントエンドエンジニア募集Wantedly