正社員として数多くの会社を渡り歩いたのちフリーランスになった2児の父のエンジニアにインタビュー!

正社員としていくつかの会社で働いてもなかなか思うような仕事に巡り合えないということもよくあるでしょう。

今回お話を伺ったRMさんも正社員として数多くの現場を経験し、プロジェクトマネージャーも務めた後でフリーランスのエンジニアに転身されています。

2児の父でもあるRMさんはフリーランスになった後子どもの行事等で仕事の都合をつけやすくなったと感じてらっしゃるようです。

正社員やフリーランスとして経験した大変だった現場の数々とフリーランスになってからの変化、さらにこれからフリーランスのエンジニアを目指す方へのアドバイスを伺いました。

RMさん

サーバよりのフルスタックエンジニア、アーキテクト、マネージャー。高等専門学校の電子工学科を卒業し、プログラミングなどは学生時代に履修されたとのことです。小学生二人の息子さんの父親でもあります。

フリーランスになる前の職業について

キャリアの最初はテストエンジニアだったんですね。

事務局

RMさん

社内の開発エンジニアにお客様からの仕様を伝えたり、顧客に仕様などを説明しているうちに自分で開発した方が早いと思い第2新卒扱いで研修からしてくれるIT会社に転職を決意しました。

新卒で入社した会社では半導体メーカーで品質評価、信頼評価などのテストエンジニアをしていました。2社目で通信系のテスト、負荷試験システムのベンチャー企業でカスタマーサポートエンジニアを務めました。

ただ社内の開発エンジニアにお客様からの仕様を伝えたり、顧客に仕様などを説明しているうちに自分で開発した方が早いと思い第2新卒扱いで研修からしてくれるIT会社に転職を決意。

これまで金融系、Android(電子書籍、カーナビアプリ)音楽配信サイト、業界ニュースサイト新規立ち上げ、B2C、B2Bサービスなど様々な開発現場でプログラマーからプロジェクトマネージャまで割と一通りやってきました。

エンジニアになった時期

エンジニアになり開発業務に携わるようになったのは3社目の2003年です。新人研修後のSIerに派遣されてWebサービスのプログラマーなどもしました。

エンジニアとして仕事をした年数

一番最初の半導体系エンジニアの時も含めれば、エンジニア歴はもう25年目になります。

フリーランスエンジニアって稼げるの?【稼げるロードマップを紹介】

正社員のエンジニアとして働いてた時に経験した現場

正社員としていくつの会社に勤めましたか?

事務局

RMさん

正社員として働いたのは8社です。

1社目 A社

在籍時に30名ほどのメンバーがいました。トランザクション言語を自前で開発し某ベンダと協業で販売、サポートするなどしていたが先細りしていき、Web系や金融系などの派遣で現場に入っていました。

この会社で最初に担当したのはSIerの2次受け、3次受けの現場です。ワンフロアーに50人以上が集まって力押しで作っていて、誰が何しているのか正直分からない感じだったのを覚えています。自分の上司と反りが合わないのもあって4ヶ月で抜けさせてもらいました。

業務内容は不動産会社ポータルサイト 「住宅情報」 の新規立ち上げで開発メンバーは50名ほどでした。私の役割はプログラマーで各入力画面、業務ロジック開発部分をプログラムしていました。

・開発期間 4ヶ月

・OS Windows2000

・言語 Java、SQL、JSP

・DB Oracle

・ミドルウエア JBoss

・フレームワークがT-Struts

次の現場は自社で自社製品のトランザクション言語の製品メンテナンス、機能追加などを担当しました。自社製品の業務では親切な上司に1から勉強し直しさせてもらったり、WinとUnix両方を触ったり普通の開発会社では出来ないようなことを色々とさせてもらってとてもありがたかったです。

業務内容は「構造化トランザクション定義言語システムSTDL」の製品メンテナンスや機能追加でした。SE2名のチームでしたね。私の役割はSEで製品メンテナンスやシステム機能追加それに顧客対応をしました(詳細設計・開発・システム全般動作確認・マニュアル作成)。

・開発期間 4ヶ月

・OS SolarisとWindows2000

・言語 C、COBOL、SQL、awk、bsh、MS-DOSバッチ

・DB Oracle

・ミドルウエア Tuxedo

3つ目の現場は自社製品が先細りしてきたのと他のメンバーが受けていたCOBOL関係の案件が増えてきたことから、コンバータを作る製品開発をしたり、お客さんの所で実際にCOBOLのコンバージョンをする作業などでした。内製でコンバーターを作っていた時は、コンパイラーとかこうやって作るのかと大変ななかでもワクワクして仕事をしていました。逆にお客さんの所で行うCOBOLのマイグレーションの作業はひたすら不毛で苦痛でしたね。

業務内容は「汎用機向けCOBOL言語コンバートプログラム」開発で、開発メンバー3名の小さなチームでした。この業務での役割もシステムエンジニアで、コンバートプログラムの設計、開発、システム動作確認を担当しました。

・開発期間 5ヶ月

・OS UP-UX

・言語 C、awk、bsh、COBOL

この会社での最後の現場はベンダ先への派遣でした。自社製品などが完全に先細りした所で、自社製品のトランザクション言語で使っているミドルウエアの経験から共同開発、販売しているベンダの方に拾ってもらうような形でしたね。

業務内容はオンライン総合証券システムのサーバー開発で8人の開発メンバーがいました。この案件での私の役割はプログラマー兼 サーバアプリケーション開発のサブリーダーです。

・開発期間 1年5ヶ月

・OS Solaris、Linux

・言語 SQL、C

・DB  Oracle

・ミドルウエア Tuxedo

排他制御・共有メモリのユーティリティーライブラリの設計や実装もしましたね。

C言語で金融系システムをやるのか、今どきCVSもないのか、と若干レガシーなところはありました。ただ金融系にしては珍しく残業は殆どなかったり、設計と実装それにテストは相当な人数でレビューしていたり、レガシーなりにしっかりした現場で色々な経験を積ませてもらいました。最終的にサブリーダーとしてマネージメントなども任されエンジニアとして1番経験値を積ませてもたったと思います

振り返ると入社した時は良く分かっていなかったのですが、入社する前くらいに創業者社長が現場を退いて、親戚でSIer出身だった人に代替わりしたばかりでした。この新社長が曲者でいわゆる工数のマス埋めしか出来ない人だったようです。今まで自社ソリューション、自社内開発メインでやっていた会社たっだはずがその場の単価だけ高い短期の炎上案件ばっかり取るようになり、どんどん優秀なエンジニアが辞めていきました。

自社ソリューションも時代の流れについていけずオワコンに。新社長の首切り創業者が現場復帰した時はもう悪い流れを戻せずただのSES会社に成り下がってしまっていました。決算書賞与もでないため、更に人が辞めていくの悪循環でしたね。当時の先輩と5、6年位たまに連絡とったり同期から年賀状来ていたりしていましたが、気づいたらすっかり疎遠に。と言うか気づいたらその会社、なくなっていました。

2社目 C社

約40名ほどの会社でした。バリバリのスタートアップベンチャーでマネージメントと開発両方できる人間が欲しいということだったので転職にふみ切りました。面談の時、面接官で現れたのが学生時代の同級生でお互いビックリでした。面接じゃなくてもはや勧誘でしたね。

と入るまでは良かったんですが…。

この会社でのローカルリスティング広告システムの開発で、開発メンバー5名に協力会社を加えたチーム構成でした。役割はサーバーアプリケーション開発でのSEとサブリーダーで、論理設計・開発・単体・結合テスト・テスト計画書作成や協力会社のマネージメントをしました。

・開発期間 4ヶ月

・OS Linux

・言語 Java、SQL、PHP

・DB MySQL

・ミドルウエア JBoss、Hibernate、EJB3

自分が入社時に会社のメインのシステムの企画、マネージャーがすでに退職、社長はそのソリューションに人任せという状況でした。担当していたマネージャーはネットワークエンジニア上がりで、サーバ設置工事以外ロクに役に立たない人。一番最後にジョインした自分がメインの所を全部巻き取っていました。

