SlideShare a Scribd company logo
1 of 45
Download to read offline
納品のない受託開発を支える
レガシーコードを作らない仕組み
SonicGarden Inc. 西見 公宏
2014/9/27 レガシーコード改善勉強会
西見 公宏 Nishimi Masahiro
As Business Programmer
2014/09/27	
 レガシーコード改善勉強会	
 2
自己紹介
西見 公宏 Masahiro Nishimi
@mah_lab
昭和58年生まれ 東京育ち
2児(双子)の父親です
ブログ
http://blog.mah-lab.com/(毎日更新中)
2014/09/27	
 レガシーコード改善勉強会	
 3
2008年
2011年
2014年
大手SIerに入社
SonicGardenにジョイン
今ここ
会計ERP(Oracle EBS)のアプリSEとして従事
Oracle EBS向けソリューション開発のためオフショア
開発も経験
要素技術はHP/UX、PL/SQL、Oracle Formsなど
新規事業の立ち上げで必要となるWebサービスの開発・
運用を行うビジネスプログラマーとして従事
要素技術はLinux、iOS、Ruby、Railsなど
企業向けCMS、医療系システム、教育事業向けシステムを
開発したり、SonicGardenが展開するサービスの開発に
従事しています
2014/09/27	
 レガシーコード改善勉強会	
 4
最近の活動
「コードレビュー」というテーマで
お話をさせていただく機会が多いです
(外部の社内勉強会にもお邪魔させていただいております)
2014/09/27	
 レガシーコード改善勉強会	
 5
今日お話する内容
1.  レガシーコードの何が問題か?
•  そもそもレガシーコードとは何か
•  レガシーコードがもたらす問題とは何か
•  コードだけの問題なのか?
2.  納品のない受託開発を支える、レガシー
コードを作らない仕組み
•  継続して開発するビジネスモデル
•  技術の共通化でアップデートを容易に
•  同じ基盤を使う人間による相互レビュー
2014/09/27	
 レガシーコード改善勉強会	
 6
1. レガシーコードの何が問題か?
2014/09/27	
 レガシーコード改善勉強会	
 7
そもそもレガシーコードとは何か?
h)ps://flic.kr/p/4GW2c2	
2014/09/27	
 レガシーコード改善勉強会	
 8
そもそもレガシーコードとは何か?
•  誰かから引き継いだコード(つらい)
•  ぐっちゃぐちゃなコード(つらい)
•  仕様が分からないコード(つらい)
レガシーコード改善ガイドによる定義
「レガシーコードとは、単にテストのない
コードです」(はじめに、より抜粋)
2014/09/27	
 レガシーコード改善勉強会	
 9
そもそもレガシーコードとは何か?
何のためにテストコードが必要なのか?
ソフトウェアを変更するため
振る舞いの変更、不具合修正、非機能要件の改善 etc.
2014/09/27	
 レガシーコード改善勉強会	
 10
レガシーコードがもたらす問題とは何か?
h)ps://flic.kr/p/6oUuWj	
2014/09/27	
 レガシーコード改善勉強会	
 11
レガシーコードがもたらす問題とは何か?
ソフトウェアが変更できない
機能追加・変更しづらい
不具合に対応しづらい
パッチをあてづらい
変更コストが
増大する
2014/09/27	
 レガシーコード改善勉強会	
 12
これって、コードだけの問題?
2014/09/27	
 レガシーコード改善勉強会	
 13
インフラも含めて、コード
Data Center
Server
Operation System
Middleware
Production Code
Server
Operation System
Middleware
Production Code
DB ServerLoad Balancer
Infrastructure as Code
2014/09/27	
 レガシーコード改善勉強会	
 14
変更できないインフラがもたらす混沌
サーバ(インスタンス)
メールサーバ
DBサーバ
テスト環境のコード
本番環境のコード Webサーバ
振り分け
共用
ü  OSのバージョンアップができない
ü  ミドルウェアにパッチを当てられない
ü  テスト環境での事故が本番環境に影響
まずインフラを
再構築しなければいけな
いけど、影響範囲が
分からない。。
2014/09/27	
 レガシーコード改善勉強会	
 15
インフラも含めて、コード
ソフトウェアを変更できるように保つ
コードを変更できるように保つ
インフラを変更できるように保つ
ユーザーにとってはコードもインフラも
同じソフトウェアの話。区別はできない。
2014/09/27	
 レガシーコード改善勉強会	
 16
