SecHack365 表現駆動コース中間報告
はじめに
2024年現在、SecHack365の表現駆動コースに参加してます!
SecHack365成果発表会までの残り日数を表すProgressBar[1]が50%となったので、
今日までの取り組みや学んだことを報告をしていきます!
SecHack365を知らないよという方は公式ホームページをご覧ください。
合格前のはなし
SecHackに興味を持ったきっかけは、とあるセキュリティのイベントで知り合いから「SecHackすごく良いよ!ぜひ参加してみて!」とかなりお勧めされたからです。
その後、成果発表会[2]に参加すると、非常にアイデア性に優れた面白い作品が多く展示されており、私も作ってみたいという気持ちで応募しました。
[3]コース?
なぜ表現駆動一番の理由は、イノベーションを起こす作品を作ってみたかったからです。
SecHack成果発表会で作品を見る中で、とある技術を身近な課題を解決するためにユニークに活用するという大胆さや新鮮さに惹かれました。
私の中には「せっかく何かを作るなら、より多くの人の需要を満たす作品にしたい」という欲求がありました。そのため、イノベーションを引き起こし人々に驚きと欲しい気持ちを与える作品を作りたいと思い、表現駆動コースに応募しました。
また、他の理由としては、
- その当時極めたい分野や開発したいものが明確に決まっておらず、1年間という長期プログラムの中で一番自由度の高そうなもの[4]に所属したかったから
- 学校で アイデア出し→開発 を行うグループワークの機会がほとんどなく、多くの学びが得られると思ったから
がありました。
合格したときの感想
今まで取り組んだことを詰め込んで課題を提出したものの、自分から積極的にものづくりをした経験が少なく、落ちる不安はありました。
合格通知を頂いた時はすごく嬉しかったです!!
一年間頑張って、満足のいく作品を作り上げたいなと思いました。
SecHack全体での活動
初回イベント
初回イベントはオンラインで行われました。詳しい内容はぜひ公式レポートを読んでいただければと思います!
https://sechack365.nict.go.jp/report/2024/report_week01.html
私はライトニングトーク(LT)に参加し、OAuthについての発表を行いました。
ちょうどその時期にOAuthの勉強[5]をしており、アウトプット目的で参加したのですが、これが意外にその後の会話のネタになって良かったです!
あるトレーニーの方から、「OAuthは今まで難しそうで中々手をつけられていなかったので、良いきっかけになりました!」という言葉をいただいて、自分のアウトプットが誰かのやる気に繋がることの嬉しさを感じました。
第二回イベント
第二回イベントはオフラインで開催され、様々な人と交流を持つことができました!
縁日ではBadUSBの自作を通じて、デバイスを扱う際の危機意識を身につけることができました。
また、表現駆動コースでは「ナイトチャレンジ」と称してイベント期間中の短期ハッカソンが行われました。
もちろん最終日は徹夜をすることになり、メンバーと会話しながら楽しく開発をしました。
深夜テンションからくるおかしな笑いによって、今年一番の幸せな時間を過ごせた気がします。
第三回イベント
第三回イベントでは、他のコースの方々の作品を見ることができました。
普段自分が触れないレイヤーでも、身近な人が取り組んでいることにより興味が湧いてきて、色々な知識を得ることができました!
また、詳しくは後述しますが、第四フェーズに向けたチームメンバーの勧誘も行いました。
自分のアイデアを話すたびに作りたい内容が深まっていくという経験をし、言語化の重要性を感じ始めました。
最初は勧誘した時に相手がどうリアクションするだろうかという恐怖を感じていたのですが、思い切って話してみると皆さん友好的に接してくれて、とても嬉しい気持ちになりました。
今まで自分の考えを発言することに少し恐怖を感じていたのですが、今後はもっと勇気を出して伝えていきたいなと思いました。
表現駆動コースでの成果物
表現駆動コースでは一年間を4回のフェーズに区切り、短期ハッカソンを繰り返していきます。
第一フェーズ
テーマ
「AI、Music、IoT、Educationこれらのうち1つ以上を選択し、セキュリティを組み合わせてサービスを提案して下さい。」
作った作品は「GHuntを用いたメール送信誤入力対策ツール」です。
ハッカソン期間中にメール誤送信による情報漏洩のニュースが数多く報告されており、送信前に送信先の情報を確認できたら嬉しいと考えてこの作品をチームで作ることになりました。
開発の裏話
このフェーズで与えられた期間は2週間だったので、何かモノを作り上げることに比重を置いて進めていきました。
そのためアイデアの決め方としては、ひたすらテーマに関する社会課題とその解決方法を挙げた後、”推しのアイデア”を各々が1つ提案し、多数決で決定するという形になりました。
メンバーは4人でプログラム経験者が2人初心者が2人の構成でしたが
それぞれが得意分野を活かして協力しつつ、開発に取り組んでいました。
表現駆動コースに参加する人(というかSecHack全体)が「いま技術力がない人でもやる気があればなんでも協力する」というマインドを持っているので、安心して活動できます!
使用技術はNext.js, FastAPI, MUIで、私は主にフロントエンドを担当しました。
第二フェーズ
テーマ
「社会の課題を発見し、課題を解決するためのサービスまたはプロダクトを提案して下さい」
作った作品は「Webブラウザの履歴を分析・可視化することでゆっくり立ち止まってITを使う」というものです。
チームメンバーと社会課題を挙げる中で、IT知識はなぜ必要?という問いが生まれ、深ぼっていくと「ITの知識不足による後悔」を防ぐためという結論が出ました。
そして、後悔が発生する原因を考えると「ITを無自覚に使用しているから」という方向に話が進み、最終的には「日々のITに関する行動を俯瞰的に見てITを使えるサービス」を作ろうという形になりました。
実装予定の機能は
- 検索レポート: 検索回数・閲覧したホームページ数などを数字で可視化
- ワードクラウド: 検索ワード数によって文字の大小を変化させ、自分の興味を可視化
- AI分析: “一番〇〇な検索”を表示し、使用者にITの無自覚を自覚させる
- 危険の検出: 危険なホームページや個人情報の入力を検出して知らせる
でした。
開発の裏話
期間は約5週間で、メンバーは3人でした。
1~2時間程度の話し合いを5回ほど行なってアイデアを深めていました。
この期間中、表現駆動コースを発端として「イシューからはじめよ」という書籍のプチブームが発生し、その関係で”イシュー”を意識したアイデア出しが行われました。
『イシューからはじめよ』の一文に「「解きやすさ」「取り組みやすさ」といった要因に惑わされてはならない。」というものあります。
私は今まで ”これは解決策がパッと思い浮かばないから別の課題に取り組もう” という思考で動いていました。
しかしこの本を読んで、そういった他の人が避けやすい課題にこそ取り組む価値が高く、イノベーションが生まれやすいということを学びました。
(イシューからはじめよブーム)
(アイデア出しの様子)
使用技術はPython, Firefoxの拡張機能, Nextjsで、私は主にスクレイピングとワードクラウド生成を担当しました。
第三フェーズ
テーマ
なし
作った作品は「水が欲しいと思った時にはすでに用意されている状況を作り出すドローン」というものです。
「水分補給って忘れがちだよね」という話から始まり、運搬ドローンを使って、
”手元に水分がないことを検知” → ”ペットボトルを持ち運んでくれる” 状況を実現しようというアイデアで作品を作りました。
開発の裏話
期間は約2ヶ月、メンバーは3人でした。
私がハスラー[6]を担当したのですが、かなりグダグダになってしまい多くの改善点を感じました。
話すと長くなってしまうので、今回は割愛させていただこうと思います。
学んだことは以下に列挙しますが、一貫して言えることは「ゴールを明確にし、妥協をしながら進めていくことが大切」ということだと思います。
〜グループワークに関する学び〜
- グループワークにおいて、今まで取り組んでいたものを崩すことは悪手
(チームのモチベも下がるし、混乱も起こす) - ハスラーは自分の実現したいことに関して自由に行動して良い
(ただし、自信を持ってチームを引っ張る覚悟を持つこと)
(他人の意見は自分の選択肢を増やすために使用し、多数決でなく自分の基準で決める) - タスクが厳しい時は潔く諦める
(全力を出せばできるなどと考えて無責任に他人を巻き込まないこと) - アイデアはスレッド状ではなくmiroのような関連付けが可能なものに書き出す
(見返しやすくなり、前回の話し合いを引き継いで進められる)
〜アイデア出しに関する学び〜
- 明確な解決方針が存在する課題の方が取り組みやすい
(特に人の心理に関係する課題に関しては、多数の見方が存在するため全てをカバーできる作品は作れない。フォーカスを絞る必要がある) - アイデアに自信が持てなくても、少し信じて深ぼってみる
(時間が経ってから見返すと、案外良いものも多い) - アイデアは最も実現したいことを明確にし、他は妥協をする
(全てのユーザーに対応した完璧なサービスなど作れない)
(完璧を求めずにまずは簡易的なものを作り、PDCAサイクルを回す方が効果的) - 良いアイデアは1,2日で思い浮かぶものではない
使用技術はUnityとPython(Unityライブラリ,OpenCV,YOLO)で私はUnityのデモ部分を実装しました。
第四フェーズ
SecHackの第四フェーズではハスラーが自分で作りたいアイデアを発表し、メンバーを募り、3人以上集めることでプロジェクトを進めることが可能になります。
私はハスラーに挑戦し、無事に他のコースへの勧誘を経てメンバーを集めることに成功しました。
勧誘後の一週間は、アイデアのブラッシュアップを行い、4回の会議を経て実装内容を確定することができました。
しかし、メンバーの一人が就活や研究室配属で忙しくなってしまい1週間程度で解散することになりました。
これからは3月まで、別のチームに所属して活動することになります。
今後の方針としては、他の方が行うハスラーを参考にして更なる改善点を見つけたいと思っています。
また、これまでアイデア出しにかなり力を入れてきたため、今後は技術力にフォーカスを当てて活動していこうと考えています。
開発の裏話
私がハスラーに挑戦した動機には以下のようなものがありました。
- 今まで私は”やりたい”という動機でチームを巻き込んだ開発をしたことがなく、新しい経験が得られると思ったから
- 第三フェーズでの反省を生かして再度取り組んでみたかったから
3月までに作品として完成まで持っていけるか、メンバーに負担を与えず楽しく進めていけるかという点で自信をなくすことはありましたが、絶対やり切るぞという覚悟を持って挑めたので良い経験になったと思います。
また、私のハスラー志望時に掲げたテーマは「技術知識の壁を無くしたい!」というものでした。
このテーマのきっかけは、SecHackの他のコースの方のポスターを見た時に、自分が詳しくない分野について書かれた内容が理解できないと感じたことにあります。
ポスターを理解する上での前提知識や補足情報を集め、ポスター閲覧者が容易に、自分ごととして内容を捉えることができるアプリを作りたいと思っていました。
勧誘から解散までの間は、第三フェーズで学んだ改善点を意識して動くように心がけました。
そして、新たに次のことを学ぶことができました。
- チームメンバーはリーダーの”やりたい”に共感して行動する
- 会議の前は「今回決めたいこと」「どこからスタートするか」「各自で考えてくること」を明確にする
- 思考整理の段階で書き出した内容を説明せずに、伝えたいことを選別して話す
チームメンバーが私情で忙しくなり抜けてしまったことに対しては、自分が直接的な原因でないため具体的に反省することは難しいですが、改善した方が良い点はたくさんあったと考えています。
今回の反省点としては、大きく2つあると考えています。
- 自分のアイデアに関して、真に自信を持つことができなかった
直感では自信が持てるアイデアも、深ぼっていくと「本当にこのアプローチは効果があるのだろうか」という不安が生まれるものだと思います。
しかし、ハスラーが自信を持って動かなければ、ついて行く人は何を目標に動けば良いのか分からなくなってしまうのです。
この”自信を持てない”という問題に対する解決方法としては、根拠にできる情報収集を行うことが挙げられます。
アンケートやプロトタイプの作成を行い、積極的にファクトを集めることが重要であると感じました。
- チームメンバーの本音を引き出せる環境を作れなかった
今回私はプロジェクトを進めるに当たって、事前に
開発メインでやりたい人は、アイデア出し会議への参加とか強制しないので自分のこと優先させてください!
など、自分のことを優先するように話してきました。
しかし、「チーム編成直後の会議」「自主的に参加したプロジェクト」などの要因を考えると、メンバーは無理をして参加してくださった可能性が考えられます。
このような”気を遣わないで”といったメッセージは、発言した人の本心や周囲の気持ちが把握できる環境にいなければ言葉通りに受け止められないと思います。
そのため、今後は雑談や意見発信を積極的に行い、アサーティブなコミュニケーションを目指していきたいと思います。
学んだこと
大きく3つあります。
イノベーションって難しい
参加した当初は、私たちでも周りをあっと驚かせることのできる作品を作れると思っていました。
その理由はおそらく、成果発表会で見た作品はほとんどが自分の知っている知識の組み合わせでできていたからだと思います。
(これはイノベーションとは既存の技術の組み合わせで実現できることを意味していると思います)
そのため、SecHackに入って、バックグラウンドの多様な人々と活発な議論が行えれば自然と良いアイデアが浮かんでくると思い込んでいました。
しかし、簡単にアイデアは生まれるものではありませんでした。そこには”課題の認知”と”独創的なアイデアの創出”に関する大きな壁がありました。
私はSecHackの約半年を通して、イノベーションに必要なものは次の二つだと感じました。
1. 取り組みたい課題を明確に意識した上で、大量のインプットを行うこと」
実際にアイデア出しを経験したことで、アイデアは出そうと思って出るものではなく、むしろ雑談中などのふとした瞬間に生まれるものだと学びました。
しかし、課題意識を持たずになんとなく日常を過ごすだけで浮かぶものではありません。 そのため、 “課題を明確にする” ということが重要になります。
また、イノベーションは既存のモノの組み合わせと言えど、その引き出しが少ないうちは良いアイデアは生まれません。
結論として、頭の片隅に解決したい課題を入れておきながら色々なものに触れることが大切であると思いました。
2. 小さなアイデアからプロトタイプを作り、PDCAサイクルを回すこと
どのアイデアも、深ぼっていくと本当に需要があるのかなどの懸念点が生まれると思います。
しかし、開発を進めていくと案外良いのではないかという自信が生まれてくるので、深く悩まずにまずはプロトタイプを作ることをおすすめしたいと思います。
そのアイデアが良いかどうかは、周囲の人に試してもらいフィードバックを得るまで確定しません。
少しでも良いと思ったら自信を持って作り、失敗があれば改善すれば良いということを感じました。
アイデア出しのコツ
確実に言えるコツは以下の二つです。
- 解決したい課題を明確にしてアイデアを出す
- “悩んでいる”状態を自覚して避ける
最適な方法は見つかりませんでした。色々試してみるのが良いと思います。
アイデア出しに関しては、以下の本や動画が参考になると思います
-
0→1の発想を生み出す「問いかけ」の力
https://www.amazon.co.jp/0→1の発想を生み出す「問いかけ」の力-野々村-健一/dp/4046023848 -
『SHIFT:イノベーションの作法』
https://www.amazon.co.jp/SHIFT:イノベーションの作法-濱口-秀司-ebook/dp/B07SRGWGK2 -
アイデアが出ないとき 【仕事の姿勢】
https://www.youtube.com/watch?v=8g4EZwJq3kU&list=PLi8SA3sbzYVSSlN3Ekb1nEpxnFuVzGz3_&index=3
他にも、「100年後を考える」「義憤発想をする」などの方法もおすすめです。
振り返りは重要
時間が経つと学んだことも忘れてしまいます。
振り返り、アウトプットをすることで少しでも記憶に定着させるようにしましょう。
思考を言語化することで、考えが整理できたり問題点を明確できたりするためおすすめです。
そして、物事に取り組む前にそのアウトプットを見返すことで、気をつけることや目標にしたいことを明確にすると失敗を繰り返さない工夫もできます。
応募を考えている方へ
伝えたいことを3つ書きます。
恵まれた環境
SecHackは本当に素晴らしいトレーナーとアシスタントの方が揃っています。
例えば、アシスタントの中には以下の行動を意識的に行っている方がいました。
- トレーニーに気軽に相談してもらうために「こいつアホやな」と思わせる行動を意識的に取っている
- 自分たちの代でSecHack修了近くに雑談が増えて仲が良くなった経験があるので、積極的に雑談する場を設けている
- 定期的にもくもく会を開いて、トレーニーの意識が少しでもSecHackに向いてくれるようにしている
- トレーニーの思考を邪魔しないように、会議では声ではなくチャットで発言する
また、私たちが表現駆動コースで与えてもらったアドバイスを載せておきます。
頂いたアドバイスやサイト
- 100年後の世界を考えると良いアイデアが生まれやすい
- 義憤発想をすると良い
- チームミーティングなどアイデアを考えようとすればするほど出ないけど雑談とかすることでアイデアが膨らむ
- 【TED】優れたリーダーはどうやって行動を促すか/サイモン・シネック (日本語字幕)
https://www.youtube.com/watch?v=K1jRI1RdkHE - 桜井政博のゲーム作るには
【仕事の姿勢】https://www.youtube.com/playlist?list=PLi8SA3sbzYVSSlN3Ekb1nEpxnFuVzGz3_
【E: チーム運営】: https://www.youtube.com/playlist?list=PLi8SA3sbzYVTsJ4O5sKk_-2uAHJjIJk2p - Amazon のピザ 2 枚チームでイノベーションを促進し、スピードを高める
https://aws.amazon.com/jp/executive-insights/content/amazon-two-pizza-team/
他にも個人に寄り添った色々なアドバイスがもらえます!
また、技術が好きなトレーニーが集まっている点も大きな魅力です!
SecHackはとても恵まれた環境の中で開発を行える場所なので、本当におすすめです!!
学業との両立について
かなり忙しくなります。納得のいく成果を出したければ、学校の授業などをある程度犠牲にする覚悟が必要かもしれません。
もちろん技術も身に付きます
今回のブログではアイデア出しにフォーカスをして記述していますが、
表現駆動コースに技術目的で参加しても良いと思います。
Webアプリ、スマホアプリ、画像処理、AI、暗号化処理など自由に実装できます。
一人では実装できない規模の作品もメンバーと協力して取り組める点も魅力だと思っています。
コースに迷ったら、公式サイトを読むだけでなく、過去の修了生から話を聞いたり、成果発表会に参加したりするのも良いと思います!
おわりに
書きたいことをひたすら書いたら文字数が大変なことになっていて驚きました。
それだけSecHackは密度の濃い日々を過ごすことができます。
残り約半年も積極的に挑戦をして色々な経験をしたいと思います!
最後まで読んでいただき、ありがとうございました。
-
参加してみて分かったのですが、どのコースに参加しても結構自由度は高いため、気負わずに自分の性格と照らし合わせてコース選択する方がいいかもしれません。 ↩︎
-
『OAuth徹底入門 セキュアな認可システムを適用するための原則と実践』という本が、体系的にまとまっており、ソースコード付きでかつセキュリティにも触れていて良かったです! ↩︎
-
ハスラー: "世界が何を求めているか?解くべき課題を理解し、そのソリューションのビジョンを示し、リーダーとして、さらに、コミュニケーターとしてグループ先導できる。" ↩︎
Discussion