私はスクラムで仕事を始めたばかりで、何かが欠けているようです。私はスクラムが初めてです


23

コードは、古典的なASP / ASP.NETの組み合わせの完全な混乱です。スクラムは、大きな混乱を修正するか、それを追加することで構成されます。書き直しを始めるのに忙しいので、不思議に思っています。

スクラムのどこに、開発者が十分に十分であると言うことができ、大きな書き直しを開始する時間を与えることを要求することができる部分がありますか?古いコードに「Stories」をパッチするだけの無限ループのようです。

そのため、コードベースがどれだけ悪くなったのか理解していないため、書き直そうとは思わない非技術的な人々によって物事が実行されています。

では、誰がこの大きな書き換えの変更を担当しているのでしょうか?開発者ですか?スクラムマスター?

現在の戦略は、時間を見つけて、より高いレベルの人が関与することなく自分でそれを行うことです。なぜなら、彼らは主に現在の混乱に責任がある<-からです->


20
シャムアジャイルは再びい頭を上げます...多くの企業は「アジャイル」であり、実際には「スクラム」を使用していますが、実際にはどちらも使用していません。
オデッド

4
あなたはスクラムをしていない

20
このの大きなポスターを印刷し、あなたの壁の右側にそれを配置することを検討して非技術的な人々は:明確にそれを見ることができ宣言ハーフArsedアジャイルソフトウェア開発のための 理論的には左音声素敵上の項目は、私たちがしている間...企業の会社は、我々は右の項目の外出せている方法はありません
ブヨ

12
Joelのブログへの必須リンク:joelonsoftware.com/articles/fog0000000069.html
marco-fiset

8
「<-insert暴言非ハイテク人々がhere-何をすべきかハイテクの人々に伝えるについて>」、経営陣は100%のパーセントは、ハイテクの人々に伝えるべきである彼らは管理とを担当している理由であること、やってビジネス彼らは何です、最善を尽くします。彼らが100%してはならないことは、彼らにそれを行う方法を伝えることであり、技術者は彼らがするように求められたもの技術的に達成する方法を決めるべきです。それ以外は完全にナイーブです!

回答:


7

これがなぜ人々にとってこれほど難しいのかはわかりません。彼のビジネスケースはここにあります。

We seem in an endless loop of just patching old code with 'Stories'.

開発者の時間はお金です。たくさんのお金。私は1年以上前にUIの改良を計画していた会社を辞め、スクラムを採用することで車輪の回転が止まることを望んでいました。何が起こった?同じオール '同じオール'。基礎となるコードベースが完全に時代遅れになったために、繰り返しごとに作成したコードの半分が無意味になっても、彼らは新しい機能を追加し続け、「技術的負債」にはビジネスケースがありませんでした。私が去って以来、彼らのフロントエンドで変化したものは一つもありません。私はそれを完全に改造するというまさにその目的のために連れてこられました。2か月間、私は実際にCSSやJavaScriptをなじみませんでした。1990年代後半から、HTMLと古代のJavaテンプレートシステムをいじっていました。

私の答え?あなたができることをしてください、しかし、他の開発者がすでにgivenめ、より実用的な期限を主張するよりもスプリントの目標を達成するために遅れて働いている場合、技術的な負債は実際にブロッキング問題であると主張し、最悪の事態を想定して新しい仕事を探し始めます今。開発者が懸念を伝えることができないか、許可されていないか、ビジネスがあまりにも近視眼的で、彼らがどれだけのお金を浪費しているのかを理解することができません。

これらの問題を無視すると、長期的には常にコストが高くなります。そしてもう少しではなく、もっとたくさん。開発時間が関係するのは胸が痛いだけでなく、知識が豊富で他のオプションを持っている開発者がペストのような会社を避けるため、才能レベルが低下することも避けられません。私の上司は開発者であり、会社の所有者です。他の優先順位に焦点を合わせて書き直すことはできませんが、一貫性のあるタイムシンクであるためにリファクタリングが本当に必要な場合は、適切なリファクタリングが行われます。そして結果は明らかです。新しい要素の変更と追加は、複数の要因により簡単かつ迅速になります。適切なアーキテクチャでは、かつて何時間もかかっていたことが数分かかることがあります。ビジネスはそれを聞きたくありませんが、そのために物事を保留する価値があります。