アプリもインフラもレガシーにしないために、
どんな工夫をすれば良いのだろう?
2014/09/27	
 レガシーコード改善勉強会	
 17
2. 納品のない受託開発を支える、
  レガシーコードを作らない仕組み
2014/09/27	
 レガシーコード改善勉強会	
 18
納品のない受託開発とは
好評発売中!
•  要件を一度に決めない
•  少しずつ決めて、少しずつ開発
•  継続して開発し続ける
•  事業が終わるまでソフトウェアを
提供しつづける月額定額の契約
•  顧問としてお客様に関わる
•  つくることが目的ではなく、事業
にコミットするのが目的
(つくらずに実現できる方法も探す)
2014/09/27	
 レガシーコード改善勉強会	
 19
サービス型
(クラウド)
製造納品型
(自社運用)
プ
ロ
デ
ュ
ー
ス
型
︵
汎
用
的
パ
ッ
ケ
ー
ジ
︶
オ
ー
ダ
ー
メ
イ
ド
型
納品のない
受託開発
クラウドベンダー
パッケージベンダー
大手システム
インテグレーター
2014/09/27	
 レガシーコード改善勉強会	
 20
所有から利用へ
Point of Sales Point of Use
品
質
時間
品
質
時間製造業 サービス業
構築
償却
買った時点が最高品質
買った時点が最高で、
そこから陳腐化がはじまるもの
常に使っている時点で最高、
最新のものを利用できる
利用中が最高品質
(常にアップグレード)
すぐに利用開始
継続して利用
2014/09/27	
 レガシーコード改善勉強会	
 21
納品のない受託開発で提供する
ソフトウェアの価値
「顧客のパートナーとして、
ビジネスの成長に必要なソフトウェアを
継続的に改善して提供する」
つまり、お客様にとっての価値は
「何で作られているか」ではなく、
「利用できるソフトウェアか」
2014/09/27	
 レガシーコード改善勉強会	
 22
「利用できるソフトウェア」であるためには、
システムがレガシーなんてとんでもない
https://flic.kr/p/6LgsHA
2014/09/27	
 レガシーコード改善勉強会	
 23
利用中が最高品質を支える
3つのポイント
1. 継続して開発するビジネスモデル
2. 技術の共通化でアップデートを容易に
3. 同じ基盤を使う人間による相互レビュー
2014/09/27	
 レガシーコード改善勉強会	
 24
ポイントその1
継続して開発するビジネスモデル
2014/09/27	
 レガシーコード改善勉強会	
 25
継続して開発するビジネスモデル
変更しやすいコードでなければ
コストがかかる
変更しやすいコードが利益に貢献する
ビジネスモデル自体が
レガシー化の抑止につながっている
2014/09/27	
 レガシーコード改善勉強会	
 26
ポイントその2
技術の共通化でアップデートを容易に
2014/09/27	
 レガシーコード改善勉強会	
 27
技術の共通化でアップデートを容易に
フレームワーク
Ruby on Rails
言語(処理系)
Ruby
インフラ
Heroku /AWS
全てのサービスを共通の仕組みで構築する
2014/09/27	
 レガシーコード改善勉強会	
 28
レガシー化を加速させる大きな原因
C# / .net
Windows Server
PHP / CakePHP
CentOS
Ruby / Rails
Amazon Linux
バラバラなシステム
システムが増えれば増えるほど保守が複雑化
システムを知っている人が辞めると
誰も保守できなくなる
2014/09/27	
 レガシーコード改善勉強会	
 29
レガシー化を加速させる大きな原因
選択した技術が問題なのではなく、
複雑化によって保守コストが増大するのが問題
機能追加・変更しづらい
不具合に対応しづらい
パッチをあてづらい
変更コストが
増大する
2014/09/27	
 レガシーコード改善勉強会	
 30
費用対効果を高くするための技術戦略
LCC(ローコスト・キャリア)に学ぶコスト戦略
•  使用する飛行機の機種を統一することで整備費やパイ
ロットの訓練費を削減
•  搭乗手続きのオンライン化などITを活用した自動化
•  乗務員が機内の清掃なども行い一人何役もこなすことに
よる人件費の削減
LCCのコスト戦略を
受託開発の技術戦略に応用
2014/09/27	
 レガシーコード改善勉強会	
 31
