Re: Difference between Design and Architecture



Robert Martin wrote:

When you break the software up like this, you also break the software. You introduce bugs that can be very hard to find. However, if you have written the application using TDD; you have tests that can show you when you have broken functionality. Thus the tests allow you to make the changes with full knowledge of the side effects.

I am slightly confused here. Do you use "TDD" and "tests" as synonyms,
or are you implying that TDD is the only way to produce tests?

The tests are the lubricant that make the changes much more reliable. The tests also allow the changes to be made incrementally. Thus TDD is a major aid to scalability.

Aren't you comparing apples and oranges? It seems to me that you are
arguing, analogically speaking, that a seat-belt is more important than
a map when you have to drive to a new place. However, both serve
different purposes.

You have argued, to use software architecture terms, that testability is
important because it affects reliability, which is just fine. However,
reliability is not scalability.

You have argued that tests are important to restructuring, which is also
fine. However, restructuring is directionless, whereas architecture is
about direction.

Architecture will help you to make scalability decisions about:

o Centralized versus distributed architecture
o Concurrency
o Load-balancing
o Data strategies (e.g. stateful versus stateless servers)
o I/O strategies (e.g. synchronous versus asynchronous interaction)
o Caching strategies

If you wish to argue that TDD is more important than architecture, then
you need to start by addressing how TDD helps me to make these
decisions.

--
mail1dotstofanetdotdk
.



Relevant Pages

  • Re: Difference between Design and Architecture
    ... or are you implying that TDD is the only way to produce tests? ... also a way to decouple systems which, incidentally, makes them more ... This decoupling enhances scalability. ... architecture, and architecture is not more important that ...
    (comp.object)
  • Re: Difference between Design and Architecture
    ... Or is architecture the goal, and the map is one of our tools to get to it? ... What I am really interested in, is learning why Bob claims that TDD is ... more important for scalability than architecture. ...
    (comp.object)
  • Re: Difference between Design and Architecture
    ... or are you implying that TDD is the only way to produce tests? ... reliability is not scalability. ... However, restructuring is directionless, whereas architecture is ... easier to delay and defer. ...
    (comp.object)
  • Re: Difference between Design and Architecture
    ... or are you implying that TDD is the only way to produce tests? ... You have argued, to use software architecture terms, that testability is ... supporting 500,000 busy hour call attempts. ...
    (comp.object)
  • Re: Difference between Design and Architecture
    ... Why is TDD much more important to scalability than architecture? ... Because when you attempt to increase the capabilities of an application you must decouple parts of it that you hadn't thought about decoupling previously. ... You must break the application into pieces that can be positioned approriately within a larger and faster physical architecture. ... if you have written the application using TDD; you have tests that can show you when you have broken functionality. ...
    (comp.object)