あまりに酷くて面接していた同級生が平謝り状態でしたね。結局4ヶ月で嫌になって辞めました。

振り返ると火事場の馬鹿力で高負荷な中大規模処理システムを設計と実装をしたという経験値はつめたものの、二度とあんな目に遭いたくないと思います。話によると自分が辞めて3ヶ月位でアメリカマイクロソフトにいた人が入社して会社の雰囲気など全部変わったようですが、更にその後2年経たずに特許目的でヤフーに買収されたそうです。

カッとならずに歯を食いしばってしがみついていたらワンチャンスあったかもとも思います。会社運がこんなばっかりだなと思うことも。なお、この時に再開した同級生とは会社を辞めた後もたまに会ったり、今もSNSで連絡取り合ったりしています。

3社目 Z社

約60人ほどの会社でした。福井の会社が大阪や東京の他の会社を吸収しながら拠点を増やした感じで、東京本社は15名くらいしかいなためあまり大きな会社感はありませんでした。いわゆる受託開発会社です。

割と細々した仕事の並行していたり、福井や大阪のメンバが頻繁に東京に出張してお客さんと会議していたりやたらと交通費がかかっていた印象ですね。

最初の業務は展示会向けEZアプリ(次世代アドレス帳)開発でした。開発メンバー5名に協力会社を加えたメンバーで、わたしの役割はアプリケーション開発 (実装、単体・結合、テスト不具合対応)のSEです。

・開発期間 7ヶ月

・OS BREW

・言語 C++

某研究所の展示会、実証実験のための案件です。発注側が開発経験0で色々と無茶振りされたり、EZアプリが非公開情報だらけでものすごい大変でしたね。アサインされたのは単純にC言語やってたからと言う理由した。

2件目の案件は音楽配信サイト新規開発でした。開発メンバー8名でサーバアプリケーション開発(顧客折衝、要件定義、設計、実装、単体・結合テスト、保守)のサブリーダーとSEという役割です。

・開発期間 10ヶ月

・OS Linux、Solaris

・言語Java、ActionScript

・フレームワーク Seasar2、FLEX

音楽系会社から音楽配信サービスを立ち上げるという割と珍しい仕事でした。企画立ち上げから入っていましたが、音楽系のお客さんが思いつきで要求を出すのでそれを整理整頓して要件に落とし込むのが大変でしたね。作ってみても後から違うことを言うし、当初SEでリーダーというポジションであまり開発しない予定だったのが納期と開発メンバーの手が足りず自分もガッツリ実装までフルでやる羽目になりました。

この頃、私生活でも大きな変化があったんですよね。

事務局

RMさん

結婚式の準備中だったのですが、妻の妊娠が分かりました。

開発メンバが大阪、お客さんは東京で自分が東京と大阪を新幹線で行ったり来たりホテル住まいしたりしました。更に当時結することになったのですが、結婚式の準備中に妻の妊娠がわかったりして公私ともにてんてこ舞いだったのを覚えています。

3つ目の業務は有料ニュースサイトシステム構築でした。開発メンバー10名のチームでSEとリーダーを務め、 提案、要件定義、DB設計、基本設計に携わりました。

・開発期間 4ヶ月

・OS Linux

・言語 Java

・フレームワーク FatWire、Seasar2

某業界紙がWeb版のサイトをリニューアルするという話で要件詰めているうちに、当時の原油価格高騰を受けて業界紙が紙の新聞を廃止してWeb版に一本化すると180度の方向転換になり色々とやり直した記憶があります。

更に親会社が粉飾決算で上場廃止、親会社が別のところに移る、私生活では長男がそろそろ生まれるなど色々なことがありすぎました。次の会社に転職活動して業務の後半には決まっていたため、設計だけやった所で長男誕生。最後の1ヶ月は有給の実質育休状態でたまにメールで問い合わせだけ受けてました。

自分がいなくなった間に詳細設計までやりきっていたはずが、別の担当者にバトンタッチしたらお客さんに言いくるめられて要件定義レベルからやり直していたり、後はもう知ないといった感じでした。

振り返ると面白そうで入ってみたら面白といえば面白い会社だったけれど、とにかく各拠点にエンジニアが双方に出張しまくっている状態で無駄が多かった気がしますね。その後親会社がいきなり北海道の会社に移ったりして更に拠点が増えたようです。受託開発の大変さがとにかく身にしみました。

4社目 S社

約100人ほどの会社でした。会社の売上のメインは電子書籍ですが、社長にAdobeみたいになりたいという目標がある画像系ソフトで有名な会社で、稼いでいる電子書籍事業が社長の目の敵にされているという謎の構造でしたね。

最初の業務はガラケー版電子書籍アプリ開発でした。開発メンバーは最大3名、私はアプリケーション開発(開発、実機検証、顧客折衝、保守、プロジェクトの進捗、スケジュール管理)のプロジェクトリーダーを任されました。

・開発、保守期間7ヶ月

・言語 J2ME

私はBREWアプリの開発経験がありSEもやっていたということで、ガラケアプリの開発からマネージメントなど色んなのを任されることになりました。Web系じゃないリアルなアプリ開発をやってみたいというのもあり転職して実際にやらせてもらった感じですね。

恐ろしいことに私が入社する前は3大キャリアやその他の電子書籍アプリを、企画時から携わっていたエンジニアがほぼ全部一人でやっていたようです。そのタスクを他のメンバにもやらせるという裏事情があって私が採用されたとのことでした。

自分が担当したアプリはコピペチックな横展開されていたソースを、オブジェクト指向的にソース分離・分割したところ大幅にリファクタリングしてしまいました。そして気づいたらそのソースをベースに、他のソリューションに横展開されてました。

次の業務はAndroid版電子書籍アプリ開発でした。開発メンバーは最大10名で、アプリケーション開発で要件定義、設計、実装、実機検証、テスト計画書作成、顧客折衝、協力会社のマネージメント、プロジェクトの進捗およびスケジュール管理をする開発リーダーを任されました。

・開発、保守期間 1年8ヶ月

・言語 Java

なにかこれからAndroidが来るらしいぞということで、まずは外注会社にAndroid版の移植をお願いした所、酷いものが出来上がりました。SI系のところからJavaと組み込み系が出来るエンジニアに来てもらったらレベルがあまり高くなくて、自分が進捗管理どころか一方的なペアプロで始終張り付いているという状態になったので結局内製に方針変更しました。

一旦ちゃんとしたAndroid版アプリを作った所で2キャリアから公式アプリで出してくれと言われ、都合3プロジェクト同時進行で似て非なるAndroidアプリ開発にプレイングマネジャーとして関わることになりました。幸か不幸かソースの共通、ライブラリ化を自分がしていて、キャリアごとに違う方式は別プロジェクトとして外だししていたので、辛うじて悪夢のコピペソースは回避。本当に、プレイング、マネージャーの一人二役やっていたので月の稼働時間が二人分になってました。

大変すぎて体調を崩したこともあったということですが。

事務局

RMさん

過労で倒れたこともありました。

振り返ると最後の案件がそうですが、2キャリアから同時に理不尽な要求をされて何重にも板挟みにあっていたので本当に過労で倒れたこともありました。そういえばこの頃妻の二人目妊娠で家も大変な時期のところに、さらにあの東日本大震災があったりと本当に大変でした。

残業代も出ない会社で、ソリューション的にとにかく社長の目の敵にされているという状況だったので、嫌気が差して会社を辞めました。

なお2年後には社長が気合いを入れて色々とやっていたプロジェクトが全部失敗。稼ぎ頭だった電子書籍ソリューションがガラケからスマフォへのシフトに乗り遅れてしまったようです。社長が資金調達のため売却していた自社株がそろそろ代表権のなくなるレベルまで減ったこともあり、別のガラケー依存していた会社と合併したとのことでした。早期退職制度始めたこともあり主だった同僚は皆辞めたそうです。

