Man page of CHIKU_WAIT(2)

Sinntyokuだめです

ダサい過ごし方は今年で終わらせたい

というわけで、もう2018年も終わりなので、振り返りをしようかなと思っています。 皆様は、一年間どうだったでしょうか? 僕は本当に今年色々ありました。ただ全体的に反省点が多く、ダサい1年だったなあというお気持ちです。

続きを読む

未来大高度ICTコースのはなし

この記事はFUN Advent Calendar 2018の19日目の記事です adventar.org 某学科長に宣伝が足りないと言われたので。はい、本題通りです。みんな来てくれ。

不人気なコースなので宣伝をしていこうかなという次第です。学◯委員会のコース説明みたいなのでもハブられるので…

続きを読む

大学の授業でペアプロ・モブプロをやってみた話

こんにちは。最近大学でサーバサイドのコード書いたりモバイルのバグ探ししまくったりドキュメントやガイドラインを生やしたりインフラの設定生やしたりコードレビューしたりリーダー業したりスクラムの導入をしてるchikuwaitです。

いつもの前提

前回のブログ(学生だってちゃんと開発したい!大学の授業でスクラムを導入しようと思った話 - Man page of CHIKU_WAIT(2))でも書いてありますが、 公立はこだて未来大学では3年生の必修授業で「プロジェクト学習」と呼ばれる学科・コースの枠を超えた通年の開発演習があります。この授業では様々なテーマで最大15人程度のチームを組んで1年間取り組みます。詳細はこちらを参照。www.fun.ac.jp

前回同様、リーダー業やってて色々な開発手法だったり入れてみた話をしていこうかなと思います。

ペアプロ・モブプロについて

ペアプロとは

ペアプログラミングのことで、名前のごとくペア(2人)でプログラムを書いていく開発スタイルです。ペアプロにはドライバとナビゲータという役割があります。 ドライバは実装の細かい部分を考えながらナビゲータと一緒にプログラムを完成させることに集中し、ナビゲータは一緒に考えたりコードレビューやバグチェックなどをします。 また、ドライバとナビゲータは一定期間でローテーションしていきます。

モブプロとは

モブプログラミングのことで、ペアプロの人数をもう少し増やして、4〜5人程度のモブ(群衆)でプログラムを書いていく開発スタイルです。ペアプロ同様にドライバとナビゲータが存在し、一人がドライバ、残りはナビゲータです。

ペアプロ・モブプロに至った理由

チームの状況

プロジェクト学習では基本的に成果発表などの授業スケジュールの関係で後期の9月末〜12月第一週が開発期間となるような事が多いです。とはいえ、メンバー全員が授業でやらないようなモバイルアプリやサーバサイドアプリの開発スキルを持ち合わせていてすぐにサービスの開発!!!みたいなことはほぼありえないので、基本的にどのチームも夏休み期間でその分野の勉強をするようなことが多いです。 私達のチームでも開発経験が少ない学生には夏休みでSwift、Kotlin、Ruby(Rails)について個人での開発経験が多いメンバーが支援しながら本を一冊やり終えたりしながら技術のキャッチアップをしてもらいました。多分他のチームよりは頑張ってやってたと思います。

しかしながら、いくら本を何冊かやったところで開発めっちゃすぐにできるようにはならないですし、一人である程度書けるようになるには時間がかかります。そこで僕としては個人で色々アプリ書いてきた人の知見を直接教えたりしながら全員一定レベル(一人である程度機能追加ができるレベル)まで成長できるような仕組みがほしいなと考えていました。そこで試しにペアプロ・モブプロを導入してみようと考えました。

何を求めてやったのか

僕としてペアプロ・モブプロに求めたものは以下の通りです。

  • メンバーの教育
  • ソースコードの共有初秋
  • レビューコストの削減
  • 品質向上

上でも書いたメンバーの教育を第一目標として、直接レビューをすることで一人である程度実装ができるようなるくらいを目標にしました。 また、複数人でコードを考えることでソースコードを共有所有していきたいと考えました。それから、どうしても自分である程度書ける人や開発をリードする学生にソースコードのレビューが集中しがちなので、リアルタイムなコードレビューはレビュー待ちプルリクエスト渋滞の解消なども期待しました。

