Slide 1

Slide 1 text

コードと政治 Yutaka Kamei 渋谷アジャイル#3 @ウイングアーク1st 六本木グランドタワー

Slide 2

Slide 2 text

Self-introduction ● Yutaka Kamei ● @yykamei on GitHub ● @_yykamei on X ● Timee, Inc.

Slide 3

Slide 3 text

政治力

Slide 4

Slide 4 text

政治ってなに? 1 主権者が、領土・人民を治めること。まつりごと。 2 ある社会の対立や利害を調整して社会全体を統合するとともに、社会の意思決定を 行い、これを実現する作用。 出典: コトバンク(小学館を参照)

Slide 5

Slide 5 text

身近な政治 人は他人と関わります。それぞれ異なる 思想を持っています。どこかで折り合いを つけないと喧嘩ばっかりになりますね。

Slide 6

Slide 6 text

インデント幅 インデント幅に対するすべてのスタンスを許容するとリアス式海岸のようになります

Slide 7

Slide 7 text

そこで、政治の出番です インデント幅に関しては概ね「公式発表」で解決されていますね

Slide 8

Slide 8 text

「公式発表」だけでは解決できない政治がある! ● 「こっちとそっちの書き方どっちがいい の?」 ● 「そのファイル、こっちのディレクトリーに 書くべきでは?」 ● アーキテクチャーの決定 ● 他にもたくさん

Slide 9

Slide 9 text

我々自身が政治をしないといけない

Slide 10

Slide 10 text

自分でやる必要のありそうな政治を列挙 ● リンターの設定 ○ リンターのデフォルトをそのまま?少し変える? ● ソフトウェアの設計原則 ○ SOLID原則とかDRYとかYAGNIとかKISSとかそもそもフレームワークから外れることはしない、と か ● ライブラリーの選定 ○ HTTPのクライアントライブラリーどれ選ぶ?とか典型的 ● 実装方針 ○ ある機能をつくるのにいくつかの方法があるがどれがベター? 上のもので 100%意見が一致することはほとんどない 😱

Slide 11

Slide 11 text

対立自体は大事、しかし... ● 対立は多様な見方の現れ ● ただし、感情による衝突を起こすことも ○ 衝突が起きるとこうなる →

Slide 12

Slide 12 text

できることなら感情の衝突を回避して 対話したい そこで、政治の出番です

Slide 13

Slide 13 text

すみません、これと言った 具体的なベストプラクティスはありません その代わり、私の周りの政治を紹介させてください

Slide 14

Slide 14 text

私の周りの政治 ● ルールをつくる ● Slack Huddle に常駐してみる ● ミーティングをセットしてみる ● ペアプロ、モブプロをしてみる

Slide 15

Slide 15 text

ルールをつくる ● ルールの整備は政治の基本! ● ルールにも組織全体とチーム内で 閉じるものがある ルールをつくるための場づくり(=議会)も必要ですね!

Slide 16

Slide 16 text

会話 ● Slack Huddle 常駐は気軽な会話を生み出すためのロビー活動 ● ミーティングのセットは漠然としたアイディアを具体化するための会合 ● ペアプロ・モブプロは問題が明確で「あとはやるだけ」という選挙活動

Slide 17

Slide 17 text

いかがでしょうか? 皆さんの政治活動は順調ですか?

Slide 18

Slide 18 text

出典: https://world.hey.com/dhh/ears-rarely-open-until-a-rapport-is-established-ae913bfd

Slide 19

Slide 19 text

まとめ コード上の意思決定は複数人の思惑を調整する政治活動と変わりません。開発者の皆 さんはハックが好きだと思いますので、ぜひとも政治もハックしてみてください。