5社目 ZD社

約150人の会社でした。カーナビアプリ、その他地図系システムをやっている会社で、親会社は地図専門会社です。Android開発経験者が欲しいということで応募したのですが、私の転職回数がネックになり社内で採用するかしないか揉めたそうです。ただSPI試験が良かったのもあり最後はシニアアーキテクトの鶴の一声で採用されることになりました。

大企業で福利厚生が良い、社長も気さくで大きい会社になっても顔がわかる等会社の制度自体はとても良かったです。

最初の業務はカーナビアプリ 地図データダウンロードモジュール開発でした。開発メンバー2名、協力会社、検証チーム、営業担当というチームでした。この時任されたのはサブリーダーでアプリケーションとサーバCGI開発担当、要件定義や設計、実装に協力会社のマネージメントをしました。

・開発期間 3ヶ月

・OS Android

・言語 Java、PHP

・DB SQLite3

・クラウド環境 Amazon S3

サーバとAndroidの両方を分かる人が私以外にいなかったのもあり、いきなり両方任されました。基本のところは協力会社が作ってましたが、WinCE版からのソース移植が多くてAndroidの作法に則っていなかったため結構書き直しをした記憶があります。とはいうものの同時入社した同僚に割と面倒なところは任せてAndroid、サーバPHPとも美味しいところだけやっていましたが。

2つ目の案件は先行開発で車載機向けAndroidカーナビ開発です。開発メンバー3名、協力会社、検証チーム、営業担当というチームで、私はアプリケーション開発(要件定義、設計、仕様調査、リリース、顧客、協業会社との折衝、
協力会社のマネージメント)のプロダクトリーダーでした。

・開発期間 4ヶ月

・OS Android

・言語 Java

・DB SQLite3

SEチックに上位レイヤーとお客さんとの交渉事などを経験しました。実は車の免許を持っていないんです。そもそも乗り物酔いがひどい体質なので担当したカーナビアプリを助手的で操作してて何度も吐きそうになってました(苦笑)。後はカーナビアプリで収集したGPS情報からどれくらいいい感じで自律走行支援してるかの報告書を作るため、ひたすら地図上にプロットするという謎の書類仕事をしていた記憶がありますね。多分こんな仕事は二度とないでしょう。

3件目の案件は特定タブレット版(車載器向け)カーナビアプリ開発と顧客対応でした。開発メンバー1名と営業担当というチームです。アプリケーション開発(要件定義、設計、不具合調査、バグ修正、リリース、顧客折衝、実装)のプロダクトマネージャーというポジションでしたね。

・開発期間 3ヶ月

・OS Android

・言語 Java

・DB SQLite3

某ベンダがカーナビ業界に参入したいと言うことでアプローチがありました。最初対応していた上司が技術についてよくわかっていない事が相手のメイン担当のSEに知られたこともあり、上司や営業をとばして技術サポートとしてメールのCCに入っていた私に直接連絡をいただくようになりました。そんなこともあって全部やることになりましたね。

上司は途中からメールの連絡先にすら入っていないことを気にしていましたがまあ仕方なかったかなと思います。外注が作ったAndroidの実装があまりにまずく、提供された端末の表示がボロボロでひたすら実装修正して元のソースに反映することになりました。

しかも途中から某ベンダがやる技術カンファレンスにそのアプリを端末に入れて出してくれという話になったんです。展示会向けパネルや資料を社内のデザイナーに発注、更に当日何故か私一人で展示会で説明員をすることになりました。

上司や担当営業がいないところで一人で世界的ベンダを相手に仕事していて、どうしてこうなったのかと本気で悩みました。そういえば前職のZ社の上司がその技術カンファレンスに来いて、取締役から社長になったことを聞きました。そのベンダと別の上役経由で仕事貰っているという話をしていて、申し込んでない懇親会に引っ張り出されることになったんです。世間は狭いと感じましたね。

4つ目の業務はカーナビアプリの保守と顧客対応でした。開発メンバー7名と協力会社、それに検証チームと営業担当というチーム構成でしたね。アプリケーション開発(要件定義、設計、不具合調査、バグ修正、リリース、顧客折衝、実装、協力会社のマネージメント)のプロダクトリーダーです。

・開発期間 1年1ヶ月

・OS Android

・言語 Java、PHP

・DB SQLite3

他の受託案件と並行して、自社で販売したり各受託案件のベースとなったAndroidアプリの保守、顧客対応、他にVer.Upの検討、企画提案を担当していました。世の中のカーナビが車メーカー自社開発からAndroidカーナビベンダに受託で頼む流れが各方面で起きた結果、社内の開発リソースがなくなって機能追加出来なくなったんです。

おかげで社内で数少ないAndroidエンジニアの自分がAnroidのOSアップデートや新しいAndroid端末が出るたびにボロボロ出てくる不具合を修正する羽目になりました。他の受託系の開発の応援に呼ばれそうになると地味に数日別の調査タスクが降ってきて対処するという状況が続きました。

このころはあまり忙しくなかったようですね。

事務局

RMさん

ただその代わり二人目の子供が生まれたり、途中RSウイルスで1週間入院したり、妻や長男もダウンして毎日早上がりしたり、それで入院している次男の面倒見てから家に帰って夕食や洗濯をしたりと、仕事しているお父さんがまさかワンオペ状態だった時期もありました。

おかげでガッツリ開発に入ることもなく実は毎日定時に帰れたうえに、勤務中も半分以上は自習したりダラダラネットサーフィンしたり暇していました。

振り返ると二人目の子供が生まれたり、途中RSウイルスで1週間入院したり、妻や長男もダウンして毎日早上がりしたり、それで入院している次男の面倒見てから家に帰って夕食や洗濯をしたりと、仕事しているお父さんがまさかワンオペ状態だった時期もあったのですが、それくらい暇だったんですよね。

社内の待遇自体は良かったんですがなにせ暇すぎるのが嫌で知り合いに誘われて次の会社に転職することにしました。この会社を辞める時に周りにあいさつ回りしたら自分の入社を押してくれた技術部長が同じ時期に会社が嫌になって辞めるというの聞いて、お前もかー!とびっくりしたのをよく覚えています。

なお、次の転職先があまりに酷くてすぐに辞める羽目になったので、この会社を辞めなきゃよかったと時々思い出します。もう辞めて5年以上経ちましたが知り合いづてになぜか私の名前は未だに伝説らしく、一発で名前が通じるという話を聞きました。何故なのか自分でもよくわかりませんが。

6社目 ZSJ社

約50人ほどの会社でした。某放送会社の子会社でガラケー時代からのいわゆるCP(コンテンツプロバイダー)です。ガラケからスマフォシフトに失敗していて迷走していたという、当時割とありがちだった会社だと入社してから知りました。

更に親会社から出向してくる取締役員などがコロコロ入れ替わったり、他のCPから移ってきた企画部長の2番煎じの企画がことごとくiOS、Androidの規約変更で全てダメになっている暗黒期に入社してしまったようだったんです。正直誘われた知り合いに完全に騙された気分でした。知り合いはCTO的ポジションだったのに失敗して、入って数ヶ月で辞めさせられてしまったんです。記憶から封印したい履歴と思っています。

最初の仕事はAndroidの診断アプリ開発で、開発メンバー3名と企画チームで作業をしていました。アプリケーション開発(要件定義、ミドルウエア選定、進捗管理、マネージメント)の開発リーダーという役割でした。

・開発期間 2ヶ月

・OS Android

・ミドルウエア jQuery、jQueryMobile

・言語 Java、JavaScript

・開発環境 Eclipse、Git

どちらかと言うと技術サポートのマネージャーのように関わっていた案件でしたね。いわゆるテンプレ方式でちょっと変えた診断アプリを一杯出して、広告収益あげようという狙いが当たようです。ただiOS、Androidの規約が変わってその手のアプリは皆リジェクトを食らうようになったので、途中で開発中止になってしまいました。

