Slide 1

Slide 1 text

XPを始める新⼈に伝えたい 近道の鍵 2024/09/28 XP祭り2024 NTTテクノクロス株式会社 中島進也

Slide 2

Slide 2 text

⾃⼰紹介 • なかしょ(中島進也) • 所属:NTTテクノクロス株式会社 デジタルトランスフォーメーション事業部 • 業務:MaaS関連のスマートフォンアプリ開発担当 • 最近の技術的興味:モバイルで地理空間情報 • 趣味: Ø妻とモンハンデート ØIT関連の勉強会(主にモバイル系 or アジャイル系 or Microsoft系) Ø技術コミュニティの運営スタッフ üeXtreme Programming Japan User Group(XPJUG) 2019〜 üTDD BootCamp Online (TDDBC) 2020〜 2 ※本資料は私個⼈の意⾒であり、所属企業・部⾨⾒解を代表するものではありません。

Slide 3

Slide 3 text

XPの⽬的は圧倒的なソフトウェア開発の実現 3 ソフトウェアは、 『もっと安いコスト』で、 『もっと少ない⽋陥数』で、 『もっと⾼い⽣産性』で、 『もっと⾼い投資効率』で、 開発することができる ※書籍『エクストリームプログラミング 』より

Slide 4

Slide 4 text

『XP』のために新⼈は何から覚えるべきか? 4 テスト駆 動開発? オブジェ クト指向 設計? CI/CD? 基本 構⽂? 飲み会の 幹事?

Slide 5

Slide 5 text

『XP』のために新⼈は何から覚えるべきか? 5 テスト駆 動開発? オブジェ クト指向 設計? CI/CD? 基本 構⽂? 飲み会の 幹事? ショートカットキー

Slide 6

Slide 6 text

なぜショートカット? • XPではペアプロやモブプロが当たり前 • キーボードを叩いている時間は全員の時間を消費している • 新⼈はコーディングしながら思考するのに慣れていない • コーディング時間が減ればペア間の思考により集中できる 6

Slide 7

Slide 7 text

Keyboard vs. The Mouse (1/2) • 1989年8⽉にApple Directに掲載された記事 • Tog(Bruce Tognazzini)が読者の意⾒に答える形式 • Macのショートカットの⾒直しについての意⾒への回答 ØAppleがHuman Interfaceに5000万ドルもの研究開発費を投じて、以下の2 つの重要な事実を発⾒した • 被験者は⼀貫して、キーボード⼊⼒の⽅がマウス⼊⼒よりも速いと報告している。 • ストップウォッチは、マウス操作がキーボード操作よりも速いことを⼀貫して証明 している。 Øしかし抽象的な記号の組み合わせで特殊な機能を実現するには2秒かかり⾼ 度な認知機能となる。その間、ユーザは記憶喪失になる Øショートカットを追加するのはMacのVisual Interfaceに不利益とならない 場合のみ ØPower Userのために主要なインタフェースを破壊してはいけない ØPower Userもキーボードインタフェースを使⽤することで結局⽣産性が低 下する可能性がある 7 https://www.asktog.com/TOI/toi06KeyboardVMouse1.html

Slide 8

Slide 8 text

Keyboard vs. The Mouse (2/2) • Power Userはキーボードを使ったほうが必ず速いという意⾒ Ø⾮Power Userにとってマウス⼊⼒の⽅が速いことは間違いない ØPower Userは1分間に75〜125ワードを⼊⼒できる Ø⾮常に⾼速に⼊⼒するPower Userにとって2つのデバイス間の切り 替え時間は⼤きいロスである。 • その意⾒に対するTogの回答 Øほとんどの⼈は1分間に75〜100ワードを⼊⼒できるとは思えない 8 https://www.asktog.com/TOI/toi06KeyboardVMouse1.html 我々はPower Userとして キーボードを活⽤しよう

Slide 9

Slide 9 text

コンピュータプログラマーはなぜマウスの使⽤を嫌うのでしょうか? 1.効率性: キーボードショートカットを使えば、ナビゲーションや選択に時間がかかるマ ウスを使うよりも素早くタスクを実⾏できる。 2.集中: キーボードを使うことで、⼿元のコードやタスクに集中することができ、⼊⼒ デバイスの切り替えによる認知的負荷を軽減できる。 3.⼈間⼯学: マウスの連続使⽤は、不快感や反復性疲労傷害につながる可能性があります。 キーボード中⼼のワークフローは、⼈間⼯学的に優れています。 4.精度: コーディングにおいて、精度は⾮常に重要です。特にテキストを編集したり、 コード⾏をナビゲートする場合、キーボード⼊⼒はマウスクリックよりも正確です。 5.カスタマイズ: 多くのプログラミング環境では、キーボードのカスタマイズが可能なた め、プログラマーは⾃分の好みに合わせてワークフローをカスタマイズできる。 6.ワークフロー: プログラミング・タスクの多くは、キーボード・ショートカットを使っ て合理化できる繰り返しのアクションを伴うため、ワークフローがよりスムーズで効 率的になる。 9 参考:https://www.quora.com/Why-do-computer-programmers-dislike-using-the-mouse

Slide 10

Slide 10 text

マウスよりもキーボード • ソースコードを扱う場合、マウスを使うよりキーボードを使 う⽅が必ず速くなる • ただ⼀⽅でキーボードショートカットの数が恐ろしく多いと いうのも確かである • それを覚えるには、絶えず覚えよう、⾃分のものにしようと 意識しているしかない。 10 ※書籍『プロダクティブプログラマ 2.2.6 マウスよりもキーボード 』より

Slide 11

Slide 11 text

11 たくさんのショートカッ トを意識したうえで、ペ アとも会話をするなんて 難しくない?

