Re-understanding architecture—not just software design

Preface

What is architecture?

Usually, people's understanding of architecture is limited to the definition in software engineering: architecture mainly refers to the structural design of software systems, such as the common SOLID guidelines and DDD architecture. A good software architecture can help the team develop software more efficiently, reduce maintenance costs, and improve the scalability and maintainability of the system. The definition of architecture here has a more diversified understanding: architecture is not only the definition of software development design and process specifications, but also includes the people involved in architecture design, as well as architecture-related activities during the project process, which can all be called architecture.

Understanding architecture from a broad perspective means more comprehensive thinking and new integration.

According to this diagram, architecture means that architects are guided by business value and user-centered, and use limited resources and costs to design architectural solutions, organize or participate in R&D activities in the business, cultural, and technical environment. , a complex and continuous activity to achieve a set goal .

When architects face practical problems, how to make the right choices in a complex environment, how to ensure the smooth progress of architectural activities and the implementation of projects, can be sorted out from the four levels of goals, resources, behaviors, and trends.

Architecture

Target

Clarify your goals: When starting something new, you may need to face a variety of choices and challenges. In this case, identifying specific goals is not easy.

  • Achievable : Goals need to be achievable. Goals that are too high or too low may lead to frustration and exhaustion. Set reasonable goals based on fully assessing your own abilities, resources, and environment.

  • Specific and clear : Goals should be specific, clear, and easy to measure so that your progress can be effectively tracked and adjusted. Detailing the goals into several small goals will help to better manage and achieve the goals.

  • Resilient : The goal-setting process needs to be flexible and able to cope with uncertainty and change. When encountering setbacks or unpredictable factors, you can adjust your goals in a timely manner to maintain a positive attitude and motivation.

  • Continuous attention and adjustment : Goal setting is not a one-time thing and requires continuous attention and adjustment based on actual conditions. By regularly assessing progress and learning lessons, you can keep your goals aligned with reality and increase the likelihood of achieving them.

The above four points are guiding principles. The actual situation is more complicated. For example, technicians usually explore goals driven by technology, but it is not necessarily suitable for commercial activities. Compare MQ to Kafka and Pulsar. The latter is newer and faster. Technology geeks usually choose to explore the latter without hesitation and apply it to actual work. When switching from a mature solution with strong universality to a novel and high-performance solution, in addition to the cost of switching, we must also consider the benefits brought by the switch and the cost for team members to master Pulsar. From a development perspective, unless Kafka has fatal flaws that are not fixed, Kafka can continue to evolve and iterate over time and become better. Therefore, it is not advisable to simply look at the short-term technological advancement. We must also pay attention to the ecology of technology. This is often said to have a certain degree of foresight in the ecology of technology.

Based on its own situation, why the online business needs to cut GBF is to improve reuse based on domain construction to reduce costs and increase efficiency. All goals of architectural activities are to reduce costs and increase efficiency. Cutting framework will increase the cost of business iteration in the short term, but will lead to a paradox in the mid-term: when the cost of upstream and downstream environment coordination is high, if you compromise on your own, the cost of US will increase in the short and mid-term, and if there is no improvement, Whether it is from US itself or looking at the overall situation, the long-term benefits are reduced, but the progress cannot be affected, or whether we can wait until the time is ripe before proceeding. I have felt a lot of pressure.

These principles are relatively simple to say: ensure that long-term goals remain unchanged and make trade-offs with temporary plans. There will be times when you run into difficulties: If you make too many temporary plans, it will easily create baggage, affect long-term benefits, and ultimately compromise the customized goals. Stage goal guarantees and long-term returns are not completely opposite. In actual work, there will also be situations where trade-offs need to be made. When there is a conflict between stage goals and long-term returns, architects need to fight for resources or make a good choice. Even if you temporarily give up long-term gains after making a decision and selecting stage goals, this is only a short-term decision and does not represent the future , that is to say, when the time is ripe (for example, upstream and downstream have made ideal transformations in their own evolution) , then the department itself also needs to pay attention and follow up in a timely manner.

