プログラミング未経験からスタートしたサービスの企画開発

はじめに、みなさまのご経歴と現在の業務について教えてください。
飯田さん(以後、敬称略):
飯田と申します。現在新卒3年目で、デジタルプロダクト開発本部のプロジェクトマネージャーを担当しています。入社当初から『ミドルの転職』というサービスの運用やグロースに携わってきました。また2年目に入ってからは『エンゲージ』というサービスで、開発ディレクションも兼任しています。
さらに、デジタルプロダクト開発本部で毎年実施している新卒研修のプロジェクトリーダーを担当し、現在2年目の内藤の代の研修を企画・実施しました。
佐野さん(以後、敬称略):
新卒3年目の佐野と申します。1年目のころは、『タレントアナリティクス』というサービスで開発ディレクターを担当していました。現在は、『Hirehub(ハイヤーハブ)』という、応募者管理ツールの開発ディレクターを担当しています。
内藤さん(以後、敬称略):
新卒2年目の内藤と申します。現在、エンゲージのプロダクト運用の企画管理を担当しています。
具体的には、求人を掲載するまでのフローや、求人の内容に法律違反がないかをチェックする審査業務を担当。いかに低コストでミスのない業務を遂行できるかという視点で、業務効率化を推進しています。
3名とも業務のなかでプログラミングを活用されていると伺っていますが、もともとプログラミングの経験があったのでしょうか?
飯田:
いいえ。まったく経験がなかったですね。入社前まではプログラミングの知識がゼロだったので、入社後の研修や業務を経て習得していきました。
佐野:
僕も同じく経験がありませんでした。
内藤:
僕は、大学が工学部だったので、少しだけプログラミングを学んだ経験がありました。とはいえ、現在業務で活用しているPythonなどの言語は学んだ経験がありませんでした。
ノーコードツールでもプログラミング知識があると活用の幅が拡大!?

内藤さんは学習をされた経験があったものの、飯田さん、佐野さんはまったくの未経験だったのですね!普段の業務では、具体的にどのような場面でプログラミングを活用されているのでしょうか?
飯田:
普段の業務では「Kaizen Platform」や「KARTE」などのツールを活用し、サイトのUI改善施策を回しています。あとは、SQL(※1)もよく活用しますね。KPIの責任者を担当しているので、実際にSQLを書いてサイトのデータを見たり、分析したり、施策を実行しています。
佐野:
僕が業務として担当しているのは、飯田と同じような部分です。サイト改善のためにKaizen Platformを活用してJavaScript(※2)を書いたり、データ抽出の際にSQLを書いたりしています。
KARTEや、Kaizen Platformは、ノーコードでプログラミングスキルがなくても使えるツールだと認識しているのですが、実際にコードを書く場面もあるのですね!
飯田:
ノーコードでプログラミングの知識がなくても活用できるツールではあるのですが、プログラミングスキルがあれば、少しレベルの高いUI改善や業務効率化を実装できる仕組みになっています。
私の場合は、サイト内のボタンの色を変えたり、ポップアップを出したり、バナーを入れたりなどのUI改善を行っていますね。
なるほど。ノーコードツールを活用する場合も、プログラミングスキルがあれば活かせる場面が広がるのですね!内藤さんは普段の業務で、どのようにプログラミングを活用されていますか?
内藤:
僕の場合はPython(※3)を使うことが多いですね。僕が追っているのは、QCDF(※4)の部分なのですが、人為的な作業だと、どうしてもミスが起こってしまったり、コストがかかってしまったりするので、Pythonを使って業務を自動化しています。
あとは、飯田や佐野と同じように、SQLを使ってデータを抽出する場面もありますね。
業務の自動化を担当される場面が多いとのことですが、どのような業務を自動化したのか、具体例があれば教えてください。
内藤:
自己紹介の際、求人の審査業務を対応しているとお話ししましたが、その業務のなかで審査に引っかかる求人をNG登録する作業があるんです。対象となる求人を開いて、NG登録のボタンを押していく作業なのですが、毎日30分ほど時間をかけていて……。その業務をPythonで自動化したことで、かかる時間を5分に短縮できました。
※1 SQL:DBMS(データベース管理システム)上でデータやデータベースを制御するための言語
※2 JavaScript:Webブラウザ上での動作に特化したプログラミング言語
※3 Python:さまざまな場面で活用できるプログラミング言語
※4 QCDF:品質(Quality)、価格(Cost)、納期や入手性(Delivery)、柔軟性(Flexibility)の頭文字をとったもの。開発・生産業務の評価指標の1つ。
基礎学習×実践学習。プログラミングはアウトプットが重要

