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

の開発インターンをしてきました!

結論から言うと、Scrapboxは最高

の強力な知見共有能力のおかげでインターン生でも自然と開発に参加できた
検索したら大体欲しい情報が出てくる
社内

にページを作ると続々とアイディアや知恵が集まってくる
書くのも読むのも楽しいのでキャッチアップが全く苦痛にならない
約1ヶ月間楽しく開発を続けることができた
経緯

は

のファン
使っててとにかく楽しい!
研究室で使っているうちに段々と好きになっていった
日頃チャットやドキュメントに書き込んでいない人が書き込んでくれる
試行錯誤の軌跡をそのまま残せる
ページ同士が自然と繋がって見てて楽しい

さんと

さんと

先生にお話を伺えて雰囲気が少しわかった
こういうイベントありがたい!
なんと、去年も同じような先輩がいた(

さん)
研究室の

先生に相談したところ

さんを紹介していただけた
後から同じ学科の友達

も応募してるらしいという話を知った
所属している学科
FMS ではかなり

が使われている
授業メモの共有やちょっとしたプロジェクトの管理からサークル運営までいろんなところで活用
大好きなサービスを開発できるんだからモチベは最高
面談の後、サマーインターンとして京都オフィスで開発させていただけることになった
初めてでも大丈夫
初インターン
そもそも他のインターンに応募していない... (応募方法すらわからない)

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


修学旅行などでも行ったことがなかったので見て回れて嬉しかった!!!
インターン中の流れ
1日目
コードリーディング会を開いてもらった

さんと

さんにコードの読み進め方やコードを読む流れをざっくりと教わる
キーワードやコードの場所などを探す方法を大まかに把握
あとは社内

で検索すればいいので特別に難しいところ以外は手をつけ始めるには十分だった
インターン期間中にやることを決める
Scrapboxに入れてみたい・試してみたい機能はたくさんあったのでやることを決めるのは苦労しなかった
自由にテーマを決めさせてもらえたのがありがたかった!
UserScriptでプロトタイピングしていたいくつかの機能をScrapboxに入れることを大目標設定
前提機能をいくつか作っていくことを小目標にした
2日目 〜
開発開始
びっくりするぐらいすんなり開発に入ることができた
開発にすんなり入ることができた理由を

さんが書いてくれた
基本的にはオフィスで開発
昼ごはんと休憩中以外は基本的には一人で作業している感じ
時々、

さんや

さんが進捗を聞いてくれる
出社時間は自由
2時のsprint meetingにいれば大丈夫と言う感じ
多少夜更かしして開発しても、次の日にゆっくり出社すれば良いという感じ
やる気が出た時にじゃんじゃん開発できて非常によかった
開発環境
流れ
1. 作りたい機能・実装方法・なにが良くなるのかなどをまとめてScrapboxに書く
2. 実装して pull requestを出す
3. フィードバックやアドバイスを受けて修正する
ややこしくなってきたらScrapbox上で議論する
4. LGTMを貰ったらmergeする
やりたいことを応援してくれる環境
開発中に社内Scrapboxに「こういう機能作りたいです」ページを作って考えてることを書いておくと知恵が集まってくる
開発が行き詰まったその時に細かく聞かなくても、寝て起きると

さんのアドバイスが来てて最高
新しく入って来た人にとっては、すごくやりやすい開発環境だった
筋が悪い時は納得いくまで説明・議論してくれた
もやもやした気持ちを残さずに次に進めた
これもほとんどストレスを感じなかった理由かも
Nota社内の

新しい人が書きやすい環境を作り出せている
社内で議論になっていることにも学生の素朴な意見を書き込みやすかった
これが一番すごい気がする
試したことの軌跡が残っていて失敗を次に生かしやすい
自分がやりたいことを

先生が過去に提案していたりする
知見を生かした上で作り始められる
自然に知見の引き継ぎができていた
情報が自然と共有されている
昼食や休憩時のふとした会話でかなり突っ込んだ話ができていた
今やっていること・やりたいことを理解してもらえた上でアドバイスをもらえたのは本当にありがたかった
実装した機能
UserScriptからpageのタイトル一覧を取得できるようにした
window.scrapbox.Project.pages
[]
でのページ補完に使われているページタイトルのリストをUserscriptからでも取れる
(初めて mergeされたpull request!!)
New Page ボタンでページを切り出す時にいい感じにインデントを下げる
選択範囲の行が全てネストしている場合に行全体を選択して切り出すとネストが下がった状態で切り出される
1つのページにだらだらと書いて切り出すというように使っている場合が多かったのでこの機能を便利にしたかった
Random Jump Button
Project内のランダムなページに遷移するボタン
次にジャンプするページはボタンが押される前に決まっている
prefetchされているので超高速で次のページに遷移可能!
Random Jump Buttonを連打して、気になる記事を見つけてからリンクをたどるみたいな使い方ができるようになった!
忘れかけていた記事にリンクをつけたり情報をアップデートする機会になる
参加したてのプロジェクトや公開プロジェクトで連打すると高速に雰囲気がわかったり、気になるページが見つかったりする
すごくいい場所に置かせていただけて

が一番びっくりした
喜んでる人をTwitterで発見した時めちゃめちゃ嬉しかった!!!!
インターン中に作っていた・作りかけの機能は他にもいくつかあるのですが、無事mergeされたら書き足す予定
最後に
Notaの皆さんには本当にお世話になって不自由なことなく欲しい機能をひたすら開発し続けられた楽しすぎる毎日でした。

さんがインターンの総括的なありがたい記事を書いてくれていた
おまけ
歓迎会をしていただいた時に生まれた名画

さんがjavascriptのthisを午前2時に教えてくれている図
かろうじて聞いている左の後ろ姿が

右で死にかけているのが

Tシャツ好評発売中!

さんが買ったらしい
ちょっと欲しくなってきたw
去年の

さんの時は
#Scrapbox
だったのが今年は
[Scrapbox]
になっているところがポイント