実務未経験な僕のフリーランスエンジニアとしての感想とチーム開発の感想

どうもこんばんは!うっちー(@_MasUchida)です。

こちらの記事でもまとめたのですが、

ランサーズを始めて早1ヶ月。その驚くべき成果とは?実現するための策教えます!

2019-01-30

副収入を得るために、エンジニアを目指しランサーズで活動をしていたのですが、
つい先日Web開発案件を受注し、初案件についても無事納品に成功しました!

そんな僕は幾つかの初めてを卒業しました!

初めて経験したコト
  • フリーランスエンジニアとして開発をすること
  • 他人が書いたソースを読んで書き直すということ
  • 一人だけではなく複数名のチームでの開発をすること

これらの体験を綴っていこうと思います。

この記事では以下のような方に助力できればと思っています。

読者ターゲット
  • フリーランスエンジニアをなりたい方
  • チーム開発をやってみたい方
  • 副業収入を増やしたい方

フリーランスエンジニアとして活動してみて思ったこと

まず感想としては「とても面白かった」です。

やってみて思ったことは、フリーランスエンジニアというものは、何もハードルが高いものではないということです。

正直僕自身も実際にやってみるまでは、

  • フリーランスエンジニアはバリバリにスキルがあってこそ成立する
  • 要求されることのレベルも高く、自分なんかにはできない
  • ふつう、仕事のかたわらになんてできっこない

って考えていましたが、すべて誤解でした

バリバリのスキルを求めている案件がフリーランス案件のサイトには多いですし、
Twitterとかで有名な人たちは揃ってスキルが高いですから、そう思っちゃうんですけど。

実際はそれが全てなのではなく、幅広いレベル層が世の中には求められていることを知りました。

文系・実務未経験だった僕ですが、継続して次案件もご紹介頂けたので、
「自分でも大丈夫かな?」と思う皆さんでも、きっとこなせます!と断言します。

ただ一つ、これだけは大事だと思うことがありますが、それは
開発という作業を楽しめるかどうか」です。

開発を楽しめる方は、エンジニアとして成長できると思います。
今独学をしている方の中でも本当に楽しい!と思えている方は、是非エンジニアとしての世界に飛び込んでほしいと思います!

チーム開発をやってみて思ったこと

これまた楽しかったというのが結論なんですが、
ソロ開発とチーム開発の両方をやってみて感じたことをまとめていきます。

僕は今まで独学で勉強するのみで、実務の経験はもちろんないし、
なんだったら共同での開発すらやったことがありませんでした。

もちろんそのことはちゃんと事前の顔合わせの際にお伝えしていましたので、
クライアント様も気を使ってくれた点はあったのかもしれませんが、
少なくとも今回の場合、さほど苦労する点はありませんでした。

これまた僕が勘違いしていた点があるのですが、

チーム開発では一つのシステムをみんなで一斉に作っていく

という勘違いです。

冷静に考えれば、そんなことはしないだろうと今では思い至るのですが、
当時の僕はこんなふうに考えていました。笑

皆さんもこんな風に考えちゃうかは分かりませんが、
実態の真実としては、こうです。

チーム開発ではシステムを構成する一つ一つの機能の
それぞれをみんなが担当し、一斉に作っていく

ということでした。

例えばAmazonとかのECサイトを例にあげて説明すると、
Amazonには色々な機能がついています。

Amazonの機能
  • ユーザー登録機能
  • 商品登録機能(販売者向け)
  • カート機能(商品購入)
  • 決済機能(支払い)
  • オススメ機能
  • …etc…

などとあくまで一例ですが、ザッとこのくらいの機能があります。

これらの機能を個別に担当し作っていくというのが正解なんですね。

ただ、機能としては別でも実働としてはセットなものもあるので、
そういったものを担当した際は、進捗にかなり気を使うことにはなると思います。

上の例でいえば、カート機能と決済機能は、機能として別物ですが、
カートにある商品を決済する以外の流れはない、かつ、コアな機能でもあると思うので、
この辺りは丁寧にしっかり仕上げないと、大変なことになるかもしれませんね。

