This Blog is in reply to few questions I have been asked like:
I have been working for 7 years in IT. I would like to have a career in Software Architecting, can you please guide me some course or study-material ?
To train yourself as an architect is an gradual process.
Developer -> Design (LLD > HLD) -> Architect
As architect, you start looking the complex areas of the project development. You are desinging for all the aspects i.e. for all stakeholders of the project.4+1 view is common known modeling techinque for architecture modeling.
Here you make sure that all 5 views are satisfied by your architecture. i.e
4+1 Views
Use-Case or Scenario View -> Functional View (here you take few complex use-case and show how does your architecture reliaze them)
Development View - is programmer's presepective. Here you describes the major components developer will have to be built.
Logical View -> how is your architecture layered and what logical blocks it have i.e Presentation, business layers, DAL etc. to meet the functionality. It also depicts how the functional components arranged in which layer.
Physical View or deplyment View --> how is component deployed. This system engineer point of view. Web Server, DB server etc.
Process View -> is for dynamic aspect of the system. How do various process communicate.
NFRs
Besides these 5 views, there are NFR non-functional requirements your architecture have to meet.You have to present and convince how your architecture meets these non-functional requirments.
Like , Scalability , availability and performance by clusters, caching , etc.Good practices, layered architecture, good desing patterns etc.Your architecture design must convince your stakeholders that your design can meet all the system constraints, and requirments. There are various sites which help in learning how to model your architecture, but actual architeture building comes by expereince and looking at existing architectures, Design patterns, Architecture Patterns like SOA etc.
Architecture from 100ft
Architecture of any product is looking at it from 100ft high view. Lots of the things are abstracted in architecture.Experince matters a lot in career a architect. But it also matters whether you haveing been doing routine stuff like crud operations in all your projects; then you need more complex project to execute. I hope in your VB/SQL you have done complex scenarios of tier architecture , distributed architecture.
Whether you had chance to work where you had to think of performance , caching , pooling? Architecture not very different from desing; but here you abstract uot most of the routine stuff and build on things which you think more attention and can make or break application. You think all aspects. You may have reqt. for performance, maintainance, monitoring , even reqt. like data replication.
Then you design your archietcture for these features . Replication may be new thing hence your architecture may need to satisfy the data replication reqt. Some of the points may be contradictory. Then you have decide on trade-off ; get approval on from stakeholders. Patterns , architectures of other application(Copy is best form of learning)
It may happen that to solve your problem there are popular architectures already available. Here comes in patterns and practices.
Architecture cannot be decoupled from cost and effort
It is easy to give a Best, Scalable, Highly secured Architectrure with non-ending budget; Skill is in giving it at lowest cost.
However, you cannot give customer Mercedes when he is only paying for Maruti.In India, IT Industry is still trying to define the role of an architect. How is he different from earler techincal people? Because industry thinks of him as good techincal person. whose responsilbilty is to handle all techincal stuff. As per business requirment and time available; it usually happens archirtect keeps handling techincal stuff and also keep managing technical people solving their problems because customers usually are not ready to pay or do not budget for archiecture feature, they usually have short term vision.
Architecture is not static but evolves
Architecture is more from point of view of the vision envisioned for the product, how is the roadmap envisioned for it. So that you can built on basic archietcure and then let it evolve.
[Architectures are not built in a day but get evolve]. People make mistakes of trying to build rome in a day.
No comments:
Post a Comment