スクラムは、開発者があまり動揺しない環境、IMOでの失敗です。なぜなら、ビジネスタイプが、「成功したイニシアチブ」リストに載せることができる箇条書きを支持して、メンテナンスと更新を無視したいのは簡単すぎるからです。評価時間が来ます。彼らは常にこれらの問題を無視するようにロバに噛みついていても、彼らの皮と長期的な昇進の可能性を常に好むでしょう。

スクラムは、利益重視の業界であり、その一部です。企業はスクラムトレーニングに多額のお金を払います。採用を検討している人は、誰にマーケティングされているか、そしてそれが彼らの与えられた文化の中でどれほど現実的であるかについて慎重な目を向けるべきです。

とにかく、実際に開発、くだらないコードベース、耳にワックスを使った管理、棘のない開発者について気にするなら、悲惨さのレシピであり、有用な点でスキルセットを強化することはほとんどありません。問題を解決する努力が実際に成果上げているかどうかを実際に発見する前に、GTFOへのステップを開始することをheしないでください。


リファクタリングに関しては、人々がリファクタリングがすべての開発の一定の部分であることを「内部化」できないのは奇妙だと思います。問題があまりにもひどいときにあなたができることはあまりありません。
nicodemus13

1
または、単体テストがありません。:)単体テストの主な利点の1つは、自信を持ってリファクタリングできることです。優れた実践の最大の問題はすべてと同じです-それは規律を必要とし、一般的に人々は怠け者を好む。
nicodemus13

2
それまたは彼らは極端なコーディング集団からの別の贈り物であり、間違った手で悪い行動を可能にするツールに簡単に変えることができます。自動化されたテストは重要なポイントで役立ちますが、テストよりも健全なアーキテクチャとインターフェイスへの書き込みを好みます。
エリックReppen

1
私はそれが何でも同じであると言うでしょう、個人的に私はインターフェイスを定義するのを助けるためにテストを書きます。
nicodemus13

1
それから、最初の分析では簡単に捕まえられないかもしれない小さな例外があるので、すべてのクラッジの痛みが戻ってきます。
JBキング

33

もしあなたが本当にスクラムをやっているのなら、私は疑いますが、プロダクトオーナーが書き換えを決定する責任を負うでしょう。ほとんどの場合、書き換えは新しい機能を生成せず、新しいバグを導入するだけなので、良いアイデアではありません。

http://blog.objectmentor.com/articles/2009/01/09/the-big-redesign-in-the-sky
http://www.joelonsoftware.com/articles/fog0000000069.html

「書き換えは良い考えではありません」を展開するには:

漸進的な改善を試みることはほとんど常によりよいです。Jarrod Robertsonがコメントで書いたように、改善が必要なモジュールを見つけてそのモジュールの専門家になり、その特定のモジュールを改善するための次のスプリントのストーリーを書きます。そのモジュールが動作する必要がある理由を製品所有者に説明します。


8
あなたが主張するのと同じくらいの経験と知恵を持っている場合、ステップアップして、その失敗したモジュールを見つけ出し、それについての専門家になり、それを修正し、次にそれを書き直すためにビジネスケースをまとめるそのモジュールのエキスパートになります。

3
いくつかの混乱はクリーンアップする必要があります。Joelの記事を引用して、とにかく疑わしい統計なしに書き換えが失敗することはめったにないと主張します(書き換えが成功したことを自慢しているので)。
エリックReppen

3
@ErikReppenリビングルームが乱雑になったら、家を取り壊して新しい家を建てますか?
EricSchaefer

4
あなたが彼のコメントを読んだ場合、彼は居間について話していません。ある部屋がどこから始まり別の部屋が終わるかを伝えるのはおそらく難しいでしょう。そして家全体が燃えています。
エリックReppen

5
おっと、カウボーイ。「書き換えは良いアイデアではありません」という包括的な声明を出す前に、新しいテクノロジに移行し、時代に適応することがビジネスのITサバイバルに不可欠であるという真実でそれを修飾する必要があると思います。より新しい(できればより良い)技術とそれらがもたらす利点を採用しなければ、競争相手はそうするでしょう。これは一般的な技術に当てはまります。Model-Tは完全に優れた車両でしたが、競争と新しいテクノロジーの採用のおかげで、車は今日のより良い車両に何度も「書き直され」ました。
blesh

18

私は本当に鈍くなります...

  • この仕事の開発者を担当していますか?
  • あなたはプロジェクトリーダーですか?
  • 開発者はプロジェクトにどのくらいの「ステーク」を保持しますか?
  • 書き換えのビジネス上の正当性は何ですか?
  • 完全に役に立たず、回復不能にするコードベースについてはどうですか?

