#243 アジャイル開発に宿る、学びの精神

2024/4/28 ·

  • この番組は駆け出しエンジニアの順平と先輩エンジニアの海地のりが送る駆け出しエンジニアを中級エンジニアにキャリアアップさせるラジオですというわけで今日のテーマはアジャイル開発に学ぶ学びの精神ということでお話しさせていただきますがアジャイル男僕はですね暇プロ切手のアジャイル男やばいアジャイル終わったわ終わった



  • まったくもう今あれなんですよこれ実は再収録しててですねサンシャイン池崎みたいなね空前絶後の超絶怒涛のアジャイル芸人みたいな面白くなりがあったんですけどのりさんがうまく乗りこなせる全カットになりましたね本当に面白かったんですよ惜しかったなというわけでそんな打線を置いておいてですねひまプロ聞いてくれている皆様とあとはじゅんぺいのりさんあとは僕に共通することがあるんですね



  • はいはい男すいません女性もいます少なめですけどね男女比で言うとちょうどエンジニアの比率ぐらいだと思います男か女LGBTの話が入ってくるからねノンセクシャルの人もいますスポーティファイのあれを見てると本当に気をつけてください人類はい



  • いや分かりませんよそれも あそうか猫に聞かせてる可能性あるもんな そうですそうですあとはその自分の種別自認もね 人類じゃない人いるかもしれないめんどくせえ めんどくせえとか言わないの? 難しい共通することそれはですね成長することなんじゃないかなと 成長するのが好きなことなんじゃないかなと思うんですよね 確かにすごいなんかポッドキャスト聞くぐらいアンテナ高く情報取りに行ってるとか



  • なんなら僕らはねまあまあな時間かけてエピソードを作ったりとかしてるんでそういうのがすごい成長するのが好きなんだなと思うんですけどそんな人たちに囲まれてる僕価値観の中では最もプライオリティが高いのは成長なんですよ実は価値観ワークとかやっても成長第一のぐらい成長大好き男なんですけどで



  • 最初アジャイルの話とか言ってましたけどその成長するのが大好きなカイチが大切にしている考えの中でアジャイル開発がありますアジャイル開発って何って最初ボンボンバード出てましたけどさらっと言うとざっくりアジリティを持ってスピード感を持って開発するようなものアジリティって何でしたっけスピード感でいいよ俊敏性とかですねはい



  • なのでどういう背景で生まれたものかっていうと製品作りって難しいんですよ意外にどう難しいかっていうとよっしゃーこれ絶対売れるぞと思って出したとしてもその商品って売れるとは限らないですね確かになんなら売れない方が多いんですよそれはなんで売れなかったかっていうと製品作りのコンセプトが間違えてたから



  • ユーザーに使ってもらえないと僕も実際ほぼ使われないソフトウェアを数ヶ月かけて開発してリリースしたそんな経験がめちゃくちゃいっぱいありますそうやってユーザーが求めるものを作るそれがむずいよねっていうので複雑で分かりづらい課題に指しにいくものを作るやり方として広まったのがアジャイル開発



  • というものなんですけどつまりですよアジャイル開発ってよく分かんないものに向かってなんとか前進していく考え方なんですよよく分かんないものに向かってなんとか前進していく考え方売れるものっていうよく分かんないものをなんとか作るためにどうやったらうまく作れるかなって頭のいい人がいっぱい考えた上で編み出された方法なんですよこれって僕は人生に活かせるんじゃないかなと思うんですよ



  • なぜなら人生の自分の僕も多分のりさんもじゅんぺいも結局幸せになりたいなっていうところに尽きると思うんですけどよく言うね一番言われるのは結婚して幸せになったっていう話というかそういうのもありますけど結婚が幸せとは限らないじゃないですかそれは人によるしやってみないと分かんないと



  • 結婚はまだ分かりやすいですけどそれ以外にもお金持ちになっても幸せじゃないかもしれないですねだから分かんないんですよ幸せって今怪しい話してると思うかもしれないですけどかなり地に足にがついた話をしてますこの後壺の購入会とかありますか?まだ分かんないですけどねなので僕はこのアジャイル開発の考え方って人生に活かせるんじゃないかと思ってるんですよ



  • なので今日はアジャイル開発の書籍から学び終えましょうねというなるほどね話です具体的なアジャイルの特徴みたいなのはこの後来るんですかねアジャイルの特徴ってどういう意味だいやなんかその



  • 一般的なアジャイルのイメージってウォーターフォールに対してアジャイル短い期間でガシガシやっていくぜっていう手法のことだという認識を持ってる方もいっぱいいると思うのでそれでいうとアジャイル開発の話というよりはアジャイル開発の中でもっとこうな話でこういう風にやるといい感じのアジャイル開発もあるよねっていう



  • 話をするんですよそれって人生にも活かせるよねっていう切り口です成長するための思考法みたいなそうですそうです普通にアジャイル開発のノウハウが知れます今日種本がありまして継続的デリバリーのソフトウェア工学という



  • ああああああ cd オレンジ色のぐるぐるのやつですか黄色かな 黄色真ん中に黄色のやつがあってこの本ですね僕あのさらっと実は今年4冊目とか5冊目なんですけど 技術書をおもろいすめちゃくちゃ技術書そんなよそんな4年の早実はまだ3月なんですけど ギリギリなのでこの本めっちゃ面白くてえっとただ



  • 設計とか概念的というか話なんで駆け出し層というより中級層におすすめなんならのりさんには読んでほしいこれめちゃめちゃ面白いです保守性のあるソフトウェアをいかに素早く作り上げていくかっていう話の本でしたなるほどこの本はそういうことが書いてるんですけどちょっと



  • 部?部?三部構成になっててソフトウェア工学とはが第一部学び方に関する部が第二部第三部は複雑さ管理の仕方っていうので今日はその中の学び方第二部第二部学びを得る方法



  • のお話をします最初は本にのっとってソフトウェア開発における学びを得る方法について話していって最後にそこから人生で考え方のうちこれを活かせるよねっていうそんな話の流れでいこうかなと思いますよし活かそうじゃあ最初はですねじゅんぺいとのりさんに一つ質問なんですけど効率よく学んでいくために重要なことなんでしょ習慣化を



  • はい急がば回れ基礎をちゃんとやろうなるほど堅実にということですね間違えてないですがじゃあ聞くかどうか変えますねいや合ってるかすいません変えませんでしたそのままいきますお二人言ってることも正しいんですけどレイヤーが違うのかなアジャイルの精神でいくとですね高速に正しい学びを得るという活動を繰り返す



  • アジャイル開発って細かくスプリントを回していく開発の仕方をしますけどあれはスプリントを通じて毎回毎回学びを得てるんですよそれによってチームがより効率よく開発できるチームになっていく改善をしまくれるってことですかその通りですでその学びを繰り返す上でも今学べてるかなとか学びの効果なんだろうなって効果をちゃんとチェックするこれがめちゃくちゃ大事になってくるんですよチェックねー



  • チェックがむずいですよね復習?復習的な?復習じゃない復習は学んだことを復習するんだよねテストに近いテストかもしれないし



  • もっと抽象的なことかもしれない例えばスキルの高いエンジニアになるんだったらじゃあ応用情報取りましたと応用情報の勉強をして試験受かりましたとただその応用情報を取ったことによって応用情報取れたけど優秀なエンジニアの一歩になってるんだっけっていうのをちゃんと振り返る取るのはいいと思うんですけどねただ取っても意味ない可能性もありますからねなるほどちゃんと効果の部分を鑑みるというかそうですそうですそうです



  • 会社の中の立ち位置変わるかなとかね意味なかったかとか転職に行かせるとかいろいろあると思うんですけどそれってすごく大事で機械学習のアプローチも実際そうなってるんですよ学習データ読み込んで実際に試してみてその判定どれだけ間違えてたかっていうのを関数で出して数字が大きかったらもう一回それを修正する方向にネットワークを切り替えてでまたやってみてっていうのをとんでもない回数回していい感じの絵を作るのが機械学習うんうんうん



  • アジャイルもそうだし人間もそうだと思うんですよでもせやなって感じですがのりさん言ってた通り実際やるのめっちゃむずいんですよねそうですよねめっちゃむずい応用情報取ったってなった時に具体的にやれることが変わるわけじゃないというか開発しててこれ応用情報でやったやつやってあんまりなりにくいなりにくいそうそう



  • じゃあまずアジャイル開発ではそれをどううまくやってるんでしょうねというところで見ていきましょうなので一旦ソフトウェア開発に頭切り替えてくださいじゃあアジャイル開発ではどうやってるか最初は高速なイテレーションという切り口からお話していきますイテレーションちょっと肩金で難しいですが反復作業ですね繰り返し繰り返し



  • さっきも言った通りアジャイル開発っていうのはスクラムチームを組んで1週間2週間みたいなスプリントを回しながら開発を進めていくとまずそもそもこれなんで早いサイクルで作業していくといいと言われているかこれだとなぜかというと



  • 細かく区切りながら作業していくことによって途中でチェックポイントができるんですねなるほどウォーターホールってアジャイルと比較されますけどあれは数ヶ月単位で開発しますけど途中でこの機能ユーザーにとって使い勝手いいんだっけとかってフィードバック来ないんですよなぜならリリースしてないからでもアジャイル開発は2週間とかで1週間とかでお客さんに出して使ってもらってフィードバックが来るんで



  • なんかこの新機能めっちゃいいと思ってたけどいらなそうだから追加で開発するのやめようとかできるんですね早く気づけるそうですその通り起動修正するタイミングをたくさん作ることができるんですねさっきも言った通りアジャイルってやっぱフィードバック早いんですよ早いユーザーが使うからもしくは企画の人が使えるからアジャイルで言うとやっぱりユーザーに出すとかあとは



  • ステークホルダーでレビューするとかによって企画の人はねこれ出したらめっちゃ儲かるぞって思ってるわけですからそのなんか儲かるソフトじゃないサービスっていう小さな一歩に向かってどれだけ近づけたかみたいなものを測ることができて測りながら進めるただこれってなんとなく反復すればいいわけじゃないんですよだからなんて言うんでしょう綺麗にアジャイル開発を回せば



  • それはいけるんですけど綺麗に回す上でなんとなくやっちゃうとしてしまう失敗があってそれがまたカタカナで申し訳ないんですけどインクリメンタルっていう考え方インクリメンタル日本語にしても分かりづらいんですけど全身的ちょっとずつ増えていくイメージちょっとずつ増えていくやつこれインクリメンタルに進めていくのが非常に重要になってきますインクリメンタルって言葉は知ってても正しく理解してる人って少ないと思ってて



  • あんま深く考えたことなかったかもプラスプラス1位ですかね文法?プログラムの文法の話それが出てきちゃう反復的とイテラティブイテラティブに進めるのとインクリメンタルに進めるのこれ違うことでそうなんだこの書籍でいい例があったので紹介させていただくと1枚の例を思い浮かべてくださいゴッホのひまわりモナリザにしましょうゴッホのひまわりはい



  • 絵描くときって下書きやって実践描いて色付けてって進めていくんですよね多分僕絵あんまり描いたことないんで僕も知らないんですけど全員あやふやですけど中学校美術の知識だと多分そんなもんじゃないですかそれは反復的イテレーティブに進めてるんですよ全体的に下書きを描いていってでちょっと付箋をちゃんとしてえー



  • 色をつけていくこれをイテレティブじゃあ逆にインクリメンタルどう進めるかというとですねまず最初ゴッホのひまわりを16分割します完成図を左上の16分の1だけ描きます色とかもつけちゃうってことですかね全部つけますなのでその一部は完成するんですよすぐ16分の1のスピードで完成するとそうですそうです16分の1がねそれで



  • ちょっと出して「あ、良さそうだ」つって次その下の16分の1次出してってみたいな形で積み上げていくのがインクリメンタルなるほどね なので1回物事をやった後にそれをお客さんに出せるっていうの出して満足するかは置いといて出せる出せる使えるみたいな積み上げ方をしていくのがインクリメンタルになります



  • なるほど違いはすごいわかりましたはい本当にMVPだからそういうことなんですよねゴッホのひまわりでいうとそのひまわりの花の部分だけとりあえず書いて出すみたいなねそうするとなんかこのひまわりをユーザーに見せたらなんか青空っぽいねっていうフィードバックくるかもしれないし青空だろうなと思いきやこれ雨が合いそうだねって言われるかもしれないですね



  • ただ反復的だと最初に言った下書きからだと結局ユーザーに出せない絵はちょっと出せるかもしれないですけど絵という例えが役にないかもしれないですけどソフトウェアだったら動かないんで使えないんですよそういう意味でアジャイルに物事を進めるっていう意味だとインクリメンタルに進めるだからこそ出すことができてフィードバックが得られるってことが非常に重要になってきますただインクリメンタルになんとなく作っていくと困ることがあるんですよそれは



  • いい感じにつなげられるように作らなきゃいけないですねなるほどね部品ずつ作るじゃないですかそれをこの本ではモジュラーな設計って言ってるんですけどモジュールのERPでねモジュラーなんだろうね使い回せる設計だからモジュラーな設計をちょっとずつ作っていくっていうのがアジャレ開発の予定は非常に重要ですモジュラーな設計はい



  • モジュラーってですねソフトウェアに限らずですね人類が今まで歩んできた壮絶の歴史の中でもずっとずっと重要にされてきた考えでですね古くは石器時代石器時代ね懐かしい小学校の話石器時代ですね人間って石のナイフとかもありましたけど斧とかあったじゃないですかあれ斧って木の棒に石の刃がついてるんですけどあれモジュラーなんですよ



  • 石が割れたら入れ替えれるようになってるんですよ木が折れても入れ替えれる石器自体の石器なんてそんなもんですけど飛行機とかアポロ計画のロケットとかあんな一気に全部設計して作ってるわけじゃないんですよね



  • 部品部品をそれぞれモジュラーな状態でそれぞれ設計して組み合わせた上で開発を進めていくなんかこの本の中で紹介されてたエピソードだと飛行機ってあれらしいんですよ新しいエンジン作ったら実績のある機体に乗せて試すんですってへーすごいそうなんだ逆に新しい機体できたら実績のあるエンジンつけて動かすらしいんですよなるほど



  • なぜなら全部一気に新しくしたらどれが障害かわからんからなるほどねああなるほどめっちゃ理にかなってるなと思いながら確かにこうやってですね人類っていうのは複雑なものを作ってきたと



  • 接合する部分のインターフェースさえ合わせればいけるよねってことかそうそうそう物理的なものだとそうですねなのでこのモジュラーな設計をすることによってソフトウェア開発でもいいことありそうじゃないですかどういうことがあるかっていうとチームを分割してもちゃんと一つのものを作れるんですよねそれぞれがちゃんとつなげられるものを作るからつなげられるものを作ると仕事がすごいしやすいんですよ



  • それはチーム同士のコミュニケーション最小限にいいんですねコミュニケーションのパスが減るわけだパスも減りますしあとなんかすいませんちょっとうち作ってるシステムってここちょっとこうやるとこうなっちゃうんでここだけ気をつけて実装してもらっていいですかみたいな謎の念押しみたいなのはしなくてよくないですねうん



  • 例えばモジュラーな設計になってたらオープンAPIだけぶん投げて終わるとかね設計書だけポンと渡して打ち合わせなしでいけるみたいなそうすることで本当にやらなきゃいけない実装とか設計のところに時間をかけながら仕事が進められるんだとだからちょっと戻るんですけどモジュラー性があるから全身的にインクリメンタルにアジャイルに仕事を進めることができる



  • なるほどそのモジュラーの一個一個のモジュール分離して作れるような的な意味かそうですそうですあともう一個ちょっとすいません全身的に仕事をするインクリメンタルに仕事をするというこのショーの中でちょっと響いたことをちょっと紹介するんですけどこの筆者はどうやら優秀なプログラマーだと社会会社で言われてるらしいですね僕はそんな自覚ないけどただなぜそう言われるかをちょっと考えてみたとそれはなぜかというと僕は



  • インクリメンタルに仕事ができるようにしていると普段からどういう意味かというと新しいことを学んだ時に書き換えられるコードを書くということを目指して普段の仕事をしていると言っている意味わかりますか書き換えられるそうモジュラーなコードを書いているとうわこのコードクソじゃんって1年後に思ったとしても影響範囲が少ないなるほどソリッド原則にのっとっていそうまあそうですねうん



  • そんななんかその影響範囲が少ないという関心の分離がちゃんとできてるというかリファクタリングした時に第三次にならないそんなコードを書いてるから僕は学びを僕っていうか筆者は学びを得た時に入れ替えるし入れ替えるのはすぐできるから優秀なコードも書けるしなおかつそれに時間も全然かからないとこれはなんかその仕事のスタンスとしてすごい大事だなと思ってそうですねスタンスというかでもそれがむずいよねってめっちゃ思う



  • それは諦めてはいけないことじゃないですかそうなんですよねそれはだからそれを目指して仕事をしていくのいいなと思ってちょっと紹介させていただきましたソフトウェアなら今のところわかりますただ人生にってなった時どうなっていくのかもうちょい待っとけせっかちだなまったくディランマッキーみたいなインクリメンタルに仕事をしていくっていう話してきましたけど具体的に話してどうやったらできると思いますかというところで



  • 方法論の話なんですけどここは開示です僕TDDすごいいいんだろうなと思ってますテスト駆動開発テスト駆動開発っていうのはテストコードを書いてからコードの実装を進めていくという考え方なんですけど単体テストか単体テストの単位クラスとかメソッドの単位で少なくともモジュラーになっているんですよなおかつ単体テスト書くときって



  • 例えばじゅんぺいクラスのテストを書こうと思ったらじゅんぺいってこういうことができるはずだよなっていうテストから書き始めるんですよお茶漬け作れるじゅんぺい.お茶漬けクリエイトって言ったらお茶漬けができるリターンお茶漬けしてくるとやるじゃんっていうところから書き始めるんですねだから少なくともシンプルな入り口出口はまず最初に作れるんですよそれに向かってコードを書いていく



  • なおかつ入り口出口は確定してるんで後で俺書いたやつクソだわってなったとしても単体テストの単位でリファクタリングしても壊れづらいなのでそういう内部設計っていう範囲でいうとTDDやっていくのがすごいモジュラーな設計をするという意味ではめっちゃ大事だなと思いましたなるほど内部設計でそういう考え方していくと外部設計とかシステム設計もうちょっと範囲を広げた時にも



  • 正直俺はあんまり考え方変わらないと思ってるんで応用できるなと思ってまず最初はコードレベルだと思うんでTDD始めるっていうのはすごい重要だなとこの本読んでて思いましたっていうのがねちょっと前進主義というかインクリメンタルに仕事をするという話なので最初の高速にイテレーションを回しながらインクリメンタルな仕事をする反復しながら仕事のサイクルをめちゃくちゃ反復しながら前進的インクリメンタルに仕事をしていく



  • さっきの絵でいうと16分の1に分割して16分の1の中で下書きを書いて色を塗ってっていう作業を繰り返していくそうそうそうそうなるほどまさに4分ですよね違います?違うのかなプラス1したときはえっとそれは反復な話だよで4分の下に何書いてるかによるわあーはいはいそこの処理をそうそうそうそうはい



  • でじゃあ次その効果をチェックの話効果をチェック今って正しい方向に進んでるだけっていう話なんですけどのりさん自分の人生だとむずいって話してましたがソフトウェア開発においては何をしているかソフトウェア開発においては答えから言っちゃうとCICDですねフィードバックを得るためにやっていることCICDですじゃあどういうことかこれは本にあった事例をちょっと紹介させていただきます



  • 筆者が金融取引システムの仕事をしているときにチームにジョインしましたと自動テストをやっているらしいですよそのチームは完全なビルドもCICDが組まれていたらしいんですけど筆者が入ったときにはビルドは9時間半かかっているらしいですねおお



  • 朝ビルドしたら今日の仕事おしまいだそうですねなので開発者の一人の話によるとこのような仕事のやり方は3年間続いていてだから夜回してですね全てのテストに合格したのは3年間で3回しかないとじゃあどうしてるかっていうと全てのテストの中で合格したモジュールだけを抜き出してそれをリリースするとテストでエラーが出たやつは出さずに置いておくと



  • いう風な仕事の仕方をしてたらしいんですよ開発では筆者どうしたかっていうとめっちゃ頑張ってビルド時間を縮めました合計52分に縮めますすごい8倍すごいなそんな時間かかるやつビルドしたことないそうするとどうなったかというとこの変更をリリースしてからビルド時間をめっちゃ縮めてから2週間のうちに全てのテストが合格するのが2回



  • 今まで3年に3回だったのに2週間後筆者がその会社を去るまで全てのテストが合格し続けたと2週間後筆者去ったの?すみません2週間後は去ってないです2週間後から筆者が去るまでずっとテストが合格するようになってた全てやりきって俺はもう燃え尽きたぜってなったのかと突然筆者のストーリーも入ってきたの?違う違う



  • ここから何が学べるかというとですねフィードバックのスピードを上げるだけでプロジェクトの安定性が向上するんですよ今まではビルドに9時間かかってたテストがほぼ通ってなかったっていう状況から他は何も変えてないらしいんですけどビルドの時間52分にしたらテストが通るようになったとこれはですね要するに多分フィードバックを得る回数が増えたことで改善するタイミングが増えたんですよねうんうんうん



  • PDCAって言いますけどプラン・ドゥ・チェック・アクションアクトかなって言うんですけどそれで言うと多分今まではチェックが



  • 9時間かかってたんでプランドゥープランドゥープランドゥーチェックアクトプランドゥープランドゥープランドゥーチェックアクトってなってたんですよそれが52分になったおかげでPDCA PDCAプランドゥーチェックアクトプランドゥーチェックアクトってきれいに回るようになったからプロジェクトが安定するようになったのかなと思っておりますなのでソフトウェア開発においてはフィードバックを得る仕組みとしては自動化してテスト全部通すリリースというかデプロイする



  • こまめなフィードバックこれが重要だと言われていますソフトウェア開発パートでは高速なイテレーションを回してインクリメンタルに開発を進めるそのためにはモジュラーな設計で開発するのが大事だという話とあとはフィードバックを得る仕組み



  • という話をさせていただきましたここからちょっと人生パートなんですけど最初にも話した通りソフトウェア開発というか良いプロダクトを作るというところと人生はどっちも何したらいいかわからん変化が激しい例えば10年後自分の状況なんて変わってるんだねやりたいこと変わるかもしれないねとんでもない技術によって全て陳腐化する可能性もありますからねもしくはね声出なくなってるかもしれないですねちょっとわからないラジオできなくなっちゃう



  • なので人生において高速にイテレーションを回しながらこまめに学んで適切なフィードバックを得るのを繰り返していく必要があるとはいというので僕の中で何をしたらいいか考えました一つ目高速なイテレーションのお話これはですね大きくふわっとした方向性を持った上で小さくスマートな目標を立てるという分かりづらい見出しから入るんですけど方向性だけ決めてそらって



  • ちょっとしたKPAみたいなのがあるみたいな具体的に言うとですね例えばですよ僕は大きくした大きくふわっとした方向性としてエンジニアで人の役に立つものを思い立ったらパッと作れる開発チームを作れるようになりたい開発チームを作れるようになりたい僕ができるのは前提でそんなチームを作れるようになりたい



  • そうしたら俺は一生無敵だと思っているなるほどっていうふわっとした方向性を持ってるんですよでその上で小さくスマートな目標これはスマートはですねちょっと前にも触れたことがあるんですがこれは目標設定のフレームワークなんですけど具体的で計測可能で達成可能で



  • 時間制約があるRが経営目標に関連したっていうやつなんでぶっちゃけ個人ではあんま関係ないんですけどそんな具体的で達成可能な達成したかどうかが測れる目標なので僕はそういうエンジニアになるために中間のクワッとした目標の中でもこいつはアジャイルに特化してる人間だぞって思われる必要があるなと思ってるのでアジャイルな情報を発信する



  • 人だと思われる必要がありますじゃあ僕は来週からブログを書かなきゃと思ってますじゃあどうするか達成可能な目標にしなきゃいけないのでじゃあひまプロの原稿をキータに書いてでその原稿をそのまま出すと効率良いいうことができればいいんじゃないみたいな週次とかね究極ですよ1ヶ月とかでもいいと思うんですけど来週はこれやるとでそれで



  • そんな感じで大きくふわっとした方向性と具体的な小さい目標これを持つことによって高速なイテレーションを回せるんじゃないかなという風に思いました2つ目高速なイテレーションをただ回すだけじゃダメでインクリメンタルな知識がいるんですねなるほどこれは造語なんで使い方間違えてるかもしれないんですけど反復的じゃなくてインクリメンタルですつまり使える知識ですオーラしてなくてもいいけどその部分に関しては完結している必要があるそうです



  • 使える知識スキルでもいいですけどねこれを徐々に積み上げていくこればっかりは仕事で使ってみないと使えるって言えるか気が遠いところではあるんですがただやってみるってのがめっちゃ大事なんですねエンジニアリングの勉強でもね本読んで終わりじゃなくてハンズオンで作ってみるアウトプットかただこれはエンジニアの話でコミュニケーションスキルだとしたらどっかの場に行って喋るのが大事なんですね



  • 飲み会でもいいですけどねあとは最近ポッドキャストでメンタリング今は募集してますけどこれも僕の中では人の話をちゃんと聞いて人が思いもよらなかったアクションを取れるようにする力これがリーダーに求められるスキルかなと思ったりもしてるのでそういう練習の場が欲しいなと思ってやってみるとかそんな感じで実践地をできるだけ作っていくのが大事かなと思ってます



  • それによってだんだんとスキルがついていきますあとはスキルをつける上でスキルってモジュラーである必要があるんですね組み合わせて使う必要があります例えばAWSの知識を得たとしてよしAWS作ったよしこれでいいじゃダメでこれはどういう時に使えるんだと他の



  • シーンというか具体的なシーンでちょっとこれはインプリメンタルに近いかもしれないですけど他のものと組み合わせる力が大事かなと思っています例えばアプリケーションを載せるとかそういうことですかそうですそうですアプリケーションを載せるという話ですねというので高速にインテリエーションを回してインクリメンタルの知識をつけてモジュラーなスキルをつけていくのが大事だと思いますただフィードバックですよねフィードバックをやるこれは



  • 僕2つ観点があるかなと思ってて自分観点と人からのフィードバック観点なんですけど自分観点で言うと1年後の俺こうっていう依頼要素をとりあえず作っておくんですよ来月でもいいですけどね期間は任せますがそれにどれくらい近づけたかをちゃんと定期的に見る例えば僕で言うと



  • さっき言ったようなエンジニアになりたいんだったら例えばフルスタックエンジニアになる必要があるよねとかあとはCICDとか自動テストみたいなそういうアジャイル開発に必要なスキルセットを知る必要があるよねってのが分かるんで年の年の初めなのか半年前なのか何かの期間で半年後こうなってるっていうのをとりあえず作ってチェックしてる時に近づいてるかなとちゃんと見るなるほど



  • 例えばフルスタックエンジニアになりたいぞっていうざっくりした方向性があったら例えば何月までにNext.jsでアプリケーションをデプロイするとかデプロイできるしたかもしれないアプリケーションのフロント側が終わったら次は何月までにAPIを作るみたいなそういうことか



  • 僕のめっちゃ細かいですけど何月時点の自分っていう観点なんで何々したことがあるっていう書き方をします一緒なんですけどね何月に何やるとねっていうのが一つでもう一つ他の人観点で言うとこれはちょっと難易度高いんですがなりたい人見つけてこうなれるにはこう思ってるんですけどどうですかって聞いて今の自分どう思いますか何したいと思いますかって聞くのがいっちゃ早いですねメンター的なメンターはい



  • ただまんまその人は見つからないと思うんで信頼のできる人普通に友達とか後輩でもなんならいいかもしれないですね仲良い人なら仲良い人なら誠意を持って答えてくれるはず分かんないって言われたらそれはそれで別の人に当たればいい結局業務のことだから会社の人にはなるんじゃないかなって気はしますけどねコミュニティでもいいんじゃないですかコミュニティで会った仲良いエンジニアとかねいわゆる強強エンジニアはいますからコミュニティには



  • 仕事ぶりがわからないってことがある確かにそれはあるかも言ってるけど本当にそうなのかどうかわからないそれはそうだそれはのりさんおっしゃる通りですねそうするとあれから本当に自己開示めちゃめちゃ会社内で積極的にやっていくって話かもしれないですね会社内でメンター見つけるのが一番理想ですよね理想それがいい



  • チーム内だとベストですよねそれで言うと会社内だと仕事ぶりやっぱ結局見えないんで確かになんか噂は聞いてるけどみたいな感じになっちゃうよね確かにそうそうはいっていうのでリスナー向けには人生の学びという話をしましたがじゅんぺいのりさん向けには普通にアジャイル開発におけるインクリメンタルな考え方あとモジュラーなコードを設計をするあとフィードバックを早くする



  • ことで保守性の高いソフトウェアが作れるんやでって話を伝えつつ俺はこの本を読んでてやっぱりアジャイルって人生だなって思ったっていうアジャイルが人生だけじゃないけどねプロダクト作りが人生なんですけどねなるほどねプロダクト作りが人生だなって思います僕も今聞いてて思ったのはやっぱテスト大事だなってすごい思った



  • 目標を最初に定めてそこに行ってるか行ってないかをテストするってもうこれTDDじゃんって聞いてて思いましたねそうなんですねそうですねTDD人生設計ですだからこそそういう自動テストが自分でできるフィードバックになるというか過去の自分からのフィードバックみたいな感じだなと思ってましたね確かに確かに作っちゃいますかそのプロダクトテスト駆動人生



  • 設計シート?設計シートというかそうあの玄関通るたびに自動テスト走ってスキャンされるの?そうそう何かをスキャンされる今年の本の読書数何エラーみたいなエラーアサーションエラーPPPPP体脂肪率15%アサーションエラーそうそうそうそうすごいなそれそうそうそうペットシグナルだと思ってね



  • サイレン鳴りまくるっていうTDDいいっすよねなかなかできないっすよ俺めっちゃ簡単だと思うよえ?プロジェクトとしてはありました?TDDプロジェクトとしてはやったことないけどただ個人でできるからTDDって単体テストがあればね自動で単体テストやってるプロジェクトなら個人でやれるだから俺はすごい色々プラクティスがある中で一番始めやすいと思うプロだってやってくれる人いないといけないしうん



  • CICDは多分単体テスト自動テストあってもCICDないプロジェクトはある気がするから確かに単体テストないとこは無事そうね無事あとはやる前のハードルだよねテスト先に書いて普段とやり方違うんで絶対時間かかると思うんですよってなった時のタスク間に合うかなみたいなところの攻め合いにいかに勝つかみたいなそうですね簡単よ



  • めっちゃ簡単本当に簡単単体テスト書いたことある人はロスタイムほぼないっすマジでほぼない何なら早いまであると思う最初からまあでもそれはちょっと一回本読んでもらってねそうですねはいまあ全然めっちゃ簡単なんでいやまあめっちゃ簡単って言うと語弊があるけど俺はそう思ってるんではいっていうのでちょっとすいませんややちょっととっちゃかったところはありますが継続的デリバリー



  • のソフトウェア工学という本から学ぶいかにうまく学ぶかという部があったのでその中から一部抜粋してお話しさせていただきましたなるほどとにかく小さい目標を積み重ねていくはいだから本当に自分の人生をプロダクト開発だと思ってどう開発していけばいいんだろうなというのをロバート・C・マーティンとかアジャイル開発宣言から学んでもらえればと思いますプロレスラーズプロレス団体はい



  • あれプロレス団体あのアジャイルくん全部立てた人たち全員プロレスラー知らないけどいやー狭いなフォーカスあのひまプロの特定の話聞いてる人にしか伝わらないくらいですね今のねまあ探してみてくださいはいはい



  • では締めますねハッシュタグひまじんプログラマーでSNSのXフィードバック募集してますので人生はアジャイルであるもしくはそうじゃないの考え方など何でも募集してますお願いしますポコチンっていうツイートでもいいですよいやーよくないないいのかあんまよくないかもしれないダメだよ番組説明欄からGoogleフォームのリンクで番組のお便り予防何でも募集してますこちらお気軽にお願いいたします



  • 心地はダメですよ心地はダメですね間挟んで言ってくるね最後にですね各種フォトキャストプラットフォームでのフォロー高評価お待ちしてますランキング上げたいなと思っているのでぜひぜひまだやってない人お願いしますちなみに多分P入ってるから大丈夫だよ入れなきゃいけなくなったわ入れないぞ



  • 大丈夫ですはいというので今日の学びから何かを持って帰ってもらえればされればいいですはいこの話ですねまだ安定化とかソフトウェアの安定をどうさせるかとかソフトウェア工学とはみたいなソフトウェア工学と工芸の違い



  • 聞いたことないソフトウェア工芸でも工芸やってる人がいるんですよそうなんだそれは面白かったので機会があればまた次回ということで終わりますバイバイ



  • さあ皆さん次の商品は目玉商品ですこちらめちゃくちゃでかいエンターキーわー大きいこれがあるとストレス発散生産性アップ快適な睡眠もえ枕にしちゃうんですかこちらの商品はお値段など1024円わーお2の10乗



  • そして今番組終了1時間以内にGoogleフォームよりお便りを送った方はちっちゃいスペースキーも付いてきますポケットに入れて持ち運べますね番組の高評価フォローもすると会員割引なんと90%オフほぼただ今すぐご応募

0:00 42:28

#243 アジャイル開発に宿る、学びの精神