Planning
Architecture
Requirements
a Wicked Problem
Requirements checklist
Definizione del progetto web
Using Agile to Recover a Project
How to Avoid Project Failure
Project Triangle
Requirements Are Not
Feed The Beast
How they make it
Laws of Computer Programming
Computer Programming Quotes
Bug fixing and reparations
Eight Tips on How to Manage Feature Creep
Avoid Scope Creep in Enterprise Software Implementation
Top 16 Things That absolutely Annoy Programmers
Universal methods of reducing complexity
What Is Software Design
Construx: An Ounce of Prevention
What can we learn from software engineering and why?
Formal Specification
Google Ventures workshop
Front End Concepts
IT Architecture  
Architecture
The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr.


Architecture
The concept of IT architecture according to Frederick P. Brooks in his "The mythical man-month : essays on software engineering" depends on ICT context: ICT systems, compiler, shell/command interface, ICT infrastructure, etc.
.
By the architecture of a system, it means the complete and detailed specification of the user interface.
For a computer this is the programming manual.
For a compiler it is the language manual.
For a control program it is the manuals for the languages or languages used to invoke its functions.
For the entire system it is the union of the manuals the user must consult to do his entire job.

The architect of a system, like the architect of a building, is the user' agent. He is end-user advocate and protects and communicates his interests to developers. It is his job to bring professional and technical knowledge to bear in the unalloyed interest of the user, as opposed to the interests of the salesman, the fabricator, developer, etc. [2]

Architecture must be carefully distinguished from implementation. As Blaauw has said, "Where architecture tells WHAT happens, implementation tells HOW it is made to happen." [3] He gives a simple example a clock, whose architecture consists of the face, the hands, and the winding knob.
When a child has learned this architecture, he can tell time as easily from a wristwatch as from a church tower.

The implementation, however, and its realization, describe what goes on inside the case--powering by any of many mechanisms and accuracy and control by any of many.

(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., © 1985, Software engineering, p.45 )

[2] Brooks, F. P. "Architectural philosophy," in W. Buchholz (ed.), Planning A Computer System. New York: McGraw-Hill, 1962.
[3] Blaauw, G. A., "Hardware requirements for the fourth generation," in F. Gruenberger (ed.), Fourth Generation Computers. Englewood Cliffs, N.J.: Prentice-Hall, 1970

p.49
architecture, implementation, and realization.
As Blaauw... total creative effort involves three dis
tinct phases:
(1) architecture,
(2) implementation, and
(3) realization.
It turns out that these can in fact be begun in parallel and proceed simultaneously.
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., © 1985, Software engineering, p.49 )

pp.256-257
The architect.
I argue in Chapters 4 through 7 that the most important action is the commissioning of some one mind to be the product's architect, who is responsible for the conceptual integrity of all aspect of the product perceivable by the user. The architect forms and owns the public mental model of the product that will be used to explain its use to the user. This includes the detailed specification of all its function and the means for invoking and controlling it. The architect is also the user's agent, knowledgeably representing the user's interest in the inevitable trade-offs among function, performance, size, cost, and schedule. This role is a full-time job, and only on the smallest teams can it be combined with that of the team manager. The architect is like the director and the manager like the producer of a motion picture.

Separation of architecture from implementation and realization.
To make the architect's crucial task even conceivable, it is necessary to separate the architecture, the definition of the product as perceivable by the user, from its implementation. Architecture versus implementation defines a clean boundary between parts of the design task, and there is plenty of work on each side of it.

Recursion of architects.
For quite large products, one mind cannot do all the architecture, even after all implementation concerns have been split off. So it is necessary for the system master architect to partition the system into subsystems. The subsystem boundaries must be at those places where interfaces between the subsystems are minimal and easiest to define rigorously. Then each piece will have its own architect, who must report to the system master architect with respect to the architecture. Clearly this process can proceed recursively as required.

Today I am more convinced than ever.
Conceptual integrity is central to product quality. Having a system architect is the most important single step toward conceptual integrity. These principles are by no means limited to software systems, but to the design of any complex construct, whether a computer, an airplane, a Strategic Defense Initiative, a Global Positioning System....

(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., © 1985, Software engineering, pp.256-257 )