generated at
京都でScrapbox開発インターンしてきた話

2018/08/06 ~ 08/31 の期間 Notaの京都オフィスでScrapboxの開発インターンをしてきました!yutaro

結論から言うと、Scrapboxは最高
Scrapbox の強力な知見共有能力のおかげでインターン生でも自然と開発に参加できた
検索したら大体欲しい情報が出てくる
社内Scrapboxにページを作ると続々とアイディアや知恵が集まってくる
書くのも読むのも楽しいのでキャッチアップが全く苦痛にならない
約1ヶ月間楽しく開発を続けることができた

経緯
yutaroScrapboxのファン
使っててとにかく楽しい!
研究室で使っているうちに段々と好きになっていった
日頃チャットやドキュメントに書き込んでいない人が書き込んでくれる
試行錯誤の軌跡をそのまま残せる
ページ同士が自然と繋がって見てて楽しい
気がついたら欲しい機能のUserScriptを作っていた
/yutaro/emoji selector (絵文字入力機能)
shokaiさんとdaiizさんと増井俊之先生にお話を伺えて雰囲気が少しわかった
こういうイベントありがたい!

募集されてないのにインターンに応募
なんと、去年も同じような先輩がいた(daiizさん)
研究室のkentarofukuchi先生に相談したところrakusaiさんを紹介していただけた
後から同じ学科の友達 progfay も応募してるらしいという話を知った
所属している学科 FMS ではかなりScrapboxが使われている
授業メモの共有やちょっとしたプロジェクトの管理からサークル運営までいろんなところで活用
大好きなサービスを開発できるんだからモチベは最高
面談の後、サマーインターンとして京都オフィスで開発させていただけることになった
/shokai/Scrapbox開発プロセス がScrapbox開発のイメージを掴むのに非常に参考になった

初めてでも大丈夫
初インターン
そもそも他のインターンに応募していない... (応募方法すらわからない)
Scrapboxを通じたコミュニケーションが円滑だったのがよかった
初一人暮らし
個人的に生活能力低めなので一人暮らしの負担はそこそこあったかも...
京都のゴミ出しはルールが複雑でちょっと大変
開発や会社に関するストレスがほとんど全くなかったので結果的に大変だったのは一人暮らしくらいだった
初京都
関東以外に住んだことないので二重初
部屋の鍵を貰った時に一緒に観光案内が入っていた!
土日はゆっくり観光できました yutaroyutaro
修学旅行などでも行ったことがなかったので見て回れて嬉しかった!!!


インターン中の流れ
1日目
コードリーディング会を開いてもらった
rakusaiさんとdaiizさんにコードの読み進め方やコードを読む流れをざっくりと教わる
キーワードやコードの場所などを探す方法を大まかに把握
あとは社内Scrapboxで検索すればいいので特別に難しいところ以外は手をつけ始めるには十分だった
インターン期間中にやることを決める
Scrapboxに入れてみたい・試してみたい機能はたくさんあったのでやることを決めるのは苦労しなかった
自由にテーマを決めさせてもらえたのがありがたかった!
UserScriptでプロトタイピングしていたいくつかの機能をScrapboxに入れることを大目標設定
前提機能をいくつか作っていくことを小目標にした
2日目 〜
開発開始
びっくりするぐらいすんなり開発に入ることができた
開発にすんなり入ることができた理由をshokaiさんが書いてくれた
基本的にはオフィスで開発
昼ごはんと休憩中以外は基本的には一人で作業している感じ
時々、rakusaiさんやdaiizさんが進捗を聞いてくれる
出社時間は自由
2時のsprint meetingにいれば大丈夫と言う感じ
多少夜更かしして開発しても、次の日にゆっくり出社すれば良いという感じ
やる気が出た時にじゃんじゃん開発できて非常によかった

開発環境
流れ
1. 作りたい機能・実装方法・なにが良くなるのかなどをまとめてScrapboxに書く
2. 実装して pull requestを出す
3. フィードバックやアドバイスを受けて修正する
ややこしくなってきたらScrapbox上で議論する
4. LGTMを貰ったらmergeする

やりたいことを応援してくれる環境
開発中に社内Scrapboxに「こういう機能作りたいです」ページを作って考えてることを書いておくと知恵が集まってくる
開発が行き詰まったその時に細かく聞かなくても、寝て起きるとshokaiさんのアドバイスが来てて最高
新しく入って来た人にとっては、すごくやりやすい開発環境だった
筋が悪い時は納得いくまで説明・議論してくれた
もやもやした気持ちを残さずに次に進めた
これもほとんどストレスを感じなかった理由かも

Nota社内のScrapbox
新しい人が書きやすい環境を作り出せている
社内で議論になっていることにも学生の素朴な意見を書き込みやすかった
これが一番すごい気がする
試したことの軌跡が残っていて失敗を次に生かしやすい
自分がやりたいことを 増井俊之 先生が過去に提案していたりする
知見を生かした上で作り始められる
自然に知見の引き継ぎができていた
情報が自然と共有されている
昼食や休憩時のふとした会話でかなり突っ込んだ話ができていた
今やっていること・やりたいことを理解してもらえた上でアドバイスをもらえたのは本当にありがたかった

実装した機能

UserScriptからpageのタイトル一覧を取得できるようにした
window.scrapbox.Project.pages
[] でのページ補完に使われているページタイトルのリストをUserscriptからでも取れる
UserScriptで/daiiz/omakase-linksのようなものをより便利に作ることができるようになりました。
(初めて mergeされたpull request!!)

New Page ボタンでページを切り出す時にいい感じにインデントを下げる
選択範囲の行が全てネストしている場合に行全体を選択して切り出すとネストが下がった状態で切り出される
1つのページにだらだらと書いて切り出すというように使っている場合が多かったのでこの機能を便利にしたかった

Random Jump Button
Project内のランダムなページに遷移するボタン
次にジャンプするページはボタンが押される前に決まっている
prefetchされているので超高速で次のページに遷移可能!
Random Jump Buttonを連打して、気になる記事を見つけてからリンクをたどるみたいな使い方ができるようになった!
忘れかけていた記事にリンクをつけたり情報をアップデートする機会になる
参加したてのプロジェクトや公開プロジェクトで連打すると高速に雰囲気がわかったり、気になるページが見つかったりする
すごくいい場所に置かせていただけて yutaro が一番びっくりした
喜んでる人をTwitterで発見した時めちゃめちゃ嬉しかった!!!!

インターン中に作っていた・作りかけの機能は他にもいくつかあるのですが、無事mergeされたら書き足す予定

最後に
Notaの皆さんには本当にお世話になって不自由なことなく欲しい機能をひたすら開発し続けられた楽しすぎる毎日でした。
ありがとうございました!yutaroyutaroyutaro
shokaiさんがインターンの総括的なありがたい記事を書いてくれていた



おまけ
歓迎会をしていただいた時に生まれた名画
pastak さんがjavascriptのthisを午前2時に教えてくれている図
かろうじて聞いている左の後ろ姿がyutaro 右で死にかけているのがprogfay
Tシャツ好評発売中!
shokaiさんが買ったらしい
ちょっと欲しくなってきたw
最終日にいただいたInternship仕様 Tシャツ!!!!!yutaroyutaroyutaroyutaroyutaro
去年のdaiizさんの時は #Scrapbox だったのが今年は [Scrapbox] になっているところがポイント

2018/9/7 あたりに書いた 記事