SlideShare una empresa de Scribd logo
1 de 52
セッション : 【 B-2 】
実録レガシーコード克服秘話
- 闇に光を -
取締役 CTO 石田 健亮
@kensuke_ishida
株式会社ドリーム・アーツ
写真提供:福岡市
想定ユーザー(ペルソナ)
事業会社情報システム部
SI ベンダー、ソフトハウス
リーダー職
石田 健亮 @kensuke_ishida
株式会社ドリーム・アーツ
CTO 1年目
プロダクト開発本部長 1年目
自己紹介
仕事: 企業向け業務パッケージ・システム開発
働き方改革、 VOC 、ポスト Notes
社員数: 250人
所在地: 東京、広島、
那覇、石垣島、大連
設立: 1996 年
技術ブログ: https://insuite.jp/blog/
1997
2005 2008
2016 2014
プロダクト事業
エンタープライズ
100 人に聞きました
第 3 位 ブラウザが古い
第 2 位 UI を変えにくい
第 1 位 保守が困難
( 2016 当社調べ)
第3位 ブラウザが古い
Feb 18 01:15:00 ap1m4 INFO session.UserAgentAnalyzer$1 (UserAgentAnalyzer.java:58) --- 01:15:00
MSIE6=416, MSIE7=72, MSIE8=2623, MSIE9=500, MSIE10=553, MSIE11=1320, MSIE=496, EDGE=10, FIREFOX=2002,
CHROME=1666, SAFARI=10, OPERA=1, IPHONE=290, IPAD=1352, ANDROID=73, WGET=1884, OTHERS=32
( 2016 当社調べ)
第2位 UI を変えにくい
BEFORE AFTER
1px でクレーム
第1位 保守が困難
• オンプレミス多数
• 大規模
• バージョン多数
• カスタマイズ多数
• データ連携多数
• 導入パートナー会社多数
LTS が厄介
レガシーコードレガシーコード
レガシーコードとはレガシーコードとは
• ドキュメントなしドキュメントなし
• テストケースなしテストケースなし
• そもそもクソコードそもそもクソコード
• 設計からクソ設計からクソ
• ○○○○ なんてオワコンなんてオワコン
プロダクト事業
✕
システム構築事業
レガシーコード発生の背景
• 要件定義&カットオーバー
• 納期
• プロジェクト損益
• 減価償却
• 検収しちゃったし
レガシーコードの闇に光を
ソースコードの発掘
バージョンコントロール下へ
ワンステップビルド
テストケースでのガード
1996
2005 2008
2016 2014
ドリーム・アーツ
大丈夫?
CVS
共有
サーバー
2001 2004 2016
2016 年 9 月 26 日 東洋経済 ONLINE
チャンス到来!
自動ユニットテスト
テストカバレッジ計測
Selenium のテストケースも
静かな作業環境
ジョエルテスト (2000)
ソースコードの発掘
バージョンコントロール下へ
ワンステップビルド
テストケースでのガード
【悲報】動いているのは触るなって
レガシーコードの闇に光をレガシーコードの闇に光を
そのためのそのための
人人 xx 情熱情熱 xx 仕組み仕組み
見える化
お客様ごとの再現環境さえあれば
• オンプレミス多数
• 大規模
• バージョン多数
• カスタマイズ多数
• データ連携多数
• 導入パートナー会社多数
⇒⇒ Ruboty (thx r7kamuraRuboty (thx r7kamura さんさん ))
さくっと構築(正式名)
さくっと構築
全てのバージョンの環境をすぐに準備
お客様固有のカスタマイズを git からインストー
ル
お客様窓口業務フロー
インシデントの登録・管理
お客様カルテ
再現環境準備
インスタンス
を起動したよ
popybot
カスタマイズ・設定
ダウンロード
不具合再現
→ 修正してリリース
残したい環境は
自動アーカイブ
ChatOpsChatOps
実現されたもの実現されたもの
• お客様ごとの環境をお客様ごとの環境を
• お客様窓口お客様窓口 (( 沖縄沖縄 )) でで
• 再現して再現して
• 早期解決!早期解決!
• お客様満足!お客様満足!
レビュー文化
REVIEW
/rivjú/
[ 名 ]
1.再考 , 再吟味 , 再調査
2.( 新刊書・演劇などの)批評記事 , 論評
3.検査 , 査察 , 検閲
4.回顧 , 反省
感想 / 意見 / 批判 / 非難
◎ 批評
【愛のあるダメ出し】
レガシーコードとはレガシーコードとは
• ドキュメントなしドキュメントなし
• テストケースなしテストケースなし
• そもそもクソコードそもそもクソコード
• 設計からクソ設計からクソ
• ○○○○ なんてオワコンなんてオワコン
事実を述べたつもり⇒非難 ⇒ 炎上事実を述べたつもり⇒非難 ⇒ 炎上
問合せ対応に顔写真を導入!
絵文字
使用例
用語の統一
障害申告
お客様が障害であると言っている。
原因として、不具合、仕様の不備、マニュアル等の間違い、
システム構築時のミス、お客様社内ネットワーク、クライア
ント PC 、設定、勘違いなどが考えられる。
不具合
システムが期待される動作になっていない原因のうちプログ
ラムに起因するもの。
�勝手に社内報 �
これだけをやる専門チームを設置
5名体制
ソースコードの発掘
バージョンコントロール下へ
ワンステップビルド
テストケースでのガード
ソフトスキルを育む環境�
レガシーコードの闇に光をレガシーコードの闇に光を
そのためのそのための
人人 xx 情熱情熱 xx 仕組み仕組み
まとめまとめ
• エンタープライズは闇だらけエンタープライズは闇だらけ
• レガシーコードに光をレガシーコードに光を
• でもセオリーを押し付けてもダメでもセオリーを押し付けてもダメ
• 炎上してしまうから炎上してしまうから
• ソフトスキルを鍛えて組織から変ソフトスキルを鍛えて組織から変
えていこうえていこう
広島本社でエンジニア募集中広島本社でエンジニア募集中
Java / Perl / Node.js / ScalaJava / Perl / Node.js / Scala
Swift / Objective-CSwift / Objective-C
MySQL / Oracle / MongoDBMySQL / Oracle / MongoDB
Chef / AWS / Azure / NiftyCloudChef / AWS / Azure / NiftyCloud
ドリーム・アーツ 採用 検索

