チーム内勉強会はじめました  (WCAN 2017 Summer LT)


## 自己紹介

* 中小SIerに所属
* 客先常駐で、社内Webシステムを開発しているプログラマ
* 使用言語はHML, CSS, JavaScript, Java, SQLなど
* 2017年3月から、毎週チーム内勉強会を開催している


-----------------
## 伝えたいこと

* 勉強会をはじめた経緯、勉強会の運営
* 勉強会を簡単に始めることができた

「勉強会をはじめてみたいんだけど…」と思っている方の参考になれば、嬉しいです。

-----------------
# 勉強会をはじめる前の話

-----------------
## 勉強会をはじめたきっかけ

* コードレビュで、いつも同じような指摘をしている
(メンバ2～3人をレビュ)
    - HTML：IDが重複している
    - Java：ArrayListで宣言している
    
* 既存コードの品質が悪く、コードから学ぶのは適切でない

⇒ 勉強会を開催して、メンバー全員に教えよう！！

-----------------
## 勉強会の開催を上司に相談

* 自分：「毎週30～60分、業務内で勉強会をやらせてもらえませんか？スライドは家で作るんで。」
* 上司：「OK！やって！」
* 自分(心)：「簡単にOKもらえた。スライド作成は業務時間に含めていないから？」
* 上司：「ただし業務でやるんだから、勉強会の効果を定量的に評価できるようにしておいて！」
* 自分(心)：「定量的な評価は難しいなあ。とりあえずレビュ指摘件数を評価対象にしよう。」
* 自分：「わかりました。」

⇒ 翌週から勉強会を開催

-----------------
## 勉強会の目的

メンバーの技術力の向上！！

私が考える技術力とは？

* 品質：保守性が高くて、読みやすいコードが書けるか
⇒ レビュ指摘件数の少なさ

* 生産性：コーディングや影響範囲調査などが速いか

* 問題解決能力：技術的な問題を解決できるか


-----------------
# 勉強会をはじめた後の話


-----------------
## 勉強会で話した内容


* 品質の向上
    - 良いコードの書き方
    - アンチパターン

* 生産性の向上
    - 正規表現の検索/置換
    - Eclipseのよく使う機能/ショートカット
    - Unixコマンド(grepコマンドなど)

* 問題解決能力の向上
    - 各言語の基礎
    - フレームワークの中身の処理
    - Tomcat, Apacheの基礎
    - 文字コード


-----------------
## 勉強会の運営

* 毎週１回開催、時間は30～60分。
* 場所は打合せ席
    - 22インチモニタありの８人がけ机
    - 会議室より途中参加/退場しやすい
    
* 参加者は2～4人
* 発表者は自分のみ
    - できれば他の人にも発表してもらいたい…

-----------------
### 勉強会用のスライド

* 自分がプライベート時間に作成
* Qiitaスライドモードで作成
    - MarkDownで簡単に作成できる
    - 見た目にこだわらず「内容」に集中できる  
    (フォントサイズや画像サイズ/位置の調整ができない）


-----------------
## 勉強会の効果

まだ目に見える形では効果は出ていない。

### 参加者の感想

*  Google検索するときの幅が広がった（検索ワードが増えた ）
*  変数名やメソッド名を意識するようになった

 
### 発表者(自分)の感想
* 成長していると感じた
   - 曖昧だった知識が整理された。
   - 自分の理解している範囲が明確になった
   - LT駆動開発？
* 「次回は何を教えようか」と考えるのが楽しくなった
* 毎週スライドを作成するのは結構大変
 
-----------------
### レビュ指摘件数の評価

レビュ指摘件数に有意差はなかった

| 項目 | Before | After |
|:-----------|:------------:|:------------:|
| プロジェクト       | A | B   |
| 期間     | 1～3月      | 4～6月       |
| ステップ数     | 4000      | 4000       |
| 技術力不足による指摘件数       | 14        | 14         |
※レビュイーとレビュアーは、BeforeとAfterで同じ人

レビュ指摘件数で評価するのは難しい！！
技術力以外の部分で指摘件数が変わる。

* メンバーが他のチームに移る
* プロジェクトが変わる(同じWebシステムだけど異なるシステム)



-----------------
## まとめ

* 勉強会の開催は、上司から簡単にOKをもらえた
* 「メンバの技術力向上」を目的として、毎週勉強会を開催している
* 勉強会の効果は、目に見える形ではまだ出ていない
* レビュ指摘件数の評価は難しい

-----------------
# ご清聴ありがとうございました

-----------------
# 補足

-----------------
## 気になった記事の紹介
通常の講義が終わった後、「気になった記事」を5分程度で紹介。
箸休め的な内容。

* おもしろそうな技術
    - [Markdown](https://ja.wikipedia.org/wiki/Markdown)
* 自己啓発、プロジェクト管理
   - [なぜプロジェクトは炎上するのか](http://paiza.hatenablog.com/entry/2016/07/28/%E7%82%8E%E4%B8%8A%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AB%E8%87%AA%E5%88%86%E3%81%8B%E3%82%89%E9%A3%9B%E3%81%B3%E8%BE%BC%E3%82%93%E3%81%A7%E3%81%84%E3%81%A3%E3%81%9F%E3%82%A8)
    - [新卒エンジニアが1年間で上司に感じた５つのこと](http://qiita.com/H_Crane/items/22ea96300dda82ec5b02)

* 業務には関係ない記事
    - [イースターエッグ](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%BC%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%BB%E3%82%A8%E3%83%83%E3%82%B0_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF))
    - [難解プログラミング言語](https://ja.wikipedia.org/wiki/%E9%9B%A3%E8%A7%A3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)
    - [SPAJAM（ハッカソン）](http://spajam.jp/)