Slide 12

Slide 12 text

マルチプレイゲーム(やゲーム実況) • 思考を共有しながら操作する • 操作をするために思考の共有を⽌めてはならない • そのためには操作に慣れていないといけない • 昨今のゲームは操作が複雑 • やりこんで体で覚えるしかない 12 これってペアプロ・モブプロ でも同じだよね

Slide 13

Slide 13 text

13 相⼿が⾶ び込んで きた 例えば格闘ゲーム あの技を 使おう キー操作は →↓↘P だな よし、実⾏ できた!

Slide 14

Slide 14 text

14 相⼿が⾶ び込んで きた 例えば格闘ゲーム あの技を 使おう キー操作は →↓↘P だな よし、実⾏ できた! 遅いよ!

Slide 15

Slide 15 text

15 相⼿が⾶ び込んで きた 例えば格闘ゲーム よし、実⾏ できた! やりこめば反射で対応

Slide 16

Slide 16 text

16 意識せず使えるようになるまで 意識して覚える

Slide 17

Slide 17 text

開発しながら⾝に着ける⽅法 17 • マウスに⼿に置く前にショートカットを使えないか考える • ペアの場合、相⼿がショートカットを使わないで操作したら注 意し、操作を元に戻して、ショートカットを使わせる。 • ソロの場合、IDEの拡張機能等でショートカットがあるのに Mouseを使った場合に警告を表⽰するものがあります。その警 告が出ないように覚えていくという⽅法もあります。

Slide 18

Slide 18 text

18 参考:https://theories.co.jp/terms-forgetting-curve/ ⼀度覚えたことを再度覚え直 すときの「時間の節約率(ど れくらい減らせるのか)」を、 覚えてからの経過時間軸で表 した曲線

Slide 19

Slide 19 text

業務時間だけで習得できる? 19 • 業務内の時間で、習得するまで繰り返しやり直す時間がゆるさ れる職場は稀。 Ø許される職場はそれだけで福利厚⽣! • 開発中、同じショートカットの出番が毎回出てくるとは限らな い Ø繰り返し使⽤し、習得するにはどうする? • 業務外でもプログラミングをしてショートカットをすべきで しょうか?

Slide 20

Slide 20 text

Uncle Bobの労働倫理 20 • あなたのキャリアの責任はあなたにある Øあなたの市場価値を決めるのは雇⽤主の責任ではない Øキャリアのための学習時間を確保するのはあなたの責任 • 週に60時間働こう Ø40時間は雇⽤主のため(業務)、20時間はあなたのため(⾃⼰学習) Ø1週間は168時間。労働60時間、睡眠56時間としても、52時間⾃由に使える。 Ø追加した20時間は雇⽤主のために使ってはいけない。あなたのキャリアの ために使わなくてはならない。 Øプロは⾃分の専⾨知識の⼿⼊れに時間をかけるものだ。 • ソフトウェア開発者となった情熱を取り戻せ Øこの20時間で燃え尽きてしまうと思うかもしれない。だけどこれは燃え尽 きないようにするためのものだ。 Ø20時間でその情熱を取り戻せ、20時間を楽しむんだ! 参考:Clean Coder (https://asciidwango.jp/post/176293226040/clean-coder)

Slide 21

Slide 21 text

CodeKata • Kataとは空⼿の型 • 定められた型を繰り 返し反復することで 技術を習得していく Øオブジェクト指向 Øデザインパターン Øテスト駆動開発 Øリファクタリング ØIDEのショートカット 21 参考:http://codekata.com/

Slide 22

Slide 22 text

ショートカットキーはプログラムだけじゃない 22 • Windows Øhttps://support.microsoft.com/ja-jp/windows/dcc61a57-8ff0-cffe- 9796-cb9706c75eec • Mac Øhttps://support.apple.com/en-us/102650 • Office製品 Øhttps://support.microsoft.com/ja-jp/office/e765366f-24fc-4054- 870d-39b214f223fd • Browser Øhttps://support.google.com/chrome/answer/157179 Øhttps://support.apple.com/ja-jp/guide/safari/cpsh003/mac

Slide 23

Slide 23 text

ソフトウェアは、 『もっと安いコスト』で、 『もっと少ない⽋陥数』で、 『もっと⾼い⽣産性』で、 『もっと⾼い投資効率』で、 開発することができる XPの⽬的は圧倒的なソフトウェア開発の実現 23 ※書籍『エクストリームプログラミング 』より IDEやエディタに標準で搭載 ⼀括操作でミスが減る 複数の操作をショートカット キー1回で実現 別の開発や、他の⾔語での開 発にも活⽤できる

Slide 24

Slide 24 text

XPの⽬的は圧倒的なソフトウェア開発の実現 24 ソフトウェアは、 『もっと安いコスト』で、 『もっと少ない⽋陥数』で、 『もっと⾼い⽣産性』で、 『もっと⾼い投資効率』で、 開発することができる ※書籍『エクストリームプログラミング 』より IDEやエディタに標準で搭載 ⼀括置換でミスが減る 複数の操作をショートカット キー1つで実現 別の開発や、他の⾔語での開 発にも活⽤できる XP≒ショートカット キー

Slide 25

Slide 25 text

まとめ • XP≒ショートカットキー (暴論) • マウスや単純なキー操作よりもショートカットキーは速い • 意識せず使えるようになるまで、意識して覚えよう • ゲームと同じ、苦⼿意識を持たず体で覚えよう • CodeKataなどを活⽤し反復学習しよう • XPの習得に近道はない、でも、ショートカット―キーは有効 25

Slide 26

Slide 26 text

ご清聴ありがとうございました。 26