Más contenido relacionado

Similar a デブサミ福岡 2016 B2 実録レガシーコード克服秘話 - 闇に光を

サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】dreamarts_pr
 
デジタル時代の企業変革 - 2020
デジタル時代の企業変革 - 2020デジタル時代の企業変革 - 2020
デジタル時代の企業変革 - 2020Ikuo Misao
 
IoTだらけのスマートハウスを作って見てわかった課題
IoTだらけのスマートハウスを作って見てわかった課題IoTだらけのスマートハウスを作って見てわかった課題
IoTだらけのスマートハウスを作って見てわかった課題Daisuke Kimura
 
21 02-18 web seminar
21 02-18 web seminar21 02-18 web seminar
21 02-18 web seminar忍 寺門
 
20年11月10日 埼玉県働き方改革アカデミー事例紹介
20年11月10日 埼玉県働き方改革アカデミー事例紹介20年11月10日 埼玉県働き方改革アカデミー事例紹介
20年11月10日 埼玉県働き方改革アカデミー事例紹介Masami Taguchi
 
DX白書2021 内製と外部活用・企業のソーシング戦略の考察、方向性
DX白書2021 内製と外部活用・企業のソーシング戦略の考察、方向性DX白書2021 内製と外部活用・企業のソーシング戦略の考察、方向性
DX白書2021 内製と外部活用・企業のソーシング戦略の考察、方向性剛志 松岡
 
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説Cybozucommunity
 
