Professional architect, Part 1: How developers can become architects

Source: Internet
Author: User
Professional architect, Part 1:
How developers can become architects

Document options
<Tr
Valign = "TOP"> <TD width = "8"> Src = "// www.ibm.com/ I /c.gif"/> </TD> <TD width = "16"> Height = "16" src = "// www.ibm.com/ I /c.gif"/> </TD> <TD class = "small"
Width = "122"> <p> <SPAN class = "Ast"> Javascript is not displayed
</Span> </P> </TD> </tr>


Print this page

Send this page as an email

Level: Intermediate

Uche ogbuji
Uche@ogbuji.net
), Chief Consultant, fourthought Inc.

February 16, 2007

Very
Many architects are gradually transitioning from good developers, but not every good developer wants to become an architect, and not all of them are suitable for architects. Whether you are the developer of your career transition
Personnel, or managers looking for appropriate candidates to take responsibility for the system structure design, must have a clear understanding of the transformation process. This article will discuss the transition from expert to architect.


When looking for good command, you first need to find a good music performer. But not every music performer can become a good conductor. The Professional Development of architects is similar. More and more
Many IT organizations have begun to recognize the importance of a good software architecture, and the architect profession is rapidly evolving into it
An independent category. As architects are to be recruited from a very small range of candidates, this brings some new challenges to management. Even if the human resources department finds candidates, experience-based filtering is better
Category is stricter. The fastest way to overcome these obstacles is to realize that most good architects are good developers at the same time. Therefore, when looking for architect talents, you may first need to find common developers. Recruitment
Personnel should consider this point of view when conducting a detailed review of candidates (internal or external. However, it may be difficult to select this resource because only a few outstanding developers have the characteristics of being architects.
Or desire.

This article lists the work that developers need to do to become architects. I will discuss this issue from two aspects: developers who may consider this transformation and managers of developers who evaluate it. I will also provide a series of factors to consider when making these decisions.

Personal Characteristics

The connection between the software development team and the management team is always it
. Both of them tend to consider the given problem in a completely different way. Most of the related technologies discuss how project managers track and explain developers' progress and problems. But lack of communication
And this is the primary cause of project failure. A good architect is the most effective solution to this problem. The primary responsibility of architects is to provide shared communication media between developers and project managers. He
They are responsible for adapting business rules and requirements to engineering practices and restrictions to ensure success. The following are some of the main features of a successful architect.

Willingness and ability to communicate:
Among developers, it is found that the most valuable standard for architects is effective communication. You need skilled and experienced developers.
Communication experience on business issues in the project. Architects often have to predict the gaps in understanding before they can contribute. They must be willing to overcome the difficulties to ensure the integration of technology and business perspectives.
They do not have to plan and coordinate the exchange of views; this is still the work of the Project Manager. Their task is to determine the best tools and components for expressing system design to facilitate effective exchange of views. They must
You must be able to determine whether the current method is insufficient and the new method is required. Writing skills are also very important. You also need to be able to make a sketch or use the drawing software.

Experience in handling negotiation details:
Architects often need to discuss technical trade-offs for system development. Conflicts of priorities may cause practice restrictions, risk avoidance, or
Different service groups have different requirements. Excellent Architects can effectively assess technical possibilities and develop development plans to deal with various interests and restrictions without compromising the project's main value. This corresponds
The communication skills discussed earlier are closely related, but they must also reflect the technical skills of architects. Good candidates for architects should be those who often help guide controversial discussions, so that new ideas can be discussed.
It will not make it stuck in one position.

Proactive and proactive solutions to design problems:
The architect's daily work objectives are often unclear. Many developers directly refer to the functional specifications to list tasks. The architect usually focuses on
Some developers provide the personnel with the required structure to improve work efficiency as much as possible. Good candidates not only conduct communication work, but also anticipate and solve various design problems-generally, there is no specific
When instructed. Regardless of the assigned responsibilities, developers who actively participate in the project have the opportunity to stand out from those who work together.

Abstract thinking and analysis:
Architects must be able to understand vague concepts and turn them into project components that can be understood by relevant parties. They must be able to understand abstract concepts and communicate with them in specific languages. Good candidates among developers often require or actively explain problems that are easy to confuse during the development lifecycle. They can quickly evaluate various ideas and incorporate them into operational recommendations for subsequent work.

Developers often have strong mathematical skills, while good Architects tend to show stronger verbal skills. Managers often say that developers are "engineering aware", which is a tool for evaluation.
A very meaningful aspect of the constructor. Architects should be able to solve technical problems, but they must be able to obtain more comprehensive information about how people interact with the technology. This requires some form of abstraction
Thinking (rather than code details), this kind of thinking ability may be difficult to form.

Some people think that a certain level of formal education is one of the essential conditions for becoming a good developer. I do not agree with this kind of elites. I met many outstanding developers who dropped out of school. However, my personal experience in Architecture Design and my understanding of the required capabilities make me believe that good architects usually earn at least a challenging bachelor's degree.

Tracking Lifecycle

Good architects usually have a well-defined software development life (software development life)
Cycle, SDLC) organization work experience. Architects must understand the most important operations in their major. This does not mean that there are other prerequisites. For example, a high-performance maturity model is not required.
(Capability Maturity Model, CMM) level of work experience. A good architect may come from using SDLC
The organization of multiple small iteration eXtreme Programming (eXtreme Programming, XP) methods. Be sure to pay attention to various traditional software development operations, such as Michael.
Jackson's method: Jackson Structured Programming (JSP) and Jackson
System development (JSD) (see references
). Jackson's research makes sense to the career development of architects, just as Donald knuth's research is equally important to programmers. Architects may prefer any classic, time-tested software system development method.