とはいっても、名高い方ならまだしも、僕クラスのフリーランスには、
こういったコアな機能はなかなか任されないと思うので、
そこはあまり心配いらないとも思います。

チーム開発の流れ

初体験だったチーム開発の感想は上記の通りですが、
作業の流れとしては、こんな感じの流れでした。

  1. Slackのチームに参加し案件概要や作業工数の見積もりのやり取り
  2. 工数見積と作業報酬について改めて意見をすり合わせ
  3. 作業を進めていく、不明点は確認しつつ
  4. 実装できた!ってなったらGitにPush & プルリクエスト
  5. テスト&レビュー 場合によってはフィードバックを受ける
  6. 以後、④と⑤を繰り返し、OKとなったら完了!

これは会社によって多種多様なものだと思いますが、僕みたいな社外の人間を取り入れている場合、
ほぼ間違いなくSlackなどのチャットツールは導入されていると思います。

基本的にはSlack上でのやり取りになるので、返信などのやり取りは
迅速に対応してあげるとクライアントとしても安心しやすい
と思います。

そして一人でもそうですが複数人でももちろん、Gitなどのバージョン管理ツールを活用されていると思うので、
そこからソースをダウンロードして、自分の担当する部分の開発を進めていきます。

もちろんバグは出しまくると思うので、解決しつつ、どうしても無理だと思ったら
クライアントにも頼りましょう!

クライアントからしたら一人で全部できるのが理想でしょうが、
僕ぐらいのレベルを活用するからには、時には質問が飛んでくることは覚悟していると思います。
(実際にゴリゴリ開発していたら「解決できないバグや不明点あれば教えてくださいね!」とか言ってもらいました。)

ひたすら開発を続け、幾度となくバグを乗り越えてついに実装できた!となったときには、
Gitに自分が作ったソースを納品します。
(これをPushとかプルリクと言います。)

そのソースをクライアントに確認してもらい、
実際に動くか?
コードは読みやすく作られているか?(後で機能追加などしやすいように)
などなどの観点からテストやレビューが行われます。

その後で適宜フィードバックとして「ここをこうしてほしい」などの要望が返ってきます。

しばしコレを繰り返し、ついに完成する!というわけですね。

ちなみに僕がやったのは、既存機能のリプレイス(機能を保持して書き換える的な)だったのですが、
既存のコードがどういった機能を持っているのかを解析し、同等の機能を保持して書き換える必要がありました。

チーム開発をやってみて、まとめ

いやー本当に楽しかったです。

もともと楽しそう!って興味もあったので、
実際にやってみて楽しかったので、ある種の安心感みたいのを感じています。

どれもこれも一人でやってるときにはわからなかったことでした。

Gitもまともに使ってこなかったので、そこもドキドキでしたし。
(クライアントさんのソースに万が一があったらどうしよう…みたいなドキドキがあったんです。笑)

依頼されたのが初めて作る機能のものだったので、
こんなの作れるか??おぉん??みたいな不安だらけでした。

それでも今思うのは、やはり一歩踏み出して良かったということです。

運が良かったのは間違いないとは思っています。

クライアントも大変心優しく、実務未経験な僕に対して
こと親切に、丁寧に接してくれています。

しかしここは、一歩踏み出した自分を褒めることにします。笑

皆さんも、強い不安があることかと思いますが、
一歩踏み出した自分のその先にあるものは、きっと良いものです。

少しの勇気と少しの思い切りで、理想を目指していきましょう。

関連記事

Webプログラミングでの収益化を実現するために活用した学習サイト3選!

2019-02-03

ランサーズを始めて早1ヶ月。その驚くべき成果とは?実現するための策教えます!

2019-01-30

本当に今の仕事に満足していますか?5年後を良くしたいなら今しかありません。

2018-12-08

【年収UP!】ITエンジニアの転職はレバテックキャリアが良い3つの理由とデメリット

2018-11-22

それでは。