Microsoft graphofintelligentcloud
Microsoft graphofintelligentcloudMicrosoft graphofintelligentcloud
Microsoft graphofintelligentcloudTakao Tetsuro
 
夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)
夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)
夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)takumibp
 
BDUX_2FC_Presentation_byArima
BDUX_2FC_Presentation_byArimaBDUX_2FC_Presentation_byArima
BDUX_2FC_Presentation_byArimaPOINTEDGE
 
インタリオカンファレンス案内(修正版6)092408
インタリオカンファレンス案内(修正版6)092408インタリオカンファレンス案内(修正版6)092408
インタリオカンファレンス案内(修正版6)092408Tomoaki Sawada
 
Upwind Technology, Inc. Company Profile(Japanese)
Upwind Technology, Inc. Company Profile(Japanese)Upwind Technology, Inc. Company Profile(Japanese)
Upwind Technology, Inc. Company Profile(Japanese)Upwind Technology Inc.
 
【会社説明資料】データセクション株式会社
【会社説明資料】データセクション株式会社【会社説明資料】データセクション株式会社
【会社説明資料】データセクション株式会社DatasectionCoLtd
 
クリエイティブワークを支えるHelix Core
クリエイティブワークを支えるHelix Coreクリエイティブワークを支えるHelix Core
クリエイティブワークを支えるHelix CoreSatoshi OKAWARA
 
LEANSTARTUPの現場 #leanstartup
LEANSTARTUPの現場 #leanstartupLEANSTARTUPの現場 #leanstartup
LEANSTARTUPの現場 #leanstartupItsuki Kuroda
 
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜SORACOM,INC
 
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択Shingo Kitayama
 

Similar a デブサミ福岡 2016 B2 実録レガシーコード克服秘話 - 闇に光を (20)

サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
 
デジタル時代の企業変革 - 2020
デジタル時代の企業変革 - 2020デジタル時代の企業変革 - 2020
デジタル時代の企業変革 - 2020
 
IoTだらけのスマートハウスを作って見てわかった課題
IoTだらけのスマートハウスを作って見てわかった課題IoTだらけのスマートハウスを作って見てわかった課題
IoTだらけのスマートハウスを作って見てわかった課題
 
21 02-18 web seminar
21 02-18 web seminar21 02-18 web seminar
21 02-18 web seminar
 
20年11月10日 埼玉県働き方改革アカデミー事例紹介
20年11月10日 埼玉県働き方改革アカデミー事例紹介20年11月10日 埼玉県働き方改革アカデミー事例紹介
20年11月10日 埼玉県働き方改革アカデミー事例紹介
 
saleshub
saleshubsaleshub
saleshub
 
DX白書2021 内製と外部活用・企業のソーシング戦略の考察、方向性
DX白書2021 内製と外部活用・企業のソーシング戦略の考察、方向性DX白書2021 内製と外部活用・企業のソーシング戦略の考察、方向性
DX白書2021 内製と外部活用・企業のソーシング戦略の考察、方向性
 
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
電通、リクルート、サントリーショッピングクラブ、有名企業がいち早く選んだ kintone を徹底解説
 
Microsoft graphofintelligentcloud
Microsoft graphofintelligentcloudMicrosoft graphofintelligentcloud
Microsoft graphofintelligentcloud
 
夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)
夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)
夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)
 
BDUX_2FC_Presentation_byArima
BDUX_2FC_Presentation_byArimaBDUX_2FC_Presentation_byArima
BDUX_2FC_Presentation_byArima
 
インタリオカンファレンス案内(修正版6)092408
インタリオカンファレンス案内(修正版6)092408インタリオカンファレンス案内(修正版6)092408
インタリオカンファレンス案内(修正版6)092408
 
