How to move from developer to architect

Source: Internet
Author: User
Tags abstract
Personal Characteristics

The link between software development teams and management is always a key in IT. Both tend to consider a given problem in a completely different way. Most of the relevant technologies discuss how project managers should track and explain the progress and problems of developers. But the lack of communication is still very common, and this is the primary reason for the failure of the project. A good architect is the most effective way to solve this problem. The primary responsibility of the architect is to provide a common communication medium between developers and project managers. They are responsible for adapting business rules and requirements to engineering practices and constraints to ensure success. The following are some of the key features of a successful architect.

  willingness and ability to communicate: the most valuable criterion for discovering architects in a developer is effective communication. You need a skilled and experienced developer who needs to have experience communicating about business-related issues in the project. Architects often have to anticipate the gaps in understanding before they can contribute. They must be willing to overcome difficulties to ensure a convergence of technical and business perspectives. They are not necessarily planning and coordinating the exchange of views, which is still primarily the work of the project manager. Their task is to identify the best tools and components for presentation system design to facilitate effective exchange of views. They must be able to judge the situation where the current approach is inadequate and requires a new approach. Writing skills are also important, with the ability to craft sketches or to use cartographic software.

  experience in dealing with negotiating details: Architects often need to be responsible for discussing the technical tradeoffs of system development. Priority conflicts can introduce practice limitations, risk aversion, or may lead to different requirements across different business groups. A good architect can effectively evaluate technical possibilities and develop a development plan to handle various stakes and constraints without losing the key value of the project. This is closely related to the communication skills discussed earlier, but also reflects the architect's technical capabilities. A good architect candidate should be a person who often helps guide a controversial discussion, allowing the discussion to come up with new ideas without stalling them in one place.

  proactively solve design problems: The architect's daily work goals are often unclear. Many developers directly refer to the functional specification to list the task list. Architects are often the people who provide the required structure to these developers to maximize productivity. Good candidates not only work on communication, but also anticipate and resolve design problems-often consciously without any specific instructions. 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 the concept of vague expression and turn it into project artifacts that are understandable to all parties involved. They must be able to understand abstract concepts and communicate them in specific languages. Good candidates from developers often ask for or take the initiative to explain the confusing issues of the development lifecycle. They can quickly assess ideas and incorporate them into their operational recommendations for follow-up work.

Developers often have a strong mathematical ability, while good architects tend to show stronger verbal expression 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 accurately learn more about how people interact with technology in a more comprehensive way. This requires some form of abstract thinking (and no longer the details of the code), and this ability to think can be more difficult to form.

Some people think that a certain level of formal education is one of the prerequisites for being a good developer, and I don't agree with this elitism. I met a lot of good developers who dropped out of high school. However, my personal experience and my understanding of the required competencies for architecture design work have convinced me that good architects usually have at least one challenging bachelor's degree.

  Tracking Life cycle

Good architects often have experience working in organizations with well-defined software development lifecycles (software Development Life CYCLE,SDLC). Architects must understand the most important operational processes within their profession. This does not mean that there is a need for additional premises, for example, the high-capacity maturity Model (Capability maturity MODEL,CMM) level of work experience is not required. A good architect may come from an organization that uses the Extreme programming (Extreme Programming,xp) method of several small iterations of the SDLC. It is important to pay attention to a variety of traditional software development operations, such as Michael A. Jackson's approach: Jackson Structural programming (Jackson structured programming,jsp) and Jackson System development (Jackson Systems Dev ELOPMENT,JSD). Jackson's research has implications for architect career development like Donald Knuth's research is as important to programmers. Architects can prefer any classic, time-tested software system development approach.

The

SDLC can also be a useful mechanism for evaluating the suitability of architects. Each SDLC phase has features that provide clues. The SDLC contains a lot of small variations, but in this section I will use the public base portion of almost all methods.   The following list details the phases of the SDLC and lists the characteristics that good architect candidates exhibit at each stage. Analysis: 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 a wide range of software experience to the risk assessment task for reference. Look for experienced developers to help the business understand the information the technician needs to interpret the requirements correctly.   Look for developers who can anticipate problems that may be encountered in the early stages of development. design: during high-level design, a good architect collects and communicates the various abstract elements of the problem space so that the development team can draw up diagrams about the systems that will be developed. The architect is responsible for carefully mapping the requirements to the functionality of the resulting system architecture. During the detailed design, their role is not a central role, but they are still needed in order to review the elements of a particular module based on the rules of the system as a whole. Look for developers who are good at enabling the team to anticipate the impact of design decisions on the final system.   Look for developers who are good at identifying some of the best artifacts to facilitate communication with technical and non-technical audiences on design issues. implementation: during implementation, the architect directs the project to ensure that it conforms to the system architecture. They evaluate technical change requests on the frontline and determine how the design is tuned to best handle such requests. The architect also needs to keep an eye on the developer's progress, especially to track the state of the integration points between modules in the system. Look for developers who often guide discussions to connect multiple subsystems.   Look for developers who can rely on a project manager to quickly perform risk assessments related to changes and emerging issues. test: The architect guides the system integration and user acceptance tests and is responsible for evaluating the ongoing test results for correct communication of progress.   Look for developers who understand the error patterns 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 about integration points and risks. Look for developers with system integration experience and the ability to quickly master the full picture. System integration is a unique task.

  Architect Training Recommendations

Some organizations can develop architects more effectively than others. If the difficulty of recruiting such new professionals is fully taken into account, it is a very sensible strategy to strive to create an environment that encourages developers to evolve into architects. However, it is important to avoid penalties for 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 to serve as developers. Senior developers are indispensable to architects. They can implement the most critical modules in the system. By conducting code inspection and testing support for other developers, they can help ensure overall software quality, and if quality is not guaranteed, even the best architectures are useless.

Organizations should develop individual evaluation procedures to encourage developers to consider their career goals, which include options for architectural design. Managers should be encouraged to look for architectural design talent in their subordinates. You should implement a mentoring plan that enables architects to work collaboratively with developers who want to be architects. Developers should be encouraged to participate in the professional field by participating in various associations, writing articles and attending meetings. This participation helps developers understand the system from a new perspective and helps them communicate better about their understanding. This can also foster important innovative ideas that can 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.