![スクリーンショット_2020-01-21_1](https://assets.st-note.com/production/uploads/images/18195731/rectangle_large_type_2_ca4505beb38e922f9bf22091ca83bac8.png?width=1200)
チーム開発が技術向上において圧倒的有利な理由
訪問ありがとうございます。WEBエンジニアの桝谷です。
本日は、チーム開発が技術向上において圧倒的有利な理由というテーマで記事を書いていこうと思います。
1. よくある勘違い
SNSをみていると、「エンジニアを目指していて、将来はフリーランスでフルリモートでゴリゴリ開発していきたい」と言った目標を持たれている方を時々見かけます。その目標はとても良いことだと思うのですが、目標を達成する上で知っておくべきは、「フリーランスエンジニアでフルリモートで働いているキラキラした人には必ず土台となる下積み時代がある」ということです。下積み時代とは、どこかの会社に所属し、利益を求めてチームで開発する。という経験があることを指します。誰でも最初は未経験であり、誰でも最初はプログラミングスキルが低いです。そして独学と仕事での経験には大きな差があります。自分は独学だけでのし上がってきたという人は非常に稀で、もしそういう方がいたとしても基礎に偏りが出てしまいます。
2. SI業界をヒントに
IT業界の事前リサーチが済んでいる人であればあるほどSIerでは働きたくないという人が多いです。SIerは確かに体制が古く生産性も低いですが「ITエンジニアとしての基礎を身に着ける」というただ一点においては他の業界より優れていると私は思います。それは新規開発のプロジェクトをこなした回数が他業界より圧倒的に多く、年功序列、終身雇用がまだ一般的で、新卒で未経験のエンジニアを会社の利益のために一人前にするというノウハウの蓄積ができており、一度失敗しても別のプロジェクトを1個増やせば取り戻せるため「挑戦させる」ことができるからです。プロジェクトごとにメンバーが変わり、仕様が変わり、技術は変わらない。これはWeb業界ではありえないことです。だからこそ、基礎からじっくりと叩きこんでいくという他業界ではできないことが実現できています。未経験やプロジェクトに新人や未経験のプログラマーが参加すると、挑戦させてくれます。そしてチームリーダーは過去に何度も経験してきたノウハウから、「このレベルならこの機能を作らせる、どこがわからなかったらどこの知識が足りていない、この機能が実装できればここはクリアしているから次はこの機能を作らせる。わからなければこういう質問をさせる。質問の仕方はこういう風にすれば効率が良いと学ばせる。」というPDCAサイクルをプログラマーの意識外で実践してくれており、それに必死に食らいついていけば、必然的に基礎が固まり、エンジニアとして一番大切な「わからないをわかるようにする技術」と「わからないことを解決する技術」が身に付くというわけです。
3. チーム開発が技術向上に圧倒的に有利な理由
タイトルの内容ですが、チーム開発が技術向上に圧倒的に有利な理由は「自分がわからなかったことを過去にわからなくて解決してきた人が周りに必ずいるから」と「利益のためにその人が学ぶべき一番効率的に学べる道筋を用意できるから」が答えになります。
私は現在、Web系サービスを開発・運営していますが、そのチーム内のエンジニアは現在私一人です。外注先に質問すれば答えを得ることができますが、ソースコードの深い内容部分の質問だと膨大な時間がかかってしまいます。質問というのは「質問相手が明確に回答できるように簡潔にまとめる」が常識となりますので、ある答えを得るためにこの質問をして、その質問をするための前段階としてこの知識が必要だから質問をする。その質問の前段階もわからないから、質問するという、質問をするための質問をするという、膨大な点での質問を重ねることになり、技術向上においてとても効率が悪いということを身を持って体感しました。これなら、サービスの仕様を理解しなければならない勤務先で学ぶより、学ぶに適したサービスを独学で作って勉強した方が早いのではないかと感じるほどです。
これが同じプロジェクトを共有したチーム開発であれば、ソースコードの深い部分の質問でも、過去に遭遇したエンジニアやそれに近い内容で悩んだエンジニアであれば、ある程度汲み取って情報の共有をすることが可能となり、圧倒的に効率的となります。
そもそも、チームで開発しているのであれば、社長でない限り自分より上位、管理する立場の人がいて、少ならからず業務範囲はかぶっているはずです。その上位の人はプロジェクトやサービスを成功させるために、その下についている人たちの技術レベルがあがることを望んでいます。上にいるということは下の人たちがぶつかるであろう壁が自分が通ってきた道であるため、その壁の突破方法も分かります。その上で、指示を出していくことになるので、下の人たちは必然的にベストプラクティスを得られるというわけです。
4. 最後に
最近私が感じた一人で開発することの効率の悪さについて記事にしてみました。私の印象では、現在Web業界でバリバリ活躍されている方の元SIer比率は結構高いのではないかと思っています。基礎は重要ですね。未経験で独学で学んでいる人は、例え会社で働かずとも、自分より少し実力が上の人を見つけてお願いして、一緒に何か作ってみるという勉強方法をおすすめします。
最後まで読んでくださりありがとうございます。
Twitterのフォローもお願いします!
https://twitter.com/gh_e_mstnkzm
この記事が気に入ったらサポートをしてみませんか?