I have seen may hadoopeers over the internet where they search for bigdata architect roles and responsibilities. So here I tried to help them by putting most of the points. These are the main tasks which Architect need to do or should have these skill set to become BigData Architect.
An architect should have an idea of how to implement his or her architecture, but should be “prepared to accept any other way that meets the objectives as well.” – Frederick P. Brooks, Jr
While in the industry the term Software Developer is quite clear, the term Architect is still quite vague and many companies wonder whether or not they need someone to fill this role.
The Architect must be a person with extensive technical knowledge, great experience in programming, leadership and who exercises the following functions:
- Management of non-functional requirements and definition of the Software Architecture
- Technology Selection
- Continuous improvement of the Architecture
- Leader and Trainer
- Quality assurance
Management of non-functional requirements and definition of the Architecture
In many software projects users are often asked what features they want in the product to be developed, but non-functional requirements, or system qualities, that are needed are often overlooked.
Non-functional requirements have to be specific, measurable, achievable and verifiable, in order to satisfy them (something subjective like: “the system must be fast” is not enough), and you also have to know how to prioritize them so that they are all taken into account.
Characteristics such as performance, scalability, availability, auditing, etc., are non-functional requirements that must be defined and even questioned when deemed appropriate and it is the Architect who must assume these functions.
After obtaining the full set of non-functional requirements, the next step is to think about how the exposed problems will be solved and define the architecture.
The definition of the architecture is about the introduction of the structure, guidelines, principles and leadership of the technical aspects of a software project. Therefore, a figure dedicated to thinking about these aspects is required, that is, someone has to assume ownership of the architecture definition process and this is undoubtedly part of the Architect’s competencies .
An architect should “listen to the builder’s suggestions for architecture improvements.” – Frederick P. Brooks, Jr
The selection of technology is usually an exercise with a series of interesting challenges and in which a universe of factors must be taken into account such as cost, licenses, relationship with suppliers, technology strategy, compatibility and interoperability, update policy, etc.
Additionally, it is necessary to know if the technologies really work and adapt or not to the requirements of the software.
The Architect must take ownership of the technology selection process and is therefore responsible for technical risk.
Continuous improvement of the Architecture:
Today it is impossible to think about software development without taking into account evaluation and feedback processes that allow us to know if the software meets user expectations.
In the same way, it is necessary to subject the software architecture to these processes, to demonstrate that it works, that it effectively solves the non-functional requirements and therefore reduce the general risk of project failure.
The Architect must be in charge of the continuous improvement of the Architecture and at the same time be open to modify it using the suggestions or feedback that can be obtained from other members of the team.
The software architecture must be known and understood not only by the development team but also by other areas such as IT security, database, operations, the maintenance team, etc.
It is the role of the Software Architect to serve as a facilitator for collaboration between these stakeholders to ensure that the architecture will be successfully integrated into the business environment.
Leader and Trainer:
The Software Architect must assume the technical direction, to ensure that all aspects of the architecture are being implemented correctly.
An architect “suggests” (“not dictates”) implementation because the programmer / coder / builder has the “inventive and creative responsibility.” – Frederick P. Brooks, Jr
Similarly, the Software Architect must provide technical guidance and support the development team; you must be prepared to train the team in the selected technologies (Trainer) and you must also be open to suggestions.
An architect should be “ready to forego credit for suggested improvements.” – Frederick P. Brooks, Jr
Ensuring quality is a fundamental part of the role of a Software Architect , which must be supported by continuous integration processes that use automated source code analysis tools, unit tests and code coverage, to ensure compliance with standards, policies and established best practices.
An architect should strive for work to be “spare and clean,” avoiding “functional ornamentation”… – Frederick P. Brooks, Jr
- Conduct architectural evaluation, design and analysis of enterprise wide systems throughout entire Sterling business.
- Stimulate apt design discipline leverage industry strength evaluation and design tool like IBM Rational.
- Ensure application architecture team delivers robust system solution to architect business.
- Develop, enhance and maintain established service design procedure and process to assure apt and robust service design.
- Perform closely with Enterprise Architect within Architecture Services team to assure constant compliance of Sterling# s strategic blueprints and architecture.
- Perform as member of high performance and provide solutions alert architecture team supporting business oriented project development effort.
- Plan, design and execute complex company level storage solution configuration.
- Ensure to test assistance to storage solution development.
- Prepare and present test plan, technical presentations, lab reports, analyst briefings plus white papers to respond to different storage solution areas.
- Head responsibility for ongoing suggestions and best practices for entire storage solutions across business continuity, backup, recovery, high availability and archiving.
- Collaborate with IT development team to assure architectural solution could be suitably translated into effectual and robust implementation.
- Head responsible for continuing configuration management as well as platform layout along with storage infrastructure.
- Identify customer requirements, analyze alternatives and conduct product recommendations related to software, platform and network configurations.
- Perform with sales personnel on every customer visit to converse requirements as well as perform demonstrations.
- Initiate proactively client contact as part of total sales team effort