綺麗に死ぬITエンジニア

優秀なITエンジニアへの道は、道具を効率良く使いこなすことから始まる

2015-12-14

私が果たして優秀かと問われれば、あるいはそうでないかもしれませんが。道具を効率良く使いこなすというのは、私の周りで、優秀だと評価されているエンジニアに共通する能力の一つだと思います。

今の時代、便利な道具が揃いまくっている

何か新しいものを作ろうとするとき、人は必ず効率良く作るために、道具を選定します。これは、ITエンジニアに限った話ではありません。画家は自分に合った筆を、大工は自分に合ったカナヅチを、医者は自分に合ったメスを選定することから、すべてが始まります。自分に合っていない、ただ単に会社から買い与えられたというだけの道具を、何も考えずに使っているうちは、作業の効率化ができているとは到底言えないでしょう。

今の時代は、たくさんの便利な道具が既に世に出回っています。

エンジニアのようにコンピューターを使用する仕事であれば、WordやExcelといった文書作成ソフトや表計算ソフトは、今や使えて当たり前です。しかし、本当にWordやExcelが、最も効率的に作業を進められるソフトなのでしょうか。

大人数でドキュメントを作成したい場合、共有フォルダに保存されたWordのファイルをみんなで編集していくのは、バージョン管理がしにくく文書作成以外の作業に時間を取られてしまいます。今は昔とは違い、それを解決するソリューションが、数多く出回っています。そういった製品を使わない手はありません。

1つの製品をとことん使いこなせる能力

このように、仕事上で使える道具に関して様々な調査や試用を繰り返し、業務の本筋以外の無駄なことに時間を使いすぎないようにする努力、すなわち作業を効率化する努力をするということは、業務を遂行していく上で非常に重要なことです。しかしながら、多数の製品を試用していくと、1つの製品に対する調査が、テキトーになりがちです。

例えば、ExcelにはVisual Basic for Applications(VBA)という、プログラミングによりソフトウェアを操作できるインターフェース及びプログラミング言語が用意されています。これはExcelの中でも比較的コアな機能になりますが、これを使いこなせずにExcelの機能を知ったとは言えません。

そこそこ技術を習熟したエンジニアであれば周知の事実だと思いますが、複数のソフトウェア間で連携できるインターフェースを備えたソフトウェアというものは、拡張性が高く、作業効率化という意味では無限の可能性を秘めています。WebアプリでいうところのREST APIなどがそれに該当します。

調査の際には、単に表面上の機能だけでなく、よりコアな機能について調査することが大事であり、その部分を熟知した上で、使える道具であるかどうかを判断するようにしましょう。

シェアウェアは総じてクオリティが高い

ITエンジニアで、道具が主にソフトウェアの場合、フリーソフトを駆使して作業をするエンジニアが多いです。会社に属する以上、費用に対する効果が担保できない等の理由で、初めからフリーソフトの利用を前提として道具を選定することも多いでしょう。

しかしながら、当然のことですが、やはり有料のシェアウェアの方が、作業効率化という点では非常に優れていることが多いです。

例えば、プログラマーが利用する統合開発環境(IDE)の、最も有名なフリーソフトとして、「Eclipse」がまず挙げられるかと思います。しかし、Eclipseは、拡張性こそ高いものの、標準機能だけでは機能的に乏しいことが多く、自分のプロジェクトに合わせた環境を用意するのにある程度の時間がかかります。価格と引き換えに、時間を消費しているようなものです。その複雑さ故、慣れ親しんだテキストエディターに逆戻りする人すら少なくない事態です。

私は、「IntelliJ IDEA」というシェアウェアのIDEを利用しています。パーソナルライセンスで年間1万円ほどの価格ですが、月1000円弱で日々の業務が高効率になると考えれば、かなり安いです。Eclipseに比べ、初めからある程度使えるようになってますし、拡張性も高く、何より動作が軽く、デザインや設定の配置も綺麗です。

phpDocumentorなども設定不要で利用でき、ドキュメントの型が違うと警告を出すなんてこともしてくれます。また、HTMLやJavaScriptなども、標準で対応しています。初期状態で対応していない言語、例えばPythonなどもプラグインをインストールすれば一発です。他にもDBに接続してプログラム内のSQLを評価してくれたり、Gitと連携して簡単にCommitできたり、様々な機能を利用できます。その割に画面はすごくシンプル。使ってみれば、さすがシェアウェア!と実感できるはずです。

毎日使う道具は、職人にとって命です。フリーじゃないとダメなんてケチなこと言っていないで、シェアウェアも視野に検討した方が絶対にいいです。会社員の方は、会社に頼みましょう。ダメなら自費で買いましょう。自分への投資は、必ず自分に返ってきます。

私がWindowsじゃなくてMac(OS X / macOS)を使う理由

私は、知る人ぞ知るMac信者です。Apple信者というよりも、Unix信者という方が近いでしょうか。Windowsも長い間業務で使ってきましたが、やはり業務でプログラミングをする以上、よりUnixに近いOS Xを選択した方が、業務効率化という点でとんでもない効果を生み出します。

Windowsで、例えばPHPの開発をするとなれば、XAMPPをインストールするなり、開発用のLinuxサーバーを立てたりする必要が出てきます。ローカルにWindows用のApacheとPHPをインストールするなんて、互換性のテストを要するようなテスト環境を用意するなんてことは、実務上ありえません。

ところがOS Xでは、ローカルにApacheをインストールして、ユーザーディレクトリーを有効にすれば、簡単にWebサーバーを立ち上げられます。それも、Unix互換の。また、MySQLも同じように立てられますし、Unixコマンドの多くをデフォルトで実行できるため、トラブルシューティングもLinux等のOSと同様の感覚で進められます。(たまにOS X独自の仕様に悩まされたりもしますが)

つまり、何が言いたいかというと、Windowsのように独自のOSの仕様に悩まされることが減るので、時間を無駄にしなくて済み、全体として作業効率が上がるんです。

Webサーバーのシェアの大部分がWindows ServerのIISとかだったら状況も変わったでしょうが、現在のシェアの大部分を占めているのは、LinuxとApacheです(少なくとも私の周りでは)。なのに、開発用のクライアントPCがWindowsって、バカバカしいと思いませんか? 作業効率化の第一歩は、こういうちょっとした疑問を解消しようとする意思から始まると思います。

また、これは好き嫌いになると思いますが、WindowsよりもOS Xの方が使いやすいです。トラックパッドなんて使いこなせるようになったら、もうWindowsには戻れません。それに、なんてったって、動作が軽いです(※当社比によるものです、効果には個人差が出ます)。未だに何も考えずにWindowsを使っているエンジニアは、多分WindowsとOS Xの比較なんてしたことがないか、Windowsに慣れすぎた頭の固いエンジニアのどちらかだと、勝手に思っています。

そこまで言うなら、クライアントもLinuxを使え!

ごめんなさい、そこまでLinuxマニアじゃないです。

まとめ

まとめると、「環境を改善する習慣っつうものは、働く上でとても重要だ!」っていう、ごくごく当たり前のことをエンジニア視点で述べただけです。

それぞれ、自分に合った環境があるというのは、仕事においても同じことです。自分に合わない環境なら転職するのと同じで、自分に合わない道具はさっさと買い替えましょう。幸せな人生は、自分に合った環境構築から始まります。