When it comes to trade-offs, I have deep feelings: As a decision-maker or a person with decision-making authority, you need to make good trade-offs within the scope of decision-making. If the person concerned does not make the choice, then he can only let others make the choice for him. Most executors choose to give up their rest and choose to work overtime, or skip the stage of summarizing, summarizing, and improving. If things go on like this, this kind of decision-making is inefficient and unscientific. Decision-makers need to make clear trade-offs and avoid unlimited demands (asking for everything), because it is very likely that they will not be fully satisfied, causing the right to choose to be dispersed to the executors. What's wrong with decentralizing the decision-making power to the executors? Personally, I think the problem with decentralizing the decision-making power of trade-offs to executors is that executors have limited access to information and lack of experience, which can easily lead to overly one-sided decisions, making it difficult to have an overall view, making it easy to make wrong decisions, and increasing project risks.

resource

Resources are limited.

As an architect, you must maximize business value with limited resources. How can technicians understand this sentence from a business perspective?

The description here is a commercial activity in which the architect participates. Since it is a commercial activity, it must have commercial value. Most technical personnel do not pay attention to the value logic of business, and usually only focus on whether the technical solution is superior. It is easy to ignore the objective factors such as resources, environment, and collaboration in the implementation of technical solutions. How to let technical personnel understand business value can be explained from the three roles of code and design:

Technical personnel mainly make money for the company through the above three channels. Employees' wages and various incomes come from the company's business income and financing.

Based on my own understanding, from companies to organizations to individuals, they all have their own business logic. The business logic of scientific, reasonable and sustainable development is also the basis for supporting the development of companies, organizations and individuals. Things that are separated from reasonable business logic will not work in the short term. There may not necessarily be obvious results. In the long run, various problems will arise. The cause of the problem is not only due to the problem itself and the process of its occurrence. On a deeper level, it is whether the entire business logic is reasonable and sustainable. .

So as an individual, how can we use the resources in our hands to maximize business value and benefit companies, organizations, and individuals?

a. Understand the business model of your company or team

b. Understand the business value you create in your environment

c. Ensure the long-term business value of architecture activities

d. Look for opportunities to expand revenue in architectural planning

e. Look for opportunities to reduce costs in architectural planning

The first two points of business model and business value are different for everyone. Generally speaking, they are whether this company and this business are core and whether they have prospects. There are often different opinions on the company's business prospects, which is common in emerging businesses. It is a matter of opinion, but it also confirms a popular saying recently: people usually cannot make wealth beyond their knowledge. It is difficult for natural persons to influence and shake the development of industries and enterprises. Individuals only have room for choice in history and trends.

So the third item is a long-term issue for us: after making a choice, how to ensure that both ourselves and the team can have sustained, sufficient, and positive value and benefits at work. Like economics, the marginal benefit of technology is also diminishing. Because technology is constantly developing, personal value and advantages are mainly reflected in incremental value. That is to say, the value created by an individual through work is above the average value. Say this person has certain advantages. However, these advantages are not static, because open source solutions are constantly improving, and more and more people have mastered them, so the incremental value of individuals will decrease or even disappear. This also requires individuals to continuously learn and improve themselves to continue to improve their competitiveness.

The resources mentioned in the article are similar to the means of production and production costs in economics. Business value depends on resources. The expectation of business companies and organizations from their employees is to produce maximum business value at the minimum cost. These should be paid attention to in both the short and long term. When the goal is too abstract, in order to avoid inconsistent understanding among different people, specific goals can be specific based on each person's environment and position. It is best to disperse them into staged goals based on time granularity. That is to say, for individual employees, more What is important is to maximize investment in precise staged goals to achieve returns. The basis for customizing the target has been introduced here.

After the goal is confirmed, you must run towards the goal and maximize your own value. That is two aspects: exploring opportunities and reducing costs .

Opportunities need to be discovered, whether they come from scientific mathematical statistics, analysis and mining, or some small tips in daily life, they are all opportunities. This is where I come into contact with more opportunities on the business side. During version iterations, I usually talk to the product about what is the motivation for this update and where are the benefits. As the C-side product logic, in addition to these benefits, we also need to start from the user experience Let’s start with what kind of convenience these changes will bring to users, and whether we will incur additional costs and costs. The most common example is how to reasonably display event information, sharing fission, and recommendations to users and guide users in a limited screen effect, and whether each module can allow most users to understand the original intention of the design, and whether the interaction can adapt to the needs of the crowd. Habits and so on. But at present, I have no energy to invest in the research and tracking of indicators to analyze and verify. I am just interested. I will pay attention to this if I have the opportunity later.

