技術的アウトプットの量と質と速度を上げる方法について、ハッカソン審査員をしながら考えてみた
先日、VOYAGE GROUPとサポーターズ主催の学生向けハッカソン「ウインターハッカソン」にて、CTO 枠で審査員をさせていただきました。(※僕の厳密な肩書は CDO というのですが、技術系役員として)
今回のハッカソンでは「初めて技術のアウトプットをする」という学生の方も多くいらっしゃいました。限られた時間の中で、高いクオリティのアウトプットを出せた方、逆にうまく完成させられなかった方もいたかと思います。偉そうに審査させていただいたものの、僕自身もハッカソンや業務、趣味プログラミング、研究などで「作りきれなかったなぁ」という悔しい経験をいっぱいしてきました。しかし最近はJX通信社の技術担当役員として「新型コロナ特設サイト」「大阪都構想特設サイト」「精密体感震度」など、「短時間でプロダクトをリリースして大きな反響を受ける」という経験を何回もできています。僕自身も開発したり、インターン生等にもかなり手伝っていただいているのですが、これらの技術的に難しいプロダクトを発足から10営業日程度でリリースすることを繰り返しています。
このように短時間で量・質の高いアウトプットを出すのには、テクニックがあります。今回優勝・入賞された方は、意識せずコツを抑えていたかもしれません。ハッカソンの講評では伝えきれなかったテクニックを3つ紹介します。
プロトタイピングに強い技術を身につける
今回のハッカソンでは何チームか Firebase を使っていました。Firebase は Google のサーバーレスな製品群で、ユーザー認証やデータベース、画像アップロード機能を一瞬で作り、サーバーサイド開発のタスクを全部すっ飛ばすことができます。
また、Bootstrap などのコンポーネントライブラリを使うのもおすすめです。ただ、Bootstrap は老舗で解説記事が多い反面、使われてすぎて野暮ったい印象があるかもしれません。最近のトレンドだと、Tailwind や Chakra UI などが流行っています。Ant Design や Fomantic UI、Element などは既製コンポーネントが豊富なライブラリです。もちろんこれらの大前提として、React、Next.js、Vue.js などの SPA 系の技術をマスターしておくと良いです。
アプリ開発の分野では、React Native や Flutter などのクロスプラットフォーム系が流行っています。これらは iOS / Android 同時に作れるという側面もあるのですが、開発者体験そのものが良いと評判です。(アプリ開発詳しくないので割愛)
今回のハッカソンでは、LINE の bot を作ったチームもいましたが、これもプロトタイピングに適しています。実際の事業でも、サービス画面は作らず、LINE bot だけというものがあります。究極の MVP (実用最小限の製品)です。
最後に、サーバーレスなツールやサービスを知っておくのもおすすめです。 Vercel や serverless-next.js(ちょっと難易度高い) などを使うと、一瞬でサーバーレスな環境にシステムをデプロイできます。ポートフォリオを Heroku にデプロイする方が多いのですが、サーバーレスを学んでおくと、(ほぼ)無料で24時間稼働するシステムを作れますし、業務にも役立つのでおすすめです。冒頭に挙げた JX のプロジェクトは、全部サーバーレスです。
プロジェクトのパターンを身につける
プロジェクトというものは、基本的にゴールと期限と予算が決まっています。ハッカソンも、ゴール=優勝、期限=審査の締め切り、予算=自分たちの工数、というプロジェクトの一種だと言えるでしょう。
さて、プログラムの設計に「デザインパターン」があるように、プロジェクトの管理にも「パターン」があります。例えばプロジェクトを開始するときに 10 個のスライドからなる「インセプションデッキ」を作ることがあります。「エレベーターピッチ」はハッカソンの審査においては「誰のどういう課題を解決していて、どう既存サービスと異なるのか」を端的に説明するテンプレートになっていますし、「やらないことリスト」はハッカソンで諦めることの目線合わせになるでしょう。(アジャイルサムライより)
あるいは、「スクラム開発」ではプロダクトバックログというタスクリストを作って、タスクを工数・価値から優先度付けします。
このようなプロジェクトの「パターン」を使って、解決したい課題の目線合わせ、大事なものの見極めを行えば、限られた時間でのアウトプットを最大化できると思います。(宣伝:プロジェクトの考え方を学ぶには、インターンもおすすめです)
もっと SaaS を使う
最近の IT 界隈では、Figma というデザインツールがバズり散らかしています。Figma はブラウザで利用可能な、無料から使えるデザインツールです。プロトタイプデザイン(クリックして画面遷移するやつ)も作れます。一昔前なら Sketch や Adobe 製品など月額費用を払わないと作れなかったものが、個人利用なら無料でできます。しかも Figma は無料の簡易ツールではなく、プロ利用もされているような本格派ツールです。
ドキュメント共有とタスク管理だと、Notion も流行っています。料金プランが変更されたことで、無料でもかなり使えるようになりました(チーム利用には無料は向かないかも)。
共同編集できるホワイトボードとして、 Miro のようなツールもあります。音声通話は Discord で気軽に会話するのもおすすめです(トランシーバーのように使えます)。
コロナ禍で集まれなくても、これらの SaaS を使えばリアルタイムにストレスなくコラボレーションできますね。
おわりに
技術的アウトプットの量と質と速度を上げるために、3つのテクニックと、いくつかのツールを紹介しました。これらはハッカソンのような一時的な用途だけじゃなく、実際に業務・趣味開発でも使っているテクニック・ツールです。学生の方はぜひ、キャッチアップをしてみてはいかがでしょうか。
宣伝1:インターン募集中です
冒頭にも紹介したプロジェクトは、JX通信社でインターン生の力を借りながらリリースしたものです。現在、Python/Go で開発するサーバーサイドインターンを募集中です(Wantedly 嫌な方は僕に DM でも大丈夫です)。
宣伝2:キャリアについての登壇します
今週の12/12(土)に「30歳以下のエンジニア・エンジニアを目指す学生」向けのオンラインカンファレンス「Developers Boost 2020」が開催されます。こちらで僕のマネジメントキャリアパスについての基調講演をします。僕は技術大好きなんですが、そんな人間が自らマネジメント職を選ぶ、という話をします。他のセッションも面白いと思うので、参加していただけると嬉しいです。(本日13:00まで)
この記事が気に入ったらサポートをしてみませんか?