プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

個人開発を続ける方法

この記事はQiita Advent Calendar  「個人開発」参加記事です。
qiita.com

個人開発という観点で得た知見をまとめました。

なぜ始めたか?

電子工作、プログラミングに興味があった。
何のために続けているのか? (目的)下記のメリットがあるからです。

メリット

・自分のアイデアを具現化できる
通常、業務として開発を行うと会社、もっと言えば株主、顧客というステークホルダーが居るため、自分の好きなものが作れるとは限りません。
・好きな時間に開発できる
(納期は自分次第。ゆっくりやるも、一気にやるも)
・技術力・知識がつく
・本業にも活かせる
後述しますが、本業の業務の幅が広がりました。
・こづかい稼ぎになる
アフィリエイトです。ただし、お金を目的にするとなると別。(後述)

デメリット

・多少のお金はかかる。
Raspberry PiArduinoなどのマイコン、電子部品、書籍などと電気代。サーバー代はかけてません。
・時間を無限に食う
(考え方によってはメリットかも?)。

どうやって始めたか

電子工作に興味をもって、Arduinoから始めました。ArduinoとかRaspberry Piは数千円で入手できます。もともとこれらは教育用に開発されたシングルボードコンピューターですが、その低コストな面から今ではビジネスでも多く使われています。
電子回路も知っておかないといけません。例えばArduinoでは最大20mA(ピンによっては40mA)ほどしか流せないのでモーターやファンなどは駆動できません。トランジスターを使ったリレー回路が必要です。そうなるとアナログ回路の知識が必要になってきます。プログラミングと電気回路は切っても切り離せない関係にあります。

こづかい稼ぎにもなったらいいな、とも思いました。将来会社やめれたらサイコーです。

とりあえず作ってみる

 作ってみて(きっちりやるときはそれをプロトタイプという)使い勝手や、追加の機能を考え、また作ります。
業務として行うなら「仕様」というものがありますが、個人開発においては往々にして仕様が明確になりません。何となく、先行製品に対して、ここと、ここと、ここを、こうしたい。みたいな思いで作り始めます。既存のものに対して、新しい機能を付ける、動作を速くする、UIを分かりやすくする、といったものでも需要はあります。しかし、作ってみて完成度が上がってくると、このフレームワークではだめだ、ということは起きます。十分な経験があって作り始めれば、最初から最適な構成で作れますが、そうでない場合は、作ってみて気づくしかありません。

「個人開発でも仕様書を書いてから」というのも一理ありますが、仕様書を書くと「安全策」を取らざるを得なくなります。技術を身に着けてから作るのではなく、フレームを作ってみて、部分試作をしながら模索するというのも必要です、特に初心者は個人開発などできなくなってしまいます。 

これを「服を買いに行く服がない」といいます。

収益化

個人開発でもこづかいが無限にある人は考える必要はありません。
しかし、私はそうではないので多少は収益化を考えています。 アフィリエイトはクリックしてもらうことが重要であり、webとは切っても切り離せない関係にあります。拡張ボードはありますが、ネットワーク接続にはArduinoは不向きです。アナログ入出力が使える点は大きな機能ですが(ESP32とかもありますけど)。Raspberry Piであれば標準でネットワーク接続が出来ます。Linuxなので、初めは基礎的ないくつかのコマンドだけを使って、プログラミング言語としてPythonを使って開発を始めました。

個人であっても収益を上げれば税金のことを考えなければなりません。しかし、20万円以下で、他社に勤めてなければ雑所得として控除されます。

給与所得があるひとが、20万円いかならOK。1社から給料を受け取り年末調整をしている会社員(給与所得者)で、アフィリエイトなど副業からの所得金額が年間20万円以下の場合は、確定申告は不要となります。アフィリエイトなどの副業所得が、年間20万円以下の会社員の場合でも、医療費控除などで確定申告を行う場合には、全ての所得を申告する必要があるため注意しましょう。アフィリエイトの場合、ポイントで受領したものも収入になります。

www.valuecommerce.ne.jp

これを越えるなら開業を検討する必要があります。
gold-hippo21.net

サーバー代やプログラミング講座など、月額でコストが掛かるものは避けました。
「ここでやめてしまったほうが利益になる」と思ってしまうと続きません。
一方、初期投資としてのハードウェアや書籍は、あとは消費してしまうことが利益になります。続けるしかありません。

これが本業となると、月々収益何百円では成立しませんが、趣味だと思うと収入支出がプラスであれば継続するには十分です。
また、金銭的な面にプラスして技術力が(多少でも)つきます。

「投資しなければリターンがない」という人もいますが、私は固定費を無くして持続可能性を上げる戦法をとることにした。
「持続可能な開発」は重要です。

本業への効果

私の本職は組み込み機器の制御設計です。動作仕様の設計であって、プログラムを書く仕事ではありませんでした。
しかし現在は、一部をやらせてもらっています。ソフトウェア担当者にお願いしようとすると、仕様書を書いて依頼する必要があります。また、上手くいくかどうかわからない状態で実装してもらうというのも気が引けます。
しかし、自分で組ませてもらえば、実装して上手くいかなかったら違う方法、を高速にPDCA出来ます。結果的に質のよい仕様が出来ました。

まとめ

個人開発から初めて、この2年ほど本業でも開発用ツールの作成もさせてもらえるようになりました。
(自身の)人件費を別として、持ち出しが無い程度の費用で継続することが重要だと思っています。
また「自分が欲しいものを作る」というのも継続するうえで重要です。
収益を上げることを目的に作って、収益が上がらないと続けにくくなりますが、自分が欲しいものを作れば自分のために作り続けることが出来ます。