戻る
メインプログラマ力を高める (2025/09/14)
「メインプログラマはどういう素養を持つべきか」と最近よく考える。
アプリケーションやツール開発において、メインプログラマは、まさに「主要な(メインの)プログラム」の開発を担って、
リリースビルド(実行ファイルの生成)に責任を負い、アプリケーションとしてのクオリティを担保する役割を持つ……と思っている。
メインプログラマは超絶プログラマでなくても良いが、だからといって
凡庸なプログラマであって良いとは思えない。分野ごとの専門性を高めるのではなく、
プログラムやコンピュータの基本を理解し、ユーザーが快適に使えるソフトウェアを提供するために頑張るのが、メインプログラマの役割ではないだろうか。人間性やリベラルアーツ的な素養が求められると言っても良いかもしれない。
1. ソフトウェア、プログラムの基本的な知識
リベラルアーツ的(リベラルアーツに詳しくはないので勝手な解釈だよ!)な素養が求められるとは言え、
ソフトウェア開発やコンピュータサイエンスの基礎を抑えていなければ、そもそもプログラマとしての信頼は得られない。
スタック、ヒープ、スレッド、メモリの確保と管理、基本的なアルゴリズム、最適化と計測……などなど、アプリケーションを
安定的に快適に動作させるための基礎知識は知っておいた方が良い。
どのトピックも、そこまで難しい話ではない。書いたコードがどうコンパイルされ、どのタイミングで、どれくらいの時間で実行されるか、頭の中でイメージできるようになりたい。アセンブラやC/C++程度の、低レイヤーの開発力はもっておきたい。
2. 最低限の美的感覚と、一般的感覚の理解
仕様を自分で考える場合もあるし、誰かの考えた仕様を実現する場合もあるだろう。どちらにせよ、プログラムに落とし込まないといけない細かな動作を
次々と実装する必要がある。
プログラマが2~3名の小規模開発なら、UIもメインプログラマが実装する事になるだろう。ラベルのキャプション、使うべきコントロールの選定、デフォルト値、配置の順番……などなど。
考える事はキリがないので、それを
自分の美的感覚や一般的感覚と照らし合わせ、手戻りなしで進められるようにどんどん実装していく。
感性が普通じゃない、尖ったプログラマは多いと思う。技術的な高みを目指せるプログラマになるほど、そういった傾向は増えていくだろう。メインプログラマは、そうあってはいけない。あくまで、多くの人にとって自然な、最大公約数的なものを提供し続けられる
「普通さ」が求められる。
3. 自責感の強さ
ソフトウェア開発が上手くいっていない時、市場シェアが伸びない時、ユーザーから評価されない時、売れ行きが悪い時、
何が悪いと考えるのだろうか? そんな時に、
自分に何が出来るのか、自分の何が悪かったのか、問えるようになりたい。
「全然結果が出ないけど気にならないし、そんな時は転職すれば良い」と思うような人は、
メインプログラマ、プロダクトオーナーには向かない。ハイレベルな専門家として専門性を高める事に注力するか、傭兵として職を転々するのが向いているだろう。
4. コミュ力、キレない心、エゴサーチ
メインプログラマや、重要な部分の開発を担っているのなら、社内のデザイナーや企画、営業、テストユーザー、社外のユーザーや協力会社、提携企業などとも関わりを持つことも増えるだろう。
そんな他者との関係で、何かしら不快な事や不満があった時。凄腕プログラマっぽく、キレたり、不機嫌になったり、我を通すような素振りを見せて、相手を困惑させるのはやめよう。そんな相手に対して、
平静に話し合いをしたり、有益な情報を提供するのは難しい。そういった態度はソフトウェアの完成度を著しく低下させる。
SNSの時代、エゴサーチもどんどんしよう。上手く行ってない時のエゴサーチは、辛くて仕方ないと思う。それでも続けて、現状を受け入れよう。そこからヒントを得て、少しでも改善に繋げよう。
5. ドッグフードする姿勢
メインプログラマがアプリケーション開発で担保すべきは、安定性、使い勝手、分かりやすさなど、一見すると地味な部分である。この地味な部分に関わる品質は、
ドッグフード(自分で開発したソフトウェアを自分で日常的に使うこと)により研ぎ澄まされていく。
例え些細なことでも問題があれば、大勢のユーザーが報告してくれる。だから自分が使わなくても問題ない……成功しているなら、そんなソフトウェアもあるかもしれない。しかし、それが期待できないのなら、自分が使うしかない。
最近で言えば、FireAlpacaでPNGファイルとして保存する際に、「透過PNG」か「透過なし」を選択する事ができるが、
デフォルトでは常に「透過PNG」が選択されてしまっていた。常に透過PNGでも問題ないんだけど、心情的に「透過なし」をわざわざ選んで保存していた。
そんな微妙なイライラをずっと我慢していたけど、これは改善すべきだと思って、レイヤー1枚で透過ピクセルを含まない時は、デフォルトで「透過なし」を選ぶようにした。こういった細かいところは、なかなかユーザーが指摘してくれない。ドッグフードをする意味はこういうところにあるし、こういう改善は本当によくある。
メインプログラマは常日頃ドッグフードし、気になった瞬間にすぐに修正しよう。
興味のないアプリでドッグフードをするのは難しい。そんな時はメインプログラマを続ける事は諦めよう。後継者を探し終えたら、
裏方に回るのが、ユーザーにとっても幸せだろう。