やってみた

授業でペアプロ・モブプロやるときのルールとしては

  • 1時間ごとにドライバ交代
  • できたら褒めたり拍手したりハイタッチ
  • 強い口調や不快にさせる言動はNG
  • お菓子食べたりしながらリラックス を設定しました。

f:id:chikuwa_it:20181123122519j:plainf:id:chikuwa_it:20181123122524j:plain

本当はもっと大きなモニターを使いたかったんですが教室の関係上無理でした…。

実際やってみてどうなった

授業でモブプロ・ペアプロを導入することで、メンバーの中ではわりと好評だったりしました。どうしても自分ひとりで躓いて解消できない…みたいなことは学生多かったりしたので三人寄れば文殊の知恵というわけではないですがうまくコミュニケーション取りながら詰みポイントを解消していったようです。知識が共有できて良さそうでした。あと結構意外だったのはペアプロ・モブプロをすることで生産性が少し下がるかなと思っていましたが、殆ど変わりませんでした。一人で躓いて時間を浪費することが減ったからかな?

ただ、頻度は結構難しいところで、最初は週1でやっていましたが、どうしても一人でもくもくする時間もほしいという声もあったので隔週にしたりしながら頻度の見極めをしていく必要があるかなと感じました。最終的に私達のチームでは特に時間を設けることはせず、必要なタイミングで自己主張していくと自然と人が集まってペアプロ・モブプロが始まるという感じのスタイルになっていきました。

最後に

ペアプロ・モブプロは全員をある一定レベル以上にする育成方法としては結構イケてるのでは?と思いました。ただ、乗り気ではないメンバーもいるのでそこは上手くチーム内でどうやっていくかを最適化できれば良さそうだと思います。ぜひ大学の開発演習でやってみてください。何よりも楽しいので。

学生だってちゃんと開発したい!大学の授業でスクラムを導入しようと思った話

前提

僕が居る公立はこだて未来大学では3年生の必修授業で「プロジェクト学習」と呼ばれる学科・コースの枠を超えた通年の開発演習があります。この授業ではサービスの開発や心理学研究、楕円曲線暗号アルゴリズムの高速化やアルゴリズムの改良といった様々なテーマで最大15人程度のチームを組んで1年間取り組みます。実社会に根ざした問題群を解決していく方法を探求する取り組みらしいです。また、教員はあくまでもアドバイザーで、どんなことをするのか、何で開発するのか、どう開発していくのか、スケジュールはどうするのかすべて学生が主体となって決めていきます。そのため、チームによってですが、授業の時間以外も時間を費やすことが多く、3年生はプロジェクト学習に全力を注ぐと言っても過言ではないと思います。詳細はこちらを参照。www.fun.ac.jp

僕が所属しているプロジェクトは「ビーコンIoTで函館のまちをハックする – BEACON FUN Reloaded」というテーマでビーコンと呼ばれるBluetoothの電波を発信する小さな機器を用いて世の中にはまだないような新しいサービスで函館のまちをハックすることを目的としています。

続きを読む

僕が今年インターンに行かない理由

はじめに

皆様お久しぶりです。 最近色々モチベーションがうまく維持できなかった、色んなタスクに追われて中々更新できませんでした。

ところで、4月から5月にかけてこんな心境の変化がありました。

何があったんやという感じですね、はい。

一般的に3年生といえば、どこかの会社にインターンに行くことが多いと思います。しかし、今回僕はインターンにどこにも行かないことにしました。その事をちょっとまとめてみようと思います。

インターンに行かない理由

東京に行くのにつかれた

情報系の学生がインターンを探す方法として、よく逆求人イベントがあります。逆求人とは、会社が交通費をいくらか支給して学生を呼んで企業と1on1の面談をするような感じのイベントです。こういうイベントは大抵東京であるので、僕は函館から東京に飛ばなければなりません。逆求人系のイベントはよく土曜日の10時くらいからやるので必然的に前日入りが必要です。そうすると金曜日の夜には函館を出発しないといけないのですが、18時まで授業があるので授業が終わり次第タクシー又は友人の車で空港に行って最終便の飛行機に飛び乗って23時頃に東京に着くような感じで行動しないといけません。そして逆求人イベント参加して日曜日に飛行機で帰ります。