2つ目の業務はソーシャルゲーム(GREE向け)開発でメンバーは開発メンバー7名と企画チームでした。役割はアプリケーション開発(要件定義、設計、開発、チューニング、インフラ整備)。

・開発期間 5ヶ月

・OS CentOS、MacOS X

・クラウド環境 Amazon EC2、S3、RDS(MySQL)

・フレームワークScala Lift、SWF Editor for PHP

・ミドルウエア Jetty、Nginx、Apache、Jenkins

・言語 Scala、PHP、SQL、Shell Script

・開発環境 IntelliJ IDEA、Git、Redmine

・DB MySQL

久々にソーシャルゲームに復帰するためにこの会社に転職したんですが、企画も設計も会社も色々と酷かった記憶があります。毎日終電で帰宅していましたから。

業界経験者という触れ込みで入った人も実は食わせ者、途中から入った部長も食わせ者、CTOも口ばかりで実際の技術があまりなかったので途中で退職をよぎなくされる。それを全部フォローすることになり結局で過労で倒れてしまいました。

放送系会社が親会社なものでそこだけ律儀に産業医面談をして、ドクターストップで代休をとり半月ほど休んむことになりました。その結果このプロジェクト抜けることに。残った人に多少わだかまりがあったものの、メインのメンバーがそもそも残ってなかったという2つ目の思い出したくない案件になってしまいました。ただこの仕事でScalaを使ったのは唯一自分の武器になったと感じます。

3つめの業務はネーティブゲームアプリ開発と複数アプリのメンテナンスで、企画4名と開発1名それに外注先というメンバーでした。役割はアプリケーション開発(要件定義、外注管理、機能追加、バグ修正、リリース)の開発リーダーでしたね。

・開発期間 6ヶ月

・OS Android、iOS、Tizen

・言語 Java、Objective-C

・開発環境  Xcode、Eclipse、SVN

一旦開発から抜けて社内サポートやその他の部署に異動した後に担当した業務でした。外部ベンダに発注していたキャラ物のアプリ開発が技術力の問題や開発ディレクターを出来る人間もいないということで宙ぶらりんになっていたようなんです。それをどうにかしろといわれて、今思うと相当に無理を言われたなと思いますね。

しかもiOSの方が出せないうちにOS Ver.Upしてしまったため、あちこち機能が動かなくなってるという問題もありました。iPhoneを持ってないのに、開発ディクションの枠を超えて自分でどのライブラリの動きか調べて差し替えしてほしいとのことで困りました。ついにはXCodeでソース追い出して見つけた致命的バグを指摘されたり、それはディレクションじゃないと思いました。

他にもAndroidアプリの方は使ってたSNSのライブラリが古くて自分で差し替えたりしながら、後半それは開発エンジニアの仕事だろうという感じがしました。途中並行してdocomoから公式CPに対してTizen対応必須という要求もあったので、そちらのディレクション業務もしていました。

実は仕事以外にAndroid関連の勉強会にでていたりTizen関連の勉強会に出ていたりもしたので、docomoが公式アナウンスする前にTizen対応辞める話を知っていて相手に逆提案しましたね。倒れてから復帰途中の割にはかなり色々なことに対応していました。

そういえばこの時docomoのTizen対応の発表会の時に前々職の元上司と営業で会いました。あの人達しか残ってないのかとしみじみしたりしましたね。

4件目の営業は育児系Webサービスの追加開発と運用で、企画4名と開発1名、外注先というグループでした。
アプリケーション開発(要件定義、設計、実装、実機検証、テスト計画書作成、リリース)の開発リーダーという立場でしたね。

・開発期間 4ヶ月

・OS CentOS、Windows、Android、iOS

・クラウド環境 AmazonEC2、S3、RDS(MySQL)

・フレームワーク CodeIgniter

・ミドルウエア  Apache、memcached、jQuery、jQuery Mobile

・言語 PHP、Java、Objective-C、JavaScript

・開発環境 Eclipse、NetBeans、Xcode、SVN

・DB MySQL

倒れて数ヶ月で上記の案件と並行して開発エンジニアに戻されました。開発自体は部長が開発ベンダに丸投げで、ベンダは保守開発で元取ろうという感じだったようですが、初期開発終わったら実質首切りで本気でひどいと思いました。開発ベンダも保守開発する前提でドキュメントの何も残ってないのに、運用引き継ぎとかどうしろという感じでしたね。

機能追加以前にあちこちバグだらけで、意図的なのか開発ベンダがいじったCodeIgniterが使えませんでした。エラーなど全部内部で閉じ込めてエラーが出力されていなかったり改悪されてたりして、泣きながらソース解析しながら機能を追加していました。

この会社については色々と騙されたという思いが強いです。失ったものや時間を返してほしいです。

7社目 A社

約50人の規模で、広告代理店のような会社でした。転職イベントでふらりとよったら、ほぼスカウトみたいな感じでリーダーポジションで採用されたんですよね。入社時点から住宅補助として会社借り上げという形で家賃を3割負担してくれるという条件に魅かれたのですが、後に大後悔することになってしまいました。

最初の業務はサーバ移行プロジェクトで担当者2名、私のポジションは要件定義やミドルウエア選定、サーバ構築と検証、さらに進捗管理と障害対応をするプロジェクトリーダーでした。

・開発期間 3ヶ月

・OS CentOS

・ミドルウエア VMWare、Apache、Nginx、Plesk

・DB MySQL5.1、MySQL 5.6

その前から個人のメモ書きマシンはUbuntu使っていたのでそれを面談時にアピールしたら、インフラ系も出来るでしょということで入社早々無理を言われました。我流の技術部長が節約のためか1VPSに10サービスぐらい全部載せてどうにもならなくなってたインフラを、少しずつ他のVPSに移行しろととも言われました。

蓋を開けてみたら依存度合いが酷く、サービスごとに別VPSにそのまま移行することが無理でした。ミドルウエアのVer.などを上げてまるごと引っ越しし、一部機能だけ別のサーバに切り出しなどの対応が必要でしたね。ついでにもうApacheは無いだろうと前職で使っていたNginxに一部移行したり、自分のモチベーションアップも兼ねてトライしていました。いい経験になったのは確かですが、もう一度同じことをしてと頼まれたら断ると思います。

2件目の業務は業界向けポータルサイト開発でメンバーは開発の4名、ポジションは要件定義やDB設計それにプロトタイプ設計や実装をする開発リーダーです。

・開発期間 2ヶ月

・OS CentOS6.4、Windows

・フレームワーク CakePHP 2.3

・ミドルウエア Apache、Nginx

・言語  PHP5.5

・開発環境 NetBeans、SVN、Vagrant、Redmine

・DB MySQL5.6

1つ目の案件と並行して行っていた案件だったんですが、入社してみたら実は本業が主にキャバクラとかの夜のお仕事系の会社だということが分かりました。

更に現行動いているソースがCake1.x系のまま稼働しててエラーが常に出ている、しかもそれを誰も気づいていないという状況で、何故か一人で新サイトの立ち上げ開発をしていました。結局色々と酷過ぎて途中で会社ごと辞めることになりました。

振り返ると案件どころか所属した事自体が黒歴史の案件となっています。結局数ヶ月で辞めましたが賃貸マンションを入社時に会社借り上げの契約に変更し、退社の際にまた自分の契約に変更しなおさないといけなかったのも面倒でしたね。

通常だと住居の会社借り上げは入社一年ぐらいで提示されることが多い条件です。入社後すぐに住宅補助が出たのは、入社した後にすぐ辞められないための策だったんだろうなぁと思います。結局すぐに辞めてしまいましたが。この会社を退職した時に正社員をするには経歴がめちゃくちゃになってしまったと思ったのが、フリーランスになるきっかけになりましたね。

8社目 T社

一度フリーランスからまた正社員に戻られているんですね。

事務局

RMさん

フリーランスで2年数ヶ月在籍した後に正社員になってほしいと頼まれて正社員になることになりました。

