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