渇望 -大発見の一年-
2023年7月16日夕方ごろ。
自分の心で悔しそうに叫んだ。
こんなんで満足なんかできない・・・!
もっと・・・ すごい制作物を創りてぇ・・・!
事の始まりは、大学生2年生になったばかりの2022年4月ごろだった。
「夏休みにチーム開発をする授業あるんだけど、参加してみる?」
1年生から何かとお世話になっている先生から、チーム開発の授業へのお誘いを受けた。
"先生からチーム開発の授業に誘われるなんて、新2年生にしてどれだけの技術力なんだろう"
そう思われるかもしれないが、断じて違う。当時、書けたコードなんてこれぐらいものだ。
//Processing
void setup(){
size(400,300);
}
void draw(){
background(0);
for(int i=0; i<40; i+=1){
for(int j=0; j<30; j+=1){
fill(random(256),random(256),random(256));
rect(i*10,j*10,10,10);
}
}
}
授業の課題で書いた実際のコードである。「for文って繰り返し処理してくれるんだ~」程度の知識しかない。しかも、インデントの概念がない。だからインデントがめちゃくちゃである。
先生、なんで誘ってくださった?
自分、なんで「参加する!」と答えたんだ?
こんな知識で開発なんて出来るわけないだろう・・・。
しかし、「楽しそうだから」という理由だけで参加を決めたのである。
そのチーム開発の授業こそ、大発見の1年の幕開けとなる。
その授業の名は。
琉球大学AgileTeamCamp
2022年7月13日、琉大のAgileTeamCampに参加する学生と担当教員でミーティングが行われた。
このミーティングで、以下の内容が共有された。
・日程・時程:9月26日-9月29日 9:00-18:00
・内容:アジャイルスクラム開発の講義と演習を行う
・事前学習と制作物のアイデア出しをしてくる
・開発環境を決めて準備する
この時点での技術力はこんな感じだ。
#C言語
#include <stdio.h>
int _myStrcpy(char *str1, char *str2)
{
int count;
count = 0;
for (; *str2 != '\0';){
*str1++ = *str2++;
count = count + 1;
}
return count;
}
int main()
{
int len;
char a[100], b[100];
printf ("文字を入力してください:");
scanf ("%[^\n]", a);
len = _myStrcpy (b, a);
printf ("コピーした文字列は[%s]、文字列の長さは%d\n", b, len);
}
身につけた知識を活かしたプログラムを作ることができていた。
・文字コードという存在を上手く使えば、文字列をいろいろ操作できる
・文字列の終了を表す"\0"を使って、文字列の長さを判定できる
・ポインタ変数を使えば、余計なメモリを使わずに文字列をコピーできる
読者のあなたにとっては、当たり前の知識であると思う。
しかし、プログラミング演習を毎週受講するたびに、こうした知識に出会えた。自分にとって、これは大発見の連続であった。
そして、開発の楽しさに出会えたきっかけとなるキーワードと出会った。
その名は。
スクラム開発
2022年9月26日-2022年9月29日の4日間、集中講義という形で琉球大学AgileTeamCampにチーム"うきうきなっとう"のメンバーとして参加した。
その講義で創った制作物の名前は、アイトル。教室を予約するシステムである。教室を予約するには、予約を記入するために教室まで行く手間があるという問題意識から生まれた制作物である。
開発環境はReplit、使用言語はJavaScript・HTML・CSS、データベースにはSQLiteを使った。
待て待て待て。自分、今まで勉強したプログラミング言語を挙げてみよう。
・C言語
・Python
これ、無理ゲーでは?????
実際、この4日間で自分の技術力でチーム開発に貢献することはできなかった。チームメンバーの技術力に圧倒されるばかりであった。
しかし、開発はすごく楽しかったし、チーム開発に少しだが貢献したという自負も持てた。これは本当である。
なぜなら、スクラム開発という開発方法でやったから。
スクラム開発とは、チームを組んでメンバー全員で開発を進める手法である。チームを組んでメンバー全員で開発を進めるが故に、チーム間でのコミュニケーションがとても大事となる。それはアイデア出しから実装まで全て当てはまる。
そもそも、"なぜ創るのか"を共有できないと創れない。だからアイデア出しを可視化してコミュニケーションを取る。可視化によって、技術力ゼロの僕もアイデア出しには貢献できた。
アイデア出しだけではない。実装に必要な作業や担当者まで可視化して、コミュニケーションを取りながら実装する。その作業は「実装方法を調べる」「エラーの原因を調べる」というものもある。調べる作業なら僕でも担当できた。
このように、コミュニケーションやタスクなどの可視化によって僕なりにできることを探して担当することで、少しでもチームに貢献できた。
他にも開発過程とコミュニケーションの可視化による効果はある。たくさん語りたいが、本記事の趣旨ではないので省く。とにかく、ここで伝えたいことは1つ。
スクラム開発という開発手法によって、技術力ゼロの僕でも開発の楽しさを知れた。これは大発見であった。
自分はラッキーな人間だと信じている思い上がっている。ただ、確かに技術力ゼロでも開発の楽しさを知れた、チームメンバーから知らない技術を学べた、というのはとてもラッキーなことだ。
さらに、これをきっかけにしてとあるイベントに参加することになった。
そのイベントの名は。
RSGT2023
2022年10月-11月ごろ。自分は、チームメンバーと一緒に登壇に向けてスライドの準備を進めた。
テーマは「臆さない発言環境の形成」
4日間の琉球大学AgileTeamCampで起きたことを振り返って得た知見を文字化してスライドに反映していった。
なぜ、技術力ゼロの僕でも積極的に意見を述べることができたのか。なぜ、積極的にタスクをこなすことができたのか。なぜ、技術を学べたのか。スライドの準備を通して、かなり言語化できた。これだけでも大発見であった。
2022年12月。コロナにかかってしまい、1ヶ月間ずっと体調がよくなかった。やっぱり病気は怖い。
年は変わって、2023年1月11日。
RSGT2023に登壇した。
オープンプロポーザル形式で投稿された146プロポーザルのうち採択された58件の1つとしての登壇だった。
RSGTについて、公式サイトは以下の説明をしている。
つまり、スクラム開発を実践している人が集まって学び合う場である。
集まって学び合う場なので、様々な人がスクラム開発を実践して学んだことを登壇して発表していた。もっとも、スクラム開発を実質2日間しか経験していない自分には、ピンと来なかったものが多かった。
それでも、世の中にはスクラム開発をいっぱい実践していっぱい学んでいる人は多いということ。そして、スクラム開発で何かを作ってみたいという気持ち。この2つに気づいたのも、大発見だった。
ここから、とある願望を抱くようになる。
いろんなイベントに参加したい
もっとプログラミングしたい
2023年4月1日、開発サークル「UN-FROZEN」が発足した。
UN-FROZENは、大学の講義以外の場所でもチャレンジしたい!という想いから生まれた。
その想いを実現するために、UN-FROZENでは「ハッカソンやRSGT、AgilePBLへの参加」「アジャイル・スクラム開発でチーム開発」「外部や企業との交流会」といった活動を展開している。
いろんなイベントに参加したい。もっとプログラミングしたい。
そんな自分にとって、UN-FROZEN設立は願ってもないことだった。
もちろん、副サークル長としてUN-FROZENの活動に参加することにした。大学の講義以外でも、スクラム開発ができる。プログラミングできる。
そんな状況に自分はワクワクした。
そして、1ヶ月後にとあるイベントに参加する。
そのイベントの名とは。
技育博2023
2023年5月14日。この日は技育博2023に参加した。
サークル長から参加しないか?と誘われて参加した。
正直に言うと、あまり参加したいとは思えなかった。
なぜなら、UN-FROZENは設立したばかりというのもあって、ブースに出せる制作物などが乏しかったからである。しかも自分は聴覚障害を持っている。まともに交流ができるのか。そんな不安はあった。
でも、参加申し込みをしちゃったものは仕方ない。
せめてでも、今後のサークル活動などに活かせるものを持ち帰ろう。
そんな気持ちで当日を迎えました。
結論から言うと参加してよかった。
サークル活動に活かせるものを持ち帰ることができた。
特にサークル運営方法について、このアドバイスが1番印象に残った。
このアドバイスは、UN-FROZENの状況によく合っていると思う。
そもそも筑波技術大学天久保キャンパスは聴覚障害を持つ学生しか入学できない。聴覚障害の学生が少ないので、同じものを作りたいという仲間は見つけにくい。
そんなUN-FROZENが、長く継続できるにはどうしたらよいのか。
創りたい制作物を創っている時点で偉いという雰囲気を作る。
外部との交流を促進して仲間を見つける機会を増やす。
創りたい制作物を創っている時点で偉いという雰囲気を作るために、お互いに制作物をベタ褒めする定期ミーティングの開催。
外部との交流を促進するために、ハッカソンや外部イベントへの参加。
こういった活動を増やしていきたい。
こういったサークル運営のコツを言語化できたのは、大発見といってもいい。
そして、他団体のプロダクトを実際に触れてみる機会も多かった。彼らが創ったプロダクトは完成度が高かった。
完成度が高いプロダクトを創れる彼らに、自分はただひたすら感心するしかなかった。
そして、「もっとプログラミングしたい」という願望は、「制作物を創りたい」という強い意欲に変わっていった。
そして、あるチャレンジを決めた。
技育CAMPマンスリーハッカソン参加
2023年7月15日-16日、技育CAMPマンスリーハッカソンに臨んだ。
7月6日のキックオフから、チーム「月に代わってコード作成よ」が始動した。
創った制作物は「月に代わってタスク管理よ」
この制作物が提供できる価値は、Discord内でタスク管理が完結すること、タスクを探すのに大量の過去ログを追わなくていいこと、の2つである。
「この月に代わってタスク管理よ」の技術要素は以下の通り
Discordからメッセージが送られると、正規表現抽出で"タスク登録orタスク表示orタスク関連でない"を判定する
タスク登録と判定されたら、データベースに挿入する
タスク表示と判定されたら、データベースを検索してタスクを表示する
自分は、データベース設計から実装、データベースからDiscordBotでタスク表示、条件を満たすメッセージが来たらデータベースにタスクを登録する、といった機能の実装に、貢献できた。特にデータベース関連は、ほぼ1人の力で実装できた。
2022年9月の琉球大学AgileTeamCampでは技術的に何もできなかった。そこから約1年で、チームの主力として技術的に貢献したと自負することができた。これは大きな成長だと思い上がっている。
「月に代わってタスク管理よ」も最低限要求した機能は全て実装できた。
初ハッカソンで、この出来は上出来だろう。
自分は本当にそう思った。今でも思っている。
一方で他の団体が創った制作物のなかには、デプロイまで完了していたものもあった。つまり、実際に我々が制作物に触れて遊んでみるといったことも可能だった。それに、制作物としての完成度も高かった。
このとき、「制作物を創りたい」という強い意欲は消えていた。
その代わり、心からこう叫んだ。その叫びは意欲なんてものじゃない。渇望そのものだった。
こんなんで満足なんかできない・・・!
もっと・・・ すごい制作物を創りてぇ・・・!
あとがき
ここまで駄文を読んでくださった皆様、ありがとうございます。
技育CAMPまでの1年を振り返ってみると、「2022年4月~2023年1月の間は実力が不足していても『楽しそうだから』という理由で、挑戦を決めていたな」と懐かしく思いました。
RSGTに参加したあとは、実力に自信もつけ始めたので実力を発揮する場を求めてUN-FROZENに参加。そこで実力を発揮することで楽しむことができていました。それは技育博や技育CAMPも一緒です。
ただ、技育CAMPで感じたことは今までとは大きく違ったんですね。今までは「楽しかった!次も参加したい!」で終わっていたのですが、技育CAMP後は「よくできた!でも満足してない!次はもっと完成度高くしたい!」と思いました。つまり、今までは参加することが目標だったのですが、アウトプットをレベルアップするという目標にフェーズが移ったんです。
「今の自分は参加だけで満足するレベルに収まらないんだ、アウトプットをレベルアップしろ」と目標を言語化するためにも、今回記事を書きました。
これからも挑戦して、自分のアウトプットをさらに高めていきたいです。改めて読んでくださってありがとうございました。
この記事が気に入ったらサポートをしてみませんか?