フリーランスになってから一度また正社員に戻ったことがあったんです。その会社は50名ほどの規模で、フリーランスで2年数ヶ月在籍した後に正社員になってほしいと頼まれて正社員になることになりました。

最初の業務は共済保険向けDWH構築プロジェクトで、マネージャー1名にプロジェクトリーダーが1名、Web開発担当が12名で品質管理4名というチーム構成でした。私の役割はプロジェクトリーダーで、プロジェクト管理や顧客折衝、要件定義や基本設計、移行設計を担当しましたね。

・開発期間 7ヶ月

・OS Windows

・ミドルウエア Angular

・言語 Go、TypeScript、GitHub、Mac OS X、Ubuntu、Redmine

・クラウド環境 Google Cloud Platform(GAE、Datastore、GCS、BigQuery、GCE、Dataflow)

客先のRFPからなんとか案件をもぎ取ったという当時社内であまりなかったSIer案件でした。ただ顧客側のいわゆるコンサル、RMOがいると言う形式でSIer側で受けるのが初めてだったんです。と言うかそもそもそういうのをやるつもりで正社員に戻ったつもりがなかったので最初は動揺していましたね。

要件定義でひたすら資料書きで2ヶ月、コンサルの重箱を突くようでいてさらに思いつきでコロコロ変わるような内容に戸惑いながら、工数が膨らみ人は増えていき管理工数だけが膨らんでいくと言う大変な案件でした

更にDHWのデータ連携先の汎用機のチームから必要な資料が出てこないうえに、ようやくでてきたと思ったら何故か紙の資料をPDF化したCOBOLのソース、しかもそのソースも実際のものとは違っているというひどい有様でした。

その上業務委託で入ってもらったRMが全く仕事できず残業大好き、正社員の私が最終退出者にならないといけないために無駄に残業をすることも増え入社して半年そうそうで倒れてしまいました。人生で初めての休職です。

フリーランス時代からの同僚にはプログラム書かないんですか?と言われてたけど、やることが多すぎて実装している余裕がなかったんですよね。結局無念のPJ途中退場になってしまいました。

休職から復帰した後に担当した2件目の業務は航空会社社内向けマニュアル電子化プロジェクトでした。マネージャー担当が1名、プロジェクトリーダーが1名、Web開発担当が5名というメンバー構成で、私はプロジェクト管理や顧客折衝、それに基本設計やプロジェクト支援を行うプロジェクトリーダーという役割です。

・開発期間 7ヶ月

・OS Windows、iOS

・フレームワーク GAE/Go

・ミドルウエア Angular

・言語 Go、TypeScript

・開発環境  GitHub、Mac OS X、Ubuntu、Redmine

・クラウド環境はGoogle Cloud Platform(GAE、Datastore、GCS、BigQuery、GCE)

休職から1ヶ月で復帰した時に、フリーランス時代の上司に誘われる形で別PJに逃げ込むような感じになりました。ところがこれが曲者で、以前のPJの時の客先担当者と違う担当者が典型的なブラック発注者だったんです。

先方担当者はもともと添乗員だった方で、プロジェクターに移したパワーポイントの資料見ながら色味を指定されるなど典型的な素人の方でした。作った資料とプロジェクターでかなり色味が違うので困るんです。

間に入ったSIerも本業がネットワーク担当者で何もわからない、私の前にリーダーと設計をしていたのも元々品質管理をしていた方、プログラマー名目で入っていた外注会社の方も努力はしていたもののマネージャー経験0という状況でした。

最終的にPJの要件どころか要望は一体何なんだというレベルまで迷走して、発注側の取締役と一次請けの上司で落とし所を協議することになりました。そして結局何でもいいから期内に何か出せと言われてしまい、使えるかどうか分からないけどとりあえず提出するというバットエンドになりました。

柔軟に対応できない航空業務の仕組みレベルに組み込まれるものがこんな体たらくになるとは思いもよらなかったです。直接開発はしてなくてマネージメントメインでしたが、設計とソースレビューくらいはやっていました。最後の方はサポートくらいでしたが。

3件目の業務は航空会社社内向けインフォメーションWebシステムの運用開発で、マネージャー担当が1名、プロジェクトリーダーが1名、Web開発担当が3名というチームでした。プロジェクトマネージャーやリーダーとして、プロジェクト管理や顧客折衝、見積作成や運用・障害対応(24/365)さらに基本設計に携わりました。

・開発期間 7ヶ月

・OS  Windows、iOS

・フレームワーク GAE/J、Slim3

・ミドルウエア AngularJS

・言語 Java7、TypeScript、Compass

・開発環境  Eclipse、WebStorm、GitHub、Mac OS X、Ubuntu、Redmine

・クラウド環境 Google Cloud Platform(GAE、Datastore、GCS、BigQuery、GCE)

完全にアンチパターンですが、2つ目の業務と一部並行したりしつつ途中でこちらに主軸を置きつつこなすことになりました。フリーランス時代開発リーダーでやっていた案件だったのですが、上司が別プロジェクトに移るということで自分がプロジェクトマネージャーをやることになったんです。

運用しつつ自分で1年半離れていた間に色々と変わったソースを追ったり、追加開発は既存メンバーにふるというややプレイングマネージャー的なポジションに。タイミング悪くメインで使っていたPaaSのGoogle App EngineがJDK6のサポート打ち切りでJDK自体のVer.Upが必須になり、顧客から開発側の都合で何故こちらが予算を出さなければならないんだとお怒りを受ることになりました。

何故必要なのかをひたすら説明する説得資料と予算取りに終止することになったことで、企業、それも航空業務のようなクリティカルなところの運用に関わるシステムが長期化するとこうもしがらみが凄いのかと実感することになりました。

振り返るとフリーランスで2年数ヶ月在籍して大丈夫だろうと思って入った会社が、別の客先に1年常駐しているうちにこうも変わってしまうかというのを実感することになってしまいました。案件の話以外に、技術先行で最先端の技術を試して稼いでいた少数精鋭の会社が社長の心変わりでいわゆるSIer的な方向にシフトして、優秀で運用など考えたくなかったエンジニアが辞めていってしまったんです。それにつられて優秀なエンジニアが更に辞めていくという悪循環が続くタイミングの悪いところに入ってしまったなぁと感じています。色々と大変なことになったのでこの会社を辞めた後にIT勉強会に行って話に出すと「あの会社が!?」と驚かれます。

フリーランスになってから経験した現場

フリーランスでも沢山の現場を経験されていますね

事務局

RMさん

はい

1つ目の現場

業務内容はファッションアプリサービス開発で、メンバー数はマネージャー、SEにインフラ担当が4名、サーバ開発担当が3名、iOS開発担当が3名、Android開発担当3名です。担当業務はAndroidアプリ開発(要件確認、プロトタイプ開発、実装、テスト)とサーバ移行プロジェクト(MySQL、Oracleデータ移行調査、Seasar2フレームワーク調査)でした。

・開発期間 3ヶ月

・OS Windows、Android

・開発環境 Eclipse、Backlog、Git、GitHub

・DB MySQL(RDS)、Oracle

数百人規模の某広告代理店会社のプロジェクトでした。フリーランス、業務委託としての身の振り方がまだ分かっていないうえにAndroid開発が久々で戸惑いながら試行錯誤していました。でもプロパーや企画側の広告代理店特有の体育会系の無理なスケジュールや企画と同僚エンジニアとの反りの合わなさ、更に同時期に実家と自分の家庭で色々とトラブルも重なってしまったんです。

この時期酷く体調を崩されたようですね。

事務局

RMさん

ストレス性なのか急性中耳炎から耳鳴り、さらに難聴になってしまいました。

するとストレス性なのか急性中耳炎から耳鳴り、さらに難聴になってしまいました。日常生活もままならなくなったので結局3ヶ月で途中退場することにしました。この時Androidエンジニアで参画したのに、同じPJ内でAWSからプライベートクラウドに移行する話が出てきて何故かそお調査をすることになりました。するとそれで評価されることになり自分でも手応えを感じたのがきっかけて、Androidエンジニアをやめようと踏ん切りがついたんです。