軽量言語の特性
バージョンアップが早く、
バージョンのライフサイクルが短い
Ruby(最新2.1.2) Rails(最新4.1.6)
2008年6月
Ruby1.8.7リリース
2014年7月末
Ruby1.8.7、Ruby1.9.2
セキュリティメンテナンス終了
2010年8月
Ruby1.9.2リリース
2015年2月23日
Ruby1.9.3
セキュリティメンテナンス終了
2011年10月
Ruby1.9.3リリース
2013年6月27日
4.0リリース
3.1メンテナンス停止
Ruby1.9.3以上必須
2010年8月29日
3.0リリース
2011年8月31日
3.1リリース
アセットパイプラインの登場により
バージョンアップのハードル上がる
2012年1月20日
3.2リリース
2014年4月8日
4.1リリース
2013年2月
Ruby2.0.0リリース
2014/09/27	
 レガシーコード改善勉強会	
 32
Ruby、Railsのバージョンアップには
追随しなくてはならない
•  セキュリティメンテナンスが終わるとセキュリ
ティパッチが提供されなくなる
•  放置しすぎるとバージョンアップが難しくなる
(時間によりコスト増大)
少しずつバージョンを上げていくのが重要
開発を継続的に行うビジネスモデルともマッチ
2014/09/27	
 レガシーコード改善勉強会	
 33
もちろん利用しているOS、ミドルウェアも
アップデートし続けなければならない
•  OSのバージョンが古すぎることによって脆弱性対応
パッチが当てられなくなる
•  OSが古くてミドルウェアがバージョンアップできな
い&ミドルウェアへのパッチも当てられなくなる
インフラも共通化することによって
対応コストを減らす
開発を継続的に行うビジネスモデルともマッチ
2014/09/27	
 レガシーコード改善勉強会	
 34
納品のない受託開発のインフラ
Heroku AWS(OpsWorks)
•  PaaSであるHerokuを利用
•  OS、ミドルウェアのバージョン
アップはHerokuに任せる
•  特別なミドルウェアを利用しない/
特別な非機能要件がない場合に利用
•  AWS OpsWorksによってプロビ
ジョニング
•  全ての設定はChefレシピで管理
•  基本となるレシピを統一化すること
でコストを削減
監視システム群
•  死活監視にNagios、性能監視にNewRelic、障害監視にBugsnag、
プロセス監視にmunin、バックアップ監視に自社製ツールを使用。
•  自社製ツールにはサービスの標準的な設定を管理するチェックシートがあり、それ
を埋めてはじめてサービスを一般に向けて稼働させることができるようになる。
2014/09/27	
 レガシーコード改善勉強会	
 35
ポイントその3
同じ基盤を使う人間による相互レビュー
2014/09/27	
 レガシーコード改善勉強会	
 36
基盤を共通化したとしても残る問題
•  基盤を共通化しても、利用している決済
システムなど、サービスによって異なる
部分は存在する。特定の人しか保守でき
ないものはレガシーだ。
•  いくらテストコードがあっても、人に
よって書き方がバラバラで、他の人が理
解できないコードだと意思疎通の道具に
なりえない。
2014/09/27	
 レガシーコード改善勉強会	
 37
そのためにコードやドキュメントの
レビューをしよう、とは思うものの・・・
2014/09/27	
 レガシーコード改善勉強会	
 38
システムの知識が共有されていないと
レビューは成り立たない
共通の知識がゼロ 共通の知識がある
知らないこと
知らないこと
知ってること
(共通の知識)
2014/09/27	
 レガシーコード改善勉強会	
 39	
ここだけ
気にすれば
良い
全く
わからん どや!
コードレビューでレガシーにしない
•  テストは正しい動きを伝える手段だが、正
しく伝わることまでは責任を持たない
•  読まれるまで読めるコードかどうかなんて
分からない
•  人の目が入ることによって、より「読める
コード」になる
読めないコードがレガシー化を加速させる
2014/09/27	
 レガシーコード改善勉強会	
 40
今日お話した内容
1.  レガシーコードの何が問題か?
•  そもそもレガシーコードとは何か
•  レガシーコードがもたらす問題とは何か
•  コードだけの問題なのか?
2.  納品のない受託開発を支える、レガシー
コードを作らない仕組み
•  継続して開発するビジネスモデル
•  技術の共通化でアップデートを容易に
•  同じ基盤を使う人間による相互レビュー
2014/09/27	
 レガシーコード改善勉強会	
 41
