開発体制の整え方 #初期時現場

IT系のシステムエンジニアは、世の中にたくさん増えているが、会社内にまだまだ体制自体が整っていないことが多いです。

ぼく自身もそういった会社でたくさん働いています。

その時に、どういうことをしないといけないと思ったのかを残しておきます。

今回は現場についてです。

想定される状況

ぼくが置かれていた状況ともいえるが、大体、正規のエンジニアひとりか二人なのではないかと思います。

それ以外は、必要に応じて調達がされるようになっています。

この、必要に応じて調達がとても曲者です。

ある程度の経験のある派遣や業務委託が参画してくれるといいのですが、金額の面で、ほぼ経験のない方々が参画されることがしばしばあります。

そうすると、出来上がるものも出来上がりません。

出来上がればいいほうで、出来上がらないこともあります。

また、目の前の金額では、安く上がるのですが、インフラの環境などの管理ができなくなってしまいます。

結果的に小菅どんどん増えるようになってしまいます。

何が必要か

状況的には、保有技術が皆無な状況なため、ベースの技術を決めておくことが良いです。

それをおこなうことで、基本的に使用されるものが、何なのかの把握がしやすくなります。

ほおっておくと、ネットで見たものがどんどん取り込まれ、最終的にどうやって動いているのかすらわからないというものになってしまうこともあります。

具体的にどうするか

ざっくりとですが、二つに分けてみます。

  • インフラ環境
    • 開発環境

      ・インフラ環境

      まず、インフラ環境についてです。

      最近だと、クラウド環境がかなり整ってきています。

      その関連で、自動化もかなり進んでいます。

      インフラに関しては、構築からデプロイまで、作成する段階で、自動化を駆使することで、管理も容易くなります。

      下記のようなツールを駆使できるように、簡単に使用できるようになるレベルまで落とし込んで、用意します。

      AWS クラウドフォーメーション

      GitHub Actions

      ・開発環境

      こちらについては細かく掘り下げていくときりがないのですが、下記のようなものをまず決めてしまいます。

      • 開発言語
      • フレームワーク
      • データベース
      • ナレッジシステム

      個人としては、これらを決めてしまったら、ベースの環境をすぐに使用できるように、Dockerでテンプレートを作成し、GitHubなどに管理しておくのが良いと思っています。

      めんどくさいがやったほうが良い

      エンジニアの人らは、結構、自分のやりたい技術を持っているかなと思います。

      こういった初期のものを構築する際は、コントロールが効くものを選びましょう。

      また、他の技術者が少しずつ増えてきたときに、反発もあるかもしれませんが、ある程度安定して回せるようになるまでは、これらは進めていった方が良いと考えています。