2件目の現場

業務内容はアニメーション制作の業務改善とアーカイブデータ整理で、メンバー数は社員が2名、業務委託が3名という構成でした。私が担当したのは業務改善提案とワークフロー作成、それに過去作品アーカイブデータ整理でした。担当した期間は2か月です。

エンジニア職から離れた時期もあったんですね。

事務局

RMさん

正直普通のアルバイトレベルの時給でしたが、自分の見ていたアニメの原画や資料をずっと見ながら整理したり、現行作品の原画のダンボール整理や原画探しさらに業務フローの資料を作ったりするある意味夢のような仕事でしたね。

耳の異常で日常生活も支障をきたす状況でしたが、子供2人を保育園に行かせていて特に上の子が奇跡的にこの年から認可保育園に通っているという都合で仕事を休むことができませんでしいた。スリ―ランスだと毎月売上を上げていないと認可保育園に通う資格がなくなってしまうんです。

これをSNSでつぶやいていたら「時給安くていいならうちで業務委託受けてもらえますか?」という友人からの誘いがあり、某アニメーション制作会社と業務委託で契約してもらうことになりました。正直普通のアルバイトレベルの時給でしたが、自分の見ていたアニメの原画や資料をずっと見ながら整理したり、現行作品の原画のダンボール整理や原画探しさらに業務フローの資料を作ったりするある意味夢のような仕事でしたね。家族養えるような時給ではなかったんですが。

まだ体調が悪かった時期でしたが、調子が悪い時は家でもできる仕事しながら体を回復させていました。契約などの都合により一旦フリーランスのエンジニアに戻った後にもまた資料整理でアニメ制作会社に戻ったりしていました。

3件目の現場

業務内容はペット保険サービス新規立ち上げで、マネージャー、SE担当が3名、インフラ担当が3名、Web開発担当が3名というメンバーでした。私が担当したのはWebサービス開発で、仕様検討やアークテクト設計それにミドルウエア選定や設計レビュー、基本設計に関わりました。

・開発期間は3ヶ月半

・OS CentOS6.6、Windows

・フレームワーク FuelPHP 1.7.2

・ミドルウエア Apache2.2

・言語 PHP5.6

・開発環境 NetBeans、SVN、Redmine、MediaWiki、Vagrant、Jenkins、PHP_CodeSniffer

・DB MySQL5.6

会社自体は数百人規模のペット向け保険会社でした。アニメーション制作会社で仕事を続けられればよかったですが、単価的に家庭が養えないのである程度体調が戻ったた所で週3から徐々にフルタイムで開発エンジニアに復帰することにしたんです。

最初に設計段階はのんびりやっていたんですが、実装に近くなってくると段々と仕様周りの調整がグダグダになってきました。そこに妻の体調不良が重なって、自分が子供保育園や療育施設の送り迎えなどなどワンオペになってしまったんです。

月に稼働時間が最低枠ギリギリになってしまったところにお客様の予算担当から妙な横やりが入り、さらに自分も急性胃腸炎でダウンするのが重なって契約を途中終了することになりました。顧客の非効率、理不尽なところも嫌気が差していたので現場側で慰留、譲歩など色々としてもらっていたんですけどね。結局自分自身が色々と疲れ果ててしまったのでもう一度頑張る気も起こらずにそのまま終了という流れになりました。

当時流行りかけだったFuelPHPとかミドルウエアを同僚と選定、アーキテクチャ設計したりその辺りは良かったんです。ただお客さん側のインフラエンジニアのフォローを自分がすることになったのは意外でした。その後無事リリースしたのは確認しましたが、この辺ダメそうかなと軽く意地悪アクセスしたら思いっきりミドルウエアのVer.が出てしまうサーバエラーを確認した所でそっと閉じました。

【フリーランス】自宅での仕事に向いているスキルとは?

T社でフリーランスとしてかかわった現場

次に経験したのが正社員のところでもお話したT社でフリーランスとして関わった現場です。当時30人ほどの会社ですが、採用されたきっかけは以前からの知り合いの勧誘で酔った勢いで送った職務経歴書だったんです。書類選考からいきなり社長面接になり社員で良いいけどどうするかときかれたのですか、フリーランスなってしまっているのでまずは業務委託でお願いしますとお願いし直契約の業務委託で参画することになりました。

話によるとそれまでは雇用形態が新たに作った人材派遣系の子会社経由の契約で、1年以上在籍したり途中で単価交渉して単価アップまでした人はいなかったようなんです。なのでわたしのケースは異例づくしだったようですね。仕事以外のIT勉強会で知り合ったエンジニアが複数いた会社だったので、フリーランスでぽっと入ったのに知り合いだらけだったんです。最初から打ち解けていたのを見て、馴染みすぎだろうと突っ込まれていました。

最初の業務は航空会社社内向けインフォメーションWebシステムでした。マネージャー担当1名、Web開発担当5名というチーム構成で、基本設計や実装さらに結合テストや不具合解析をするWebサービス開発という役割を与えられました。

・開発期間 6ヶ月

・OS  Windows、Android、iOS

・フレームワーク GAE/J、Slim3、AngularJS

・言語 Java7、TypeScript、Compass

・開発環境  Eclipse、WebStorm、GitHub、Mac OS X、Ubuntu、Redmine

・クラウド環境 Google Cloud Platform(GAE、Datastore、GCS)

レガシー環境での開発が続いたり、Androidエンジニアになっていたりしたところからいきなりパブリッククラウドを任されました。久々にJavaでサーバサイド、さらにJavaScriptもろくにやっていなかったのがフロントエンドでTypeScriptでSPAのAngularJSと盛り沢山の内容でした。周りは知り合いの優秀なエンジニアだらけ、リファラル採用みたいなものなので誘ってくれた上司のメンツを潰す訳には行かないと内心必死で仕事をしていました。

家庭の方も色々と大変だったので週4勤務で週5分の成果や実績あげないと行けない状況だったんです。githubのPRレビューで指摘されたり、この時40歳前だったんですがこの歳で改めて開発エンジニアとしてやり直すとも思っていなかったので、今思うとよくついていけたなという感じです。

周りからは飄々とあまり教えてないけどちゃんとキャッチアップし流石とか言われていましたが、内心はヒヤヒヤものでした。気づいたらしっかりやることやって本番リリースも無事に済ませていて、子供の方と稼ぎも多少余裕が出来てきたので、夏前に以前からとりたかったダイビングのライセンス取ったりしていました(後にプロライセンス取るとはこの時全く考えていなかったのですが)

次の業務は百貨店向け化粧品コーナーポータルアプリ開発(管理機能)で、営業担当1名とWeb開発担当8名のチームでした。担当業務はベンダー折衝、基本設計、DB設計、実装、結合テスト、不具合解析、チューニング、進捗管理をする開発リーダーです。

・開発期間 5ヶ月

・OS CentOS6.6、Windows、iOS(iPad)

・フレームワーク Play2(Java)、AngularJS、SCSS

・ミドルウエア Nginx、Apache

・言語 Java8、TypeScript

・DB MySQL5.6

・開発環境 Eclipse、WebStorm、GitHub、Mac OS X、Ubuntu、Redmine

・クラウド環境 Google Cloud Platform(GCE、Cloud SQL)

最初の業務のリリースが無事終わって、業務委託先が私を雇う予算どうしようということであちこち案件を探してくれていました。そんな中受託開発の二次受けに派遣され要件整理や設計することになったのですが、1か月で担当の管理機能をまるごと自社に持ち帰りエンジニア三人体制で開発することになったんです。

自分のあとに正社員で入社したフロントエンジニアとインフラエンジニアから開発エンジニアに転職したという二人をマネージメントしつつ、自分はフロントとサーバ両方をフォローしていました。後半どう考えても工数と日程が合わないので社長に追加人員を直談判し、前の案件で一緒に仕事していた外注会社さん3人にコントロールしてもらいつつ、迷走している一次請けや発注元の暴走止めたり、一次請け側がろくにUnitTest書かない文化で単体テストができないのでオレオレフレームワークを作たりすることになりました。