まとめ
•  レガシーコードの問題点は変更が困難になるために変
更コストが増大すること。しかし、その問題の解決に
はテストコードがあるだけでは不十分で、インフラも
含めて変更可能になっている必要がある。
•  納品のない受託開発では以下の仕組みでレガシーコー
ド化を防いでいる
•  継続してい開発するビジネスモデル
•  技術の共通化でアップデートを容易に
•  同じ基盤を使う人間による相互レビュー
2014/09/27	
 レガシーコード改善勉強会	
 42	
テクニックではなく、
仕組みでレガシーコードにしない
ソニックガーデンでは
一緒にはたらく仲間を募集しています!
http://www.sonicgarden.jp/jobs
転職を考えている方はコチラ!
2014/09/27	
 レガシーコード改善勉強会	
 43
あなたの会社で「納品のない受託開発」
という新規事業を立ち上げませんか?
http://www.sonicgarden.jp/guild
興味のある方は下記のURLにアクセス!
2014/09/27	
 レガシーコード改善勉強会	
 44
ご静聴ありがとうございました!
2014/09/27	
 レガシーコード改善勉強会	
 45

More Related Content

What's hot

2019/09/15 大阪Ruby会議02 Keynote
2019/09/15 大阪Ruby会議02 Keynote2019/09/15 大阪Ruby会議02 Keynote
2019/09/15 大阪Ruby会議02 KeynoteMasahiro Nishimi
 
副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフトKazuto Ohara
 
禍つヴァールハイトを支える負荷試験
禍つヴァールハイトを支える負荷試験禍つヴァールハイトを支える負荷試験
禍つヴァールハイトを支える負荷試験KLab Inc. / Tech
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
モバイルオンラインゲーム運用のための開発
モバイルオンラインゲーム運用のための開発モバイルオンラインゲーム運用のための開発
モバイルオンラインゲーム運用のための開発KLab Inc. / Tech
 
その素敵なUI基盤を目指して・・・
その素敵なUI基盤を目指して・・・その素敵なUI基盤を目指して・・・
その素敵なUI基盤を目指して・・・KLab Inc. / Tech
 
なぜ私はソニックガーデンのプログラマに転身できたのか?
なぜ私はソニックガーデンのプログラマに転身できたのか? なぜ私はソニックガーデンのプログラマに転身できたのか?
なぜ私はソニックガーデンのプログラマに転身できたのか? Junichi Ito
 
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1Yuki Okada
 
現場で役立つシステム設計の原則への感謝
現場で役立つシステム設計の原則への感謝現場で役立つシステム設計の原則への感謝
現場で役立つシステム設計の原則への感謝Ishibashi Ryo
 
ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみたゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた秀和 福永
 
5年しかもたない最高のシステムとの向き合い方
5年しかもたない最高のシステムとの向き合い方5年しかもたない最高のシステムとの向き合い方
5年しかもたない最高のシステムとの向き合い方Jumpei iwamura
 
情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略Takuya Oikawa
 
KLabの社内勉強会紹介
KLabの社内勉強会紹介KLabの社内勉強会紹介
KLabの社内勉強会紹介KLab Inc. / Tech
 
ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015Masahito Zembutsu
 
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜Takuya Oikawa
 
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】dreamarts_pr
 
見よう見まねでやってみる2D流体シミュレーション
見よう見まねでやってみる2D流体シミュレーション見よう見まねでやってみる2D流体シミュレーション
見よう見まねでやってみる2D流体シミュレーションKLab Inc. / Tech
 
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方Yuji Otani
 

What's hot (20)

2019/09/15 大阪Ruby会議02 Keynote
2019/09/15 大阪Ruby会議02 Keynote2019/09/15 大阪Ruby会議02 Keynote
2019/09/15 大阪Ruby会議02 Keynote
 
副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト
 
Roo
RooRoo
Roo
 
禍つヴァールハイトを支える負荷試験
禍つヴァールハイトを支える負荷試験禍つヴァールハイトを支える負荷試験
禍つヴァールハイトを支える負荷試験
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
モバイルオンラインゲーム運用のための開発
モバイルオンラインゲーム運用のための開発モバイルオンラインゲーム運用のための開発
モバイルオンラインゲーム運用のための開発
 
その素敵なUI基盤を目指して・・・
その素敵なUI基盤を目指して・・・その素敵なUI基盤を目指して・・・
その素敵なUI基盤を目指して・・・
 
