 |
System Architect
I have read and heard many different descriptions of the role of system
architect; no two have been the same. Grady Booch gives a nice overview of a
software architect in Object Magazine:
A technological and social leader who establishes the
strategic policies and patterns that shape an entire
system.
The next page of that same magazine is a recruitment ad placed by The Technical Resource Connection.
It lists four traits of a system architect:
- Abstract thinker
- Concise communicator
- Wise decision-maker
- Experienced business-focused technologist
On this page, I present my view of who a system architect is and what a system architect does.
Responsibilities
- Create and preserve conceptual integrity across multiple systems.
- Promote architectural goals such as adaptability.
- Understand the (business) problem domain, identifying requirements and constraints.
- Understand technological possibilities.
- Understand technological limits.
- Identify risks and perform meaning feasibility studies.
Technical Knowledge and Skills
The system architect is the Renaissance man (or woman) of computing, at least
relative to the organization is which he/she works. Sometimes derogatorily
called a "jack of all trades, master of none", the system architect
should, indeed, be a jack of all trades, but will be a master of some,
advanced in others, and at least intermediate in just about everything else.
In a larger corporate environment today (or really in any organization
doing distributed computing), the system architect should have
knowledge and skill in most or all of the following areas.
Network Infrastructure
- Routers, Switches and Hubs. Differences between devices, backplanes, configuration, throughput.
- Link Layer, Control and Routing Protocols.
- Higher Layer Protocols. DNS, HTTP, FTP, SMTP, Telnet, POP, IMAP,
RPC, NFS, NetBIOS, SMB.
- Network Monitoring and Administration.
- Firewalls. Proxies, wrappers, relays, stateful inspection.
Server Platforms
- Server Hardware. CPU chip, scalability (SMP, NUMA, MPP, clustering), system bus technology and throughput, I/O subsystem technology and throughput, RAID, SCSI.
- Server Operating Systems. Memory management, thread and process models, interprocess synchronization and communication, filesystems.
- Relational Database Management Systems. Disk and network I/O, thread and/or process model, physical database layout.
- File and Print Services.
- System Monitoring and Administration.
Middleware
- Directory and Security Services.
- Remote Procedure Calls.
- Message Queuing.
- Message Brokering (Publish and Subscribe).
- Object Request Brokers.
- Transaction Processing Monitors.
Software Development
- Development Process and Methodologies.
- Development Languages. 3GL (C, C++, Java, Ada, Pascal, COBOL,
Fortran), 4GL (PowerBuilder, Visual Basic, Centura, Delphi),
Enterprise (Forte, Dynasty, Seer HPS, Unify, Uniface, JAM),
Miscellaneous (perl, UNIX shell, Smalltalk, CLOS, Eiffel)
- Testing and Quality Assurance.
- Application and Performance Monitoring.
Client Platforms
- GUI.
- Threading.
- Configuration Management.
Copyright © 1997 Scott Nichol.
17-Jan-97
|