Upwind Technology, Inc. Company Profile(Japanese)
Upwind Technology, Inc. Company Profile(Japanese)Upwind Technology, Inc. Company Profile(Japanese)
Upwind Technology, Inc. Company Profile(Japanese)
 
【会社説明資料】データセクション株式会社
【会社説明資料】データセクション株式会社【会社説明資料】データセクション株式会社
【会社説明資料】データセクション株式会社
 
クリエイティブワークを支えるHelix Core
クリエイティブワークを支えるHelix Coreクリエイティブワークを支えるHelix Core
クリエイティブワークを支えるHelix Core
 
ファーストアカウンティング会社説明資料 for engineer 2022年7月版
ファーストアカウンティング会社説明資料 for engineer 2022年7月版ファーストアカウンティング会社説明資料 for engineer 2022年7月版
ファーストアカウンティング会社説明資料 for engineer 2022年7月版
 
⼤企業で実現するイマドキの内製開発
⼤企業で実現するイマドキの内製開発⼤企業で実現するイマドキの内製開発
⼤企業で実現するイマドキの内製開発
 
LEANSTARTUPの現場 #leanstartup
LEANSTARTUPの現場 #leanstartupLEANSTARTUPの現場 #leanstartup
LEANSTARTUPの現場 #leanstartup
 
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
 
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
 

デブサミ福岡 2016 B2 実録レガシーコード克服秘話 - 闇に光を

