プログラマ育成に欠かせないコードレビューの文化

 2018.04.25  株式会社システムインテグレータ

株式会社システムインテグレータ 製品企画室 リーダー 横山弘典

4月になり、新入社員が入ってくる時期になりました。当社でも7名の新入社員を迎えることになりました。 フレッシュな彼らを見て、自分が当社に新卒入社した日のことを思い出しました。私の夢は自分の本を書くことです。「本が書けるエンジニアになりたい!」と挨拶したことを覚えています。  

これから当社の新入社員もプログラミングの研修が始まります。今回の記事は、「プログラミングと育成」についてです。

二極化していく日本の技術者の待遇

総務省の平成29年版 情報通信白書によると、情報サービス業の企業数は約3500社あり、その半分以上が受託開発を行う企業となっています。 
 GetImage

元画像URL
http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h29/image/n6105120.png 

受託開発がメインの日本企業では、上流工程を担うシステムエンジニアの方が賃金が高く、下流工程を担うプログラマが低い傾向にあります。  

プログラマとしてスタートして、数年プログラムを書いてから、その後、設計や管理に進んでいくキャリアが求められることが多いようです。  

受託開発では複数の会社から構成される大規模なチームになることがあり、プログラマは外注されることが多いため、賃金が低い傾向にあるのでしょう。 

その一方で、自社製品やサービスを持っている企業の場合、自分たちでプログラムを書きながら継続的に改善していく力が必要です。  

受託開発に比べると少人数で開発を進めるため、プログラミングに加えて、クラウドなどのインフラや、DB、設計など複数の役割が行えるキャリアが求められる傾向にあるように思います。 

「ZOZOTOWN」を運営するスタートトゥディのグループ会社が、天才には年収1000万~1億円、逸材には年収400~1000万円を提示するなど、本当に優秀な技術者の争奪戦が始まっています。日本の技術者の待遇が二極化していると言えます。 

どんなキャリアに進むにしても、プログラムを学ぶことは、すべての仕事の土台であり、技術者として生きていくには避けては通れない道です。

プログラミングスキル判定サービス関連資料

82歳のおばあちゃんでもプログラムは学べる

「プログラマの35歳定年説」という言葉があります。これは、体力の低下や、新しいスキルを学び続けることの難しさ、管理職への昇進などが主な理由として挙げられるようです。 

管理職への昇進はさておき、私は何歳になっても新しいことを学び続けることはできると考えています。  

みなさんは若宮正子さんをご存知でしょうか。iPhoneアプリのhinadanを開発された82歳の現役プログラマです。  

去年の6月にApple社が主催したWWDC(世界開発者会議)で、ティム・クックCEOに「最年長の開発者」として紹介され、世界の注目を集めました。また、今年の2月にはニューヨークの国連本部で「高齢者とデジタル技術」をテーマにした基調講演を行いました。テレビのニュースでも放送されていましたので、ご覧になった方もいらっしゃるかもしれません。 

若宮さんがパソコンを始めたのは還暦を過ぎてから。そして、プログラミング言語のSwiftを学び始めたのは81歳からです。先述のhinadanは、学習後わずか半年でリリースされています。 

若宮さんの原動力は「好奇心」なのだそうです。若宮さんよりも若い私たちが、体力の低下や、新しいスキルを学び続けることの難しさを言い訳に、「プログラマは35歳で定年」というのは早すぎると言えるでしょう。  

ちなみに、私がRubyを学び始めたのは34歳の時です。趣味でRailsチュートリアルを完走したところ、TOPSICチームに異動になり、プログラマとして働いています。

プログラミング環境はブラウザだけで十分 

プログラムを学ぼうと思ったらすぐに始めましょう。昔はライブラリをインストールしたり、開発環境を整えたり、いわゆる環境構築が大変でしたが、今はブラウザがあればすぐ使えるクラウド型の統合開発環境(IDE)が増えてきました。 

例えば、Cloud9はアカウント作成後、ログインすればすぐにプログラムを書くことができます。料金も無料です。私もCloud9を使ってRubyを学びました。自己学習する環境としておすすめです。 

GetImage (1)

元画像URL:https://aws.amazon.com/jp/cloud9/

プログラマ育成の近道は書いたコードをレビューすること

自己学習して、基礎を学んだあとは、書いたプログラムを他の人に見てもらいましょう。  

みなさんの会社では、Githubを使っていますか? 
私たちTOPSICチームでは、プログラムの管理ツールにGithubを使っています。 
機能改善や不具合修正を行った際には、メンバー間で必ずプルリクエストを送信します。 

分が書いたプログラムに対して、第三者から指摘や意見をもらうことは非常に勉強になります。自分でも熟考し、テストをしてからコミットしているはずですが、1人では気づけなかったミスや改善が見つかることが多々あります。 

また、指摘を受けるだけでなく、自分も他の人のプログラムをレビューすることも大切です。 

自分以外の人が書いたプログラムを読むことは自分の成長につながります。ロジックの書き方、アルゴリズムの考え方はプログラマによって癖があります。「自分ならどう書くか?」を意識してプログラムをレビューすることで、より短く、より効率的なロジックにしていくことができます。  

プログラマ育成の近道は、お互いが書いたプログラムをチェックすることです。たとえ、プログラムが書けなくても、プログラムが読めればレビューの指摘はできるはずです。切磋琢磨できる環境にするために、コードレビューの文化を作ることが大切です。

LGTMで楽しくレビューをしよう 

コードレビューが終わったら、マージするタイミングでLGTM画像を貼り付けることが多々あります。 

LGTMとは、「Looks Good To Me」の頭文字を取ったものです。日本語で言うと、「自分的にはOKだよ!」という意味になります。GitHubのオープンソースプロジェクトでよく見かける英語のスラングで、日本でも使われるようになりました。 

good

LGTM画像は、Webサイトやブラウザのプラグインから取得できます。TOPSICチーム内でも使っています。プロジェクトのメンバ―によっては、海外のgifアニメーションを使ったり、アニメのキャラクター画像を使ったり、いろいろ個性が出ます。  

仕事にも遊び心を取り入れて、楽しみながらコードレビューをしましょう!

お互いに紙一重の努力を積み重ねる

最後に、紙一重の努力の必要性についてお話します。プログラマを育成するためには、本人の努力と、周囲の人たちとのコードレビューが必要です。短期間で育成できるような裏技はなく、地道で、小さい努力の積み重ねを必要とします。小さい努力というのは、「Hello World」が表示できたというレベルで問題ありません。たったそれだけの成果かと、バカにする人もいるかもしれません。しかし、小さい努力でも積み重ね続ければ大きな成果につながります。例えば、一般的なコピー用紙1枚の厚みはわずか0.09mmなのだそうです。1枚ではその厚みは目に見えませんが、500枚積み重ねることで4.5cmにもなります。紙一重の積み重ねをどれだけ続けられるかが大切です。 
 pp

どの分野であっても、一流と呼ばれる人たちはオンでもオフでも努力を積み重ね続けています。日本の技術者が二極化していく流れが出てきた中、一流の技術者を目指して、1人ではなく、会社の同僚や周囲の人たちと一緒に切磋琢磨できれば、社員全員が一流の技術者になれるでしょう。(当社もそうありたいと思っています) 

TOPSIC ご説明資料

RECENT POST「コラム」の最新記事


この記事が気に入ったらいいねしよう!