エンジニアが成長したいなら0→1開発がオススメ
こんにちはJUNOです。
私は新卒で自社サービスを運営する会社に就職をし2年ほどエンジニアとして活動してきました。その後Webサイト制作を独学し一時フリーランスを経て、現在は受託開発のスタートアップで働いています。
今回は保守・運用と0→1開発両方の経験を元に、開発力を上げたいなら0→1開発が最強であることを説いていきたいと思います。
0→1開発と保守運用の違い
0→1開発
0→1開発とは新しくサービス(システム)を作ることです。受託開発であればクライアントと、自社サービスであればプロジェクトメンバーと新しく作るサービスについて議論し作り上げていきます。
保守・運用
保守・運用とは、既存にあるサービスやシステムに機能を追加していく作業です。世の中のサービスの大半は保守・運用フェーズでの仕事となります。
保守・運用だけやっていては新しいサービスを作れるようにならない!
私は新卒で入った会社で既存システムの保守運用を担当していました。すでに出来上がっているシステムに機能を追加していくのがメインでした。項目を追加するタスクでも基本的にコピペすればフロントはできますし、いろいろなところに参考になるコードがあるので同じように書けばタスクはこなせます。しかし、いざ0から新しいシステムを開発したいと思っても具体的にどうやってシステムを作っていくのかイメージができませんでした。
当時イメージできなかったことをリストにしてみました。
- 新しくシステムを作るのに何からやればいいかわからない
- CSSもあまり書いたことがない(bootstrapだし、bootstrapもちゃんと理解していない)
- DBのカラム追加の方法がわからない(当時Laravelを使っていましたがmigrationファイルなんて聞いたことすらない)
- そもそもテーブルってどうやってつくるの?(調べればわかるけど..)
- サーバーやドメインってどうなっているの?
今思うと逆に何ができるんだ?と思ってしまいます(笑)
Laravelでいうとルート(web.php)やミドルウェア、リクエストクラスなども聞いたことすらありませんでした。
それくらい既存のシステムの改修というのは知らなくてもできてしまうものなのです。
0→1は開発のすべてを一通り体験できる!
一方で、0→1は上記の開発の基本を一通り知らないと開発ができません。
まず要件を認識し設計をして、DBやルートや画面を1からつくっていかなければいけません。開発が進むに従って必然と身についていきます。
システムが出来上がればテストをし、ドメインをとって最終的にデプロイまで行います。
チームで分業している場合は自分の担当の部分しか経験できないかもしれませんがそれが特になければ自分で行うことができます。また、0から作り上げることによってシステムの仕様を理解できます。システムの仕様を理解している人間はチームに必要な存在として重宝されるでしょう。
開発力を磨くならまずは0からサービスを作れる環境を探そう!
もし、あなたが0からサービスを作ったことがなければそれが経験できる会社や部署に移ったほうがいいかもしれません。
新卒で入った会社でずっと既存システムの改修をしていた私より、サービスのリプレイスプロジェクトにいた1つ下の後輩のほうがいろいろな経験ができていた感じがしました。また、今いる受託会社では私以外全員未経験エンジニアですが全員0→1開発を経験し、当時エンジニア経験2年の私を4ヶ月程度で抜かしている印象です。
それくらい0→1開発を経験するというのは大きいことです。独学で0→1開発をするのも良いのですが、やはり仕事として行うのが一番成長が速いです。
成長したい方はぜひ0→1開発できる環境を見つけることをオススメします。
最近のコメント