みなさん業務のなかでプログラミングを活用されていますが、プログラミングスキルを習得するには時間がかかるイメージがあります。どのように学習を進められたのでしょうか?
飯田:
私の場合は、3ヶ月間の研修と業務での実践ベースで学習を深めていきました。研修では、Progateを活用してHTML、CSS、JavaScriptなどを学習し、その学びを活かして最終的には1つのサイトを作成しました。
業務のなかでは、やりたいことがあったときにどうすれば叶えられるのかを考え、そのために必要な技術を身につけるようにしています。Google検索でスキルを習得することもありますし、周囲の同期や上長に技術を教わることもありますね。
内藤:
僕は、教科書ベースの基礎的な勉強と、実践的な勉強を組み合わせて学習を進めました。Progateを用いて基礎的な学びを固めてから、自分のやりたいことを明確にして、実際にコードを書いてみる。実際にコードを書いてみるとエラーが出ることがほとんどなので、エラーの原因を調べながら、知識を増やしていくという流れですね。
基礎学習と実践学習を繰り返すことで、自分の知識やスキルが広がっていったように感じています。
佐野:
僕も内藤と同じような勉強方法で進めましたね。基礎的な部分を固めたあとに、実際に自分で何かを作って、知識を定着させていく。最初は簡単なアプリケーションを作ったのですが、いろいろつまずくポイントがあったので、随時スキルや知識を補足しながら学習を進めていきました。
みなさん基礎学習と実践学習を繰り返されているんですね!実践のなかではエラーが出ることもたくさんあるかと思いますが、学習のモチベーションを維持するコツはありますか?
飯田:
私がおすすめしたいのは、インプットした知識をアウトプットする機会を作ることです。私の場合は、研修でのWebサイト作成が大きなモチベーションに繋がりました。作成する際、本当にたくさんエラーが出ましたが、それを1つ1つ解決していけば、完成には確実に近づきます。また、完成したときの達成感や、やりがいはすごく大きかったです。
小さなことでもいいのでアウトプットの機会を作ると、モチベーションが維持できるんじゃないかなと思います。
佐野:
僕は、2つおすすめの方法があります。1つは最終的な目標を必ず決めること。もう1つは目標に対して周囲の人を巻き込むことです。最終的な目標があると、ゴールまでの道筋が明確になります。また、周囲の人を巻き込むことで、自分の逃げ道を塞ぐといいますか……(笑)。
周囲の人のサポートを得ると、最後までやり切るエネルギーにつながると思うのでおすすめです!
内藤:
僕も、飯田や佐野に同意です。最終的な目標を決めて、インプットした学習は必ずアウトプットすることが、モチベーションを維持するために効果的だと感じます。
プログラミングスキルは業務でもプライベートでも活かせる

プログラミングスキルを学習し、日々の業務で活用するなかで楽しさやメリットを感じる場面はありますか?
飯田:
SQLを書くことで自分が見たいデータを見ることができ、見れたデータを分析して、サービスの改善につなげられることが、とても楽しいです。それがサービスのグロースにつながるとさらに嬉しいですし、SQLのスキルを学んでいてよかったなと思う場面ですね。
あと、シンプルに私個人として考えたときに、IT人材として活躍の場はかなり広がるんじゃないかと思っています。実際にコードを書けることはもちろんですが、知識があるだけでエンジニアとのコミュニケーションに役立つこともあるので、プログラミングを学習するメリットを感じています。
佐野:
プログラミングスキルを業務に活かせるのはもちろんですが、日常での視野が広がった感覚がありますね。普段何気なく見ていたサイトの裏側をイメージできるようになったので、日常生活でも楽しさを感じています。
あとは飯田と同じく、エンジニアとのコミュニケーションが円滑になりました。僕は業務上、エンジニアと会話をする機会が多いんですが、もしプログラミングの知識がなかったら、かなりコミュニケーションコストがかかったんじゃないかなと思いますね。
内藤:
僕はこれまで自動化に触れたことがなかったので、業務を自動化できたとき、「自動化ってこんなにインパクトがあるんだ」と感じました。さまざまな業務に自動化を取り入れることで、ミスが減り、空き時間が増えるなど、目に見えて効果が実感できた場面は楽しかったです!
あとは何かの目的を叶えたいとき、選択肢が増えるのは大きなメリットだと思います。AとBの手段しかなかったところに、新たな選択としてプログラミングの手段が増える。解決できる物事も広がるので、プログラミングを学習してよかったなと思います。
それから、論理的な思考力が鍛えられる点もメリットですね。コードを書いてると正直エラーばかり生じるんですが、どこまでが大丈夫で、どこに原因があって、どう解決していくかという論理的な思考力を養えますし、プログラミング以外の業務やプライベートで物事を考える際も活かせていると感じます。
プログラミングスキルは業務だけでなく、日常生活でも活かせるんですね!プログラミングを活かせる人(技術者)として、今後の目標があれば教えてください。
飯田:
私は、まだスキルが足りない状態なので、もっとスキルを身につけて、磨いていきたいと思っています。最終的にはスラスラとコードを書けるようになりたいですね。その先に、サービスのグロースがあると思っているので、自分のスキルを高めて、サービスや組織のグロースに貢献していきたいです。
佐野:
僕は現在、インフラ方面のスキルを学んでいるのですが、プログラミングのスキルを含め、テクニカルな領域に強いプロダクトマネージャーを目指していきたいです。
内藤:
短期的な目標になりますが、社内にはまだまだDX化できる定型業務がたくさんあるので、それらを見つけ出して、自動化をして、ミスのない体制作りを進めていきたいです。自動化によって空いた時間を活かしながら、サービスのグロースに貢献していきたいなと思っています。