この現場に来るまでエンジニアとして迷走していたのに一体何があったんだろうというくらいに八面六臂で仕事していましたね。Java8も最初は関数型で書けと言っていた一次請け側のエンジニアの各ソースも、JavaチックでScalaをやっていた自分的にはそうじゃないとこちら側の方がよっぽど関数型な書き方をしているうちに一次請け側がついていけなくなったりしたこともありました。

業務は大変だったものの収入面は良かったんですよね。

事務局

RMさん

業務委託単価残業代だけで正社員時代の月給並みだった月があり、振込金額をみた妻が仰天していました。

仕事量と勤務時間が大変なことになっていました。ただ残業代はちゃんと出すということで業務委託単価残業代だけで正社員時代の月給並みだった月があり、振込金額みた妻が仰天していましたね。最終的に納期通りになんとか本番環境リリースまで行い、会社としてもこれ以上付き合っていられないということでこの業務は契約終了になりました。

話によると発注側が予算を出し渋り1次請け側は完全に赤字、2次受けの自分達がかろうじて黒字という始末でした。今思い返すと業務委託の自分が所属先の社長に「俺このまま本気で残業して仕事していたらこの案件の1人分の月の単価超えちゃいますがいいですか?」とか言っていたのが信じられないですね。

3つ目の案件は航空会社社内向けインフォメーションWebシステム追加開発で、マネージャー担当が1名、Web開発担当が3名というチームでした。担当業務はWebサービス開発で基本設計や実装、テストや不具合解析や運用を行いました。

・開発期間 5ヶ月

・OS  Windows、Android、iOS

・フレームワーク GAE/J、Slim3、AngularJS

・言語 Java7、TypeScript、Compass

・開発環境 Eclipse、WebStorm、GitHub、Mac OS X、Ubuntu、Redmine

・クラウド環境 Google Cloud Platform(GAE、Datastore、GCS、BigQuery、GCE)

最初の業務の追加開発で2つ目の業務のメンバーと一緒にスタートしました。最初客先の発注や予算執行が遅れたので、フロントエンドエンジニアが古いままになっていたAngularaJSやその他フロントエンド系のライブラリを最新版に上げていたり他の環境周りも割と時間に余裕がありました。途中忙しい時もあったのですが何だかんだ月当たりで見ると残業なしでこなすことができていましたね。

追加開発としては今までなかったユーザ側に複数の権限を差し込むという実装インパクトが大きい要件が入ったので、サーバサイド、フロントサイド、DB設計を横串にリファクタリングすることにしました。それなりに大規模で色んな人の手が入ったソースに手を加える事になったので、そのついでに使わなくなった機能を探して消す方の修正料の方が多かったです。

当時40過ぎてプログラマーとしてレベルアップしてしまった感じがしましたね。ただドキュメンテーションしづらい仕様になったのでプロジェクトを離れた後に見つかったバグ修正をしたり、資料説明のため派遣先から自社にたまに戻ることになりました。

最後の方に次の追加開発の要件すり合わせでデザイナーの代わりの代わりのような形で何故か自分がサイト修正をすることに。ひたすらフォトショップでデザイン修正案を作って提示しました。上司にバトンタッチしようとしたのですが上司がフォトショップの使い方が分からないという事で自分がするしかない状況だったんです。

ちなみに自分自身は趣味の写真編集のためにフォトショップの使い方を覚えたのと同人系の編集でちょっとイラストレーター使っていただけだったので、手探り状態で業務をしていました。

その次に担当したのが公共系B2Cシステム基盤構築プロジェクトで、プロパーが15名とパートナーという50名という大きなチームでした。担当したのはシステムアーキテクト(アーキテクト設計、ドキュメントレビュー、ドキュメント作成、ベンダー折衝、プロトタイプ開発支援、ソースレビュー、進捗管理、新人教育、サーバ構築、導入支援)です。

・開発期間 1年

・OS Windows、CentOS

・フレームワーク Node.js、Falcor

・ミドルウエア AngularJS、JTest

・言語 Java8、JavaScript(Babel)

・DB Oracle 12c

・クラウド環境 MS Azure(App Service、Storage、VM、CDN)

・開発環境 Visual Studio Code、BitBucket、Backlog

この時、業務委託先に在籍するようになって一年ちょっとが経過していました。業務委託でこんなに長期間いるのが初めてなのと単価的なのもあるので、とある半官半民の某企業に入って最終的に仕事取ってきてもらえないかと頼まれてしまいました。それなら代わりに単価上げて貰えますかと社長と直交渉した上で、とある企業さんにシステムアーキテクトとして結果丸一年常駐することになったんです。

いわゆるお役所体質のSIerのようなシステム子会社で典型的なウォーターフォールの仕事でやっていた現場に、ベンチャー企業から来てフルスタックやマネージメントもしているフリーランスの私が好き勝手立ち回っているような状態でした。

気づいたら60人以上いる部の人達が皆私に相談してくるという状態でした。隣に座っていた若い社員に「自席に座ってる暇無いですね」と笑われるくらい本当に複数PJ掛け持ちで開発支援で立ち回ってて自分でも何しているか良く分かりませんでした。後半は本格的にAzure触ってプロトタイプの実装したりしていましたね。

と言いつつ月当たりで見ると140時間ギリギリで仕事していた感じだったので、仕事量自体は実はそうでもなかったんです。現場では慰留されたりはしたんですが1年いてアウトプットばかりで自分にインプットがなく、エンジニアとして進歩しないという危機感があったのと、業務委託元からいい加減社員で入ってよと言われたりもしたので1年丁度で卒業することになりました。

T社退社後の現場

T社に一度正社員として入社した後に退社したのですが、その後に担当した業務は病院向けDWHシステム データ分析Webアプリ新規開発でした。プロダクトオーナー1名、スクラムマスター1名、開発担当が6名というチームでした。スクラム DEVとして要件定義や技術検証、設計や開発にテストを行っていました。

・開発期間 1年半

・OS Ubuntu、CentOS、Oracle Linux、Windows

・フレームワーク Akka HTTP、Akka actor、ScalikeJDBC、Angular、Flask、APScheduler、Redash、ScalaTest、Karma、Jasmine、pytest、unittest

・言語 Scala、TypeScript、Python3.7、SASS、bsh、Groovyスクリプト

・開発環境 IntelliJ CE、Gitlab、JIRA、Confluence、Jenkins、Slack、Skype、TeamsDocker、Docker compose

フリーランスになって完全に0~1から新規の立ち上げからやる、本当に何が必要かを全体で考える、そのためにスクラム手法でアジャイルであるを実現することを目指し、そのため40過ぎてもプログラミング現役なフルスタックエンジニア10人集めるという熱すぎるスクラムマスターのもとに、濃いメンバーが揃って1から開発を1年半に渡りやっていました。

この時まともにプログラミングするのが2年ぶりで、気がついたら今まで扱ったことがなかったPythonも技術選定で選ぶことになり、この歳で言語を1から勉強することになりました。ゴリゴリScalaで1から実装することになったのですが、技術力が高いメンバーの集まりで刺激しあって1年半突っ走りなんとかパイロット版リリースまでこぎつけました。

そうこうしているうちにコロナが流行し、23区内で家族持ちでマンションというなかなか落ち着いて家で働けない環境下でフルリモートワークになったんです。そのうえ過敏性大腸で体調が悪くなり、1番きつかったGW時期に稼働時間が週140時間を下回ってしまいました。それを指摘されて契約延長なしの自然終了になったんです。

現場の人にはいてほしいと言ってもらえたのですが、1年過ぎてゴールが見えてきて若干飽きてきたのもあって断りました。パイロット版リリースまでやったのである意味キリは良かったかなぁと思っています。

