novtanの日常

ネタです。ネタなんです。マジレスする人は撲滅すべき敵です。だからネタだってば!

続・アジャイルで人はどう育てるんだろうか

色々ブコメ頂いたので、紹介がてらいろいろ考えたいです。

予めテーマを絞っておくと、教育にコストがかかる前提において世の中のプロジェクトが全部アジャイルになっちゃったら教育コストをどこから捻出していくイメージなのか、ということと、プログラミング以外のところがどういうプロセスで身についていくのか、というのが僕の関心の主眼です。

id:greencoffeemaker アジャイルをやるには、ある程度のレベルでシステムを修正できなくてはならないのがキツイ。場当たり的なコードで埋めたり、ガチガチに組まれたFWで業務処理だけ書けるというスキルではなかなか難しいのは実感ある。

やっぱり感覚としてはこういうところはあるんですよね。そこに到達するまではお荷物な部分を誰かがフォローするのか、余剰工数でやるのかってところですよね。

id:wwolf アプレンティスシップ・パターンを読もう(要するに徒弟制度)

読んでなかったので読んでみよう。これってエンジニアが育っていくための指針みたいなものですよね。

id:katzchang ウォーターフォールで成り立つ方がむしろ理解できない

ウォーターフォールで成り立っていると思っているわけでもないんですが、フェーズがきちんと分かれているので、最初は開発フェーズだけ、中身がわかってきたら徐々に設計フェーズの仕事にっていう滝登り計画は立てやすい気がします(ところが実際にはそんなに都合よくプロジェクトが成立しないのでスキルアンマッチのまま仕事するパターンになりがちですが)。

id:vanbraam Agileの原則の1つは自律だからなぁ.自ら動こうとしない人は技術力があっても難しい.逆に現時点で技術力がなくても,自ら育つ意思のある人の方が良い気がする.ただどうしても技術センスのない人はたまにいる

ここが一つ核心だと思っていて、極端に言うと、WF型だとどうしても成長できない人にひたすら狭い範囲のコードだけ書いておけ、とかテストだけしておけ、とかお前は一生ライブラリアンだ、という居場所があるんですが(あるから良いと言っているわけではない)、そのへんアジャイルだとイメージ出来ないんですよね。この手のスキルが必要なタイミングだけでとにかく現場を渡り歩く、ということは可能なのかもしれないけど(常にその仕事が出続けていないと辛いとか、そういう点で要員のコントロールが大変そうだけど)。

id:DustOfHuman 多分コレ、「ポンコツをどうやって立ち上げるか」「その間、ポンコツに払う給料をどこから捻出するか」って2つの要件を同時に満たす感じのやつで、グロスで準委任ブチ込むか内製で管理費で持たせるとかかなあと思う

そう、わりとダイレクトに金の問題で、もっと言うとそのことを顧客にどう伝えているか(あるいは伝えていないのか)なんだと思っているんですよね。単に出来上がった人を中途採用してうちはアジャイルで早く安く綺麗にできますよーって言っているのであればそれは業界全体で見るとどこかのリソースを食いつぶしているって話だし、そうじゃなくて、教育コストが暗黙に入っている結果も含め単価は高いですよ~でもパフォーマンスは出しますよ~って言っているのかで大きく違うと思う。そういう意味では全部内製化になればそういった問題はない(何人雇うべきかの問題はあるけど)。

id:int128 アジャイルというより一括請負とSESの問題では?

これもまあ同じような話で、契約形態というよりは顧客に対して教育コストをどう提示しているか(していないのか)の問題ですよね。SESだから必要最低限の人数がフルパフォーマンス出さないとダメよっていうのを顧客にアジャイルのメリットとして見せてたりすると地獄な気がしますが(SESと言っても低単価の修行中人員を投入する契約は全然出来るわけで)。

id:FunnyBunnyDizzy 自分のチームもWFしかできないチームだったけど、スクラムのスプリントの中でWFをやって、KPTフェーズで「これもっと速くうまくやりたいね、自動化したいね」って話をしつつ少しずつ改善していきますた。

これはエンジニアとしてはある程度超えていて、単にやり方をどう変えるかだけが課題のパターンですかね。そういう場合はうまくいくケースが多いと思うんですが、依然としてそれからどう新しい人を育てていくかの問題はありますね。

id:wonodas そこを解決するのがペアレビューとかペアプロなんでわ。。。まぁたしかに基本技能高めの人は想定してると思うけどさ

プログラミングって世界はわりと想像できるんですよね。もうちょっと大きいアーキテクチャの話とか、業務要件の落としこみの部分とかをどういうプロセスで身につけて成長していくんだろうか。

id: 読んでみたら「人を育てない企業でアジャイルを成功させるにはどうすればいいの」だった。/ アジャイルはよく「ウォーターフォールから設計工程を除いたもの」と思われてる。「設計しないから早いんだね」って感じで

そんなことは書いているつもり無いんですけどね…金で解決できるなら現場で難しいなら外部研修で、とかそういうのでも全然解決策だと思うんだけど。後段の部分は実際にはそんなことないよって話だと思うんですが、実際のところどういう話ですかね?

id:takeshiketa 育てるよね。これ分かんないということはWFだと回せてたというか過剰にコスト積んでるの気づいてないだけなので、イテレーション毎の見積りの時に教育コストのせればいい。そうするときちんと状況が把握できて良い。

いや、WFの時とおんなじ感じでコスト積んでる(暗黙であろうと明示であろうと)のであればそこのところのイメージはあってます。で、やっぱりOJTで教育するんですよね。

id:hylom 弊社ではコードやインフラへの変更とかが基本すべてチケット化されていたので分からないことがあればまずチケットを検索、みたいな形になってました

自分で身につけていくスタイルですよね。これは勝手に育つパターン?身についていないときの生産性の低さはどうカバーされているんでしょうか。

id:tukanpo-kazuki 転職市場で調達するんです。マジレスすると、コードコミット前に経験のある人とコードレビューで少しづつ教えていく。それでもダメなら転職市場に放流することになるけど。採用はマネージャーの一番大事な仕事です。

少しずつ教えていくってことはこの話もコストの話ですよね。

ざっくりまとめると、各アジャイラー(って言うの?)の人たちは教育コストのことをちゃんと意識していて、契約金額のところと、実際の活動のところで顧客とそういった面(育つまで足を引っ張る事も含めて)を合意して活動しているってことですね。で、上手く育たなかった場合はどうするのかな、というのも一つ疑問です(途中で触れた、ずっと単一のフェーズの作業者として使うとかかなあ。あるいは辞めさせるのか)。

実際一人前のアジャイル開発者として成立する技術のカバー範囲がどこまでなのか僕自身まだちゃんとわからないのもあります。かっちり基本設計してやらない以上、非機能とか運用周りの最終的な出来上がりの課題をきっちり飲み込める人が回していかないと実運用できないアプリができちゃうんだよねってあたりで、できる人ってのは今までの経験上の前提知識でいくんだと思うんですが、基本設計みたいなのがないとなかなか叩きこむの大変だなーって思うんですよね。もっともWFでもそこ叩き込める資質のある人少ないわけで、そういう意味ではあんまり変わらないのかもしれません。