2018年7月1日から 2 週間という短い期間で、slack like なチャットアプリをチーム開発してみよう!という試みをしてみました。

かなり面白い取り組みになったのでこちらで報告します。

プロジェクト概要

僕は今、りゅうけんの『人生逃げ切りサロン』 というオンラインサロンに参加しています。

ここでは slack を使って色々な取り組みをしているのですが、slack は無料使用の場合、

ログの検索と閲覧が 10,000 件まで という制約があります。

slack はものすごく便利なツールであることは間違いないのですが、過去のやり取りが見れなくなるというのは、結構痛いです笑
まぁ、したら自分たちで作るかーというのは自然な流れですね!メンバーを集めて作ることにしました!

企画の目的

そもそも、単に過去ログがすべて見れるチャットアプリを作るだけであれば、そこまで難しい話でもありません。モチベーションさえ湧けば、ひとりでも作れるものだろうなという気持ちでした。
そんな中で、僕がプロジェクトを立ち上げようと思った理由は 3 つあります。

  • 仲間がいるので開発のモチベーションが湧く
  • 開発ハマりポイントをダイレクトで知れる
  • 現場で通用するスキルを学べる環境を作りたい

仲間がいるので開発のモチベーションが湧く

何をするにもそうなんですが、一番難しいのが「モチベーション維持」です。やり続ける意義が見出せないと、どんなことであれ、続けることって難しいじゃないですか。

今回は、僕が引っ張っていく形になっていたので、開発しつつ、質問に答えつつ、適切にアサインする 経験を積めそうだなと。

あー、めんどくせぇなぁと思っていることでも、 「〜がわかりませんー」と質問が来て、「こうじゃないですかー?」って返事して感謝されるのって、めちゃめちゃ気持ちのいいことですし、楽しいんですよね。

僕のタスクがネックになって進められなかったりすれば、全力でやって次進めてもらわねば!って気持ちもわきますし、誰かに教えながら作るって最高の環境 だと思ってます。

で、その環境を自分で作れたらすごくいいよねと。

開発ハマりポイントをダイレクトで知れる

ある程度開発経験が長くなってくると、初学者がハマるポイントがだんだんわからなくなってくるんですよね。

今回のように複数人で開発してみると、同じポイントで質問が来ます。
すると、よくある質問 がわかるんです。それが知りたかった。

というのも、ブログを書いたり、Qiitaに記事を投稿したりする上で、できるだけ意義のある記事書きたいじゃないですか。せっかく記事を書くのであれば、多くの方に喜んで貰える記事を書きたいですし。

ブログ書くことそのものも、もちろん楽しく感じることはありますが、比べるとゲームしたり映画見たりしてるほうが楽しいですからね笑

多くの方に喜んでもらえる記事を書くことは、非常に高いモチベーションで書けますし、明確な個人をイメージして書けるので、多くの読者にとってもわかりやすい記事が書けるんです。

何よりも、最低 1 人でも喜んでくれるひとがいる! と思いながら記事を書くのは、なんだかワクワクしませんか?

現場で通用するスキルを学べる環境を作りたい

以前、某プログラミングスクールの講師をしていた経験があるのですが、お勉強の延長だなぁこれ って思うことが多かったんですよね。なんというか、無駄が多い。

開発の現場にいると、細かい知識の有無ってあんまり重要じゃないんですよね。その場で調べられれば済む話なので。

採用する側から考えれば至極当たり前なんですが、結局 現場で使うものが当たり前に使える人 が欲しいですし、言語の細かい仕様についてなんてまず聞かれません。

実際の現場は一人で開発するなんてほとんどないですし、チームで開発する上でコミュニケーションだって必要になるわけです。

仕様確認し、実装し始め、調べて、わからなければ聞いて、PullRequest 出して、レビューしてもらって、修正する。

このフローを何度も繰り返して実戦形式で学べる環境を自分で作りたいなーと。

終わってみての感想

仲間がいるので開発のモチベーションが湧く

これは本当に期待通りでした。たくさん質問がきて、それに答える。

やり取りが見れるので、僕だけではなく、参加しているメンバーにとっても高いモチベーションで開発に取り組める環境を作れたのかなと思います。

また、2 週間という短い期間を設定したのがかなり効果が出たように思いました。

締め切り効果めっちゃ大事!

開発ハマりポイントをダイレクトで知れる

かなり収穫がありました。印象深かったのが、git まわり。

一応説明しておくと、バージョン管理に使うツールなんですが、
「最低限なんとなく使える」レベルと、「バリバリ使いこなせる」レベルに結構な差があるように思うんですよね。

僕が教えていたプログラミングスクールでは、Gitの扱いはかなり適当でした。「このコマンド打ってね☆」みたいな笑
ここは、複数人での開発をして初めて身につく分野なので、参加メンバーに教えたこととしては特に好評なポイントでした。

現場で通用するスキルを学べる環境を作りたい

仕様確認し、実装し始め、調べて、わからなければ聞いて、PullRequest 出して、レビューしてもらって、修正する。

とにかくこのフロー回してもらうように心がけましたが、だいぶ感覚をつかんでもらえました。

  • 調べる!とにかく調べる!
  • わからなかったら何がわからないかチャットに投げる!
  • 一人で悩みすぎない!数時間も悩むならさっさと聞く!

こういったプログラミングに直接関係ないスキルを身につけてもらいながら、さらには個々人が学びたいことに取り組み、一人で解決できるようになるためのヒントも与える!

ってな感じで運用できたかなーと。

エンジニア的な考え方に触れる機会 って、スクールとかじゃあまりないんですよね。僕も前の会社で学びました。基本的な考え方が違うとその後の伸び方も全然違うのでほんと大事です。

Special Thanks!

今回の企画に参加してくださった方々をご紹介します。(GitHub の Collaborator に追加しているメンバーを基準にしています)

YUTA さん

実質、企画者の YUTA さん!アパレル系出身で、Web デザイナーになるべく奮闘中!
今回最初から最後まで一番コミットして、2 週間前とは別人かと思うくらいできることが増えたと思います!

てぃす さん

現役エンジニアの てぃす さん!以前は組み込み系のプログラミングに従事されていたそうです!
今回は、フロントエンドに React/Redux を使ったのですが、フロントの環境構築・実装その他すべてやってくださいました笑
それと、企画が終わった後に真っ先にブログ記事にしてくださいました!感謝!

opiyo_taku さん

岡山住まいのSE、opiyo_taku さん!お子さんがいらっしゃる中、時間を作って参加されていました!
プログラマーを目指し勉強中!

神里 さん

元化学系研究者の神里さん。現在は Web デザインや、プログラミングを学び、さらには学んだことを教えているめっちゃアクティブな方。プログラミング教えて欲しい!と頼まれたので、個人的に教えていただくことに。逆にデザインを教えていただき、Win-Win の関係です!

やまもとりゅうけん さん

今回の場を提供してくださった方。現役インフラエンジニア。
意見をズバッと言っているので、ブログや Twitter 見ていて爽快。かなりいいひと。
サロンめちゃおすすめです!

最後に

「実際にアプリを開発しながらプログラミングを学ぶ」というのは、非常に現場の仕事と近く、実践的です。

このブログを見て、「僕も実際にアプリを開発するスタイルでプログラミング教えて欲しい」という方がいらっしゃいましたら、
僕のLINE@からご相談ください!

一緒に何か作りながら、スキルをお伝えできればと思います!

友だち追加