In addition to business opportunities, there are also technical opportunities. For example, discover and grasp the pain points encountered in development. Many students will encounter various pain points during the development or promotion process. In many cases, in order to ensure that the task is completed on time, taking into account factors such as limited time and energy, they selectively ignore this pain point and then invest again after the task is completed. to other matters. Although these pain points have caused a physical impact or affected a little efficiency, they have not been caught and solved, because this problem alone will not be magnified, nor will it affect KPIs or OKRs. The existence of pain points will continue to affect other When the "lucky classmates" you are about to meet are ignored more and more times, quantitative changes will easily lead to qualitative changes: the framework is not easy to use. How to deal with this phenomenon, I personally think that a mechanism can be designed to strengthen pain point discovery, reporting, follow-up, resolution, and feedback improvement. It will also remind the project owner from the side to pay attention to the quality of task completion in addition to the progress of the task.

Costs include labor costs, time costs, opportunity costs, and technology migration costs. As an architect, you need to measure various complex costs and deduce them according to the timeline to ensure mid- and long-term benefits.

Behavior

Technical students are immersed in logic every day and easily fall into a thinking zone: the world is dominated by logic and numbers. In a reasonable structure, business activities need to be decoupled from technology, because technology itself will not bring value to enterprises and organizations, but most enterprises and organizations use technology as a platform to make profits. The process of technology implementation rarely involves individual operations, but mostly involves teamwork and organizational collaboration. The logic derived from the above sentence is: Business value --> Organizational activities --> People are in the organization --> The main body of activities is people --> Follow human nature.

When it comes to human nature, Maslow's hierarchy of needs model comes up. Although everyone's environment, exposure to information, and personal concepts are different, and the needs hierarchy model will also vary widely, from the perspective of the company, organization, and employees, this model is relatively stable and clear. The motivational preemption model can also be understood as the demand suppression model as shown below:

Sometimes task advancement can feel unusually difficult. On the surface, appropriate communication methods can avoid some conflicts. In essence, as the party being pushed, or the parties involved have insufficient resources (for example, the needs cannot be fulfilled), usually the party that promotes them does not Understand the partner's demand priority or dependency level, and the cost of cooperating with him or her. Some things may seem relatively simple just in advance, and there will be a verification process. I don't know whether this process is necessary. Too clear. When these needs are not met, the partner will automatically trigger the motivation, and the dominant consciousness and behavior are usually difficult to understand. The solution to this kind of problem is to analyze the priority of his needs and whether there is motivation suppression. And whether it is possible to coordinately adjust priorities and change the importance and order of motivation suppression.

A phenomenon often encountered in recent work is that the solution is feasible, but the collaborators do not have the resources. Because the organization's resources are not only provided for the project I am working on, but also to support various goals at the current stage. How to find the optimal solution among diverse goals and complex organizational resource coordination is a very difficult matter. As a participant, try your best to understand and provide temporary explanations. Every time you carry out a small baggage, you must never forget to remind yourself not to have too much baggage.

Everyone’s cognition and arrangement of motivation priorities are different. There is a basis for reference : the essence of design thinking lies in in-depth understanding and respect for users. For technical staff, it is to passively iterate solutions and insist on filling in the design. loopholes; or start from the perspective of empathic users and break away from the constraints of existing technical solutions. At the same time, forget the advantages of existing technical solutions and focus on deeply understanding users and solving their pain points, thereby expanding the technical design space and finding a more perfect technical path. The answer is self-explanatory.

The above mentioned are just theories, which is what we often call the ideal state. Whether it can be implemented well becomes complicated, because from a purely theoretical point of view, these requirements for everyone are very high, whether it is professional quality or subjective In terms of initiative, only a few have achieved this. At the same time, with popular social phenomena such as diminishing marginal returns, the 35-year-old crisis, and 996, the underlying logic is that people’s insecurity leads to behaviors that focus on self-protection. Whether these can bring commercial value is worth analyzing and examining. The sense of security mentioned here refers to the environmental pressure that can influence people to make scientific decisions, and is not opposed to the sense of crisis in being prepared for danger in times of peace.

