Upgrade to Pro — share decks privately, control downloads, hide ads and more …

学生が個人開発でイケてる成果物を作るコツ / Tips for students to create awesome products in personal development

学生が個人開発でイケてる成果物を作るコツ / Tips for students to create awesome products in personal development

2021年3月13日 - 3月15日に開催された技育祭( https://talent.supporterz.jp/geeksai/2021/ )で登壇したときの資料です。

スライドで紹介したリンク
* 技育祭2020でのセッション
 * タイトル『400人以上のインターン生を受け入れ成長させてきたCTOが考える若手エンジニアが成長するコツ』
 * スライド
 * 講演動画
 * 補足記事
* VOYAGE GROUP サマーインターン 「Treasure」2021
 * エントリー受付
* 書籍
 * Engineers in VOYAGE ー 事業をエンジニアリングする技術者たち
 * 入門 起業の科学
 * プロダクトマネジメント――ビルドトラップを避け顧客に価値を届ける
 * SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発
 * ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本
* 記事、スライド
 * The Myth of Incremental Development
 * マネジメント向けアジャイル開発概要
 * テストコードのリファクタリングが目指すもの

KOGA Masanori

April 26, 2021
Tweet

More Decks by KOGA Masanori

Other Decks in Programming

Transcript

  1. 学生が個人開発で

    イケてる成果物を作るコツ

    @技育祭2021


    View Slide

  2. 自己紹介

    ● 小賀 昌法

    ○ 株式会社VOYAGE GROUP 取締役CTO (2010年7月 - )

    ○ 株式会社CARTA HOLDINGS 執行役員CTO (2020年1月 - )

    ○ 日本CTO協会 理事

    ● 技育祭2020でのセッション

    ○ タイトル『400人以上のインターン生を受け入れ成長させてきたCTOが考える若手エンジニアが成長するコツ』

    ■ 「若手エンジニアが成長するコツ」で検索してみてね

    ○ スライド https://speakerdeck.com/makoga/three-tips-for-young-engineers-to-grow-and-examples-of-voyage-group-practice

    ○ 講演動画 https://www.youtube.com/watch?v=_aw5SLdiwTM

    ○ 補足記事 https://techlog.voyagegroup.com/entry/geeksai2020_growing-tips-for-young-engineers

    ● 書籍『Engineers in VOYAGE ー 事業をエンジニアリングする技術者たち』の企画、監修

    ○ https://techlog.voyagegroup.com/voyagebook 


    View Slide

  3. イケてる成果物を作る

    にはどうすればいいのか?


    View Slide

  4. すでに多くの知見が入手できる

    https://www.amazon.co.jp/dp/B07P5K4DQ3/ https://www.oreilly.co.jp/books/9784873119250/
    https://www.amazon.co.jp/dp/B086GBXRN6/ https://www.amazon.co.jp/dp/B082WXZVPC/
    イケてる成果物を作るにはどうすればいいのか? 


    View Slide

  5. 学生の個人開発はここが違う

    イケてる成果物を作るにはどうすればいいのか? 

    時間がない チームじゃない 締切がない

    View Slide

  6. 学生が個人開発で
    イケてる成果物を作る

    にはどうすればいいのか?


    View Slide

  7. 小さく作り、磨いていく

    Small
    Base App
    1. ベースとなる小さな
    アプリを作る
    2. UXと内部品質を磨く
    Awesome
    App
    学生が個人開発でイケてる成果物を作るにはどうすればいいのか? 


    View Slide

  8. 目次

    ● [13:35] 自己紹介

    ● [13:38] 学生が個人開発でイケてる成果物を作るには

    ● [13:40] 1. ベースとなる小さなアプリを作る

    ● [13:57] Q&A

    ● [14:00] 2. UXと内部品質を磨く

    ● [14:15] Treasureの紹介

    ● [14:25] Q&A


    View Slide

  9. 目次

    ● [13:35] 自己紹介

    ● [13:38] 学生が個人開発でイケてる成果物を作るには

    ● [13:40] 1. ベースとなる小さなアプリを作る

    ● [13:57] Q&A

    ● [14:00] 2. UXと内部品質を磨く

    ● [14:15] Treasureの紹介

    ● [14:25] Q&A


    View Slide

  10. 小さく作り、磨いていく

    Small
    Base App
    1. ベースとなる小さな
    アプリを作る
    2. UXと内部品質を磨く
    Awesome
    App
    学生が個人開発でイケてる成果物を作るにはどうすればいいのか? 


    View Slide

  11. よくある悩み

    作りたいものが

    決まらない


    View Slide

  12. 作りたいものが決まらないときのコツ

    すでにあるものを模倣して、
    小さな成果物を作ることから始めてみよう
    ゲームとか?

    サービスとか?

    作りたいものが

    決まらない


    View Slide

  13. 考えることは山のようにある

    入門 起業の科学 STEP 0 「成功に至るプロセス」を理解するから抜粋

    View Slide

  14. 模倣することのメリットは考えることを減らせること

    入門 起業の科学 STEP 0 「成功に至るプロセス」を理解するから抜粋
    このあたりに
    注力できる

    View Slide

  15. よくある悩み

    やることが多すぎて

    終わらない


    View Slide

  16. やることが多すぎるときのコツ

    優先順位をつけて、今すぐ必要なこと
    に手をつけよう
    やることが多すぎて

    終わらない


    View Slide

  17. すでにあるものを模倣して、
    小さな 成果物を作ることから始めてみよう
    ゴールが大規模でもいいが、まずは小さくする

    ゲームとか?

    サービスとか?

    やることが多すぎるときのコツ 

    世界中の人とオンラインで闘う
    バトルロイヤル・ゲームとか
    日本競馬史にその名を刻んだ名馬
    たちをモデルとした娘がレースす
    るゲームとか

    View Slide

  18. 大きなものを小さく作り始めるときの考え方

    ● まずはスケボーを作る
    ○ 試せることが大事
    ● タイヤから作らない
    ○ 部品にこだわりたくなっても我慢
    ● 目的を達成する最小の動くもの
    を作る
    やることが多すぎるときのコツ 

    https://herdingcats.typepad.com/my_weblog/2014/07/the-myth-of-incremental-development.html

    View Slide

  19. ターゲットを絞る

    ● 例
    ○ iOS14単体で動くアプリ
    ○ サーバーサイドでHTMLを返す
    Webアプリ
    ○ HTML+JavaScript
    やることが多すぎるときのコツ 


    View Slide

  20. 優先順位の付け方

    ● 機能等を書き出す(バックログ)
    ● 優先順位をつける
    やることが多すぎるときのコツ 

    http://agile.blog.jp/agile_scrum/14974437.html

    View Slide

  21. 優先順位の付け方

    ● ユーザーが頻繁に使うコアな機能
    ● 不確実性の高い技術
    ○ 使ったことのない技術、外部API
    やることが多すぎるときのコツ 

    https://slide.meguro.ryuzee.com/slides/101?vertical=1

    View Slide

  22. ユーザ同士がコミュニケーションす
    るWebサービスを作りたいときの例
    として、Twitterを模倣して考えて
    みる
    模倣して小さな成果物を作る例


    View Slide

  23. ターゲットを絞る: Twitterを模倣

    サーバーサイドでHTMLを返すWebアプ
    リに絞る
    やることが多すぎるときのコツ 


    View Slide

  24. 大きな課題を分割するときの考え方: Twitterを模倣

    やることが多すぎるときのコツ 

    https://herdingcats.typepad.com/my_weblog/2014/07/the-myth-of-incremental-development.html
    何があると
    スケボーになる?

    View Slide

  25. 優先順位の付け方: Twitterを模倣

    ● 1st priority
    ○ ツイートする
    ○ 自分のツイートがタイムラインに
    表示される
    ● 2nd priority
    ○ 他のユーザーをフォローする
    ○ フォローしたユーザーのツイート
    と自分のツイートがタイムライン
    に表示される
    やることが多すぎるときのコツ 

    http://agile.blog.jp/agile_scrum/14974437.html
    ーーーーーーーーーーーーーーーー

    ここまでをベースアプリとするのは
    どうか?

    View Slide

  26. 優先順位の付け方: Twitterを模倣

    ● 3rd priority
    ○ いいねする
    ○ 返信する
    ○ リツイートする
    ■ 引用なし
    ■ 引用あり
    ○ プロフィールを登録・編集する
    ○ プロフィールと一覧が連携してい

    ● 4th priority
    ○ ユーザー登録する
    ○ 認証する
    ○ 画像をアップロードする
    やることが多すぎるときのコツ 

    http://agile.blog.jp/agile_scrum/14974437.html
    いいねをベースアプリに入れても
    いいかも?

    ーーーーーーーーーーーーーーーー


    View Slide

  27. 小さく作り、磨いていく

    Small
    Base App
    1. ベースとなる小さな
    アプリを作る
    2. UXと内部品質を磨く
    Awesome
    App
    学生が個人開発でイケてる成果物を作るにはどうすればいいのか? 


    View Slide

  28. 目次

    ● [13:35] 自己紹介

    ● [13:38] 学生が個人開発でイケてる成果物を作るには

    ● [13:40] 1. ベースとなる小さなアプリを作る

    ● [13:57] Q&A

    ● [14:00] 2. UXと内部品質を磨く

    ● [14:15] Treasureの紹介

    ● [14:25] Q&A


    View Slide

  29. 目次

    ● [13:35] 自己紹介

    ● [13:38] 学生が個人開発でイケてる成果物を作るには

    ● [13:40] 1. ベースとなる小さなアプリを作る

    ● [13:57] Q&A

    ● [14:00] 2. UXと内部品質を磨く

    ● [14:15] Treasureの紹介

    ● [14:25] Q&A


    View Slide

  30. 小さく作り、磨いていく

    Small
    Base App
    1. ベースとなる小さな
    アプリを作る
    2. UXと内部品質を磨く
    Awesome
    App
    学生が個人開発でイケてる成果物を作るにはどうすればいいのか? 


    View Slide

  31. よくある悩み

    最低限はできたけど

    ここからアイデアが

    ない


    View Slide

  32. 追加したい機能や改善点が思いつかないときのコツ




    フィードバックをもらい
    UXを磨く
    基盤やコードを整備し
    内部品質を磨く
    最低限はできたけど

    ここからアイデアが

    ない


    View Slide

  33. フィードバックをもらい、UXを磨く

    ● 友人・知人に作ったものを使っ
    てもらおう
    ● 使い方に迷っていたり、自分が
    考えていたのと違う操作をした
    ときがあれば、メモっておこう
    ● 一通り使ってもらったら感想を
    聞こう
    追加したい機能や改善点が思いつかないときのコツ 


    View Slide

  34. 参考:プロダクトインタビュー

    ● 質問リストの抜粋
    ○ これは何をするものだと思いますか?
    ○ 今、何をしようとしていますか?
    ○ XXXボタンは何をするものだと思いますか?
    ○ XXXボタンは期待通りに動きましたか?
    ○ 期待通りでないならば、どのように動くと期待して
    いましたか?
    ● チェックポイントの抜粋
    ○ そのプロトタイプを使っていて何かつまづいたこと
    はあったか?
    ○ ユーザーがUXによって何を助けてほしいか、どのよ
    うな体験をしたいかについて(作り手側が)言語化
    できたか?
    追加したい機能や改善点が思いつかないときのコツ 

    https://www.amazon.co.jp/dp/B07P5K4DQ3/
    入門 起業の科学 『CHECK 28 「プロダクトインタビュー」でユーザー体験を検証』から抜粋

    View Slide

  35. フィードバックで得た気付きから、
    バックログを追加し、優先順位をつ
    ける。
    http://agile.blog.jp/agile_scrum/14974437.html
    フィードバックをもらい、UXを磨く

    追加したい機能や改善点が思いつかないときのコツ 


    View Slide

  36. 追加したい機能や改善点が思いつかないときのコツ




    フィードバックをもらい
    UXを磨く



    基盤やコードを整備し
    内部品質を磨く

    最低限はできたけど

    ここからアイデアが

    ない


    View Slide

  37. 基盤やコードを整備し、内部品質を磨く

    ● 他のPCでも開発できるようにする
    ○ GitHubなどにPush
    ○ README、開発ドキュメントを書く
    ○ 1ステップで環境構築できるようにする
    ● テストを充実させる
    ○ 1ステップでテストを実行できるように
    する
    ○ テストコードを書く
    ● ゼロから書き直してみるのもあり
    ○ 前回よりも短かい時間でキレイなコード
    が書けるはず
    追加したい機能が思いつかないときのコツ 


    View Slide

  38. 基盤やコードを整備し、内部品質を磨く

    ● 他のPCでも開発できるようにする
    ○ GitHubなどにPush
    ○ README、開発ドキュメントを書く
    ○ 1ステップで環境構築できるようにする
    ● テストを充実させる
    ● ゼロから書き直してみるのもあり
    追加したい機能が思いつかないときのコツ 

    VOYAGE GROUPにある実際のリポジトリの READMEから抜粋

    View Slide

  39. 基盤やコードを整備し、内部品質を磨く

    ● 他のPCでも開発できるようにする
    ● テストを充実させる
    ○ 1ステップでテストを実行できるように
    する
    ○ テストコードを書く
    ■ 参考
    ● テストコードのリファクタリ
    ングが目指すもの/DXD 2021
    ● ゼロから書き直してみるのもあり
    追加したい機能が思いつかないときのコツ 

    VOYAGE GROUPにある実際の
    リポジトリの READMEから抜粋
    VOYAGE GROUPではほとんどのチームが複
    数の言語を使っており、上記のように makeから
    testやbuildを行えるようにしていることが多い

    View Slide

  40. 基盤やコードを整備し、内部品質を磨く

    ● 他のPCでも開発できるようにする
    ● テストを充実させる
    ● ゼロから書き直してみるのもあり
    ○ 前回よりも短かい時間でキレイなコード
    が書けるはず
    追加したい機能が思いつかないときのコツ 


    View Slide

  41. イケてる成果物を作る

    にはどうすればいいのか?

    再掲

    View Slide

  42. すでに多くの知見が入手できる

    https://www.amazon.co.jp/dp/B07P5K4DQ3/ https://www.oreilly.co.jp/books/9784873119250/
    https://www.amazon.co.jp/dp/B086GBXRN6/ https://www.amazon.co.jp/dp/B082WXZVPC/
    イケてる成果物を作るにはどうすればいいのか? 
 再掲

    View Slide

  43. 学生の個人開発はここが違う

    イケてる成果物を作るにはどうすればいいのか? 

    時間がない チームじゃない 締切がない
    再掲

    View Slide

  44. 学生が個人開発で
    イケてる成果物を作る

    にはどうすればいいのか?

    再掲

    View Slide

  45. すでにあるものを模倣して、
    小さな成果物を作ることから始めてみよう
    作りたいものが決まらないときのコツ

    ゲームとか?

    サービスとか?

    作りたいものが

    決まらない

    再掲

    View Slide

  46. やることが多すぎるときのコツ

    優先順位をつけて、今すぐ必要なこと
    に手をつけよう

    やることが多すぎて

    終わらない

    再掲

    View Slide

  47. 追加したい機能や改善点が思いつかないときのコツ




    フィードバックをもらい
    UXを磨く
    基盤やコードを整備し
    内部品質を磨く

    最低限はできたけど

    ここからアイデアが

    ない

    再掲

    View Slide

  48. 小さく作り、磨いていくことで、

    多くのイケてる成果物が生み出されることを

    期待してます!

    Small
    Base App
    1. ベースとなる小さな
    アプリを作る
    2. UXと内部品質を磨く
    Awesome
    App
    学生が個人開発でイケてる成果物を作るにはどうすればいいのか? 


    View Slide

  49. 目次

    ● [13:35] 自己紹介

    ● [13:38] 学生が個人開発でイケてる成果物を作るには

    ● [13:40] 1. ベースとなる小さなアプリを作る

    ● [13:57] Q&A

    ● [14:00] 2. UXと内部品質を磨く

    ● [14:15] Treasureの紹介

    ● [14:25] Q&A


    View Slide

  50. 学生の個人開発はここが違う

    イケてる成果物を作るにはどうすればいいのか? 

    時間がない チームじゃない 締切がない
    再掲

    View Slide

  51. 3週間でチーム開発するTreasureで全て解決!

    イケてる成果物を作るにはどうすればいいのか? 

    時間がない チームじゃない 締切がない
    解決 解決 解決

    View Slide

  52. View Slide

  53. Go言語を使って学ぶ

    価値のあるもの創りとチーム開発

    8/9(月)〜8/27(金)

    https://voyagegroup.snar.jp/jobboard/apply.aspx

    View Slide

  54. インプット/アウトプットのサイクル


    講義:6日間 チーム開発:8日間
    Input
    Output

    View Slide


  55. 【Treasure2021講義内容】


    ・フロントエンド(TypeScript)

    ・バックエンド(Go)

    ・データベース設計

    ・インフラ / セキュリティ(AWS)

    ・アイデアを出す考え方


    小さく、シンプルな
    ベースアプリが用意して
    あります!
    インプット/アウトプットのサイクル


    View Slide


  56. 【Treasure2021チーム開発内容】


    ・4人1組でチーム開発

    ・各チームにクルー2名がフルコミット

    ・ペアプロ / コードレビューをがっつり

    ・VOYAGE GROUPのエンジニアリング文化を体感


    学生4人、クルー2人で
    最終プレゼンに向け
    チーム開発します!
    インプット/アウトプットのサイクル


    View Slide

  57. フルコミット体制


    24名    40名

    Treasure生より、講師・サポーターの方が多い!!

    View Slide

  58. 昨年のTreasure生の声


    Webの面白さはもちろんですが、
    それ以上にプロダクトづくりの面白さを肌で実感することができました!
    自分の作りたいもの・価値あるものを作れるように
    今後も技術に貪欲にいたいと思いました!
    #voyage_intern
    圧倒的に考え方も立ち回りかたも成長できた。
    本当にいい夏だった!
    最後までサポートしていただいて、本当に感謝して
    います。これからのエンジニア人生の一部にな
    ることは間違いないです!

    View Slide

  59. 目次

    ● [13:35] 自己紹介

    ● [13:38] 学生が個人開発でイケてる成果物を作るには

    ● [13:40] 1. ベースとなる小さなアプリを作る

    ● [13:57] Q&A

    ● [14:00] 2. UXと内部品質を磨く

    ● [14:15] Treasureの紹介

    ● [14:25] Q&A


    View Slide

  60. 技術書部門大賞と
    審査員特別賞受賞の
    ダブル受賞!!
    『Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち』

    https://techlog.voyagegroup.com/voyagebook
    PR

    View Slide

  61. https://speakerdeck.com/twada/engineers-in-voyage
    どんな内容かはITエンジニア本大賞の決勝プレゼンのスライドに詰まっています!

    PR

    View Slide