|
|||||||||||||||||
|
Along with the Project Manager, Architecture is recognized as one of the most important resources in any IT organization. Yet many IT organizations struggle to define the role of architecture and to apply the architecture principles consistently throughout the life cycle of projects from the conception of business strategy to the IT solution delivery. Though there could be several reasons, the important reason is the inability of IT to reorient itself to structure the architecture roles to deliver the results required in a quickly changing IT landscape. The new paradigm shift towards IT alignment with business for growth makes the case for adaptable architecture framework and structure even more compelling. One of the core objectives of an architect is to influence the development groups to use the set standards. Sometimes even with properly structured architecture groups the final result can be elusive due to disconnection between architecture and the rest of the development. This can be due to the development resources with outdated skills combined with the lack of organizational focus to train these resources to address the new challenges. Some suggestions mentioned later in this article will help IT organizations to overcome this challenge and can make development groups more attuned with architectural direction. The presence of several definitions of architects in the IT industry and lack of well defined objectives for each architect role makes it difficult to adopt the architecture consistently. Another challenge is the development of proper job descriptions for the architect. This article will try to explain the definitions of different architecture types that exist today in the industry and will attempt to establish the relationship between each other. The contents presented in this article can also be used to create a road map for developers to become architects or solution architects to become enterprise architects. Defining true architecture roles is just the beginning and the true value for IT can only be achieved when these principles are applied consistently. To achieve architecture consistency and to eventually attain the desired maturity, where results are measured and improvements are part of the process, every organization should have a framework in place to identify different tasks to be performed under each of the different types of architectures with a minimal overlap of work yet producing the desired results. Architecture Layer is a concept where different architectural principles are applied at different stages of methodology to deliver projects of varying complexity and size. Rational Unified Process (RUP) terms and descriptions are used to demonstrate the examples. Architecture Layers There are several types such as Enterprise Architecture, Systems Architecture, Software Architecture and Solutions Architecture and it is necessary to establish the scope and definitions for each of these types. These relationships are explained through architecture layers and sub-layers, which are depicted in figure 1 and figure 2.
Enterprise Architecture System Architecture System Architecture also requires more involvement with infrastructure than the software design and development itself. Sometimes a typical infrastructure project, which usually requires more database and hardware type of design, may need only System Architect. The resources that evolve in to this role are usually from hardware, security or database areas. Very large organizations may have a dedicated role for this type of architecture requirement. But the objective of the System Architect is the delivery of the software solution or to prepare base for such delivery in the future. Solution Architecture How to Organize the Roles
Figure 2 will demonstrate an example to define specific objectives for a given role. The downward arrow indicates the direction of any project/program and associated transition from one architecture type to the other. In this figure, some objectives are repeated between the types and the reason is the level of involvement for that architect at each development stage. For example, the involvement of Enterprise Architect in Hardware Architecture is to make sure that the standards are followed and the System Architect would involve in the detail design of hardware and would eventually recommend the procurement of hardware.
Architecture Sub Layers
Architecture role Participation in Project Lifecycle
Enterprise Architecture (EA) focuses more at the strategy level such as replacing a legacy supply chain or development of a new financial product. EA's involvement can be more if an organization needs to acquire new tools in terms of software, business packages or establishment of new or modifying the existing infrastructure. EA also plays a pivotal role in making sure that the security/compliance regulations are met by the organization. This group also runs the architecture review boards to ensure that every project is in compliance with the standards and at the same time to provide guidance to the project team, particularly to Solution Architects. The involvement of the EA group diminishes quickly as the project moves to different stages of the lifecycle. System Architects, as defined above, consistently involve at a certain percentage, and their involvement will be defined by the type of project. For a project, which requires establishing new security architecture or hardware or other architecture type, the involvement can be as high as 60% throughout the project and can be 100% at strategy level. The participation of this resource is required throughout the project, since there can be a possibility to react quickly to accommodate changes. For example, a change in requirements may require making recommendation to modify hardware quickly in order to meet the project time lines. The Solution Architect or Application Architect will very quickly be involved as soon as the project comes to the initiation stage. The involvement will be close to 100% until the elaboration phase and then tapers down once the project goes in to construction (or coding stage). Some organizations use a Solution Architect as the mentor to developers and seek to provide help for difficult coding tasks such as, when a new technology is adopted. All of these three types of architects are expected to have working knowledge of architecture sub layers but more is expected from System Architects than Enterprise Architects and Solution Architects. Interaction between Development and Architecture
Evolving into the Architecture Role A developer can pick a specialty in architecture sub layers if one doesn't want to specialize in one of the architectural layers. Developers that come from database background can become Data Architects and play a role where data design is most required and those that come from language development tend to become Solution Architects. Application Architects tend to come from developers involved in a package implementation such as Peoplesoft or Siebel, but to become an architect in the package space, one needs to be well rounded in an industry such as ERP. IT organizations need to design sustainable organizational structure to transfer the resources from the development stage to architecture stage. To be effective, a process should be established for a continuous interaction between development groups and architecture groups. This is a very important step for the overall success of the IT objectives and to reach the set goals. Also, the number of positions in the architecture will be much less as compared to development; therefore a suitable process should be in place so that the resources with correct skills and talent can move into these positions. This article has primarily focused on technology aspects of career path from development to architecture. But there are other skills such as 'effective communication', 'ability to lead' and 'work under pressure', which are also very important and suitable training for the process should be established for an effective transformation. Conclusion The foremost and important task in establishing architecture practice is to understand the current strength of IT resources. By using the Layer concept explained in this article and defining the proper objectives of architects associated with either of the Architecture Layers or Sub Layers, any organization can reap the benefits and become an agile organization to participate and deliver the IT solutions for business and become a true partner for business growth. |
|||||||||||||||||