あなたは、あなたが仕事を始めたばかりであると述べましたが、あなたはすでにその状況のマスターであるように見えます。おそらく私はあなたの質問の意図を誤解しているかもしれませんが、あなたは多くの問題を抱えている仕事に就き、コードが壊れている唯一の方法である最も簡単な結論に飛びついたという印象を受けます書き直しますが、それを行うために雇用主の費用を本当に考慮しましたか?

既存のコードベースでは、状態がどれほど貧弱であっても、所有者は通常、コードが表す製品にかなりの投資をします。コードベースに関連する直接コストと間接コストの両方があり、コード資産の価値を下げるリスクがあるため、ソフトウェア開発者として書き直しが最後にしたいことがよくあります。尽力。

例として、Windowsのオペレーティングシステムを取り上げます。新しいバージョンが作成されるたびに、以前のバージョンから引き継がれた大きなコードの塊がありました。場合によっては、ライブラリとAPI全体がOSの複数の世代に渡って前方にドラッグされます。どうして?開発者は、これらの要素が機能し、テストされ、セキュリティとメモリの問題を防ぐためにパッチが適用され、修正されていること、そしてその状態に入るのに莫大な費用がかかっていることを知っています。メンテナンスコストが比較的高くても、最初から作業を開始するためのコストは常に高くなりますが、Microsoftの場合のように、銀行には数十億の銀行があります必要に応じて最初から始められるようにしますが、そうしません t投資からのリターンを最大化するため。あなたの雇用主は、プロジェクトに投入する現金が数十億ドルあるということを除けば、マイクロソフトと同じです。

そのため、このコードは混乱し、会社のさまざまな分野の間にコミュニケーションと境界の問題があるように聞こえます。これについてあなたや同僚は何ができますか?

1つの選択肢は、チームがこれまでと同じように継続し、将来の奇跡を期待することです。おそらく良い考えではなく、あなたの欲求不満とストレスを増やすだけでしょう。

より良いオプションは、単純にこじって仕事をすることですが、この一環として、最も脆弱であると思われるコード領域をサポートするテストを追加し、それらがより安定するまでリファクタリングする機会を探します。会社の投資を改善するという説得力のある議論をするだけで、すべてを捨てるのではなく、時間を節約できます。

さらに優れたオプションは、チームとして編成され、チームがコードベースを改善するための時間をスケジュールするための柔軟性を高めることができるように、十分な年配の人を確保することです。会社の忙しさやスケジュールの厳しさは気にしませんが、1つか2つの改善を行うために使用できるアクティビティには、時折「だまし」があります。ただし、他のタスクを完了しながら改善を行うことができればさらに良いでしょう。それが私なら、ソフトウェア開発者が読む標準的な本のいくつかのコンセプトをマネージャーに紹介し、それらを紹介します。 きれいなコードおそらくあなたのチームが最も必要とするものです。コードを改善する方法についていくつかの種を植え、あなたが何を意味するかのいくつかの例を提供します。特に技術的負債の概念を説明できる場合、優れたマネージャーはコードに漸進的な改善を加えることの価値を理解します。チームリーダーまたはマネージャーがコードを改善するための優れたビジネスケースを作成できるように支援してください。そうすれば、コードに基づいて行動するより良いモチベーションが得られます。

「コードが乱雑だ」と言うだけでも十分ではありません。同僚に常にきれいなコーディングを練習するように促し、きれいなコーディング手法を使用して、少しずつ片付けを促す必要があります。新しい仕事に就くたびに、小さなポスターを印刷して、オフィスの壁に掛けます。「常に、あなたが見つけたよりも少しだけ美しいコードを残すよう努めています」と書かれています。そのすぐ隣に、「ユリは金メッキする必要はありません」という別のコメントを追加します。どちらも、私が見つけたものを常に改善するよう努めるべきであるが、ある問題を別の問題と単純に金メッキすることを避けなければならないことを思い出させてくれます。大量の書き換えは、しばしば間違った理由で行われるため、最悪の種類の「金メッキ」です。まったく新しい製品バージョンがいつか正当化される可能性がありますが、


いいえ。私は担当していません。私はプロとして12年間、.NETで7年間コーディングした開発者です。私は多くの契約を結んでいますが、しばらくすると、コードの品質をすぐに感じることができます。「ステーク」はいくらですか?それがどういう意味かわかりません。今では非常に壊れやすい古いCLASSIC ASPを修正し、これらの変更が現代の優れたアーキテクチャの一部であった場合に比べて10倍の時間がかかることを修正できます。ビジネス上の正当性は、高い売上高のため誰も理解していないと思われるモジュールが原因で、サイトが現在生産中にクラッシュしていることです
パンクアウト

