web-dev-qa-db-ja.com

ソフトウェア開発方法論の中断

私は困っています。私のチーム(私を含む3人の開発者)はモバイルとバックエンドの開発に取り組んでおり、このプロセスを注文しようとしていくつかの問題に取り組んでいます。私の状況を説明しようとしましょう。私たちのチームには2つの主な問題があります。

  • テスターなし(開発者は独自のコードをテストします)
  • 別のことをするために、スプリントに沿って多くの中断が計画されていませんでした

私がそれを修正できると思っていること:

  • テストについて(モバイル):コードのほぼすべての行とすべての画面をカバーするユニットテストと自動化テスト
  • テストについて(バックエンド):単体テストと継続的インテグレーション
  • 中断について:スプリントを使用しなくなり、膨大なバックログを保持し、この量からタスクを取得し、必要に応じて他のタスクを追加し、プレビュータスクを進めます。これらすべてが、何が行われたかについて毎週レビューを行います。

私が直面すると思う問題:

  • 毎週のレビューを行っていても、今ではこの膨大なタスクの山があるため、トラックを失いました
  • より高価な開発プロセス

私が何をすべきか、またはこの行き止まりからどうやって抜け出すことができるか、あなたは何か考えがありますか?

2
guisantogui

たった3人の開発者で、かんばんはスクラムよりも適していると思うかもしれません。

これにより、スプリントを再起動しなくても、システム内の割り込みを処理できます。

テスト段階があり、専用のテスターがいないことを承認する限り、再テストは大きな問題にはなりません。

ただし、そのテスト環境と自動テストがあることを確認してください。単体テストは開発を迅速化するのに役立ちますが、各画面のフロントエンドテストは、完了の定義に必要なものです。

4
Ewan

テストについて

テスターなし(開発者は独自のコードをテストします)

すべての開発者が自分のコードを他の場所に送信する前にテストすることを心から望んでいますが、専用のテスターを持つことは、2番目の目にとっても素晴らしいことです。たとえば、コードのピアレビューを行うことで、専用のテスターがいなくても、この2番目の目を取得できる可能性があります。

自動テストに関しては、次の点を考慮してください。これらのテストを作成するには、多くの時間と集中的な労力が必要です。彼らはおそらく良いでしょうが、それはあなたの時間のほとんどすべてを吸収するであろう巨大な仕事です。レインボーの終わりには間違いなく金の壺がありますが、実際には、本当にこれらのテストの範囲を重要な関数と実行パスに制限する必要があります。時間の経過とともにテストスイートを構築します。

テストの欠如とコードのテストが多くの中断を引き起こす理由である可能性が非常に高いですが、新しいコードのより良い目標を確立しようとする前に、作成したすべてをテストするという目標を持つ代わりに。新しい関数を作成する場合は、そのテストを作成します。古い関数を更新し、テストが存在しない場合:それらを記述します。

中断について

別のことをするために、スプリントに沿って多くの中断が計画されていませんでした

私もこのように働いてきましたが、何をすべきかは本当に中断に依存します。あなたは本当にそれらのいくつかから逃げることができません。 「次のスプリントでサーバーを復旧して実行する」と誰かが言うのを聞いたことがありますか?

中断はいくつかの副作用であり、痛みを和らげるのに役立つ特定の治療法がありますcould。リリースするための手順を実行してみてください。

  • 安定したコード
  • バグのないコード
  • 意図したタスクを実行するコード

前述のいくつかのものがこれに役立ちます。コードの安定性とバグがないことのより良い検証は、これらの問題のいくつかをあなたのテーブルから遠ざけるはずです。

誰かがコーディングを開始する前にタスクが適切に指定されていることを確認することは非常に便利であり、人によってまったく行われないこともあります。小さな会社で働いている私は、私がプログラミングするものを使用しようとしている人のところまで歩いて行き、彼らに彼らの問題について教えてくれるように頼むのが好きです。これはあなたにとって実行可能ではないかもしれませんし、会社の規模や文化によっては完全に不可能かもしれません。 Joel Spolskyは、 仕様書の作成 に関する興味深いシリーズを持っています。

さらに、Ewanが言ったように、副業から多くのタスクが入ってくる場合、かんばんは優れたツールになる可能性があります。優先順位が付けられたバックログを保持し、新しい重要なものが入ってくるたびに、それを一番上に(または他の適切な場所に)配置します。

場合によっては、中断の意味について新しい要件を設定する人々を教育する必要もあります。実行するタスクに優先順位を付ける必要がある演習を行うと、通常、すべてが最優先事項であると言われ、これはすべての最優先事項が迅速に実行されることを意味するとどういうわけか信じています。結局のところ、誰も優先度の低いことに力を入れていません。ここでは、中断にはもっと時間がかかることを人々に教えることが重要です。もう一度Joel Spolskyを参照してください 有害と見なされるヒューマンタスクスイッチ 。さらに、開発者にそのインディゴをマゼンタ色に変更するように依頼することが本当に緊急であるかどうかを人々に自問してもらいます。

一般的な推奨事項

現在のプロセスが機能していないか、十分に機能していない場合は、恐れずに変更してください。特定の変更がうまくいかない場合は、別のことを試すか、以前の方法に戻ることができることに注意してください。大きな変更を加えたり、すべてを同時に変更したりしないでください。ただし、プロセスを段階的に改善してください。コードを改善するようにプロセスを改善します。

3
Robzor