Upgrade to Pro — share decks privately, control downloads, hide ads and more …

古き良き開発現場に新しい文化を作ろう! / Let's create a new cultur...

古き良き開発現場に新しい文化を作ろう! / Let's create a new culture in the old development site.

Tomoko Matsumura

June 29, 2019
Tweet

More Decks by Tomoko Matsumura

Other Decks in Technology

Transcript

  1. #phpconfuk #hall_fu @nako0123 2015年 福岡移住準備 2016年 2008年 SIer 新卒入社(東京) ◉クラサバ/WEBアプリケーション


     開発・保守・運用 ◉情報システム部  社内システム企画・開発 ◉サーバ管理・運用・保守 ◉パッケージ販売(プリセールス)  カスタマイズ・導入サポート ◉iPhone / Android アプリ開発(Xamarin) ◉(謎の)新人研修講師? ◉映像管理アプリケーション
  開発・導入サポート 現職(R&D部) ◉海外展開・市場調査 ◉社内DevOps推進 いままで何をしてきたのか? d7
  2. #phpconfuk #hall_fu @nako0123 テレビ局向け 業務系システム・パッケージ コンテンツ事業系アプリケーション WEBアプリケーション 動画管理ソリューション AIによる動画分析 創業からの27年間を支えるメイン事業。日本の

    キー局・地方局・ケーブルテレビをターゲットと した業務アプリケーションを開発している。国内 で数社しか開発することができない、ニッチな
 分野のシステムであり、案件の規模も大きい。 高速ファイル転送プロトコル STORM® 自動文字起こし・字幕・翻訳 テレビ局向けに開発したUDPベースの 高速ファイル転送プロトコル「STORM®」 FTPの約25倍の転送速度でファイル転送可能。 オリンピックやW杯などの実績多数。 STORM®の実績を活かし、動画を取り扱うための WEBアプリケーションを開発。 マイクロソフトやAWSのAIサービスを利用した 動画解析や自動文字起こし・翻訳などの アプリケーションも開発中。 海外企業やWEBサービスとのコラボレーションも 開始し、「福岡から海外へ」をキーワードとした 海外展開にも取り組んでいる。 ユニゾンシステムズはどんな会社か? d8
  3. #phpconfuk #hall_fu @nako0123 既存のドキュメントありますか? あるよ〜 現状との対峙編『ドキュメントはどこ?』 old 議事録   20150125_社内打ち合わせ.txt

      【修正版】20150216_MTG.txt   【修正版②】20150216_MTG.txt 要件定義メモ_001.xlsx 要件定義補足_社内用.xlsx 最新版_仕様書_FIX(メール参照).txt Re: 仕様変更について.eml Re: Re: Re: 田中さんからのメールを転送したやつ!.eml このフォルダの資料は移動しないこと!!!.txt d12
  4. #phpconfuk #hall_fu @nako0123 STEP1. 現状の把握とセルフプロモーション ▶現状の把握  - 誰がどんな役割なのかを分析する  - 改善しやすい部分を探す

     - 情報を整理して一箇所にまとめる ▶セルフプロモーション  - とにかく社内に自分の存在を認識させる  - 意見が通りやすい状況を作る d20
  5. #phpconfuk #hall_fu @nako0123 ✔誰がどんな役割なのかを分析する ベテラン勢  - マネジメント中心  - 激動の時代を支えた  -

    業務知識豊富  - CやC++の技術者も多い 役職者・非エンジニア職  - 決済権限がある人もいる  - エンジニアとの間に
   壁あり?  - 会社の制度をよく知る人   特殊技能メンバ  - プロトコルの開発  - WEB RTC, LIVE配信技術  - AI・機械学習  などのコア技術を扱う 中途メンバー  - SIer出身  - 元フリーランス  - WEB開発経験者もいる  - 社内発言力は弱め d21
  6. #phpconfuk #hall_fu @nako0123 ✔誰がどんな役割なのかを分析する ベテラン勢  - マネジメント中心  - 激動の時代を支えた  -

    業務知識豊富  - CやC++の技術者も多い 役職者・非エンジニア職  - 決済権限がある人もいる  - エンジニアとの間に
   壁あり?  - 会社の制度をよく知る人   特殊技能メンバ  - プロトコルの開発  - WEB RTC, LIVE配信技術  - AI・機械学習  などのコア技術を扱う 中途メンバー  - SIer出身  - 元フリーランス  - WEB開発経験者もいる  - 社内発言力は弱め とにかく忙しい d21
  7. #phpconfuk #hall_fu @nako0123 # 忙しい人に無理やりアプローチすると・・・ - わかりやすく反発に合う  - 「そんなことをやっている時間はないよ」  -

    「ツール入れて失敗したらどうするの?」  - 「それプロジェクトの利益になるの?」 →無難な結果を求めがちになる。 - 過剰に「やる/やらない理由」を求められる  - 自分が知らないこと・試す余裕がないこと
   に対しては「なぜやるのか?」の理由を
   求めがちになる。 d22
  8. #phpconfuk #hall_fu @nako0123 ✔改善しやすい部分を探す バージョン管理  - Subversion  - ブランチベース開発  -

    手動マージ WEBアプリ開発  - PHP 独自フレームワーク  - MongoDB  - jQuery コア技術  - 要業務知識(ニッチ)  - プロトコル開発  - C, C++, VC++.NET ドキュメント・課題管理  - Excel  - テキストファイル  - No Document d23
  9. #phpconfuk #hall_fu @nako0123 ✔改善しやすい部分を探す 忙しい人にいきなりアプローチしても 効果が上がりにくそうだな。 バージョン管理  - Subversion  -

    ブランチベース開発  - 手動マージ WEBアプリ開発  - PHP 独自フレームワーク  - MongoDB  - jQuery コア技術  - 要業務知識(ニッチ)  - プロトコル開発  - C, C++, VC++.NET ドキュメント・課題管理  - Excel  - テキストファイル  - No Document d23
  10. #phpconfuk #hall_fu @nako0123 ✔改善しやすい部分を探す 忙しい人にいきなりアプローチしても 効果が上がりにくそうだな。 バージョン管理  - Subversion  -

    ブランチベース開発  - 手動マージ WEBアプリ開発  - PHP 独自フレームワーク  - MongoDB  - jQuery コア技術  - 要業務知識(ニッチ)  - プロトコル開発  - C, C++, VC++.NET ドキュメント・課題管理  - Excel  - テキストファイル  - No Document d23
  11. #phpconfuk #hall_fu @nako0123 ✔改善しやすい部分を探す 忙しい人にいきなりアプローチしても 効果が上がりにくそうだな。 バージョン管理  - Subversion  -

    ブランチベース開発  - 手動マージ WEBアプリ開発  - PHP 独自フレームワーク  - MongoDB  - jQuery コア技術  - 要業務知識(ニッチ)  - プロトコル開発  - C, C++, VC++.NET ドキュメント・課題管理  - Excel  - テキストファイル  - No Document d23
  12. #phpconfuk #hall_fu @nako0123 ✔改善しやすい部分を探す 忙しい人にいきなりアプローチしても 効果が上がりにくそうだな。 バージョン管理  - Subversion  -

    ブランチベース開発  - 手動マージ WEBアプリ開発  - PHP 独自フレームワーク  - MongoDB  - jQuery コア技術  - 要業務知識(ニッチ)  - プロトコル開発  - C, C++, VC++.NET ドキュメント・課題管理  - Excel  - テキストファイル  - No Document d23
  13. #phpconfuk #hall_fu @nako0123 ✔改善しやすい部分を探す 忙しい人にいきなりアプローチしても 効果が上がりにくそうだな。 バージョン管理  - Subversion  -

    ブランチベース開発  - 手動マージ WEBアプリ開発  - PHP 独自フレームワーク  - MongoDB  - jQuery コア技術  - 要業務知識(ニッチ)  - プロトコル開発  - C, C++, VC++.NET ドキュメント・課題管理  - Excel  - テキストファイル  - No Document ここは開発しながら(自分に)都合よく 手をいれていこう。 d23
  14. #phpconfuk #hall_fu @nako0123 ✔改善しやすい部分を探す 忙しい人にいきなりアプローチしても 効果が上がりにくそうだな。 バージョン管理  - Subversion  -

    ブランチベース開発  - 手動マージ WEBアプリ開発  - PHP 独自フレームワーク  - MongoDB  - jQuery コア技術  - 要業務知識(ニッチ)  - プロトコル開発  - C, C++, VC++.NET ドキュメント・課題管理  - Excel  - テキストファイル  - No Document ここは開発しながら(自分に)都合よく 手をいれていこう。 まずは皆が使うドキュメント系から やっていこう。 d23
  15. #phpconfuk #hall_fu @nako0123 ✔改善しやすい部分を探す 忙しい人にいきなりアプローチしても 効果が上がりにくそうだな。 バージョン管理  - Subversion  -

    ブランチベース開発  - 手動マージ WEBアプリ開発  - PHP 独自フレームワーク  - MongoDB  - jQuery コア技術  - 要業務知識(ニッチ)  - プロトコル開発  - C, C++, VC++.NET ドキュメント・課題管理  - Excel  - テキストファイル  - No Document ここは開発しながら(自分に)都合よく 手をいれていこう。 まずは皆が使うドキュメント系から やっていこう。 d23
  16. #phpconfuk #hall_fu @nako0123 # Backlogの導入 チケット化  - Excel課題管理表  - チーム内外からの質問(ex.営業チーム)

     - 保守・運用のお問い合わせ
 
 Wiki化  - 既存のドキュメントへのリンク集  - TIPSや手順書  - どこに書けばいいかわからないメモ d25
  17. #phpconfuk #hall_fu @nako0123 # Backlogを採用した理由  - スモールスタートできる   - 軌道にのったら利用範囲を拡大できる  -

    環境構築・サーバのメンテナンスが不要  - Markdownが使える  - 使い方が簡単!   - エンジニア以外も利用しやすい   - 見た目がポップで楽しい気持ちになる   - 常にアップデートで改善されている そしてなにより福岡発!! d27
  18. #phpconfuk #hall_fu @nako0123 ✔誰がどんな役割なのかを分析する ベテラン勢  - マネジメント中心  - 激動の時代を支えた  -

    業務知識豊富  - CやC++の技術者も多い 役職者・非エンジニア職  - 決済権限がある人もいる  - エンジニアとの間に
   壁あり?  - 会社の制度をよく知る人   特殊技能メンバ  - プロトコルの開発  - WEB RTC, LIVE配信技術  - AI・機械学習  などのコア技術を扱う 中途メンバー  - SIer出身  - 元フリーランス  - WEB開発経験者もいる  - 社内発言力は弱め 社内での認知度を上げる必要あり! d29
  19. #phpconfuk #hall_fu @nako0123 # 声をかける - 部署やチームに関係なく話をしてみる  - 雑談でOK  -

    時事ネタ,Tech,スポーツなど、情報収集は怠らず
 - (面倒な)イベントの幹事も引き受けてみる  - 自分のやりたいことができるチャンス  - 自分のやりたくないことを廃止できるチャンス
 - コーヒー片手に社内をウロつく  - 後ろからこっそりモニタを覗いてみる   = 誰がどんなことに時間を使っているかがわかる d31
  20. #phpconfuk #hall_fu @nako0123 # チャンスに飛びつく - やったことのないことには手をあげる  → 海外出張の欠員が出た  →

    英語得意じゃないけど「行きたい!」  → 台湾・オランダ・ロシア・エストニア出張 
 - 誰もやっていないことをやると目立つ  - 良くも悪くも目立つ(気にしない)  - レポートや報告会などで成果をアピール!  →次のチャンスが自然と巡ってくるように d32
  21. #phpconfuk #hall_fu @nako0123 # 出し惜しみしない - 自分が得た情報は積極的にシェアする  - 苦労して習得したスキルや有料イベントで得た情報  -

    社内勉強会、日報でコラム連載  - 反応が薄くても意外と印象を残していることが多い - 質問や相談には必要以上に親切・丁寧に接する  - 自分の時間を奪われている!と考えない
  - サンプル作成、上司への交渉なども引き受ける  - 「忙しくてできない」と言われたら代わりにやる 時にはハードワークも大事だよ。 d33
  22. #phpconfuk #hall_fu @nako0123 STEP2. 開発環境を改善する ▶最低限必要のツールを導入する  - Backlog(導入済み)  - Git,

    GitLab  - Slack ▶面倒な作業を簡略化する  - 開発環境の仮想化(Vagrant, Docker)  - Markdown  - ドキュメントビルドの自動化 d36
  23. #phpconfuk #hall_fu @nako0123 # ツール導入のジレンマ - 小規模(1〜20人)  - 費用対効果を検討しやすい  -

    ミニマムプラン(有料)を使って効率的に - 中規模(20〜100人)  - 有料プランだと初期コストがかかりすぎる  - 社内ツール開発・運用の専用部門を置けない - 大規模(100人以上)  - 大規模組織向けのプロダクトを採用する  - ある程度トップダウンで進めることも多い 中規模だとどっちつかずでツライ d39
  24. #phpconfuk #hall_fu @nako0123 # Backlogの利用拡大から考える - 受けた依頼は地道にチケット化。
 - 営業メンバーからの依頼はBacklog経由を優先  -

    Backlogに書けば、優先対応になる印象をつける。  - 最初はチケット+電話やメールで個別フォロー。
 →ドキュメント化が苦手なメンバーもコメント  なら気軽に残せる=情報共有の習慣化 じわじわと利用拡大して ”有料化” d40
  25. #phpconfuk #hall_fu @nako0123 # GitLabの採用理由 - Pros  - GitLab CE版ならオンプレで構築可能

     - 無料で始めることができる  - ソースを社外に出すのは比較的ハードル高め - Cons
  - 自分で構築・メンテナンスする必要がある   - ハードウェアを用意する必要がある  - GitHub用のツール・ライブラリが使えない まずは #Git の普及が第一優先!! d41
  26. #phpconfuk #hall_fu @nako0123 # Slackの採用理由 - Pros  - もはや既に業界標準  -

    前職や家庭で使っているので慣れている  - たのしい・かわいい・連携できる - Cons
  - いきなり有料版にはできない(高い)  - アカウントを能動的に作成してもらう
   必要がある ダメなら他を検討すればいいじゃん d43
  27. #phpconfuk #hall_fu @nako0123 # ツール導入のタイミングとポイント - プロジェクト立上げ期はチャンス!!  - 移行よりも新規導入は心理的ハードルが低い
   -

    ツールを変えたから失敗したと言わせない   - プロジェクトの予算を使えることも
 
 - 無理強いしない  - 既存ツールを廃止するか、併用するかよく考える  - 導入するツールに関して、自分が一番くわしい   状態になっておく。アップデートを怠らない。 なぜ導入したいか、を説明できるとGood. d44
  28. #phpconfuk #hall_fu @nako0123 # 開発環境の仮想化 - Vagrant  - 手順書通りに作ったイメージを共有することから。  -

    環境の違いによって発生する開発作業の問題を
   少なくしていく。  -「壊しても大丈夫」= 無駄な作業が削減できる。   - Vagrantプラグインを有効活用する   - vagrant-managed-servers    - 既存のサーバーをVagrantコマンドで操作できる
 - WindowsとMacの違いを吸収する 仕方ない・・・Windowsでも検証するよ d46
  29. #phpconfuk #hall_fu @nako0123 # Markdownで標準化 - 社内用ドキュメント  - Backlog(チケット・Wiki)  -

    GitLab Issue  →軽量・検索しやすい・好きなエディタが使える
 - 納品物・社外用ドキュメント  - VSCodeのExtensionでキレイなPDFを出力できる  - Markdownで書いたドキュメントをHTML化 HTML化ってどうやるの?? d47
  30. #phpconfuk #hall_fu @nako0123 # ドキュメントビルド - MkDocs  - Markdownで書いてビルド →

    HTMLを生成  - WindowsでもMacでもローカルビルドできる  - HTMLやJSを組み込むこともできる  → Webマニュアルも簡単に作ることができる d49
  31. #phpconfuk #hall_fu @nako0123 # ドキュメントビルド応用編 - GitLab-CI > GitLab Pages

     - 1. ローカルでMarkdownを書く  - 2. Git Push → GitLabで履歴管理  - 3. Merge Request(プルリク)→ マージ  - 4. GitLab-CI    > DockerコンテナでMkDocsビルド  - 5. GitLab Pagesで静的ページ公開 Dockerを理解したり、GitLab導入を したからこそできたことだね。 d50
  32. #phpconfuk #hall_fu @nako0123 # ドキュメントビルド応用編 - ReDoc  - REST API

    ドキュメンテーションツール  - OpenAPIが使える
 - phpDocumentor  - PHPDocを元にドキュメントを自動生成  - 既存コードを調査するときにも役立つ テキストベースになれば、Gitで管理して 変更履歴を追えるようになるよ d51
  33. #phpconfuk #hall_fu @nako0123 STEP3. 仲間を増やす ▶社内活動を増やす  - MatzLabの開催  - Slackチャンネルの開設

     - 非エンジニア層へのアプローチ ▶改善活動をしてくれるリーダーを増やす  - 社外のことを知ってもらう  - 面倒なプロセスを少なくする d55
  34. #phpconfuk #hall_fu @nako0123 ベテラン勢  - マネジメント中心  - 激動の時代を支えた  - 業務知識豊富

     - CやC++の技術者も多い 役職者・非エンジニア職  - 決済権限がある人もいる  - エンジニアとの間に
   壁あり?  - 会社の制度をよく知る人   特殊技能メンバ  - プロトコルの開発  - WEB RTC, LIVE配信技術  - AI・機械学習  などのコア技術を扱う 中途メンバー  - SIer出身  - 元フリーランス  - WEB開発経験者もいる  - 社内発言力は弱め 保守的な人のほうが変化が大きい! # 非エンジニア層へのアプローチ d58
  35. #phpconfuk #hall_fu @nako0123 # 社外のことを知ってもらう - Slackや朝会で情報共有  - 「こんなイベント行ってきたよ!」  -

    「このカンファレンスは無料ですよ〜」  - 「この改善活動の記事、面白かったよ」
 - 一緒にカンファレンス・イベントに参加する  - 初めて参加するときは誰でも「怖い」   - 「怖い」と言いにくい =「めんどくさい」   - 「怖い」と言いにくい =「いそがしい」 どうやったら一緒に行ってくれるの? d61
  36. #phpconfuk #hall_fu @nako0123 # 面倒なプロセスを少なくする - 有料カンファレンスへの参加  - 一緒に参加してほしいメンバーの上司に掛け合う  -

    必要であれば、提案書を作成したり、参加許可を   もらうためのフローを構築する - 会社帰りに寄れるイベントに誘う  - 興味を持ってくれそうなテーマのイベントを探す  - 「無料だよ」「ご飯もでるよ」「ビールも出るよ」  - どんな感じで参加すればよいか説明する とにかく参加への心理的ハードルを下げる d62
  37. #phpconfuk #hall_fu @nako0123 # DevOpsDays Tokyo 2018に参加 - 事前にやったこと  -

    メンバーの上司に個別に詰め寄る  - 東京への出張を入れてもらう(交通費の調整)  - 「早く買えばチケット安くなりますよ!」と急かす こういうの行ったことないし怖い。 行くのはいいけど・・・ 行ってもどうにもならないような。 参加する前のMさん d63
  38. #phpconfuk #hall_fu @nako0123 # DevOpsDays Tokyo 2018に参加 - このイベントをきっかけとして  -

    「DevOps」がテーマの勉強会をはじめることに  - 部署を超えた改善活動につながった  - イベントやカンファレンスに参加することの
   効果を理解してもらうきっかけができた 楽しかった!! 改善をイメージできた!! これからDevOpsやっていくぞ!! 参加後のMさん d64
  39. #phpconfuk #hall_fu @nako0123 # DevOpsミーティング - エンジニア・マネージャーが対象  - 技術的なテーマより集まりがよかった  -

    事前知識が必要ない=参加ハードルが低い  - 時々やる、無理しない
 
 - 見よう見まねでピザとビール ɹ- ピザはめんどくさいからやめた  - 気が向いたタイミングでビールやお菓子を 2018 - 2019でKPTもやったりしたよ! d65
  40. #phpconfuk #hall_fu @nako0123 エピローグ. 古き良き開発現場は変わったのか ▶ツールの導入には成功  - 多くのプロジェクトがGitに移行済み   - ブランチマージミスによる障害も減少

     - Backlogのプロジェクトも順調に増加  - 中途社員を中心にSlackと連携した
   自動化ツールなどの開発も増えてきた ▶DevOps活動は継続が必要  - 現場メンバーだけでなくマネージャー陣からも   発信してもらうように働きかけ中 d67
  41. #phpconfuk #hall_fu @nako0123 まとめ ▶耕す・種を撒く・芽が出る  - 現状の把握・整理  - セルフプロモーション  -

    ツールの導入, 面倒な作業を簡略化 ▶水を与え続ける  - 社内外の活動  - 一緒に活動してくれる仲間を増やす d68
  42. #phpconfuk #hall_fu @nako0123 まとめ ▶耕す・種を撒く・芽が出る  - 現状の把握・整理  - セルフプロモーション  -

    ツールの導入, 面倒な作業を簡略化 ▶水を与え続ける  - 社内外の活動  - 一緒に活動してくれる仲間を増やす d68 技術で課題を解決するために、技術以外 の工夫も大切!!
  43. #phpconfuk #hall_fu @nako0123 2017 エピローグ. 古き良き開発現場は変わったのか? 2018 2019 0 +

    0 + 1 0 + 1 + 3 1 + 2 + 13 スポンサー 登壇者 参加メンバー d71