SDLC can also be a useful mechanism for evaluating suitable candidates for architects. Each SDLC stage has the characteristics that can provide relevant clues. SDLC
There are many small variants, but in this section, I will use the public basics of almost all methods. The following list details SDLC
And lists the characteristics of good architect candidates at each stage.

Analysis:
During the analysis, good architects will consider non-technical influences to understand the requirements and the environment in which development will be conducted. Architects can bring extensive software experience to risk assessment tasks
For reference. Find experienced developers to help the business department understand the information required by technicians to correctly interpret the requirements. Find the developers who can predict possible problems in the early stages of development.

Design:
During the advanced design period, a good architect will collect and communicate with each abstract element of the problem space, so that the development team can draft relevant charts of the system to be developed. Architecture
The Division is responsible for carefully ing requirements to the functions of the obtained system architecture. During the detailed design, the roles they play are not the core roles, but the elements of a specific module are to be implemented according to the rules of the entire system.
Review, they are still needed. Find developers who are good at allowing the team to predict the impact of design decisions on the final system. Find the best components to facilitate the development of communication design issues with technical and non-technical audiences
Personnel.

Implementation:
During implementation, the architect guides the project to ensure that it complies with the system architecture. They assess technical change requests on the first line and determine how to adjust the design to the most
Well process such requests. Architects also need to closely understand the progress of developers, especially to track the status of integration points between modules in the system. Find developers who often guide the discussion to connect multiple subsystems. Search
The Project Manager can rely on its developers to quickly evaluate risks related to changes and problems.

Test:
The architect guides system integration and user acceptance tests, and is responsible for evaluating the progress of correct communication of continuous test results. Find a developer who understands the error pattern and is good at converting test review results into action plans.

Maintenance:
During maintenance, the architect will initiate a discussion about system integration. No matter how it is processed
Infrastructure issues, or ensuring technical cooperation between departments, architects must fully understand the application, must quickly learn the architecture of Sister applications, and must communicate effectively on integration points and risks.
Find developers who have system integration experience and have the ability to quickly master the entire picture. System integration is a unique task.



Back to Top

Suggestions for architects

Some organizations can conduct architect training more effectively than other organizations. It would be wise to make efforts to encourage developers to develop an architect environment, taking into account the difficulty of recruiting such new professionals.
. However, you must avoid penalties for unwilling or unsuitable developers. The organization should develop multiple development routes for developers, including those who are willing to continue serving as developers. For architects
Developers are indispensable. They can implement the most critical modules in the system. By performing code checks and testing support for other developers, they can help ensure the overall software quality. If the quality is not guaranteed, that is
Making the best architecture is useless.

The organization should develop personal assessment procedures to encourage developers to consider their career goals, including options for architecture design. Managers should be encouraged to find architecture design talents among their subordinates. Implementation refers
The plan allows architects to collaborate with developers who want to become architects. Developers should be encouraged to participate in specialized fields by participating in associations, writing articles, and attending meetings. Participate in
To help developers understand the system from a new perspective and better communicate with them. In this way, we can also cultivate important innovative ideas that can improve efficiency.



Back to Top

Conclusion

Once developers take the first step towards the architectural design expertise, they can use a lot of resources to get help, including a lot of resources from IBM. Sometimes, the most difficult part of this process is the first step. This article provides some clues and tips that managers and developers can use to evaluate who should be encouraged to become architects.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.