ソロプログラマー向けのソフトウェア開発におけるベスト/よく知られているプラ​​クティスの最小サブセットは何ですか?[閉まっている]


16

私は長い間仕事で孤独なプログラマーでした。通常、私は記事や記事を読んだことがあります

  • バージョン管理システム
  • 継続的インテグレーション/配信
  • 開発方法:スクラム、ウォーターフォール、Vモデル、アジャイル、XPなど。
  • ソフトウェアプロジェクト管理

しかし、それらのほとんどすべてがTEAMSに焦点を当てているようです。私はチームではないので、たった1人のプログラマにとって絶対に最低限のプラクティスは何でしょうか?以下の条件を考慮してください。

  • 他の人のコードとの競合はありません。
  • ファイル/ディレクトリツリーを維持する必要はありません。私の開発環境では、バージョン管理自体が重要です(イメージベースの開発)。
  • 正式な要件はありません。ユーザーは自分が何を望んでいるかわからず、それで問題ありません。
  • リリースやドキュメントの配信に興味を持っているのは私だけです。基本的に顧客は結果を望み、ソフトウェアの方法論などは気にしません

私の考えでは、顧客の要件に直接関係のないものに時間とエネルギーを費やしたくはありません。推奨事項はありますか?


バグ修正を行う必要があるリリースはいくつありますか?

回答:


17

それは各人に依存するため、この質問に対する正しい答えはありません。iPadを使用してすべての開発作業を行い、クライアントが満足している場合、変更する理由はまったくありません。

ただし、私があなたの立場にあった場合、私は以下を強く実施します

  • バージョン管理システム -イメージベースの開発システムが定期的なバックアップなどについて仕事をしていると思うかもしれませんが、通常はブランチを使用する実験的な機能のための余地はありません。また、プロジェクトの重要なバージョンを保持する方法もありません(タグ付け)。あなたが自分自身を超えて拡大する場合、参加する開発者は彼らが地獄にいると思うでしょう。
  • アジャイル -この方法は、自分が何を望んでいるかわからないクライアントに非常に適しています。遅かれ早かれ、彼らは自分たちのしっぽを追いかけるためにお金を使いたくないことに気付くでしょう-彼らは進歩をたいと思うでしょう。
  • プロジェクト管理ツール -これは必須です。すべてを頭の中に保持できるのは非常に恐ろしいことですが、そうする必要はありません。規律を守ってプロジェクト管理ツール(Redmineなど)を使用すると、タスクを分離し、作業の履歴を簡単に参照できます。1時間ごとに充電を開始する場合は非常に重要です。

アジャイルおよびプロジェクト管理の場合は+2。ただし、実験的な機能については、通常仮想イメージ(分岐と同等)を分岐し、最終的には環境の別のインスタンスを開きます。お返事ありがとうございます。
user869097

16

バージョン管理は、一人でもプログラマにとって絶対に必要なものです。つまり、削除されたファイルや、間違っているだけの複雑な変更から簡単かつ迅速に回復できるということです。

基本的に、二日酔いで仕事に行くときに行う愚かなたわごとからあなたを救います。


1
それだけがメリットではありません。主な利点の1つは、ソフトウェアの以前のバージョンを再現できることです。そして、それは問題を再現しようとするとき、および/または問題がいつ導入されたかを判断するときに役立ちます。
マルジャンヴェネマ

2
プラス1は、二日酔いの脳を救ったからです。
ニコラススミス

1
また、枝。多くの場合、重大な変更を開始し、グラフィックスやその他のマイナーなものを置き換えてリリースするようにという状況に陥りました。ブランチを使用するのは非常に簡単で、マスターブランチに切り替えてソフトウェアを構築するだけでした。それなしで?破壊的な変更を完了するか、安定したリリースを生成できるように元に戻すために、髪を引き出しました。
タマスゼレイ

1
便利なチェックインコメントを書いていると仮定すると、「この山積みのジャンクを書いたときに私は何を考えていたのか?」という質問に答えるために時間をさかのぼる素晴らしい方法も得られます。
ネッド

1
@ user869097、SEサイトの意図の一部は、質問と回答が元の質問の質問者以上に役立つことです。あなたの異常な要件がバージョン管理を非現実的にするかもしれませんが(そして、あなたの分岐方法論はマージを許可していないように見えるので、私は完全に納得していないと言わざるを得ません)、バージョン管理を使用していない独身の開発者の大多数はそうすべきです。
ピーターテイラー

6

他の人が言うように、バージョン管理またはソースコード管理は非常に重要です。DVCSを使用して、それに関するすべてを学びます。どちらを使用するかは重要ではありませんが、人気のあるもの(gitまたはmercurial)を選択した場合にはメリットがあります。

私が言及しなかった別のことは、ワンステップのビルドスクリプトです。これはストレートな継続的インテグレーションではありません(そのフレーズは私の意見ではBSになりやすいです)が、非常に便利なツールです。緊急の更新を行う必要があるときはいつでも、スクリプトを実行するだけで完了します。プロジェクトの終わりに近づくと、1日に複数のビルドが必要になることもあります。私の経験では、ビルドプロセスがそれほど複雑ではない場合でも、大きな成果が得られます。ftpアップロード機能、電子メールでのレポート、単体テストの実行、インストーラーの構築、署名などを追加することもできます。スクリプトを最初から作成しておくと、プロジェクトの進行に応じてより多くの手順で簡単に維持および拡張できます。


2

1つだけお答えします。バージョン管理は、プロジェクトだけでなく、プロジェクトにとっても非常に重要です。それを使用しているときは非常にわずかな余分な時間がかかりますが、それはあなたが頼りになる豊かな歴史を提供します、それは銀の弾丸ではありませんが、それが本当に実際のコピーに戻ることができることは確かに素晴らしいことです実験的な機能により、ほとんどのアプリケーションが壊れています。


2

バージョン管理は絶対必要です。ソースを正常に保つためだけでなく、ソースの考古学のためにも。奇妙なコードの一部を「修正」しようとすると、クラスまたはプロシージャがどのように進化したかを確認できてから1年で、多くの苦痛を軽減できます。

方法論については、プログラママニフェストを強くお勧めします。通常、オーバーヘッドがゼロであり、J2EEポートレット対応のJSR準拠のMVC役割ベースのCMS Webサービスアプリケーションコンテナフレームワークがどのように機能するかを頭の中に保持する必要がないため、小規模なチームで大きな成果をもたらします。

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