非技術者がテック企業でプログラミングとか SQL とかを始めることの価値


…を偉そうに書けるような立場でもないのだが、経験談としてどこかに書いてこの話は忘れようと思ったのでここに書く。

ここでいう「テック企業」とは主にインターネットを通じてソフトウェアを提供することで何らかの金銭的価値を生み出す会社を、「非技術者」とはその会社に雇用されている者のうちソフトウェアの設計・開発に直接携わらない従業員を指すものとする。

自分自身の経験

私は元々いわゆるテック企業で経理をやっていて今はプログラミングの仕事をしているのだが、その最初のきっかけになったのは経理の仕事の一環で SQL の勉強をしたことだった。

なぜそうなったかというと、当時会社が運営するサービスで本番 DB(のレプリカ)から会計処理に必要なデータを集めて SQL と PHP で集計しレポートとして出力するシステムがあったのだが、そのシステムが出力する数字を集めて足し引きするとどうも辻褄が合わない…という問題があり、決算を締めるためにシステムの調査が必要になったという理由がある。

それまでほぼ経理しかやってこなかった当時の自分ができる仕事ではなく、データ分析を専門にやってる人やそのシステムを作った人にお願いするべき仕事ではあった。しかし、社内的な事情で短期的に会計の調査に人を割けないという話になり、何やかんやあって周りの支援を受けつつ自分がその仕事をすることになった。

この過程で社内外のたくさんの人にご迷惑をかけてしまった(何なら辞めた後も自分が作った負債が残っている気がする…)が、結果としてサービスを支えるデータ構造やそれがいつどんなタイミングで変化するか、何がどうなると会社の債権債務に影響があるのかをほぼ理解できるようになった。

やる前はあまり理解していなかったのだが、業務を支えるデータに関する知識があって簡単な SQL が扱えると経理の仕事でも役に立つことはある。例えば…

  • 月次決算の推移のうち、サービス内のデータに紐付いている売上や費用をより詳細に分析できる
  • 投資家や経営向けの資料に用いる KPI を自分で取得したり、その変動要因を自分で調査できる
  • 新たなサービスや機能、施策が財務に与える影響を自分で予測できる

SQL がある程度分かるようになるとデータの収集や加工、集計、しかるべき場所への投稿などを自動化したくなり、簡単な Python や JavaScript を書いたり Zapier 等のノーコードツールを使うようになった。

書いていたのは今考えると本当に恥ずかしいプログラムでもう全部捨てたのだが、当時は簡単に業務を自動化できて楽しいという感覚があった。環境としては自分の仕事用 PC や AWS Lambda、Google Apps Script、Zapier(実質的には AWS Lambda)、BigQuery の UDF 等を使っていた。

その後も会計のシステムやそういった簡単なデータ分析に関わるうちにもっと根本から自分の仕事を何とかしたいなと思うようになり、気がついたらプログラマーに転職していた。

周囲の経験

急成長する会社では必ずと言っていいほど採用が遅れるので、逆に考えると個人の成長機会が豊富にあるということになる。

自分と同じような経験をした人は社内の様々な部署にいて、その人達が定期的に集まってデータ分析の過程や結果、業務自動化のやり方を共有する緩やかなコミュニティがあった。

例えばカスタマーサポートをやっている人が問い合わせに対応するだけではなく、積極的にデータを抽出・分析して「どのような人が困っていて問い合わせに発展しそうか」を調べたり、問い合わせの対応や体制を変更したときの効果を検証したり、対応の効率が高いメンバーの傾向について仮説を建ててそれをデータで検証したり…

他にもマーケティングや人事、広報、他にも様々な職種の人がプログラミングや SQL を始めていた。また、自分の業務を自動化する内にソフトウェアエンジニアとして社内転職してしまった人もいた。

プログラミングや SQL をやることの価値

テック企業ではプログラミングや SQL ができると仕事の幅が広がりやすいと思う。自分がそう考える理由を洗い出してみた。

  • 仮説検証サイクルの高速化
    • 多くの会社では仕事の多くは顧客の行動から発生している
    • 日々の仕事の根拠となる顧客の行動を記録したデータを自分で取得・加工できるので、仮説と検証のサイクルを速く回すことができる
  • 社内の他のチームから信頼してもらいやすい
    • 少し勉強すればできそうな仕事をたくさん投げてくる人より、自分で解決しようとする人の方が信頼できる
    • 多くの人に名前を覚えてもらうと、新しい仕事がいろいろ舞い込んでくる
  • 上達の早さ
    • 周囲に専門家(ソフトウェアエンジニア)が沢山いるのでその仕事の様子を見ることで自分がどう行動すべきかの指針になり、完全独学より効率がよい

いろいろ書いたが、自分が働いている会社の商材に詳しくなると仕事の幅が広がる、と言い換えると至極当然のことかもしれない。

注意すべき点など

プログラミングや SQL を始めるにあたって注意すべき点もある。

当たり前のことではあるのだが、サービスの本番環境のアプリケーションやデータベースは絶対に素人が触ってはいけない。そもそも普通は触れないようになっていると思うが…

というのも、それらは顧客の情報を加工・保存して必要に応じて出し入れするという重要なミッションがあって、それを扱う能力がある限られた人が運用することを前提に様々な人が協力して日々仕事をしているわけで、その前提をぶち壊す可能性があるからだ。

例えば自分がソフトウェアエンジニアだったとして、プロ意識を持って作ったシステムが素人に壊されたりデータベースの障害を起こされたらいい気はしない。逆の立場で自分が経理やってたとして、チーム外のよく知らない人に勝手に仕訳入れられたら嫌だし。

逆に言うと、(本番で保存されている個人情報が取り除かれているという前提で)本番と切り分けられたアプリケーションやデータベースの環境があるのなら自由に遊んでもいいということになる。

もう一つ、社外(顧客、メディア、投資家…)に出すデータやアウトプットは必ず社内の専門家にチェックしてもらうというのがある。当たり前のことかもしれないが、誤ったデータを出してしまうと会社の信用に関わるので…

結論

結論としては、プログラミングや SQL ができるとテック企業では様々な新しい機会があるので楽しく仕事ができるよ、ということが言いたかった。

プログラミングに興味があればまず手元でできることをやって、それから同じような考えを持っている人や一緒に仕事をする社内のソフトウェアエンジニアに声をかけてみれば世界が広がっていくと思う。