←Older revision |
Revision as of 17:40, 28 October 2010 |
Line 109: |
Line 109: |
| needs. But I suspect nobody is really sure what that is. Except... | | needs. But I suspect nobody is really sure what that is. Except... |
| | | |
- | ...one of the problems in software development is associated with "big bang" | + | ...one of the problems in software development is associated with [[Big Bang]] |
| changes, that is, situations where you find that your product has too many | | changes, that is, situations where you find that your product has too many |
| bugs and design problems, to the extent that it is unfixable, requiring a complete rewrite. | | bugs and design problems, to the extent that it is unfixable, requiring a complete rewrite. |
| Coming to this point takes a very long time, with the evidence usually needing to grow over | | Coming to this point takes a very long time, with the evidence usually needing to grow over |
| several releases. However, there is a point in the lifecycle of most software | | several releases. However, there is a point in the lifecycle of most software |
- | projects where someone offers to perform a "bigbang" change. Initially, the offer is declined | + | projects where someone offers to perform a [[Big Bang]] change. Initially, the offer is declined |
| because everyone understands the rewrite will be painful and | | because everyone understands the rewrite will be painful and |
| costly. Yet, over the next releases, while the evidence mounts, the team | | costly. Yet, over the next releases, while the evidence mounts, the team |
Line 125: |
Line 125: |
| | | |
| The Practical API Design book describes best practices to avoid the need for | | The Practical API Design book describes best practices to avoid the need for |
- | these "big bang" changes. First of all it explains what compatibility is and | + | these [[Big Bang]] changes. First of all it explains what compatibility is and |
| advocates small, incremental, backwardly compatible changes, while always focusing on | | advocates small, incremental, backwardly compatible changes, while always focusing on |
- | future evolution. A mode of this kind does not need diruptive "big bang" changes at | + | future evolution. A mode of this kind does not need diruptive [[Big Bang]] changes at |
| all. On the other hand, sometimes such large changes are necessary. That is why the book | | all. On the other hand, sometimes such large changes are necessary. That is why the book |
| discusses ways to provide alternative co-existent behaviors and explains how | | discusses ways to provide alternative co-existent behaviors and explains how |
Line 133: |
Line 133: |
| | | |
| If we modularize our applications and treat each piece as a library with an | | If we modularize our applications and treat each piece as a library with an |
- | API, we can minimize the need for stop-the-world "big bang" rewrites and | + | API, we can minimize the need for stop-the-world [[Big Bang]] rewrites and |
| replace them with continuous distributed improvements. This is maybe slightly | | replace them with continuous distributed improvements. This is maybe slightly |
| more expensive at first, but the long term cost of ownership is definitely | | more expensive at first, but the long term cost of ownership is definitely |