Notas del editor

  1. 大雨だし、突風だし、ホークスはあれなんで
  2. 1分 やりたいこととやらなければならないことのギャップに悩むリーダー、マネージャに向けて 業務システムの人とかあまりこういう場所でしゃべらないじゃないですか。 キラキラしたWebサービスとかゲームとかそういうのはいいんだけど。 でも113万人のITエンジニアのうち75%がベンダーに所属していて、そのうちの70%が受託開発エンジニア。 Cross the border = エンジニアが技術の枠を超えて社会に貢献する方法について
  3. 1分 バックグラウンドからお話します。 2012年
  4. 2分
  5. 3分 昨年まで新規事業推進部という社内ベンチャーみたいなところで「Shopらん」事業を企画して、組織をつくり、販売チャネルを作り、サポート体制を作り、金がまわる仕組みをつくることをやってました。 今年からCTO1年生で、その他の製品群についてもお前なんとかしろ。ということでプロダクト開発組織をマネージメントしています。 1997
  6. 4分 各製品ともに、おかげさまで多くのお客様に恵まれ、多くの大企業、大組織のコミュニケーションプラットフォーム、業務プラットフォームとして採用頂いています。
  7. 5分
  8. 5分
  9. 5〜6分
  10. 6分
  11. 7分
  12. 7分 LTSが必要だからレガシーコードが発生する。
  13. レガシーコードとは でも動いている。メンテナンスしないといけない。 20年もののビンテージ。 20代の将来が有望なエンジニア、技術で社会を変えてやるぞというエンジニアに遺すにはあまりにも心苦しい。
  14. 7分 よくある「パッケージを導入してギャップだけカスタマイズすることでコストを最小化しましょう」 Windows95 IE4の時代からやってるんですよ。。 炎上のもと。
  15. 8分
  16. 9分 壊さないようにテストしたくても、正しい仕様もわからないし、自動テストするにはコードを変えないといけない。 カスタマイズされたお客様コードをそのままにはリファクタリングできないし。 前途有る若者を巻き込むにはあまりにも酷い。
  17. 10分
  18. 10〜11分
  19. 12分 翔泳社
  20. 12分 ひどいひどいって言ってるけどあんた大丈夫なの?
  21. 13分
  22. 14分 9/26の東洋経済オンライン おっさんが見るメディアにGitHubが出るようになった。 石田くん、なんか「ギットパブ」っていうのを聞いたんだけど、それでウチも生産性が上がるのかね。
  23. 15分
  24. 15分
  25. 16分
  26. 16分
  27. 17分 過去の仕様書 すごいじゃん。
  28. 18分
  29. 19分 エンタープライズ系のSIプロジェクト 触ったら全画面のキャプチャをとってエビデンスを整備しろって。 まじかよ!ボーイスカウト精神。「キャンプ場を離れるときは来たときよりもきれいに」 日本の製造業を支えた5Sの精神:整理、整頓、清潔、清掃、躾
  30. 20分 正論と自分の意見を主張したところで 「改善したところで売上は増えない」 エヴァンジェリズムが必要。 正論と理想を言っているだけではダメ、味方をつくって組織を動かしていかないと。 組織をプログラミングしていかないと。この取り組みを紹介します。
  31. 21分 まずは改善の王道、「見える化」 オンプレミスのエンタープライズ系のシステムの検証環境をきちんと持ってますか? お客様側には検証環境あったりしますが、自社内に自由に使える環境はほとんどありませんでした。
  32. 21分 特に我々のようにパッケージソフトウェアだともう大変。 複雑な問題がお客様窓口に舞い込みます。
  33. 22分 さらっと
  34. 22分
  35. 23分〜24分
  36. 25分
  37. 25分
  38. 26分 そしてもう一つのとりくみ。「レビュー文化」 そもそも動いているレガシーコードを救うには、あらゆる人に説明して協力を得ることが必要です。 ダメなものを直すにはレビュー文化を確立しないとうまくいかない。人間系のシステム。 人は本当にむずかしい。バグだらけ。
  39. 27分 「こうしますけどいいですね」「こう変えましたが大丈夫ですか」 PMの資格試験とかにもでてくる「ウォークスルーレビュー」「インスペクション」 うまくいってます? 何度も設計レビュー、コードレビュー、ドキュメントレビューを導入して回そうと手をつくしてきました。 でも何度も失敗。
  40. 27分〜28分 自身の知識や経験を他のエンジニアに認めてもらいたい。コンポーネントとしての人の特性。 「いいと思う」「なんかダサい」…無味無臭。役に立たない。 「プロパガンダ」 ベテランに聞くと10年前の知識を振りかざして自分のフィールドに持ち込まれる。議論がレガシー化。 「こんなクソコードではダメだ、アホか!」…有害 欠点の指摘・有害 「相手の役に立つか」 「愛のある適切なダメ出し」
  41. 28〜29分 レガシーを産んできた相手の存在を否定する目的のための事実列挙。 「バグを憎んで人を憎まず」 レガシーなコードが生まれた背景に想いをはせる。 人の在り方みたいな話を説教しても。 今の仕組みにしがみつく人たちにも協力してもらわないとレガシーコードは消えていかない。 そこでエンジニアなので、バグだらけの人がそのように動くように、リファクタリングしていく仕組みを設計して仕掛けました。
  42. 30分 顔の見える化。“CROSS THE BORDER” 中国のメンバーとは会ったこともない人がほとんど。相手も人間なんだということを徹底するためにバグレポートトラッカーに顔写真を導入。 これは劇的な効果がある。
  43. 31分 絵文字。これも同じ。 顔、感情を表す。
  44. 32分 プルリクのタイトルに入れたり コメントを絵文字だらけにしたり。
  45. 32分 カチンとくる。
  46. 34分。 直接話せばいいじゃんという勢力を説得して導入したSlack 毎週 “bug of the week” イベント紹介。そこに伝えたい内容を紛れ込ませる。 セキュリティインシデントへの対応とか。
  47. 35分 エンジニアを配置。組織をハックせよ。プログラミングせよ。
  48. 36分 「人の心と組織の力学をプログラミングしよう」 エンジニアだからこそできるはず。
  49. 36分
  50. 36分 障害申告のバックログの件数です。
  51. 37分 マルチベンダーの中に入ると。。。 PMOってそういうことじゃない。
  52. 39分