| Lesson 7 || Architects, engineers, and developers |
| Objective || Distinguish between the Role of an architect and the role of a developer/engineer. |
Architects, Engineers and Developers
Few municipalities would allow a general contractor to build a commercial building without an architect on the job.
Using blueprints, the architect is required to demonstrate the building's conformance to local codes. It is the architect's responsibility to ensure the structural integrity and quality of construction and even though the general contractor may perform the work.
In e-engineering, the same analogy applies:
- The architect provides blueprints of the commercial enterprise in which the building blocks are specified.
- A developer or engineer provides the implementation according to the specification.
What can happen when a developer tries to be an architect?
A retailer went with a specific "architecture" because one of their Web developers was familiar and experienced with that platform and tool set.
Both the retailer and the developer thought that this choice would allow them to go online rapidly and be cost-effective through a reduction of development time.
Both the retailer and the developer neglected to consider the ongoing effort to manage and extend the platform.
No tools could be found to interface with the retailer's product data system. In addition, no tools could be found to work with the Web commerce engine to make it easy to refresh the product data.
As a result, the retailer had the following choices:
- Continue using a manual process to update product data on the site.
- Develop a custom tool that further locks them into their chosen architecture.
- Start all over again.
Would you like to present these choices to a client?
I would guess no, but what is the answer? The answer is simple: prevent this dilemma from occurring through solid up-front architecture.
Developer Architect Challenge
||Developer or Engineer
|Look at the interface between the system and entities outside the system boundaries. Is concerned with how well the system behaves in its environment
|| Is concerned with how well the operates within itself, irrespective of the entities or systems that interact upon it.
|Looks for emergent behavior
||Is concerned with how system behavior is implemented. Focuses on what is planned.
|Manages the complexity of the engineering solution
||Matches the specificity within the design
|Use the qualitative characteristics of teh solution as input to the architectural process.
||Use the quantitative specifications as input to the development process.
Architect/developer roles are not mutually exclusive. The same individual may take on the role of architect during a project, and function as a developer later in the cycle. This is otherwise known as "wearing many hats."
Architect as Designer
Although architecture is not about designing systems, architecture leads to design criteria. The architect also supports design efforts by providing the standards and guidelines for use by designers and developers.
In an e-engineering project, it is the architect who develops the metrics, requirements, and approaches to solutions.
He also maintains the overall view of the e-Business initiative. The result of the architectural process is a blueprint and a bill of materials that conform to standards and best practices.