見出し画像

個人開発を通じてみんなで楽しく成長する(#11)

この記事の初出は、Software Design 2023年2月号です。

はじめに

これまで楽しいチーム開発をするためにチームの取り組みを紹介してきましたが、個々人がソフトウェアの開発自体が楽しいという経験を得る事も大切です。
日々の業務の中でその経験が得られれば、それに越した事はありませんが、メンバーのスキルや業務の状況との兼ね合いで、それが難しい場合もあると思います。
そこで、開発が楽しいと感じやすくなる体験として、「各自が企画したアプリ・サービスを作ってリリースする」という活動(以降、個人開発と呼びます)がおすすめです。
今回はその具体的な実施方法を紹介します。

個人開発は楽しく成長できる

実施方法の前に、個人開発で楽しく成長できる理由を説明します。

まず、小さなプロダクトであっても、それを自分で企画してリリースまで行うことはエンジニアとしての成長になります。
例えば、若手エンジニアでプロダクトの一部の機能のプログラミングのみをやっていたメンバーが、個人開発を行えば様々な経験が得られます。
どんな課題を解決するプロダクトを企画するのか、どんな技術を選定して作るのか、どんなアーキテクチャにするのか、どんなUXにするのか、どんなUIデザインにするのか、そしてリリース後にどんなプロモーションをすると多くの人に使ってもらえるのか、などを自分で考えて実行する事になります。
その経験をたくさん積むと、単なるプログラマ視点よりも高い視座からプロダクト全体のためにどうするべきかが考えられるようになります。
したがって個人開発は、エンジニアとしての成長という点で、通常の業務では得られにくい経験が得られます。

また、個人開発を通して学習することは、効率も良いです。
通常、新しい技術を学ぶ時は、「いつか使うかもしれないから」とか「自分の成長のために」とか、そのような動機で書籍や記事を読む事が多いと思います。
そのようないつ使うかわからない技術を調べるのに比べて、個人開発で自分が作りたいものを作るために今必要な技術を調べることは楽しく感じます。
楽しく感じることには、無意識に集中力を高めて取り組めます。

したがって、個人開発のために学習することは、通常の学習よりも効率が良いと言えます。

さらに、個人開発は作りたいものを作ることができる上に、100%自分の成果なので良い結果が出た時の達成感も大きく、「楽しい」という感情が生まれやすい活動です。
個人開発を通してソフトウェア開発の楽しさを実感すれば、業務も楽しく取り組みやすくなると思います。
もしも個人開発の楽しさにはまって、それが趣味になったら、プライベートでも楽しみながらエンジニアとして成長できるようになります。

個人開発の勧め方

今回は、「個人開発って何ですか?」という初心者のチームのメンバーに対して、私が実践している個人開発の勧め方を紹介します。
大まかには、個人開発とは何かを知ってもらい、それが簡単にできると感じてもらい、やってみたいと思ってもらうという流れです。

まず、『個人開発をはじめよう!クリエイター25人の実践エピソード』という書籍を活用します。
この書籍には、個人開発者25人の生々しい体験談が書かれていて、個人開発でどんなものをどんな方法で作り、どんな結果を得たのかが分かります。
そのため、まずこの書籍に書いてあるいくつかのエピソードの要約をメンバーに説明し、個人開発のイメージをつかんでもらいます

ただ、個人開発の例をいくつか聞いただけでは、それをやったことのない若手エンジニアにとってはハードルが高いままです。
そのため、ハードルを下げる必要があります。
そこで『Web1Week』という1週間でWebサービスを作るイベントのことを紹介します。
そのイベントは誰でも参加できるもので、参加者は主催者がお題を公開してから1週間以内にお題に合ったWebサービスを作って公開します。
開発期間が1週間しかないため、公開されているWebサービスは、どれも小規模です。
そのいくつかのWebサービスをメンバーに説明することで、個人で企画してプロダクトをリリースする事は簡単であり、自分にもできそうだと感じてもらいます

そうなったら、あとは個人開発をやりたい気持ちになるように、私自身が個人開発を行ってみて、嬉しかったことや楽しかった事を伝えます。
私は、スマホアプリとWebサービスとデスクトップアプリをそれぞれ作ってリリースした事があり、一部のアプリはマネタイズも行っています。
公開したアプリに対して「とても便利」というポジティブな声をもらって嬉しかった事や、毎月広告収入が入ってくることの喜びや、ユーザーからの要望を参考にどんな改善をするかを全て自分で決めて作る楽しさなどを伝えます。
「嬉しかった」「楽しかった」という感情面でのメリットは、書籍や記事だけではなかなか伝わりにくいため、そこは勧める人の実体験をもとにビデオ通話(もしくはオフライン)で伝えた方が感情を動かしやすいと思います。

参考までに、以下は私が公開しているOSSのアプリです(こちら)。

ここまでの説明により、メンバーは自分も作ってみようとなるので、次はどのように作り始めるかを説明します。

初めての個人開発の始め方

まず、メンバーに何が作りたいか聞きます。
ただ、個人開発の経験がない場合、「思い付かない」という答えが返って来ることが多いです。
その場合は、どんな事に興味があるかを聞いた上で、それに関して自分自身がユーザーとして使って便利なものを作ることを勧めます。
そのように勧める理由は、初めての時は完成させる事が大事だからです。
マーケティングはいったん脇に置いて、自分が興味・関心を持つ事で、しかも自分の役に立つものを作る方がモチベーションを保ちやすいです。
大まかなテーマが決まったら、MVP(Minimum Viable Product)として価値を提供できる最小限の機能を一緒に考えます。

あとは、チームの皆で個人開発をやる時間として「個人開発タイム」を週に1時間設定し、少しずつでも進めます。
技術的につまった場合は、個人開発タイムでペアプログラミングをすることで解消します。
時々メンバー同士でペアプログラミングやモブプログラミングをしたり、各自の途中成果を見せあってフィードバックし合うことで、お互いに刺激を受けて知見を共有しながら、開発を進めます。

週に1時間の個人開発タイムでも、1年あればリリースできます。そして、MVPをリリースできたら、皆に見てもらう場を設けて皆で称賛します。
それが成功体験となれば、その後は主体的に個人開発を続けてくれます。

まとめ

私は今回紹介した方法で、6人の若手エンジニアに個人開発を勧めました。
個人開発を通して、企画から考える経験を得たり、新しい技術を学んでくれたり、楽しい体験を得たり、個人開発が趣味になったメンバーもいたので、勧めて良かったと思っています。

私の見解として、業務時間内で個人開発をすることは、業務時間内に勉強会をすることと同等以上の効果があると考えています。
従って、皆で楽しく成長するために、チーム全員で個人開発にチャレンジしてみては、いかかでしょうか?


連載「ハピネスチームビルディング」の次回の記事はこちら↓

前回の記事はこちら↓


読んでいただき感謝です!何か参考になる事があれば、スキを押していただけると励みになります。毎月チームビルディングの記事を投稿してます。 Twitterもフォローしていただけると嬉しいです。 https://twitter.com/kojimadev