web-dev-qa-db-ja.com

一人のプログラマーのためのソフトウェア開発における最良の/よく知られた慣行の最小のサブセットは何ですか?

私はずっと長い間、孤独なプログラマーでした。通常、私は記事や投稿を読みました

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

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

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

私の見解では、顧客の要件とは直接関係のないものに(多すぎる)時間とエネルギーを費やしたくないと考えています。何かお勧めですか?

16
user869097

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

ただし、私があなたの立場にあった場合は、次のことを強く実施します。

  • バージョン管理システム-イメージベースの開発システムが定期的なバックアップなどの仕事をしていると思うかもしれませんが、実験的な機能のためのゆがみの余地はありません通常は branch を使用します。また、プロジェクトの重要なバージョン( tagging )を保持する方法もありません。自分だけに拡大すると、参加する開発者は自分が地獄にいると思うでしょう。
  • Agile-この方法は、何が必要かわからないクライアントに非常に適しています。遅かれ早かれ、彼らは彼らのしっぽを追いかけるためにお金を費やしたくないことを理解するでしょう-彼らは進行状況を見たいと思うでしょう。
  • プロジェクト管理ツール-これは必須です。頭の中ですべてを保持できることは非常に手ごわいですが、そうする必要はありません。規律を守り、プロジェクト管理ツール(例: Redmine )を使用すると、タスクを分離して、簡単に参照できる作業の履歴を取得できます。 1時間あたりの充電を開始するタイミングは非常に重要です。
17
J.K.

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

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

16
Tom Squires

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

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

6
Tamás Szelei

チームのプロジェクトだけでなく、どのプロジェクトにとってもバージョン管理は非常に重要です。それを使用しているときは非常に少し時間がかかりますが、頼りになる豊富な履歴が提供されます。これは特効薬ではありませんが、実際に作業コピーに戻すことができるのは確かに素晴らしいです。実験的な機能により、ほとんどのアプリケーションが壊れています。

2
Nicholas Smith

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

方法論-私は強くお勧めします プログラママニフェスト 。オーバーヘッドがゼロで頭に留める必要がないため、通常は小規模なチームで優れた結果が得られます J2EEポートレット対応のJSR準拠のMVCロールベースのCMS Webサービスアプリケーションコンテナーフレームワークの仕組み

2
Daniel Iankov