During the process of the technical transformation project, some students reported that they were worried about losing their business and some of the directions they were previously responsible for. There were also students who had suppressed needs that led to low participation. Some expressed it in conversations, while others did not say it clearly. , but there are various signs that there is no sense of security in team collaboration or work content. The feedback and suggestions I gave are: the current goal is to reduce costs and increase efficiency. The business has a broad prospect and is still developing at a high speed. There is no reason to downsize, but this does not mean that unlimited expansion is possible. We need to think about how to do more things more efficiently without expanding, spend less time, and support more industries. While eliminating the sense of crisis, it is also necessary to guide good design thinking. The in-depth understanding and respect for users just mentioned. Many students need this sense of self-satisfaction. However, when the rhythm becomes tense and the environment is not relaxed, these Then they were left behind and turned to satisfy more primitive and lower-level motivations, that is, in the face of a steady stream of demands and iterations, filling the schedule with tasks, and thus continuously investing in intense iterations.

Follow the trend—the right time, right place, and right people

How to see clearly the industry cycle and grasp new technologies.

As the saying goes, you can never wake up someone who is pretending to be asleep. Is this person unwilling to wake up? I don't think so. Rather, it is some weaknesses in human nature that make this person unwilling to accept reality, afraid of change, heavily dependent on past paths, or rigid in thinking, causing him to not want to wake up. Self-paralysis originates from the self-protection mechanism under risk or pressure: When individuals face pressure, difficulties, or threats, some negative coping strategies will appear in order to protect their mental health and self-esteem. These strategies usually manifest themselves as denial of reality, avoidance of reality, or downplaying of problems, thus allowing individuals to temporarily avoid the pain caused by difficult situations. However, long-term self-paralysis may lead to the worsening of problems, the inability to solve real-life problems, the inability to fully explore new ways out, and even the use of diligence to make up for inner uneasiness, and it is easy to fall into the Brownian motion of useless goals - unclear goals and inconsistent actions. continuous.

Fear of change : When people feel pressure, they are extremely cautious about changes. How to stay focused in busy affairs, whether you can let go of the burden of history, how to unload it, if you can't unload it in a short time, how to treat it in the long term, how to support the business at the same time, when facing these problems at the same time, each choice has its own When we think about these issues facing the future, we will know how to choose now.

Path dependence can be well explained in one sentence: success can be learned from, but it cannot be copied . The life cycle of technology can be obtained from the technology community. The life cycle of technology comes from the positioning of most people on the technology. If engineers no longer have a need for this technology, its fate will be abandoned without hesitation.

Understanding the technology cycle is a basic skill for architects and will not be analyzed here. When an architect has excellent technical skills, he must avoid another misunderstanding: holding a hammer and seeing everything is a nail. Technology is a means to achieve business value, not the only way. Under this premise, technology cannot hinder the maximization of commercial value. Therefore, architects must choose appropriate technical solutions when faced with the actual situation of the company, organization, and work.

How to define appropriate technical solutions? Let’s first look at three different levels of R&D activities:

Architects have different priorities in these three levels of R&D activities. Technology-driven needs to ensure the advancement of technology, product-driven needs to ensure customer experience, and business-driven needs to ensure the overall growth of business indicators.

External factors that affect the construction of technical systems include industry development, pressure from internal corporate indicators, the impact of organizational structure, etc. Architects need to obtain comprehensive information, focus on all aspects, and find key factors and nodes that ensure maximum business value.

Summarize

Recently I am studying Guo Dongbai’s architecture class. This article mainly explains the positioning of architects based on my own actual experience, how architecture activities ensure that enterprises and organizations realize commercial value, and analyzes the positioning and direction of each level from the perspective of employee-level execution and management. , through the summary and precipitation of these thoughts, it helps us to better implement technology and business support in our work.

Bun releases official version 1.0, a magical bug in Windows File Explorer when JavaScript is runtime written by Zig , improves performance in one second JetBrains releases Rust IDE: RustRover PHP latest statistics: market share exceeds 70%, the king of CMS transplants Python programs To Mojo, the performance is increased by 250 times and the speed is faster than C. The performance of .NET 8 is greatly improved, far ahead of .NET 7. Comparison of the three major runtimes of JS: Deno, Bun and Node.js Visual Studio Code 1.82 NetEase Fuxi responded to employees "due to BUG was threatened by HR and passed away. The Unity engine will charge based on the number of game installations (runtime fee) starting next year.
{{o.name}}
{{m.name}}

Guess you like

Origin my.oschina.net/amaptech/blog/10110772