TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

18
http://www.monotaro.com/ (株)MonotaRO 金谷 敦志 PyCon JP 2015 Lightning Talks TOC思考プロセスで考える Python 2→3移行問題

Transcript of TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

Page 1: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

(株)MonotaRO 金谷 敦志

!

PyCon JP 2015 Lightning Talks

TOC思考プロセスで考えるPython 2→3移行問題

Page 2: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

お前誰やねん

2

• 金谷 敦志 (Twitter: @todogzm) • (株) MonotaRO IT部門 • ECサイト開発に従事

• 大阪Pythonユーザの集まり主催者のひとり #osakapy (今年は一度も開催できておらず… 12月にでもやりましょう!)

Page 3: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/ 3

DiamondスポンサーMonotaROはPythonの会社です

一緒にモノタロウを成長させる仲間を募集中! 詳細はノベルティ内のチラシやスタッフにお声がけを!

Page 4: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

Pythonの会社のソースはPython 2ベース

4

• 内製システムはほぼPython 2で構築 ‒ ECサイト ‒ 基幹システム ‒ 各種ツール群

• 独自Webフレームワーク上で構築 • 10年以上に渡るメンテナンス

Page 5: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

Python 2系 2020年でメンテナンス終了

5

• PEP 0307 ‒ Python 2.7 Release Schedule ‒ https://www.python.org/dev/peps/pep-0373/

• Python 2系のメンテナンスリリースは2020年まで!あと5年しかない! !

• さぁどうする!時間はないぞ! ‒ Python 3に全面移行するか? ‒ Python 2でだましだまし運用するか?

Page 6: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/ 6※元ネタ: スラムダンク 仙道彰

Page 7: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

TOC思考プロセスの「クラウド」で考える

7

• 制約理論(TOC)の思考プロセスで登場するツールのひとつ • 矛盾や対立を解消するときに使う

Page 8: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

クラウドの基本構造

8

D: 行動

D’: 行動

B: 要望

C: 要望

A: 共通目的 対立妥協

Page 9: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

対立する行動D, D’

9

• Python 2と3どちらを使うかで対立が発生

Python 2を使い続ける

Python 3に 移行する

B: 要望

C: 要望

A: 共通目的 対立妥協

Page 10: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

共通目的A

10

• モノタロウのビジネスを継続的に成長させること

10

Python 2を使い続ける

Python 3に 移行する

B: 要望

C: 要望

継続的にビジネスを成長させる

対立妥協

Page 11: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

共通目的のうち満たしたい要望 B, C

11

• 機能追加により売上・利益へ貢献したい • 一方で、将来のセキュリティリスクも下げたい

Python 2を使い続ける

Python 3に 移行する

継続的に機能を追加する

将来のセキュリティリスクを下げる

継続的にビジネスを成長させる

対立妥協

Page 12: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

声に出して読んでみて違和感なければOK

12

ためには

必要がある。そのために べきだと感じる

Python 2を使い続ける

Python 3に 移行する

継続的に機能を追加する

将来のセキュリティリスクを下げる

継続的にビジネスを成長させる

対立妥協

Page 13: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

仮定・思い込みを見つける• Python 3に移行すると継続的な機能追加に妥協? • Python 2を使い続けるとセキュリティリスク対策に妥協?

Python 2を使い続ける

Python 3に 移行する

継続的に機能を追加する

将来のセキュリティリスクを下げる

継続的にビジネスを成長させる

対立妥協

13

Page 14: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

仮定・思い込みを見つける

14

Python 2を使い続ける

Python 3に 移行する

継続的に機能を追加する

将来のセキュリティリスクを下げる

継続的にビジネスを成長させる

対立妥協

■ Python 3移行コストが高く付きそう ■ Python 3に移行しても売上に直結しない

■ 2020年以降メンテナンスされないと脆弱性の対策が出来ない

Page 15: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

思い込みを利用し第3の妙案を出す

15

• 移行はそう大変じゃないかも? • そもそも自分たちで全機能をメンテする必要ないかも? • いっそのことPythonも自分たちで…(したくないけど)

Python 2を使い続ける

Python 3に 移行する

継続的に機能を追加する

将来のセキュリティリスクを下げる

継続的にビジネスを成長させる

対立

• フレームワークで差異吸収

• 外部サービスへの処理移譲

• 自分でPython 2をメンテ!?

Page 16: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

なぜクラウドを作るのか?• 共通の目的を明確にできる • 行動は対立するが要望は両立できる

注目すべきは!ココ!

Python 2を使い続ける

Python 3に 移行する

継続的に機能を追加する

将来のセキュリティリスクを下げる

継続的にビジネスを成長させる

対立妥協

16

Page 17: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/

共通の目的があれば第3の妙案は出てくるはず!

17

• 共通の目的は何ですか? • 各行動は共通目的のどんな要望を満たすものですか? • 2つの要望を満たす妙案はありませんか?

D: 行動

D’: 行動

B: 要望

C: 要望

A: 共通目的 対立妥協

Page 18: TOC思考プロセスで考える Python 2→3移行問題 2015-10-11 PyCon JP 2015

http://www.monotaro.com/ 18

一緒にモノタロウを成長させる仲間を募集しています!

Python 2資産いっぱいだけどな!