このコードベースがどれほど悪いのか理解していないと思います。その上、これはロケット科学ではありません。これはCRUD 101です。これはフォームを表示し、ユーザーがフォームに記入し、検証してから、データからレポートとPDFを作成できるようにします。それは基本的には..しかし、10年以上にわたってコードは非常に多くの部分に断片化されてきました。約20のプロジェクトの過去12年間の一部となって、これは実際に生産に使用され、私が見てきたコードの最悪の集まりに持っている...私はあなたのすべてを表示することができたいIVE
punkouter

私が最初にやっているのは、コーディングに情熱を持ち、最終的にこれを正しく行うことに関心があるチームのメンバーを見つけることです。理由の...それらの人々を見つけることは容易ではないbrucefwebster.com/2008/04/11/...
punkouter

16
@punkouter:ここでのポイントを理解していないと思います。コードベースが「不良」であることは、書き換えのビジネスケースではありません。コーディングに情熱を持ち、物事を正しくしたいということは、書き直しのビジネスケースではありません。コストのかかる生産上のバグと停止、そして些細であるが重要な新機能の実装に数か月かかる-これらは書き直しのビジネスケースを提供します。
マイケルボルグワード

1
@punkouter「死海」現象の説明へのリンクも特に適切です。損耗によって知識を失うことはビジネスにとって価値がなく、できることを取り戻すことは大きな価値があります。潜在的に高価で不必要な書き換えを回避するための時間の投資は、知識と専門知識を失うよりも大きなビジネス価値があります。優れた雇用慣行を奨励し、問題を切り捨ててシステムを改善するという課題に立ち向かうことは、少しの賞賛を獲得し、雇用主にとって価値ある資産になる機会です。
S.Robins

13

公式スクラムガイドからのスクラム開発チームの公式定義を以下に示します。あなたに直接関係する部分に重点を置きます。

開発チームは、各スプリントの最後にリリース可能な「完了」製品の増分を配信する作業を行う専門家で構成されています。開発チームのメンバーのみが増分を作成します。開発チームは組織によって構成され、自分の仕事を整理し管理する権限があります。結果として生じる相乗効果により、開発チームの全体的な効率と有効性が最適化されます。開発チームには次の特徴があります。

  • 彼らは自己組織化しています。開発チームに、製品バックログをリリース可能な機能の増分に変換する方法を伝える人はいません(スクラムマスターでさえも)。

  • 開発チームは職域を超えており、製品の増分を作成するのに必要なチームとしてのスキルをすべて備えています。

  • Scrumは、開発者以外の開発チームメンバーのタイトルを認識しません。その人が実行している作業に関係ありません。この規則に例外はありません。

  • 個々の開発チームのメンバーは、専門的なスキルと重点分野を持っている場合がありますが、説明責任は開発チーム全体に属します。そして、

  • 開発チームには、テストやビジネス分析などの特定のドメイン専用のサブチームは含まれていません。

そのため、開発チームは自身の混乱に責任を負い、チーム外の人に尋ねることなく、それ自体に対処する必要があります。

将来の見積もりの​​それぞれに技術的な債務修正時間を含め、提供するソフトウェアの品質が最高であることを確認してください。

完全に書き直す必要がある場合は、スクラムレトロスペクティブで問題に対処する必要があります。プロダクトオーナーは、最終的にプロジェクトをキャンセルし、新しいプロジェクトを開始できます。スプリントをキャンセルできるのはプロダクトオーナーだけです。


8
チームは自分の混乱に責任を負いますが、技術的負債と新機能の優先順位を選択することはできません。それを決定するのは製品の所有者です。POがバックログの優先度を決定すると、チームがそれを配信する方法を決定できるということです。「最初にYをリファクタリングしないと機能Xを提供できない」と言うことはできますが、「いいえ、申し訳ありません。新しい機能を最初から書き直すまで追加しません」と言うことはできません。
ブライアンオークリー

6
@BryanOakley:一から書き直すことは私が提案することではありません。開発チームが関係分野に取り組むにつれて、技術的な負債を徐々に減らすことをお勧めします。また、それに応じて推定することもお勧めします。

1
それは良いことですが、開発者が書き換えに必要なすべてのツールを使用するために新しいサーバー、新しいデータベース、新しいソフトウェアが必要な場合はどうでしょうか?また、唯一の「ストーリー」が現在の問題の修正に関するものであり、書き換えを許可するという概念についてではない場合、書き換えはどのように始まりますか?
パンクアウター