なぜ私はソニックガーデンのプログラマに転身できたのか?
なぜ私はソニックガーデンのプログラマに転身できたのか? なぜ私はソニックガーデンのプログラマに転身できたのか?
なぜ私はソニックガーデンのプログラマに転身できたのか?
 
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
 
現場で役立つシステム設計の原則への感謝
現場で役立つシステム設計の原則への感謝現場で役立つシステム設計の原則への感謝
現場で役立つシステム設計の原則への感謝
 
ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみたゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた
 
5年しかもたない最高のシステムとの向き合い方
5年しかもたない最高のシステムとの向き合い方5年しかもたない最高のシステムとの向き合い方
5年しかもたない最高のシステムとの向き合い方
 
情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略
 
KLabの社内勉強会紹介
KLabの社内勉強会紹介KLabの社内勉強会紹介
KLabの社内勉強会紹介
 
2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)
 
ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015
 
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
 
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
 
見よう見まねでやってみる2D流体シミュレーション
見よう見まねでやってみる2D流体シミュレーション見よう見まねでやってみる2D流体シミュレーション
見よう見まねでやってみる2D流体シミュレーション
 
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方
 

Similar to 納品のない受託開発を支える レガシーコードを作らない仕組み

140731 シックスアパート様セミナー(配布用)
140731 シックスアパート様セミナー(配布用)140731 シックスアパート様セミナー(配布用)
140731 シックスアパート様セミナー(配布用)Masaki Suzuki
 
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —Open Source Software Association of Japan
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃Teruo Adachi
 
時間のムダをゼロにする、リーダーの時間の使い方 先生:芝本秀徳
時間のムダをゼロにする、リーダーの時間の使い方 先生:芝本秀徳時間のムダをゼロにする、リーダーの時間の使い方 先生:芝本秀徳
時間のムダをゼロにする、リーダーの時間の使い方 先生:芝本秀徳schoowebcampus
 
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方Innova Inc.
 
クライアント推し。
クライアント推し。クライアント推し。
クライアント推し。Akira Fukami
 
ShimBiz- 審美ラボ、「ShimBiZ(シンビズ)」を結成
ShimBiz- 審美ラボ、「ShimBiZ(シンビズ)」を結成ShimBiz- 審美ラボ、「ShimBiZ(シンビズ)」を結成
ShimBiz- 審美ラボ、「ShimBiZ(シンビズ)」を結成ShimBi Labs
 
Engineers can change the world ~ "世界" で活躍するエンジニアになるために
Engineers can change the world ~ "世界" で活躍するエンジニアになるためにEngineers can change the world ~ "世界" で活躍するエンジニアになるために
Engineers can change the world ~ "世界" で活躍するエンジニアになるためにAkira Inoue
 
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~MPN Japan
 
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
日経BPリーン式創業塾 #leanstartup #リーンスタートアップItsuki Kuroda
 
スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜
スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜
スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜Device WebAPI Consortium
 
初めてでも大丈夫!SharePoint 開発の第一歩
初めてでも大丈夫!SharePoint 開発の第一歩初めてでも大丈夫!SharePoint 開発の第一歩
初めてでも大丈夫!SharePoint 開発の第一歩Yoshitaka Seo
 
APIが生み出すエコシステムの可能性
APIが生み出すエコシステムの可能性APIが生み出すエコシステムの可能性
APIが生み出すエコシステムの可能性freee株式会社
 
シラサギ紹介osc京都
シラサギ紹介osc京都シラサギ紹介osc京都
シラサギ紹介osc京都Naokazu Nohara
 
シラサギ紹介20170525
シラサギ紹介20170525シラサギ紹介20170525
シラサギ紹介20170525Naokazu Nohara
 
組織にテストコードを書く文化を 根付かせるためにやってきたこと
組織にテストコードを書く文化を 根付かせるためにやってきたこと組織にテストコードを書く文化を 根付かせるためにやってきたこと
組織にテストコードを書く文化を 根付かせるためにやってきたことSuguru Shirai
 
LeanLaunchPad第2回OB会プレゼン資料
LeanLaunchPad第2回OB会プレゼン資料LeanLaunchPad第2回OB会プレゼン資料
LeanLaunchPad第2回OB会プレゼン資料Hidetugu Ito
 

