センサレスモータドライバの技技術術開開発発技術 …...ÜÝoÞpdßà ]áâ© deS¾ oxyz 製製製 品品品・・・・技技技技 術術術 PPPP RRRR レレレ
Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた
-
Upload
yasukazu-nagatomi -
Category
Technology
-
view
38.529 -
download
0
Transcript of Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた
![Page 1: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/1.jpg)
2016/04/22 吉祥寺 .pm7
@yassan168 (やっさん)
技術的負債だらけのチームで
技術マネージメントしてみた
![Page 2: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/2.jpg)
Who are you ?
• @yassan168 (やっさん)
• あらふぉー
• お家は京都。4月で単身赴任2年目突入。
• SIer→ プリクラなどやってる会社に勤務
~ 2015/03 :プリ機のソフト開発
2015/04 ~:プリ機に関するデータ分析
2
![Page 3: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/3.jpg)
チームのメンバは、
技術に関心がありますか?
3/52
![Page 4: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/4.jpg)
技術的負債の返済は、
お済みですか?
4/52
![Page 5: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/5.jpg)
今日話すこと
新しく入ったチームが、
技術的負債でいっぱい かつ
メンバが技術に関心が無い状態で、
やった事 と そこで悩んでいる事について
5
![Page 6: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/6.jpg)
私が 1 年前に言われた事
データ分析エンジニアが辞めて、
誰もいなくなってしまうので、
そこを引き継ぎ、さらに、
今後、人を増やしてチーム化するので
良い感じにして欲しい。
6
![Page 7: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/7.jpg)
1 年前の私の状態
• Perl ?あぁ、あのラクダさんのヤツね。
• Svn なら知ってるけど、 Git の経験無し
• Windows で VC++ 使って開発
• Svn/Redmine/Jenkins などのサーバ管理
7
![Page 8: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/8.jpg)
1年前の状態
• すべてがメールベース
• ドキュメントはほぼ無い
• 最強の属人化。個人のパワーで乗り切る
• 技術に関心が無く誰も行動しない
• 暫定スクリプトが今も元気に本番稼働中
8
![Page 9: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/9.jpg)
1年前の状態
• ソースには、ほぼコメント無し
• hoge.pl.( 日付 ) 形式のソース管理
• チーム共有ライブラリを require して使
用
9
![Page 10: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/10.jpg)
これ、 に出てたやつ
だ!( by 進研ゼミ)
10/52
![Page 11: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/11.jpg)
こ、これはマズイ事になった
11/52
![Page 12: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/12.jpg)
まず、やった事
12/52
![Page 13: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/13.jpg)
なかまをさがす
1 人でやるよりみんなでやった方が、
辛くない。
• インフラ担当者が運良く技術に興味が
あって話に乗ってきた!
– インフラ担当が味方だとかなり動きやすいです。
13
![Page 14: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/14.jpg)
Redmine の仮導入
自分と前任者だけでもタスク管理を Redmineに移行
• 作業内容や経過を残す為に、
作業をチケット化
–同様の作業をする際に見直しが可能になるので、
引き継ぎ資料の一部に出来る。
14
![Page 15: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/15.jpg)
Redmine の仮導入
前任者に以下をチケット化してもらった
• 過去やった事
• 過去の障害
• データ分析でのコツ
• 各スクリプトの概要
(何が目的で、いつ動き、なにを出すのか)15
![Page 16: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/16.jpg)
Redmine の拡散
メールベースの文化をやめて、
部全体で、チケットによるタスク管理をす
るために、布教活動を開始。
16
![Page 17: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/17.jpg)
Redmine の拡散
ただ、ひたすらに
「便利だよー」「こう使うと良いよー」と
利点とユースケースを説いて周り、
ちょっとだけでも使ってみないか?と、
ジワジワと広げ、無いと不便な状態を作る
17
![Page 18: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/18.jpg)
イメージ図
18
![Page 19: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/19.jpg)
得られた事
• 引き継いだ情報が Redmine にすべてあ
るので後で検索が可能
• 作業をチケット化した事で、
残作業やその優先度、進捗状況が分かる
ようになった
19
![Page 20: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/20.jpg)
ソース管理
スクリプトと同階層に、
r○ ディレクトリがあって、
そこに、 hoge.pl.r○ が沢山おいてあった。
20
![Page 21: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/21.jpg)
ソース管理
共通ロジックを特定のパス
/path/to/lib/Hoge/hoge.pl に配置して、
みんなでこれを require して使う。
21
![Page 22: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/22.jpg)
あれ?今、昭和?
22/52
![Page 23: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/23.jpg)
ソース管理
まず、バージョン管理システムの導入。
• Git 使いたかったが、 Svn しか知らな
かったので、まずは、 Svn で自分管理の
ソースやライブラリをバージョン管理化
23
![Page 24: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/24.jpg)
ソース管理
ローカル svn から始めて、
ローカル Git→GitBucket と段階を踏みな
がら移行
24
![Page 25: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/25.jpg)
ソース管理
やったことは Redmine と一緒。
布教活動と Redmine に導入手順などの情
報を残しつつ、ジワジワ広げる。
25
![Page 26: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/26.jpg)
バージョン管理をまともに使ったことのあ
る人が私しかいないので、
バージョン管理の学習コストがデカイ。
サイクル( )が回せない!マズイ!
かだいがあらわれた
26
![Page 27: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/27.jpg)
かだいがあらわれた
これをなんとかしないとマズイ・・・
• バージョン管理システムの概念
• Git の使い方
27
![Page 28: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/28.jpg)
かだいがあらわれた
その他にも、、、
• 固定パスの hoge.pl を require して
使い回す程度にしか Perl を使えていない
• 温かみのある CGI.pm
• crontab に > /dev/null がチラホラ
もっとちゃんと開発が使いたい! 28
![Page 29: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/29.jpg)
よし。チーム勉強会だ。
29/52
![Page 30: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/30.jpg)
べんきょうかい
メンバにヒアリングし、
下記を満たせば参加しても OK と言うこと
に
• 業後じゃなければ OK
• テキストを買うのはイヤ
30
![Page 31: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/31.jpg)
べんきょうかい
上司を以下のポイントで説得
• 技術共有の場の一環としてエンジニアだけ
の MTG を開催
• そこでたまたま輪読会をしていた
31
![Page 32: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/32.jpg)
べんきょうかい
上司の立場上、他の部署などの事考えると、
業務時間内に業務以外の事をする事を
大っぴらに許可し難い。
なので、
あくまで MTG を実施していて、
その中の一部としてたまたま輪読会をしてい
たと言う体を用意。 32
![Page 33: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/33.jpg)
べんきょうかい
実施サイクル
月2回: Perl月1回:バージョン管理
33
![Page 34: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/34.jpg)
得られた事
• 現状がいかにマズイかという共通認識を
得られた
• ソースのバージョン管理への理解
• メンバ間で技術の話を共有できるように
なった
34
![Page 35: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/35.jpg)
得られた事
コーディングの話をするようになった
「ここはこう書いたほうが良いよね」
「変数名とかコーディングスタイルは合わ
せるようにしたいよね」
とか。
35
![Page 36: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/36.jpg)
まとめ
36
![Page 37: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/37.jpg)
進める上で意識した事
一気に理想を求めない
• ちょっとずつで良い。
• 初めの一歩は小さくて良い。
やっていくと当たり前になるので、
そのうち回り出す。
37
![Page 38: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/38.jpg)
進める上で意識した事
上司との交渉でツール先行で話をしない
どんな課題があって、何でやるのか、
やることによるメリットを伝えたうえで、
それを解決するために○○を使いたいって
話を持っていく。
ツールはあくまでオマケ。38
![Page 39: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/39.jpg)
振り返ってみて、、、
39
![Page 40: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/40.jpg)
振り返る
個人的には、
自分だけモダンに Perl 使って、
Redmine と Git を使ってまともな仕事を
するだけでも良かった。
40
![Page 41: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/41.jpg)
振り返る
ただ、1年前の状態を続けた場合、
一緒に働くメンバは、残念な経験しか残らな
いし、その後の仕事にも影響しないか?
そもそも、
「開発って、技術って、楽しい!」
って状態で、みんなで楽しく仕事をしたい!
41
![Page 42: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/42.jpg)
得られた事
技術 MTG (輪読会)
技術共有する場を設けてメンバ間で技術を
考えるきっかけを作った(はず)
Redmine 、 Git現状を正しく把握&正しく記録。
まともな開発経験が出来るようになる(はず)。42
![Page 43: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/43.jpg)
課題
• まだまだ Git を使えていない
• Redmine の使い方にメンバにより
バラ付きがある
→ 細かくケアする。
時間がなんとかしてくれるはず?
43
![Page 44: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/44.jpg)
今後に向けて
44
![Page 45: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/45.jpg)
今後に向けて
• テストが一切なく、デグレが怖いので、
テストを入れたい
• もっと気軽な共有の場として、
Chat ツール導入したい(但し、政治的な理由でオンプレで)
• スキルの底上げ&ノウハウ共有の為に、
ペアプロをやりたい45
![Page 46: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/46.jpg)
今後に向けて
1年でガラッと変えたけど、
(本当は半年でやりたかった)
本当に、メンバは幸せなのか?
46
![Page 47: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/47.jpg)
今後に向けて
このまま進めていって良いのか?
押し付けになっていないか?
47
![Page 48: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/48.jpg)
今後に向けて
「やる事は出来てるし、仕事増やしてくれ
るなよ (´・ω・ `)」
「勉強会とかいらんし仕事させて」
ってなっていないか?
• そんな人がいた( or 出てきた)場合、
どう対応していけば良いのか?48
![Page 49: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/49.jpg)
今後に向けて
ただ、
「みんなで技術の話が出来る場が出来て良
かった」と言ってくれる人もいるので、
たぶん、大丈夫なはず(と思いたい)
49
![Page 50: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/50.jpg)
今後の事
みなさんならどうしました?
今後どうしたらよいでしょうか?
是非、教えてください!
50
![Page 51: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/51.jpg)
まとめ
技術的負債だらけのチームでやった事
今を残す事
– Redmine を使ってタスク管理
–ソースのバージョン管理
技術の共有
–技術ミーティング(輪読会)51
![Page 52: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/52.jpg)
まとめ
一気に理想を求めない
• 最初の一歩は小さくていい
上司との交渉でツール先行で話をしない
• 課題と目的、効果を中心に説明して
ツールはオマケ程度。
52
![Page 53: Kichijoji pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた](https://reader035.fdocument.pub/reader035/viewer/2022062823/5872dc191a28ab74188b7427/html5/thumbnails/53.jpg)
以上です。
53