フリーランスになろうと思ったきっかけは?

7年前の2014年にフリーランスに転身したRMさん。

フリーランスになろうと思ったきっかけは何だったんでしょうか?

事務局

RMさん

入る会社に運がないのと我慢するより別の選択肢を考えることが多く正社員としての転職回数が多くなりすぎました。フリーランスの自分で好きに現場や案件を選び、かつ次の案件に移るというやり方の方がいいかなと思ったんです。

フリーランスになろうと思ったきっかけ

入る会社に運がないのと我慢するより別の選択肢を考えることが多く正社員としての転職回数が多くなりすぎました。フリーランスの自分で好きに現場や案件を選び、かつ次の案件に移るというやりかたなら履歴書がこれ以上汚れないかなと思ったんです。

時代的なのもありますが、正社員だとどうしても子供の用事で遅刻や早退することになかなか現場の理解が得られませんでした。でもフリーランスだと結果さえ出せば割と融通をきいてもらえたのも大きかったです。

一度正社員戻ってから再度フリーランスに戻っていますが、その理由は毎月の手取りが正社員だとフリーランスの時に比べて少なくなってしまうからです。

自由業とフリーランスって何が違うの?

 これまで現場で不満に思ったこと

これまでの現場で特に不満に思ったことは何だったんでしょうか?

事務局

RMさん

フリーランスの現場で不満に感じるのは、部署や会社などの仕組みに対してフリーランスの立場では改善できない事がままあることです。

正社員の時に不満に思ったこと

正社員の頃はパートナーさんへのフォローアップ、勤怠管理、部下への1on1など開発以外の雑務が多くなったことに不満を感じていました。

フリーランスで不満に思ったこと

フリーランスの現場で不満に感じるのは、部署や会社などの仕組みに対してフリーランスの立場では改善できない事がままあることです。

部署異動のような融通はフリーランスだとあまり効かないし、長く勤務していても単価アップはなかなか難しいですね。

 エンジニアをしていて良かったこと困ったこと

エンジニアに向いていると思うことが沢山あるとのことですが?

事務局

RMさん

日々新しい技術をキャッチアップしていくのは自分に向いていました。

論理的思考が身につき、行動する力が高められたのはエンジニアをしていて良かったことです。日々新しい技術をキャッチアップしていくのは自分に向いていました。ルーティンワークが苦手なので同じことを繰り返すようなことは向いていかなったので、逆に程々に日々勉強する環境が性に合ってると感じています。

また新しい現場、案件などをこなしていくとそれが周りの評価(収入面)につながるのも良かったですね。

一方困ったことですが、レガシーな環境のままだと上記のような気付きは得られなかったので新しい刺激をどう得るかが難しいと振り返って改めて思いました。営業系の力が強い現場だと売った結果が全てで、エンジニア力が評価されづらいのが困ったと言うか難しいです。

また反面40半ばでまた新しい技術を習得しないといけないのがなかなか大変です。

フリーランスになって良かったこと

単純に正社員時代より手取りが増えたのは良かったです。また家族の用事などに対して時間の自由度は効くようになりましたね。またフリーラスだと案件や現場などを自分で選ぶ選択肢を持つことができます。

フリーランスで困ったこと

フリーランスで困ったことはありましたか?

事務局

RMさん

私の場合家族持ちなのでフリーランスになることで健康保険が4倍以上になったのが辛いです。

の場合家族持ちなのでフリーランスになることで健康保険が4倍以上になったのが辛いです。

さらに確定申告は正直煩雑で面倒なんですよ。税金対策など色々と考えることは多く、自分の場合一山越えて消費税納税事業者にまで行ったので次の確定申告からさらに大変になるなと思っています。その分勉強すればリターンも大きいんですけどね。

2023年度のインボイス制度など意外とフリーランスになるにあたっての壁が知られていないので、そういうことも自分主体で勉強などしなければならないのが正社員時代にはなかった苦労だなと思います。

またフリーランスだと体調不良で仕事を休まないといけなくなっても補償がありません。体調を崩した時に貯金の残高を見ながら休むことになったのは精神衛生上良くなかったです。こういう時に保証をしてくれる保険もあるのですが、その時には入っていませんでした。ここまでフリーランスを続ける予定もなかったのでその辺りも難しいところですね。

フリーランスになって収入がどれくらい上がったか

フリーランス1社目から単価が良いところだったので、収入自体は5割以上に上がりました

フリーランスで稼ぐためには何が必要だと思うか

フリーランスで稼ぐうえで大切なのは何だとお考えですか?

事務局

RMさん

アフターファイブもプログラミングをすることを必須とは思わないですが、新しい技術、言語、フレームワーク、開発手法などは業務外でもアンテナを張って見ておく習慣は必要なのではないでしょうか。

経験した業務などを定期的に棚卸しして、何がアピールポイントになるか、何ならまたやりたいかなどを自分で整理することが大切だと思います。さらにその上で新しく挑戦したいものは何かも自分で考えて見つけることも忘れないでください。

私の場合プログラミングは手段であって目的ではないので、プログラミングばかりに固執してないのが長所だと思っています。プログラミングばかりだと一定年齢、上位レイヤーへのキャリアパスを考えた時に苦労すると思います。

アフターファイブもプログラミングをすることを必須とは思わないですが、新しい技術、言語、フレームワーク、開発手法などは業務外でもアンテナを張って見ておく習慣は必要なのではないでしょうか。

また特定の業種や業界に関わらず色々なジャンルの人と接点を持って色々な話が出来るようにした方が良いです。

そしてフリーランスになるなら今までやって来た言語、フレームワークはいつか捨ててしまうくらいの気概は持っておいた方がいいのではと感じます。

結婚や子供が生まれるなどライフステージが変わることもあると思いますが、ライフワークバランスは何となくでも意識していた方が長期的にみて好ましいと思います。

フリーランスでこれから稼ごうとする人へのアドバイス

最後にこれからフリーランスへの転向を考えているエンジニアの皆さんにアドバイスをお願いします。

事務局

RMさん

これからフリーランスになることを考えると、コロナで制度の内容が先送りされているものの施行自体は決まっている、2023年のインボイス制度導入についても知っておく必要があります。

コロナ禍以降、リモートワークにシフトしました。いずれリモートワークから物理出社へ戻ることなどが予想されますが、その都度時代に合わせながらやって行ってほしいです。

これからフリーランスになることを考えると、コロナで制度の内容が先送りされているものの施行自体は決まっている、2023年のインボイス制度導入についても知っておく必要があります。消費税科事業者の必須化などがどうなるか今のところはっきり分からないものの、そういった税金周りも含めてフリーランスになるには必須であることを認識、勉強していってください。

フリーランスで本気で稼ぐとなると法人成りも視野に入れる必要が出てくるので、自分で勉強するのか良い税理士を見つけるのかなど考えておいた方が良いと思います。

フリーランスで稼ぐとなると技術、業務経験などの専門性と同時に多様性を求められます。フロントエンド、バックエンドどちらかだけではなく両方こなし、インフラやパブリッククラウドマネージメントなどもある程度視野に入れておいたほうが良いでしょう。ただし自分が得意なのが何か分かっていない時はあまり手を広げずに、まずは自分の専門性を磨いたほうがいいとも思います。

まとめ

RMさんは正社員としてもフリーランスとしても様々な現場を経験されていて、扱う言語やフレームワークも多岐に渡っています。業界の裏話もたっぷり織り交ぜたお話を聞かせていただき、その内容もかなり興味深かったですね。

正社員として働いている時にもフリーランスとして働いている時にもご自身や家族の体調不良やトラブルを経験されているため、非常時におけるフリーランスのメリットや困ったことも教えていただけました。またフリーランスになると自分で処理しないといけない保険や税金のお話も、これからフリーランスになることを考えている方にとっては大切な内容です。

お子さんを育てながらエンジニアとして正社員とフリーランスを経験した方のお話は若い方達の参考にもなるかもしれませんね。

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?