PHPの副業事情
はじめまして。フリーでWebエンジニアとして活動している難波(@dala00)です。
10年以上フリーで活動しており、いつもほぼ一人での開発を行ってきたため、フロントエンド・バックエンド・インフラ・スマホアプリなど状況に応じてなんでもやっています。
▲『個人開発のための Webサービス公開マニュアル』
また、個人で色々とサービスを作ったり、年間100以上の技術記事を書いたりしています。今回は、実際のPHPを使用した副業案件の内容や、その際に気をつけていたことを紹介したいと思います。
PHPは敷居が低い
まず、PHPはHTMLの中にプログラムを混ぜることができるため、極端な話、一つでもPHPの機能を把握していれば実際にサイト上で動かすことが可能です。
また、元々私はC言語で仕事をしていたため、簡単に構文を覚えることができたというのもPHPを選んだ理由の一つです。
さらに、私が副業を始めた当初は、ちょっとした開発にPHPが用いられるようになった時代でした。当時は、現在のようなAWSやGCPといったクラウドサービスや、Herokuのような簡単にデプロイができるサービスはなく、サービス運営には主にVPS・専用サーバー、特に小さな案件の場合はレンタルサーバーが用いられていました。
レンタルサーバーは基本的にPerl、もしくはPHPだけが使えたのですが、PHPの登場でPerlは下火になり、ちょっとした開発をするならPHPが一般的となりました。
PHPは自由度が高い
PHPは自由度が高いため、当時はみんなこぞって新しいフレームワークを試したり、独自にフレームワークを制作したりしていました。しかし、仕事で使い勝手の悪いフレームワークを使い続けることになったり、使用していたフレームワークが終わってしまったりと、非常に混沌とした時代でもありました。
現在はLaravel一択に落ち着き、昔に比べて非常に便利になりました。
また、PHPに関する情報も多く、最近では仕事にも使用されるほど利用者数は増えているようです。さらに、PHP自体の処理の高速化も行われており、ちょっとしたレンタルサーバーであればLaravelも動きます。
フレームワークの自由さに加え、場所を選ばず使用できるということは大きなメリットなのではないでしょうか。
PHPの副業案件には、どんなものがある?
フリーになってから今までにさまざまな案件を請け負ってきました。基本的には、PHPを利用したWebシステムの開発案件です。
また、お客様とやりとりしているうちに「実はこういう案件もあるんだけどできたりするかな…?」といったお話をいただくこともちょくちょくあり、少しずつ新しいことにチャレンジする機会を手に入れることもありました。
例えば専用サーバーやVPSで環境構築をしてサーバーを運用したり、社内のイントラネット内で運用するシステムを作ったりと個人の趣味ではできるなかなか身につきにくい技術を習得することもできました。
サイトの修正・改修
初めてのお客様からいただく案件で多いのは、既存システムの改修です。ここで問題なく案件をこなすことができれば次の仕事につながることも多いので、スピード感をもって着実に取り組んでいく必要があります。
新規サービスの作成
同じお客様から何度か請け負ううちに、徐々に新規サービスの開発の話も来るようになります。
基本的には一人で開発を行っているため、細かい仕様についてのやり取りというソロプロジェクト的なマネジメントや内部設計、バックエンドからフロントエンド、また必要に応じてインフラの設定や技術提案、そして本番リリースまで全て一人で行ってきました。
現在依頼を頂いているお客様の中には当時からのお客様もいらっしゃいます。それだけ長期間に渡って依頼をいただけているのは、全てを一人でこなしてきたことによって、技術力や問題解決力が向上してきたこともあるのかもしれません。しかしそれだけでなく、例えわからないことがあっても諦めずに必死で完成に向けて突き進み、依頼達成までやり尽くす姿勢が評価されてきたのではないかと感じています。
開発者が逃げてしまったり、途中であきらめて完成させられなかったという話をお客様からこれまで何度も聞きました。そのため、例え技術者として優れていなくても、依頼を達成する過程こそが開発者にとってもお客様にとっても資産になると常々感じています。
社内管理アプリの作成
社内で利用する業務用アプリケーションの作成も多く請け負ってきました。例えば出勤管理システムや、顧客管理システムを含むCRMのようなものです。
また、商品紹介サイトを運営するための独自CMSや、ユーザーに利用してもらうマッチングサイトや予約サイト、アンケートサイトのようなWebサービスも次いで多く開発しました。
変わり種としてはイベント向けのガラケー用ゲームやスマホアプリ、Flashゲームやmobage等のソーシャルゲームの作成も行いました。
その他小さいものでは、Windows用のデータ管理ソフト等、とにかく出来そうなことに何でも取り組んできました。
PHPの副業案件を受けるうえで気をつけること
副業にはさまざまな形態があるため、以下の点は事前に確認しておいた方が良いでしょう。
目安となる報酬額の設定
一時的な副業であれば問題ないかもしれませんが、継続していく場合は報酬額についてしっかりと考え、その都度自分の中で目安となる額を設定しておきましょう。
というのも、副業の場合、自分の価値を決めることができるのは自分だけです。実際にいろいろとこなしていき、実績や技術力が伸びてきたら報酬も徐々に上げていくと良いでしょう。
新規で案件を受ける際には、報酬額が想定よりも低いことがあります。その際に、他に受けるメリットを感じられない場合は、交渉したり断ったりすることも必要です。案件を変える度に、元々受けていた案件よりも少し高い報酬額を設定できるとステップアップが望めます。
しかし、それによって長く請け負っている案件の報酬額を低いと感じてしまうことがあります。その時は報酬アップの依頼をすると良いでしょう。ただし不具合やトラブルを多く発生させてしまった後に依頼をするのでは断られる可能性もあります。そのため活躍した時期や切りのいいタイミングを見計らい、収入アップが双方にとってメリットとなるということを提示できると一番良いでしょう。
在宅の場合は定期的な進捗の報告を欠かさない
副業の場合、仕事終わりに家でリモートワークをするパターンが多いのではないかと思います。
そのため、仕事相手がいつも一緒に仕事をしている馴染み同士であれば問題ないかもしれませんが、そうではない場合は開発者がどれくらい仕事ができるのか、そしてそもそも今何をやっていてどこまで進んでいるのか常時不安になります。
そのため、たとえ切りが悪くてもある程度時間が経ったら現在の状況を自主的に報告しましょう。また、問題点や不明点が見つかった際はなるべく早めに連絡をして解決を図ろうとする気遣いが重要です。
実際にやりとりを怠っていて、完成間近に機能の認識を勘違いしていた事が発覚したり、最後の最後で解決できない問題を発見して困るパターンもあります。トラブルを解決しつつ進めるために、普段からいろいろと考えを巡らせ、コミュニケーションを欠かさないことが重要です。
PHPを活用して個人開発も積極的に行う
私の趣味でもあるのですが、普段から個人でWebサービスの開発も行っています。
▲イベント登壇時の写真
技術が身についた
個人でサービスを作ると、実践的な技術が身につきます。本業では使うことができないような技術を自由に使用することができるので、単純にプログラミングが好きな方は作っているだけで楽しいでしょう。
また、そこで新たな技術が身につきますので、実際に本業の案件で役に立つことが多くあります。例えば、私もVue.jsやReact、昔のガラケーアプリやスマホアプリ等の技術を個人開発で身につけ、本業に活かしています。
視野が広がった
サービスやアプリの運営を行うと、受注開発を行っているときとは違い、実際のユーザーの気持ちを考えられるようになります。下記のような点でサービスに関して深く考えることができるようになります。
- なぜ自分のサービスが使われないのか
- 人々が求めているものは何なのか
- 既に人気のある他のサービスとの違いは何なのか
- この仕様は本当に必要なのか
- 何かを削ることでスケジュールを詰めることができるのではないか
また、単に開発するだけの時には使わないようなアナリティクスや広告等のサービス、サービス運営を円滑にすすめるためのツールについても詳しくなることができます。
こういった経験は、決して個人の趣味だけに役立つわけではありません。業務上でお客様とのやり取りを円滑に進めることが出来たり、問題解決に役立つ材料となるでしょう。
PHPの技術と知識を活用して副業に挑戦してみよう!
このように、副業でいくつもの業務を並行して行うということには、さまざまなメリットがあります。特に家族が出来て時間がなくなると副業も行いにくくなる可能性があるため、若いうちにどんどん挑戦していくことを個人的にはおすすめします。
私も現在は、全ての作業ががメイン業務となっているため副業という枠ではないのですが、今でも突発的にあまり慣れていない案件を請け負ったり、いろんなことに挑戦するようにしています。請け負う際にあまり役に立たないと思っても、まるで運命かのようにそれが役に立つ場面が必ず現れます。
みなさんも是非いろんなことにチャレンジしてみてください。