休みなのに移動・宿泊・1日中面談で消耗してまた次の日から授業は正直身体が持たないので、しんどいです。 それから毎回移動するたびに、東京の人混みが嫌過ぎる、街がうんこ臭すぎてしんどいし、東京は人の住むところじゃないって思いました。程よい田舎が良い…。僕には東京は早かった。

インターンに行くことが目的になってしまった

2年生の頃インターンに行っていたときは、「自分のやっている分野の強い人の隣でひたすら修行したい」というモチベーションでやっていました。だけど、3年生になり周りとインターンの話をすることが増えて来て「強い人=インターンたくさん行ってる人」みたいなイメージがいつの間にか付いてしまったことで、「インターンにたくさん行く」ことが重要みたいな気持ちになってしまいました。インターンで修行して何か成長をすることが正しいはずなのに、気がついたら「インターンに行く」ことがゴールに変わっていて意味が無いように思えました。その結果、なんのために自分がインターンに行こうとしてるのか分からなくなりました。今思うと「インターン実績解除・承認欲求」を得ることが重要になってしまった気がします。

自分のやりたいことができなくなってしまった

はこだて未来大の3年生は授業でプロジェクト学習という通年の開発演習もあり、かなり忙しいです。なのに逆求人とかで東京に行ったりインターンの選考の準備に時間の大多数が取られてしまい、元々自分のやっていた研究が1ミリも進まないという事件になりました。本来自分が好きで2年生の頃から先生に指導してもらいながらやったことが、ここに来て何も手がつけれなくなってしまい、これで良いのかとすごく悩みました。また、同じような内容の事をやっている人が世の中に沢山居ますし、インターンのことやっていたり、夏休みずっとインターンに行くことで折角2年生の頃から着手していたものが意味の無い二番煎じになってしまうと思いました。インターンに行くことは短期的に見れば行くメリットは多いのですが、ここで自分の持っているネタを潰してしまうことが4年の卒論でも後悔するだろうし、この先永遠に引きずってしまう気がしました。

今無理して行く必要もない

そもそも、大学院に進学したいと言っているので今無理していく必要はそもそもないです。院に行けてからまたぼちぼち考えればいい話であって、今行ったところでどうしようもないと思いました。

まとめ

 インターンは確かに企業の事知れるし、自分が成長するきっかけになる貴重な機会です。ただ、「インターンに行くこと」、「インターンで承認を満たす」が目的になっては絶対に良くないと思っています。業界研究とか、成長したいがためにインターンに行くことはすごく良いことです。ただ、ゴールが「インターンに行くこと」になってしまっているなら考え直すべきです。僕の周りにも一定数、目的がそうなってしまっている人が居るしもう一度インターンに行く意味を考えたほうが良いかなって思います。また、インターンに多く行けるからって何か偉いわけでもなんでもないし、つまらない承認欲求を満たすために行くなら絶対に得れるものは何もないし行くだけ時間の無駄です。ちゃんと自分が将来どうしたいのか、どう成長したいのかという事を考えてインターンに行くべきだし、考えた上で行かないという選択を取るのもまた良いことなのかなって思います。僕自身は気がついたら「インターンに行くこと」、「承認を得る」ことが目的になってしまいました。そこで一度自分がどうしていくのかを考えて「今年はインターンに行かない」という選択をしました。夏休みはできるだけ自分が本来やるべきである事、やりたい事に時間を費やして成長していきたいと思っています。

追記

この内容はあくまでもインターンを否定しているわけではなく、意味を持って行こうなという話です。業界研究・強くなりたい・その会社を知りたいのようなまっとうな理由があるなら勿論行くべきです。というか一度は業界を知るためにインターン行くべきだと思っています。ただ、インターン実績解除・インターン芸人みたいなものを考えているならやめておいたほうがいいよということでした。

ソケットプログラミングの勉強も兼ねてCでポートスキャンツールを作ってみた

はじめに

普段C言語使っているのに、C言語であまりソケットプログラミングをしたことがなかったので勉強も兼ねて作ってみました。

github.com

続きを読む