はてなキーワード: アジャイルとは
日本のソフトウェアって例えばみずほのシステムなんか大炎上したわけだけど
ウォーターフォールという先に「上流」っていう大企業のサラリーマンが全部やること決めといて
「下流」っていう下請けが決めた通りに書くというやり方でやっている
これはアメリカでは70年代くらいに確立した手法なんだけどソフトウェアってのは変更とか後で判明する問題が多くて
プロジェクトの炎上率(納期とか予算が大幅に超える事。数倍とか普通にあって怖い)が5割を超えて「2割は完成さえしない」という地獄になったのでアジャイルっていうもっと柔軟にやりましょうっていう方法論が作られて、今ではNASAのロケットとかロッキードマーチンのステルス戦闘機のソフトなんかでも使われている
このアジャイルの2大手法がスクラムってやつとカンバンってやつなんだけど、カンバンはそのまま看板でトヨタの手法、スクラムはラグビーから来てて日本の教授が提唱した物
これらの有効性に関する議論は15年から10年ほど前まではあったんだけど今はアメリカのすべてのソフト会社がこのやり方でやってると言っても過言では無い状況になっている
ところが
日本の大手と言われるNECだとか富士通だとかはいまだに上流だとか下流だとかやってるんだよね
まあ平日の朝の10時に書き込んでる人を(俺も含めてw)どこまで信じるかという問題はあるんだけども
顧みるに、第二次大戦の時に八木アンテナってのがあったんだよね
当時は目視でやってたから新兵器のレーダーで目で見えないとこが見えるのは圧倒的なアドバンテージだったんだよね
日本が負けるのは「そういうとこ」なんかね
ソフトウェアがハードウェアの付属物扱いだった時代の名残でウォーターフォール開発してるだけなのに
最近は逆張りで「ウォーターフォールに向いているソフトウェア」とか言ってる奴が多すぎて辟易する
そもそもソフトウェアはハードウェアと違って「変更可能なもの」という定義なんだから
常に変化するのが当たり前で変化させてないのは単に人間が諦めているからに過ぎない
そして変化するのが当たり前なのに最初の仕様で全て解決できると思ってるアホがウォーターフォールにしたがる
とか言ってるから3DプリンタやTeslaやFintech系に良いようにやられてる
こういうこと言うと
とか言う奴も湧いてくるがミッションクリティカルな部分こそ継続的なインテグレーションで精度向上させるべきだしそうしてるんだよ
アジャイルだとバグが多いとか勘違いしているアホも多いけど何故?ウォーターフォールだとバグが少ないとか思ってる???
そしてこんな話は30年も前からずっと言われてるのに未だに(主に日本で)理解されてない
ちなみに30年前の時点で20年以上ソフトウェアやってる人達が
「ウォーターフォールは最悪で完全に失敗」
『呑み会は無駄!出勤は非効率で前時代的!有能な俺はリモート勤務で業務効率も高い!』みたいなブクマカよくいるじゃん?増田にもたまにいるけど。
君らが対面コミュニケーションが必要ないほどの簡単な仕事しか振られないのか、コミュ障過ぎて恩恵を得られないのかは知らないけど若い人が見たら勘違いしそうだからやめて欲しいんだよね。っていうか普通に社会人してたら顧客や同僚との雑談がきっかけになって良い仕事が出来たりとか、テレワークで細かい意図が伝わらずにコミュニケーションコストの大きさを感じたりする場面があると思うんだけど、全くないの?
そもそもこういう人達ってアジャイル開発がコロケーションを理想としていたり、グーグルが食事や酒を無料で提供してまで社員の交流を促進したりしていることと自分の意見の整合性をどうやって取ってるんだ?アジャイルは無能が使う開発手法でグーグルは無能企業なのか?マイクロソフトがリモートワークはコミュニケーションのサイロ化を進めるという論文を出したのも少し前に話題になったし、イーロンマスクだってリモートワーク否定派だよね。
自分も育児中だから呑み会に参加しづらい時があったりとか、子供が体調悪くて保育園から電話が来そうな時や休ませた時に病児保育呼んでリモートワークで柔軟に働けたりするメリットはわかる。リモートワークが無かった時代には戻りたくない。でも対面のコミュニケーションは絶対に必要だし、それなしで仕事をすることも考えられない。集中して作業が必要だから出社を命じたときにチームメンバーが非効率だからと拒否したら、諭した上で改善されなければ簡単な仕事しか割り振らないと思う。
長くなったが、結論としては呑み会や出社を拒否するのは自由だし残りの社会人生活をライスワークとして割り切るのは好きにすれば良い。でも若い人が出社や呑み会に行くのは無能なんだと勘違いして君らの側に落ちてしまうのは可哀想だから、『私はコミュ障なのでフルリモート呑み会不参加ですが、仕事に情熱があるなら得られる物をあると思います』と表現してくれ。間違っても呑み会、出社してる奴は非効率で無能なバカとマウントをとるのはやめろ。
アジャイル開発における受注者は最大の効率で稼働する箱に例えられ、インプットされた(箱に入れられた)要求・要望をその効率で実装してアウトプットされていく。効率は常に一定で発注者はコントロールすることはできない。
なので、受注側にいつまで必ずリリースする納期という考え方はなく、スケジュールは受注側で調整(=箱の効率から逆算し、箱に入れるインプットを調整する)することが求められる。
さらに、見積もり(ベロシティ?)は出すがそれも保証されるものではなく、問題が発生したら普通に遅れるし、特にリカバリという考え方もないらしい。
これまでの開発の感覚だと、進捗が遅れてたらケツ叩いて残業でも休日出勤でもさせて間に合わさせるという感覚だったが、出来高、ベストエフォートでよいというのは随分受注側に都合の良い制度だなと感じた。
こんなゆるゆるで開発になるのか??
なんじゃそりゃ。
世の中の自社サービス開発してる全てがアジャイル、とまでは言わんけど
基本的にサービスは開発して終わりじゃないし運用しながらユーザの反応見てニーズに合わせていく必要ある
流行りにのって機能増やしたり新しいHW出てきて対応増やしたりだとか
最初はシンプルなコア機能一本で動かしてたはずが「こういう別サービスと合わせて使うと便利」って声が増えると、じゃあそこ連携できるようにしていこか、って風に使われてるうちに立ち位置が変わっていくものもある
長期間かけて開発し終えたけど爆死しましたー!じゃ困るから、じゃあ小さめの機能で動かしてみて実ユーザからのフィードバック多めで手探りで……ってなるとどうしても小さく回していくことになる
ゴールを動かさざるを得なくて、そのためには小さく回すしかなくて……ってのがそもそもの出発地点だから
そこをユートピアだとか効能の一部だとか言われても、まあなんというか「俺の視界内にないものはこの世に存在しない!」って言いたいだけの人かな?としか
いや言いたいことはわかるんだけどさ
「真のゴール」を動かせる本物のアジャイルなんてどんだけの現場で実践できる? としか思わんわ
まぁ偽のアジャイルもあれはあれでメリットあるし、ウォーターフォールの最大の邪悪って「1ヶ月丸々後工程でまったく使いもしない詳細設計という名のUML図作ってエンドユーザー満足させるために『納品』する」とか、そういう全体スケジュールが狂いに狂いまくることだと思うからゴールが動くうんぬんはあくまで効能の一部だと思うよ
横だが、そういうのって「はてな」の見出しを見てるだけで目に飛び込んで来ないか? JavaScript関係だけでもこの20年間にどれだけ変化があったことか。他にもweb系で使われている言語の盛衰やフレームワークの入れ替わりとかだけでも凄いじゃん。今や Perl それ何? 状態だろうし、GoにSwiftにRustにCotlinにScalaにWebAssemblyにと次から次へと新しいものが出て来てるしバージョンアップでの変化もあるし。C/C++だけでもちゃんとついて行くには勉強し続けないといけないし。開発手法もアジャイルだスクラムだなんだと喧しいし、デバッグの手法関連もそうだし。今やデバッグドリブンで自動化でとかが当たり前っぽいし。
例えばフロントならReactなどのフレームワーク 10年前はJQueryあたりで法改正どころではないくらい違う
そもそもフロント自体がテンプレートエンジンからSPAへと大きくかわっている
スマホも10年前なら普及率1/4くらいでサイトのターゲット自体がPCからスマホに
2013だとJava7だけどJava7と8も大幅にちがうので8やった事ない人が今の俺のコード読んでも読めない
いまはクラウド当たり前だけど10年前ならまだまだオンプレでこれも法改正どころではないくらい違う
AIも全然話題じゃなかったしこれは線形代数や微分からやり直したけど何ヶ月もかかった
これにからんでPythonの興盛 まあ新言語1からやるのが大きな法改正くらいだろうか
C++がRustになんてのも俺はまだ手を出してないけどある
開発手法で言うとこの10年のウォーターフォールからアジャイルへの移行で仕事の進め方が他業種に転職以上に変わってる
このほか変わったことではないけれどアルゴリズムやデータストラクチャーデザインパターンなんかは本ちょっと読むだけじゃなくて実際に手を動かして体に身につくまでやる必要がある
普通に大量にあるな
この時期になるとずっと気象庁の気温ランキングを眺めて「今日も暑いなー」って見てるんだが
https://www.data.jma.go.jp/obd/stats/data/mdrr/rank_daily/data00.html
このページの「観測値」が昔からずっとバグっててめっちゃ気になってる
「35.9 ]」っていう感じで、「]」が入ってる
もうバグの原因はほぼほぼ目に見えてて、ここはJSONで「 [ 34.0, 34.5, 35.0, 35.9 ]」っていう値が入ってて
それをJSON.parseするんじゃなくてsplit()とか使ってしかもlength-1とかで最新値を取ってる
なので後ろの括弧がそのまま入ってしまってる
こんなのめちゃくちゃわかりやすいバグだし、多分気象庁側も把握してるんだろうけど
多分発注しないとダメとかテストが必要だとかでずっと放置されてる