1
@punkouter:書き直す必要がある場合は、スクラム回顧展で問題に対処してください。その後、プロダクトオーナーは、現在のプロジェクトをキャンセルして新しいプロジェクトを開始する責任を負います。

5
書き換えるという決定が開発者に最もアピールするという理由だけで「正しい」決定であると想定しないでください。技術的な負債が増えるとはいえ、機能を今すぐ提供するビジネス上の理由がある場合があります。
DJClayworth

8

あなたがこれを説明し、私はSCRUMとは何かを持って何も表示されない、またはお使いの製品開発チームが問題であることを言わなければならない現在

これは正常です

あなたが説明するのは、コードベースの通常のエントロピーです。あなたの場合、チームはおそらく理想から遠く離れたところから始まったかもしれませんが、それでもすべてのコードベースは最終的には泥の大玉になります。

完全に完璧な グリーンフィールドのシナリオでは、絶対エントロピーから遠く離れて開始し、ゆっくりと進むことしかできません。

私は他の人に同意します、コードベースの混乱は開発者によるものです。これは、SCRUMの採用よりも何年も前のことです。

これは、書き直すという技術的または開発者の決定ではなく、ビジネス上の決定です。

製品の所有者が書き直したくない理由を知っているわけではありません。開発者としてあなたはそれが必要だと思いますが、それに対するビジネスケースは本当にありますか?

真のビジネスケースがある場合、手を振るだけではありません。「コードは私が望んでいるので、私はグリーンフィールドを開始したいレガシーな混乱です」、そして管理はその投資に対するリターンを考慮して、書き換えの費用を楽しませるでしょう。

あなたは一つの固体与えられていないビジネスケース、ちょうど再書き込み用の暴言あなたについての意見誰もがこの混乱を引き起こし、どのようにあなたはそれに対処する必要はありませんが。

証拠-利益は、OCDがクリーンなコードベースを必要とせずに、業務上の意思決定を動かして、動作中のソフトウェアを捨てる

実際に証拠を示すことができる場合、理論だけでなく、グリーンフィールドの書き換えにドルを費やすことで、時間枠内でビジネスのドルを作ることが保証されるという確固たる証拠(高い場合と短い場合)、経営陣から何らかの牽引力を得ることができます。これは、提示して証明できる可能性が非常に低いケースです。X X * NYNY

そうでなければ、あなたはそれに対処する必要があります、これは現実です。この壮大で完全な書き直しがないと絶対に前進できないという断固たる主張とは反対に、あなたが不満を漏らしているコードベースは今から5年後も誰かの機能と価値をどこかで提供し続けていると信じていますあなたは会社を辞めました。


1
それは、開発者が何らかの形でバージョン管理システムを内部的に使用する責任がないことを意味するものではありません。ストローマンでは、これらの200人の開発者は必要なことをしませんでした。経営陣は銃を頭に入れず、バージョン管理システムを自分でセットアップすることを禁止しました。

3
乱雑なコードベースは、管理者がコードを書くことに直接責任を負わないため、管理の直接的な結果になることはありません。そのシンプル。Manangementは、開発者にとって理想的ではない作業環境を用意し、育成する責任がありますが、バージョン管理の欠如などの問題を処理する責任は、実際の作業を行う人に常にかかっています。
ピーターランゲ

1
外部委託開発者は管理上の問題です。内側の人はよく知っていました。経営陣は、実際には20人の有能な開発者とうまくやることができたかもしれないが、200人の開発者を雇ってお金を節約しているふりをするのが好きでした。私が見た多くのスクラムの実装と同じように、採用された戦略は無能の産物であり、実際に会社の従業員である開発者が制御することはできませんでした。
エリックReppen

2
@Erikは、マネージャーが悪いコードベース(または部門で行われた他の悪い決定)に責任を負う必要はないと言っておらず、マネージャーはあなたが説明したシナリオなどの開発者が作業する環境を提供する責任を直接負いません。ただし、コードベースに直接責任を持つことができるのは、コード自体を書いている人だけです。
ピーターランゲ

3
また、開発者をビジネス目標に対して非公開にしないのは愚かなことです。実際に製品の動作を決定する人々からこのようなものを隠そうとする人々がなぜそうなのか理解できませんでした。企業の長期的な目標を知ることは、実際、アプリをどのように設計するかを知ることができます。また、少なくとも良い開発者は問題を解決します。常に問題を解決します。私たちの中には、頭の中でそれらを事前に予測して解決するか、少なくともコードの正しい扉を開いたままにしておきます。
エリックReppen

