ソフトウェアの開発方法を改善したい。より速く、優れたコードを開発したい!今日、私はフリーランサーとしてウォーターフォール法を使用し、Webスタッフ(サイト、システムなど)を作成しています。このように動作するアジャイル開発(XP、SCRUMなど)を使用する方法はありますか?アジャイル開発について何も知らないのですが、どこから始めればいいですか?どうもありがとうございました。
ソフトウェアの開発方法を改善したい。より速く、優れたコードを開発したい!今日、私はフリーランサーとしてウォーターフォール法を使用し、Webスタッフ(サイト、システムなど)を作成しています。このように動作するアジャイル開発(XP、SCRUMなど)を使用する方法はありますか?アジャイル開発について何も知らないのですが、どこから始めればいいですか?どうもありがとうございました。
回答:
...ペアプログラミングを除き、必ず。;-)
真剣に、私もフリーランサーであり、アジャイル技術をできる限り使用しています。それは私にとって非常にうまく機能します。私はTDDを大いに活用し、
どこでもXPまたはスクラムの100%を使用している人はいませんが、誰もがその一部を使用して、自分に合ったものを採用しようとしています。私の意見では、採用するものが多ければ多いほど、より良い結果が得られます。
私が最も見逃しているのは、ペアプログラミングです。それを克服する方法は
私が使用するいくつかのリソースは次のとおりです。
したがって、アジャイルをフリーランサーとして使用することには、3つの主要な「素晴らしいポイント」があると思います。
大規模なクライアントの場合、反復で作業/請求します。反復の終わりに、顧客はプロジェクトの作業を続けるか、プロジェクトを終了できます(つまり、目標を達成しました)。私は(経験から)数週間以上は見積もることができないことを知っています。また、ペイパーイテレーションもキャッシュフローの流入を維持します。3か月のプロジェクトの6か月目に待機していて、プロジェクトを終了して、請求書を請求することができます...
アジャイルは、変化が起こることを意味します。サイクルの途中での顧客のリクエストのために、私はお金を失ったたくさんの固定入札プロジェクト(ウォーターフォールでできると思います)をしました。変更が発生します:顧客はチケットの優先度を下げて他の作業をより早く完了させることができます。あるいは、間違った予測をして、期待どおりに完了しなかったかもしれません。
優れた顧客コラボレーションツール。私の標準的な見積もり(反復の作業の価値よりも小さいもの)は、実際にはクライアントの期待に基づいた一連の行動駆動型の開発ステップです。これをクライアントに送信し、「これは正しいですか?」と言います。全員が同じページにいることを確認します。
おそらく動作する最も単純なもの。あなたが働いているとき、それは心に留めておくべきことです。クライアントに戻って、「この方法でやったら、これはもっと簡単に(またはより強力に、または何でも)... 」
スクラムは重要です。私は、クライアントのプロジェクトに毎日取り組むクライアントにメールを送るのが好きです。これは彼らに対する私のスクラムのようなものです。「私が今日取り組んだこと」、「彼らのプロジェクトで次に何をするのか/いつ行うのか」、「自分のやり方で何かありますか?」、「全体的にどのように進行するのか」 ?」
テスト駆動開発も、単一のプログラマとしても非常に便利です。私の「BDDストーリーの見積もり」は、このプロセスを養うのに役立ちます。
アジャイルの旅を始めるための素晴らしい方法は、かんばんシステムを使用してワークフローを設定することです。
単に3つのスイムレーンがあります。
このシンプルなアジャイルワークフローは、開始するのに最適な方法です。
コーディングに関しては、テスト駆動開発(TDD)を使用することをお勧めします。記事にはTDDを説明する多くの素晴らしいリンクが含まれていますが、ここでそれらを再コピーします。
詳細については、次のリソースをご覧ください。
あなたは個人であるため、アジャイル方法論にアプローチして、自分に最適なものを簡単に理解できるようにすることが最善です。「スプーンはありません」高原に到達するのを助けるためにありますが、それがどのように起こるかは完全にあなた次第であり、最終的に思いつくことはさまざまなレベルのいくつかの方法論と大きく重複しますが、完全にあなたのものになります。
全体的な有効性を向上させるために独自の方法を見つけようとしているので、少なくとも私がやったのと同じ間違いをしないようにするのに役立ついくつかの指針があります。
可能な限り、アジャイル方法論のみを対象とするすべてのソフトウェアソリューションを放棄します。
チームの共同作業を促進するのにより適しているという事実は重要です。誘惑に抵抗します。あなたは物事を行う方法で自分自身を囲みませんし、それを採用することが最高にうまくいくことを願っています。そうではなく、単にあなたをイライラさせます。最初に物事のやり方を見つけてから、適切なソフトウェアソリューションを探します。ストーリーとポモドーロテクニックを追跡/開発するために、ホワイトボード(最初は1つでしたが、現在は部屋に2つあります)を使用することになりました。To Doリストは、私の開発タスクを追跡するもので、2011年の始まりです。IronMan 2のインターフェイスや空飛ぶ車などのインターフェイスが表示されるまで、基本を守ります。
反射、反射、反射
これが、個人の方法論の中で最も重要な部分であると理解するようになったものです。このワークフローを開発することで、プロジェクトの全体像を把握できるので、何をする必要があるのか、いつ管理しやすいのか、悪い決定がめったに行われず、すぐに修正できるように目立つ場所を追跡できますダメージを与える前に...しかし、ただそれを棚から選ぶことはできません。どこからでも、どこからでも始められます。それが機能する限り、あなたはそれを使い続けます。善、悪、まあまあの追跡に投資します。前提を改善し、それに応じて物事のやり方を調整します。それがあなたの改善の唯一の方法です。
締め切りを怠り、どれだけ速く物事を成し遂げるかに集中する
私が始めたとき、私はおそらく次の男のようで、日付を追いました。バーンアウトチャート?以前は、開発トラックを期限に照らして視覚化する方法と考えていました。これはパフォーマンスであり、推定モデルではありません。期限を遅らせる前の距離を表すための単なる愚かな値だけでなく、特定の時間枠内で行った作業を反映することにより、有効性を測定する時間があります。現実には、処理が完了すると処理が完了し、方法論でそれを説明する必要があります。
それに応じて逸脱する
最後に、ユーザーストーリーを使用する必要がある、またはそのことについて私たちが知っている何かを使用する必要があると誰が言いますか?そのように考えないでください。機能について考えるのがより快適であれば、結局はグローバル開発コミュニティに逆らって自分のやり方でやる必要があります。あなたが何か間違ったことをしているように感じたら、おめでとうございます-あなたは今、何か他のものに飛び込む時だと結論付けました。方法ではなく、内容についてです。
もちろん、Waterfall以外の設計手法を採用することは、ビジネス要件に応じてプロジェクトのライフサイクルを効果的に管理するのに非常に役立ちます。アジャイル開発には、膨大な数のオンラインリソースがあります。TDD(テスト駆動開発)を組み込んだAUP(アジャイル統合プロセス)を検討します。これは、大規模でスケーラブルなシステムを構築/管理するときに非常に役立ちます。
「万能な」方法論は存在せず、これが膨大な数の異なるアプローチの主な理由です。現在、開発プロセスのどこにボトルネックがあると感じているのかを考え始め、それを克服するための新しい方法論を採用しようとします。
たとえば、締め切りに間に合わないことがよくありますか?新機能は多数のバグをもたらしますか?新しい要件は大規模な再開発を引き起こしますか?ビジネスでは、定期的に稼働するシステムを提示する必要がありますか?チェックアウト:アジャイル、反復、アジャイルイントロ。