How to move from the developer to the architect

Source: Internet
Author: User
Tags abstract
Personal Characteristics

The connection between software development teams and management is always a key part of IT. Both tend to consider a given problem in a completely different way. Most of the relevant techniques are to discuss how the project manager should track and explain the progress and problems of the developer. But the lack of communication is still widespread, and this is the primary cause of the project's failure. A good architect is the most effective way to solve this problem. The architect's primary responsibility is to provide a shared media of communication between the developer and the project manager. They are responsible for adapting business rules and requirements to engineering practices and constraints to ensure success. Here are some of the key features of a successful architect.

  Willing and able to communicate: Discovering the architect's most valuable standards among developers is effective communication. You need skilled, experienced developers who need to have experience communicating about business-related issues in the project. Architects often have to anticipate the gaps in understanding before they can make a contribution. They must be willing to overcome difficulties to ensure a convergence of technical and business perspectives. They do not have to plan and coordinate the exchange of views; This is still largely the work of the project manager. Their task is to identify the best tools and components for the presentation of system design to facilitate effective exchange of views. They must be able to determine how the current approach is inadequate and that new methods need to be adopted. Writing skills are also important, and you need the ability to make sketches or use graphics software.

  experience with negotiating details: Architects often need to be responsible for discussing the technical tradeoffs of system development. Priority conflicts can lead to practice constraints, risk aversion, or may result in different requirements among different business groups. A good architect can effectively assess technical possibilities and develop plans to deal with various interests and constraints without losing the main value of the project. This is closely related to the communication skills discussed earlier, but it also reflects the technical capabilities of the architect. A good architect candidate should be someone who often helps guide a controversial discussion, and can bring new ideas to the discussion without making it stagnant in one place.

  self-motivated and proactive in solving design problems: The architect's day-to-day goals are often unclear. Many developers directly refer to the functional specification to list the tasks. Architects are usually the people who provide the required structure to these developers in order to be as efficient as possible. Good candidates not only communicate, but also anticipate and solve design problems-usually consciously without any specific instructions on their part. Regardless of the assigned responsibilities, developers who are actively involved in the project have the opportunity to stand out from the people who work together.

  Abstract Thinking and Analysis: Architects must be able to understand and translate vague concepts into project artifacts that the relevant parties can understand. They must be able to understand abstract concepts and communicate them in specific languages. Good candidates from the developer often ask or themselves to explain the confusing issues in the development lifecycle. They can quickly assess ideas and incorporate them into the 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 have "engineering awareness", which is a very meaningful aspect of evaluating architects. Architects should have a strong ability to solve technical problems, but they must also be able to learn exactly how more comprehensive people interact with the technology. This requires some form of abstract thinking (and no longer the details of the code), which can be difficult to form.

Some people think that formal education at some level is one of the prerequisites for being a good developer, and I don't agree with this elitist theory. I met a lot of good developers who dropped out of high school. However, my personal experience and my knowledge of what I need to do with architecture design work make me believe that a good architect usually gets at least a challenging bachelor's degree.

  Tracking Life cycle

Good architects often have experience in organizing work with well-defined software development lifecycle (Software Development life cycle,sdlc). The architect must understand the most important course of action in his or her own profession. This does not mean that there are other prerequisites, for example, that there is no need for a high capacity maturity model (Capability maturity MODEL,CMM) level of work experience. A good architect may come from an organization that uses SDLC's extreme Programming (Extreme Programming,xp) methods for several small iterations. It is important to note a variety of traditional software development operations, such as Michael A. Jackson's approach: Jackson Structural programming (Jackson structured programming,jsp) and Jackson Systems Development (Jackson system Dev ELOPMENT,JSD). Jackson's research is as important to the career development of architects as Donald Knuth's research is to programmers. Architects can prefer any classic, time-tested software system development approach.

SDLC can also be a useful mechanism for evaluating the right person for an architect. Each SDLC stage has features that provide relevant clues. SDLC contains a lot of small variations, but in this section I will use the public base portion of almost any method.   The following list details the stages of the SDLC and lists the characteristics that a good architect candidate presents at each stage. Profiling: during analysis, a good architect considers the non technical impact to understand the requirements and the environment in which they will be developed. Architects can bring extensive software experience to the risk assessment task for reference. Find experienced developers to help business understand the information that technicians need to properly interpret requirements.   Look for developers who can anticipate possible problems at an early stage of development. Design: During advanced design, a good architect collects and communicates the various abstract elements of the problem space so that the development team drafts the relevant diagrams for the system that will be developed. The architect is responsible for carefully mapping requirements to the capabilities of the resulting system architecture. During the detailed design, the roles they played were not the core roles, but they were still needed to review the elements of a particular module based on the rules of the system as a whole. Find developers who are good at enabling teams to anticipate the impact of design decisions on the final system.   Look for developers who are good at identifying some of the best components to facilitate communication design issues with technical and non-technical audiences. implementation: during implementation, the architect Boots the project to ensure that it conforms to the system architecture. They evaluate technical change requests on the line and determine how the design is tuned to best handle such requests. The architect also has to keep abreast of the progress of the developer, especially to track the state of the integration points between the modules in the system. Look for developers who often lead discussions to connect multiple subsystems.   Look for developers who can rely on them to quickly conduct risk assessments related to changes and problems that arise. test: The architect directs system integration and user acceptance testing, and is responsible for evaluating ongoing test results for correct communication of progress.   Find developers who understand the error pattern and are good at translating test review results into action plans. maintenance: During maintenance, the architect initiates a discussion of system integration. Whether dealing with IT infrastructure issues or ensuring technical cooperation between departments, architects must fully understand the application, must quickly learn the architecture of the sister application, and must communicate effectively on integration points and risks. Find developers with system integration experience and the ability to demonstrate a quick overview. System integration is a unique task.

  Architect Training Recommendations

Some organizations can be more effective architect training than other organizations. If the difficulties of recruiting such new professionals are fully taken into account, efforts to promote an environment that encourages developers to develop as architects is a wise strategy. However, it is important to avoid penalizing developers who are unwilling or unfit to take this route. The Organization should develop a number of development routes for developers, including those who are willing to continue as developers. Senior developers are essential to architects. They can implement the most critical modules in the system. By conducting code reviews and testing support for other developers, they can help ensure overall software quality, and even the best architecture is useless if the quality is not guaranteed.

The Organization shall develop individual assessment procedures to encourage developers to consider their career objectives, including the option of architectural design. Managers should be encouraged to look for architectural design talent in their subordinates. You should implement a mentoring program that allows architects to work with developers who want to be architects. Developers should be encouraged to participate in professional fields by participating in various associations, writing articles and attending meetings. This involvement can help developers understand the system from a new perspective and help them communicate better about their understanding. This will also foster important innovative ideas to improve efficiency.

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.