7

私は通常、人々が「大きな書き直し」を求めたとき、懐疑的です。確かに理にかなっているケースもありますが、ほとんどの場合、レガシーコードには価値があります(既に生産されており、その作成を促した目的で使用されているため)。多くの場合、大きな書き換えを行うことはアジャイルの反対です。新しいバージョンのアプリケーションを、既存のアプリケーションを実行可能な状態に置き換えることができるポイントまでどれくらいの時間がかかりますか。

私が好むアプローチはマーティンファウラーが絞め殺すstrと呼ぶものです。新しいアプローチを使用して新しい機能(既存の機能への変更を含む)を実装しますが、既存のアプリケーションを、新しい機能が成長できるトレリスとして使用します。これにより、両方の長所が得られます。大規模な書き換えが行われている間、すべてを停止する必要はありませんが、更新されたフレームワークを活用する新しいコードを作成する利点が得られます。それは間違いなく、きれいに始めるよりも難しいアプローチであり、それほどセクシーではないかもしれませんが、時代遅れなのでそこにあるすべてのものを捨てるよりもビジネスに多くの価値を提供します。


既存のベースが十分に混乱している場合、それは難しい場合があります。彼は、同じいまいましいサイトのために密に結合された完全に異なる著者による複数のレガシーasp.netシステムについて話している。Webフォームだけでも怪物であり、それが混在していると確信しています。
エリックReppen

ああ、私はそれが最も簡単なルートだとは言いませんでした...しかし、それは利害関係者にとってより好ましいです。また、一度確認してから、今日の最新で最高のものが明日になると、段階的に廃止しやすくなることを確認してください。
マイケルブラウン

同意する。しかし、Iveが言ったように(そして誰もがここにいるとは限らない)、現在存在しているのは、約9つの個別のWebアプリケーションのコレクションで、半分はClassic ASPで、残りの半分はASP.NEtの異なる形式です。すべてがデータアクセスなどを処理するためにまったく異なる方法を使用します。だから話されることを行う唯一の方法は、新しいコードが古いコードの一部であるように見えるようにUIを偽造することです。データベース.. 1つのテーブルには400のフィールドがあります!
punkouter

私は興味がある。その表は何を表していますか?これはi ++を見て以来聞いた最悪のことです。doSomething(i); 破壊されたJSPタグからこぼれた一部のコードで12回以上繰り返されました。
エリックReppen

5

私がどこにいるのか、これがどのように機能するのかが私たちのすることです。新しいストーリーを書き、それをプロダクトオーナーに渡してください。たとえば、「製品Xの開発者として、将来の開発がより効率的になるように、この領域のコードを書き直したいと思います。」受け入れ基準は、次の行に沿っている必要があります。この方法でより良いように。

あなたがいる状況については知りませんが、ここから最初からやり直したい場合は、製品の所有者と一緒に座って、なぜ彼らを説得し、既存のものを再作成するために物語の山を書くのでしょう機能。

悪いコードやレガシーコードに対処するために私たちが行った他のことは、ユーザーストーリーを外に出すときに再作業のためのタスクを含めることです。


開発者は「ストーリー」を書いて提出できますか?問題は、書き直しの理由が技術者にとっては扱いにくいことを説明していることです...私に言えることは、..「現在のコードは管理が難しく、壊れています」..
punkouter

6
@punkouter:書き直したい理由が純粋に技術的なものである(つまり、ビジネスにお金をかけない)場合、書き直す十分な理由はありません。
マイケルボルグワード

@MichaelBorgwardt:技術的な理由だけでは何かを書き換えるのに十分ではないと言っていますか?私があなたを正しく理解していれば、それは根本的に壊れたアプローチです。常に私の神経に乗る1つのことは、「ビジネス」が「IT」または部門が行うすべてを決定する通常のマスター/スレーブアプローチです。それはある程度まで真実です。ITには内部的な要件があり、ビジネスによって決定されることはありません。これは通常、欠落しており、目的に適さないソフトウェアではなく、設計されていないものです。
nicodemus13

1
@ user12355私が見たように、マイケルズのポイントは、もし彼らがお金を失っていないなら、それは彼らにお金をmakeけないだろうということであり、それからそれは決してないということです。彼らがお金を失っていないなら、書き換えは彼らにお金がかかります。回収できないお金。開発者は「このコードはダメ」という主張をすることもできますが、雇用主に金銭的利益を証明できない限り、自分でやらない限り、書き換えの許可を得ることはできません。
リグ

