あなたが会社で働いていて、あなたがしていることは彼らのためにソフトウェアを開発しているとしましょう。あなたは全体像を知らないか、わずかかもしれません。あなたが持っているのは、問題追跡システムを介して割り当てられたタスクです。タスクが与えられ、タスクがそれらを説明するように動作させ、送り返します。2つの整数を追加するのと同じように:
function add(a,b){return a + b;}
しかし、後でプロジェクトが進むにつれて、add
より複雑になるにつれて、パラメーターを追加して値を返す関数だけでなく、何らかのアーキテクチャが必要になっていることに気付くでしょう。しかし、あなたはそれを知りませんでした。そもそも、彼らが必要とするのはその単純なことだけでしたadd
。addがそれほど複雑になるとは思わなかった。
プロジェクトはより多くの機能を備えて進行しますが、そもそもこれは期待していなかった機能です。そして最後には、既存のコードを壊したり書き換えたりすることを避けるために、ハッキングを積み重ね続け、関数のレイヤーを重ねます。
これらの状況にどのように対処しますか?「最低開発者」としての技術的負債とどのように戦いますか?
明確化:
あなたは「実装者」であり、階層の最下位です。
問題は見えますが、問題については発言権がありません。
技術的な負債を定量化したり、ツールを探したりするわけではありません。
3番目の「重複」について
- リファクタリングとリライト-あなたはあなたのタスクにロックされています。あなたは余分に行うために支払われていません。
- アーキテクチャの概要-システム全体は知っていますが、アーキテクチャについてはわかりません。
- コードフリーズ-電話ではありません。あなたは管理者ではありません。
- モジュール化-アーキテクチャのアイデアはありません。モジュールは要件の変化に応じて変化します。
- 自動テスト-なし。