Similar to 納品のない受託開発を支える レガシーコードを作らない仕組み (20)

140731 シックスアパート様セミナー(配布用)
140731 シックスアパート様セミナー(配布用)140731 シックスアパート様セミナー(配布用)
140731 シックスアパート様セミナー(配布用)
 
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
 
DL-D_ver1.pdf
DL-D_ver1.pdfDL-D_ver1.pdf
DL-D_ver1.pdf
 
時間のムダをゼロにする、リーダーの時間の使い方 先生:芝本秀徳
時間のムダをゼロにする、リーダーの時間の使い方 先生:芝本秀徳時間のムダをゼロにする、リーダーの時間の使い方 先生:芝本秀徳
時間のムダをゼロにする、リーダーの時間の使い方 先生:芝本秀徳
 
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方
 
クライアント推し。
クライアント推し。クライアント推し。
クライアント推し。
 
ShimBiz- 審美ラボ、「ShimBiZ(シンビズ)」を結成
ShimBiz- 審美ラボ、「ShimBiZ(シンビズ)」を結成ShimBiz- 審美ラボ、「ShimBiZ(シンビズ)」を結成
ShimBiz- 審美ラボ、「ShimBiZ(シンビズ)」を結成
 
OSC Chiba 2017
OSC Chiba 2017OSC Chiba 2017
OSC Chiba 2017
 
Engineers can change the world ~ "世界" で活躍するエンジニアになるために
Engineers can change the world ~ "世界" で活躍するエンジニアになるためにEngineers can change the world ~ "世界" で活躍するエンジニアになるために
Engineers can change the world ~ "世界" で活躍するエンジニアになるために
 
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
 
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
 
Apple bu20100721
Apple bu20100721Apple bu20100721
Apple bu20100721
 
スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜
スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜
スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜
 
初めてでも大丈夫!SharePoint 開発の第一歩
初めてでも大丈夫!SharePoint 開発の第一歩初めてでも大丈夫!SharePoint 開発の第一歩
初めてでも大丈夫!SharePoint 開発の第一歩
 
APIが生み出すエコシステムの可能性
APIが生み出すエコシステムの可能性APIが生み出すエコシステムの可能性
APIが生み出すエコシステムの可能性
 
シラサギ紹介osc京都
シラサギ紹介osc京都シラサギ紹介osc京都
シラサギ紹介osc京都
 
シラサギ紹介20170525
シラサギ紹介20170525シラサギ紹介20170525
シラサギ紹介20170525
 
組織にテストコードを書く文化を 根付かせるためにやってきたこと
組織にテストコードを書く文化を 根付かせるためにやってきたこと組織にテストコードを書く文化を 根付かせるためにやってきたこと
組織にテストコードを書く文化を 根付かせるためにやってきたこと
 
LeanLaunchPad第2回OB会プレゼン資料
LeanLaunchPad第2回OB会プレゼン資料LeanLaunchPad第2回OB会プレゼン資料
LeanLaunchPad第2回OB会プレゼン資料
 

More from Masahiro Nishimi

技術的負債を生み出す構造とその対処について
技術的負債を生み出す構造とその対処について技術的負債を生み出す構造とその対処について
技術的負債を生み出す構造とその対処についてMasahiro Nishimi
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)Masahiro Nishimi
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣Masahiro Nishimi
 
実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09
実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09
実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09Masahiro Nishimi
 
[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来Masahiro Nishimi
 
Agile samurai達が現場を変える
Agile samurai達が現場を変えるAgile samurai達が現場を変える
Agile samurai達が現場を変えるMasahiro Nishimi
 
Agile Samurai インセプションデッキ
Agile Samurai インセプションデッキAgile Samurai インセプションデッキ
Agile Samurai インセプションデッキMasahiro Nishimi
 

More from Masahiro Nishimi (7)

技術的負債を生み出す構造とその対処について
技術的負債を生み出す構造とその対処について技術的負債を生み出す構造とその対処について
技術的負債を生み出す構造とその対処について
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09
実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09
実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09
 
[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来
 
Agile samurai達が現場を変える
Agile samurai達が現場を変えるAgile samurai達が現場を変える
Agile samurai達が現場を変える
 
Agile Samurai インセプションデッキ
Agile Samurai インセプションデッキAgile Samurai インセプションデッキ
Agile Samurai インセプションデッキ
 

納品のない受託開発を支える レガシーコードを作らない仕組み