1
@ user12355:ユーザーストーリーには技術的な理由で間違いなく十分です。そのストーリーをリストの最上位に昇格させてスプリントに入れるには、必ずしも十分ではありません。
アダムV

4

大規模な書き換えを決定することはビジネス上の決定です。物事のビジネスの部分を担当する人々にあなたの視点で販売することにより、ビジネスの決定に影響を与えることができます。

しかしながら; あるイテレーションから次のイテレーションへのコード品質の変化は開発者の決定です。コード品質の低下を許容する場合、製品所有者の期待に応えるために技術的な負債を追加しています。あなたができることは、あなたが書いたコードの責任を取り始め、それがコードベースを改善することを確認することです。これは、技術的負債の量を継続的に減らしているため、速度を失うことを意味し、製品所有者はきっと失望するでしょう。コードの品質を低下させ、この問題を修正するための措置を講じていることを喜んで説明してください。

今、私はそれが恐ろしい一歩であることを理解し、重要な締め切り前にフィーチャーXを出すことができるようにもう1つのスプリントを遅らせたいと思うかもしれません。残念ながら、長く待つほど難しくなります。

ところで、これは厳密にスクラムの問題ではなく、スクラムに固有の解決策を提案するものでもありません。これは、開発者がコードの所有権を取得することに関するものです。


1
確かに、あなたが10年の絶え間ない売上高と、明らかによくコーディングできなかった、または現代のアーキテクチャを理解できなかった開発者による1回限りの歴史があるとき..あなたは私が今持っているものを持っています...このような低品質レベルのコードを見ることには慣れていません。新しい良いコードを書くことを楽しみたいという私の利己的な欲求だけでなく、他のすべての人のためにも書き直したいのです。彼らは私のように状況を理解していません。
パンクアウター

1
私はすでに言われたことだけを繰り返すことができます。正式には、今が大きな書き直しの時だと決めることはできません。コードベースを少しずつ痛みの少ない状態に段階的に変えるためにどれだけの労力が必要かを利害関係者に示し、それを完全な書き換えに要する労力と比較することができると思います。
Buhb

3

開発者は、コードベースの現在の状態を世界中に警告する責任があります。これは、毎日のスクラム、レトロスペクティブ、または単に非公式に発生します。当たり前のように思えるかもしれませんが、それが何であるか、そしてそれのためにどれだけの時間を無駄にするかを明確に表現しなければ、誰も気付かないでしょう。通常、スクラムマスターは、POとプロジェクトの担当者に情報を渡し、何かする必要があることを説得し、チームによるソリューションの実装を促進する責任を負います。

サイドノートとして、ビッグバンの書き直しはIMOが必ずしもこの種の問題に対する正しい答えではないということです。ただし、開発者は現在のコードベースにうんざりしているので、進捗状況を確認し、POに成果を定期的に表示して作業を正当化し、新しいユーザーを実装するフローを続けることができるため、よりクリーンなアーキテクチャに向けて小さな測定可能な手順を踏むことは多くの場合、より良いアイデアです無限のリソース独占変身で迷子になるのとは対照的に、物語を並行して。


前述したように、6つのクラシックASPサイト+ 4つの.net 1.1サイトがすべて1つのサイトに結合されたコレクションを使用する方法はありません。すべて異なる方法で異なる人々によってコーディングされています。
punkouter


数年後には来るかもしれませんが、緊密に結合されたレガシー.netサイトのさまざまなフレーバーは、それらの年にそれほど遠く移動する可能性はありません。
エリックReppen

もちろん、これらすべての.netサイトが機能し続け、その機能が直接または間接的に会社の収益を生み出し続けている場合、なぜ前進の勢いがそれほど重要なのでしょうか?収益がコードベースの品質によって直接影響を受ける場合、開発者と同じようにすべての住宅ローンが支払われるため、マネージャーは再設計に時間を無駄にしないと信じることができます。
ピーターランゲ

私の経験では、絶え間ない前進の勢いが一般的に問題の根本です。痛みは、ターンアラウンドの期待が衰えず、アーキテクチャの問題に耳を貸さず、スクラムが問題をさらに悪化させることなく、2週間ごとに新しい完全な機能セットを魔法のように開発しようとするときに始まります。私たちが直面しているタイムシンクを解決する代替案を考え出すことができない場合、物を引き裂く衝動に警戒すべきではない、と言っているわけではありませんが、メジャーの少なくとも2つの非常に良いケースを見てきました私のキャリアのオーバーホール。
エリックReppen

