何度か過去の記事内で言及している点ですが、現在日本企業では慢性的なIT人材不足が起きています。
なのでITリテラシーが高い人材……特にプログラミングができるようなエンジニア、ともなれば就職先には困らないでしょう。
しかしながら、問題は就職した後です。
もしあなたが就職したのが非IT系の企業であるならば、エンジニアがあなた一人、という状況も珍しくはありません。
もしくは現在複数人でシステムを支えていたとしても、同僚が別会社に転職していったり新規事業に取られたりで、いつのまにか一人で社内ITを回さなければならなくなった……という事態も考えられます。
今日はそのような状況になってしまった人に向けて、『一人のエンジニアでシステム体制を作るには、どのようなことを日頃から心がけておくべきか』といった点をご紹介します。
なお、もちろんフリーランスや一人親方のエンジニア経営者にとっても有益な内容ですので、そのような方もぜひ御覧ください。
自分の得意なプログラミング言語を1つに絞る
『たくさんの言語に対応できる』というのは、一見すばらしいことに思えるかもしれませんが、実をいえばそこまで評価できる技能ではありません。
なぜならたくさんの言語を薄く平たく知っていることよりも、
一つの言語を極め、その言語についてならあらゆる手法や、ライブラリ・プラグインの知識も持っている……といったほうが、問題解決能力は高いからです。
特に一人エンジニア体制の部署や会社ならば、そのメリットは顕著に現れるでしょう。
もし1つの言語に絞ったならば、先程述べたような知識の問題だけでなく、自分の書いたコードのストックや、環境等をいくらでも流用できる、というメリットがあります。
ただし、絞った言語が汎用性の低い言語では意味がありません。
自分の得意な言語の中から、なるだけ幅広く対応が可能な言語を選んでください。
個人的にはPythonかJavaScriptをおすすめしたいです。
手軽で、あらゆる処理に対応しており、ライブラリも非常に充実しているすばらしい言語だからです。
ツール・スクリプトをバンバン作成する
言語を絞ったならば、次はいかに時短を行えるか考えましょう。
『今後もよく使いそうだ』と思ったコードや、『前に何回か書いたことのある処理だ』という部分については、さっさとツール化してしまいましょう。
『このぐらいなら1から書いた方が早い』という人もいますが、大抵の場合、それは単なる錯覚です。
またシステムに組み込まないとしても、『自分の仕事に必要だ』と思ったツールはどんどん自作してしまいましょう。
例えば命名規則に基づいて、いくつかのファイル名を変えないといけない場合等に、手動でわざわざ変更していないでしょうか?
もしくはTodoリストやプロジェクト管理で、自分の使いやすいものがない……といった場合も、簡単なものであれば自分が一番使いやすいように作ってしまうのがおすすめです。
自動化を最大限活かす
そして時短と言えば自動化です。
一人でやる以上、自動化できるものは何でも自動化するべきです。
特にテスト自動化はぜひ行っていただきたいと思います。
手動より高速でテストできるだけでなく、将来回帰テストを行う際等にも有用です。
単体テスト・機能テスト・総合テストといろいろ種類はありますが、どれも優秀なツールが公開されているので、是非試してみてください。
特に『GitHub Actions』や、オープンソースで公開されている『Jenkins』は、テストだけでなく、ビルドやデプロイも自動化できるのでおすすめです。
早い段階でInfrastructure as Codeを導入する
『Infrastructure as Code(IaC)』は、直訳すると「コードとしてのインフラ」という意味になりますが、
何を指しているかと言えば、OSやミドルウェアの構成・設定をコード化しておくことを言います。
OSの設定、使用するツールやプラグイン・データベース等を、毎回のように手動で行っていませんか?
慣れた作業なので苦にはならないかもしれませんが、それを自動化すれば多くの時間が浮くことでしょう。
そしてこの『Infrastructure as Code』には、更に大きなメリットがあります
それは『自分の設定ミスを疑わなくて良いこと』です。
例えば『昔自分が書いたコードが、新環境では動かない』ことがあったとしましょう。
色々な理由が考えられますが、もし手動で環境のインストール・設定を行ったのであれば、全ての工程でミスを犯していないか、何か手順をすっ飛ばしたのではないか、と疑う必要が出てくるでしょう。それはとても面倒な作業です。
しかしIaCで自動化された部分については、インストールのし忘れや、設定の誤り等の人為的なミスを疑う必要がありません。
問題が発生しても速やかな解決が可能になります。
なお、IaCは何も自分で書く必要はなく、オープンソースや各種クラウド上に便利なツールが用意されています。
ぜひこれらを使いこなして、大幅な効率化を狙ってみてください。
おすすめのInfrastructure as Code(IaC)ツール
オープンソース:Terraform
AWS:CloudFormation
GCP:Cloud Deployment Manager
Azuru:Azure Resource Manager
ChatGPT等のAIを活用する
そしてつい最近、一人でシステムを開発・管理する方に大きな味方ができました。『ChatGPT』です。
これまではどれだけ頭で理解しているコードでも、ストックしていない限り、とにかく書かなければ完成しませんでした。
皆さんよくご存知だと思いますが、なんの面白みもない”ありきたりな”コードを書く時間というのは、ひどく精神力を消耗します。
しかしChatGPTは、そんな”ありきたりな”コードを書くのが大得意です。
エンジニアはChatGPTになんと指示すればいいか考えて、あとは出力されたコードが自分の意図に沿っているか確かめるだけで構いません。
一人エンジニアにとって、これほど心強い味方はいないでしょう。
ちなみにChatGPTは、無料版のGPT-3ではなく、『ChatGPT Plus』を必ず使ってください。
『GPT-4』という最新版が使えるだけでなく、『ChatGPT Plus』には『Code Interpreter』という非常に便利な機能が備わっています。
CSV、XLS等のアップロード・ダウンロードができるだけでなく、Pythonのコード等をそのまま実行して、結果を出力することができるのです。
Pythonも素の状態ではなく、330以上のライブラリがインストールされており、非常に多様な使い方がサポートされています。
『エンジニアの技量は、ChatGPTをいかに使いこなすかで決まる』というのは、現時点では言い過ぎかもしれませんが、そのうちそういう時代になるかもしれません。
とにかく一人エンジニアには『使わない理由がない』ぐらいの便利なツールなので、ぜひ導入してください。
なお、ChatGPTについてはこれまでもいくつか記事を書いています!
Code Interpreter以外にもAPIを使ってみたり、LangFlowというノーコードツールを使ってみたりするならば、非常に世界が広がるでしょう。
ぜひこちらの記事も見ていただき、作業効率の向上を図ってみてください。
ひょっとしたら、1チーム分の働きをあなた1人で行えるかもしれません。
お問合せ&各種リンク
- お問合せ:GoogleForm
- ホームページ:https://libproc.com
- 運営会社:TodoONada株式会社
- Twitter:https://twitter.com/Todoonada_corp
- Instagram:https://www.instagram.com/todoonada_corp/
- Youtube:https://www.youtube.com/@todoonada_corp/
- Tiktok:https://www.tiktok.com/@todoonada_corp
presented by