2

あなたが尋ねた:

スクラムのどこに、開発者が十分に十分であると言うことができ、大きな書き直しを開始する時間を与えることを要求することができる部分がありますか?古いコードに「Stories」をパッチするだけの無限ループのようです。そのため、コードベースがどれだけ悪くなったのか理解していないので、書き直そうとは思わない非技術的な人々によって物事が実行されています。

マネージャーと開発者の両方であるあなたの質問に対する最も簡単な答えは、スクラム、その他の方法論、または開発者が十分で十分だと言う力を持っているビジネスシナリオではないことです。リライト。ここの多くの人々は、書き換えが頻繁に悪い考えである理由を説明し、変化が漸進的で俊敏な方法でもたらされるべきであり、どのようにもたらされるべきかを説明するために、良い有効な議論をしました。そして、私は彼ら全員に同意します。

しかし、最終結果はさらに単純です。あなたはその決定を下すことは決してできません。あなたは従業員であり、あなたが本当に下す決定は、「これらの攻撃のために働き続けるか、私の狂ったスキルを恐れる新しい仕事を見つけるか」です。あなたの新しい仕事でもあなたはその決定をすることはできませんが、少なくともあなたが仕事から仕事に飛び移るとき、あなたはあなたの運命をコントロールしているように感じるでしょう。


1
私がここの行間を正しく読んでいるなら、あなたはあなたが新入社員に耐えることができないことに少し苦しんでいるように聞こえます。私が間違っていない場合、あなたの会社で働くのが嫌いなときに歩くのに十分なスキルを実際に求めている新入社員は、方程式の唯一の非定数であると考えましたか?
エリックReppen

1
程遠い。実際、私の部署の従業員は数年前から一緒にいました。私は実質的に転職することはありません。私がやろうとしていることは、最終的には、どんな企業でも、どんな業界でも、従業員が行う仕事は、従業員ではなく給料に署名する人次第です。従業員が下さなければならない唯一の決定は、上司が要求するときに私自身も含めて、従業員との関係を維持するかどうかということです。元のポスターは、従業員としていつ開発を指示するのかを尋ねました。答えは決してありません。
ピーターランゲ

それでは、「恐れる私の狂ったスキルズ」の特徴は何でしたか?この男は経験豊富な開発者です。そして、私が似たような状況での私の経験から、彼が話している問題は、彼のやり方を望むだけの問題ではなく、実際に進行中の災害であり、すべての人を悲惨にし、雇用主の無駄遣いに多大なコストをかけていることを伝えることができますおそらく実現するよりも時間と才能の保持。
エリックReppen

1
私はエゴに根ざした基本的な議論の誤りを説明していたからです。それはコードがどのように台無しにされているかという問題ではありません。開発方法論が彼のために何ができるかという問題ではありません。それは力に関する問題です。従業員との関係において意思決定を行う権限は、雇用主にあります。従業員が持つ唯一の決定力は、関係が重くなりすぎたときに関係をキャンセルすることです。
ピーターランゲ

1
私は同意します、スクラムはテクノロジーの負債を処理するのはお粗末です。しかし、元の質問の根拠には同意しません。彼は実際に雇用主/従業員の関係の質問をしていましたが、ちょうど質問でスクラムに言及しました。「クリスチャンとして、エンチラーダを作る最良の方法は何ですか?」本当に神学的な問題ではありません。私の宗教的な好みが関連していると勘違いしたとしても、料理についての質問です。
ピーターランゲ

1

私はあなたの痛みを感じますが、それがスクラムと何の関係があるのか​​分かりません。コードを書き直すかどうかの決定は、開発プロセスに依存しません。


2週間ごとに物事が完了することを約束する開発プロセスは、長年無視されてきた必要な大規模なリファクタリングの邪魔をするために多くのことをすることができます。スクラムトレーニングで私が最初に気づいたのは、彼らがテクノロジーの負債の問題にsort薬をかける方法です。あなたのアプリがよりスリムで意地悪になり、より速く物事ができると宣言するのはエキサイティングではありません。ビジネスタイプは、友人や投資家に見せることができる目に見える付加価値を求めています。
エリックReppen

1

待って…何?

あなたはしているパッチを適用しますかリファクタリングする必要があります。アジャイル値に固執します。TDDと適切なプラクティスを使用すると、状況は最終的に改善されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.