Wen five business modeling period (below)
content:
· Principle
· Practice
Unlike the theory of the previous article, this article is more focused on reality, and some of the principles and practices that need to be paid attention to in business modeling, each comes from practice, and there is also theoretical support. Many of them have been summarized more than a number of failures. I believe that if you can understand some of these principles and practices, you can at least avoid repeating the mistakes.
Principle (Princi)
Who is "God"
We said that customers are God, because of the importance of customers, customers account for decisive status. But in software development, who is the right to decide? Is it an account or a project experience, or a programmer?
The responsibilities are unclear, one of the main causes of business modeling failure. We can easily see that our customers will throw their own requirements to develop themselves to developers, or developers to develop procedures in their own meaning. Is it difficult to say that between customers and developers really "have a heart, do you have to communicate now.
I have mentioned the rights and obligations of projects and developers in the foregoing, I think there is still necessary to emphasize again. Scott W. Ambler said:
IT is The Role of Project Stakeholders to Provide Requirements, It is The Role of Developers To Understand and Implement Them.
In my development process, I met a very interesting involvement. He wrote this in his needs analysis: "In short, to achieve the ability to think, you can do it." I think this is There is a very much ambition of our computer industry. But I have to tell him that it is not realistic.
Everyone may feel funny, but in the career of myself and the customer, this kind of customer is not a few. This is the case, what do you want? Is it a smile? I think most people will do this. Because his requirements are too absurd. However, have you taken time to find out what he meant, he means he mean after this ridiculous words? I think that software developers have an obligation to educate people, you need to guide you the public, let them say their own voice. After I saw this sentence, I spent some time to understand, in fact, things are very simple, he is a function of customizing report templates. After the end of the project, I have a cooperation with this public, this time, he has become an excellent customer project leader.
What did this example explain? People involved are often a field expert, which has a deep understanding of their work, but because of the software development is not understood, the public is often unclear, and even does not express their needs. At this time, it is when you reflect your skill. Remember, treat your customers like God.
2. Patience is the first
Understand who is "God", then treat God. People who are academic engineering generally will be better in logical thinking, but for the public, it is not necessary. I have encountered a letter to the archives. When I understand the needs, I will talk about the West, I am ambiguous. It is clear that the method has been negative a minute, and the next minute is raised. I think my temper should be good, but I will always have almost. Fortunately, I finally supported it. I think, after I have experienced this, my patience index will have a big improvement. I have a colleague's tolerance is what I admire, in a website project, he is responsible for system analysis. He spent three days for three days, and the head of the website project lived together. Finally, after the system analyzes, his spirit is not bad, but the person in charge is already not.
Of course, this is just a joke, not to encourage everyone to die. Work and rest is still very important, the body is the capital of the revolution. But this tells us that if it is abundant, demand is difficult to succeed. For example, at the discussion of business modeling, although you stipulate that this meeting is discussed, it is a high-order demand, but the participants will argue with some sesame green beans. what would you do? I believe this situation is very common.
Patience will still be embodied as communication, only patient communication, you can uncover the heavy veil of the demand. People's behavior will always be guided by thought, if you can't solve the heart of the public, you can't understand what he really needs.
My project is very strange, she is always talking about it: "She wants to realize the report automatically." Her demand will talk about this range, but I I have almost nothing else from her. At this time, I decided to give up, I want to have no more information from her. But after I learned that her work is taken up, I changed my thoughts. After I spent some time, she gave me a lot of help after I finished the idea of reporting.
3. Participation is important
An important practice of the XP method is to promote "On-site customer". That is, customers should provide information and make decisions at any time with the developers. And this customer must also be expert, and can have the right to make decisions.
This site-site customers believe that the domestic software organizations will not be able to do. But must work hard to this way. I think that there are two kinds of customers in this site: one is a project, and there is an industry expert. In fact, many software companies are equipped with some management consultants, which are industry experts. According to statistics, the proportion of consultants and developers in Guangdong Software Co., Ltd. have reached 3: 1. I think this is a good thing. The project is often a deep understanding of the transaction in our work, but it is difficult to improve it to a theory level. At this time, some industry experts will need to help. Let the industry experts and projects discuss together, but also inspiration of the project involvement, thinking that he can't think of it. This is the development of "potential demand".
On the other hand, participation also means that the project is required to enter the business modeling process, and it is necessary to mobilize their enthusiasm. Therefore, too complex processes will hinder the participation of people. Therefore, it is necessary to use some simple, the workpiece that can be accepted by the customer is necessary. I said the "protagonist" in the previous discussion, "use case", that is theory, it is to give developers, so that the developers have a bottom. You see these people, can they understand? Waiting for them to understand this mechanism, I am afraid that the lily is cold.
User Story, Feature, CRC cards These are very good workpieces, which are simple and can meet the needs. Knowledge points: Materials and features represent a simple requirement of users, it can be completed in a shorter time. The material is the workpiece in the XP method, and the characteristics are the workpiece in the FDD method. CRC is an abbreviation of Class, Responsibility, Collaborator, which is a card divided into three parts, which marked the class name, class responsibility, and the cooperative relationship between classes. Very close to customers, can even complete the card in the process of making the game, can bring strong customer participation.
4. Hug changes
I think this will be unable to accuse the developer. After all, demand changes are the most annoying developers. Yes, I also hate. However, as we often say "crying can't solve the problem", do you hate you can solve the problem? Reject the customer's change request, requiring customers to sign on the requirements specification. These practices can only be counterproductive. There is no positive, positive meaning.
The necessary demand change management is important. Because there is no stop, no control changes will inevitably create a great waste of resources. However, from another aspect, the criterioned criteria that the demand change is accepted should be "whether it is reasonable", not "whether it is easy to implement".
Demand changes require our development work to be iterated, including requirements, design, implementation and other stages. This will minimize the risk of change. This is further discussed when we discuss specific demand modeling.
A higher level of hug changes is an early estimation. Develop a list of possible changes to record possible changes. The easiest example is that a company has hoped to develop a wealth system after developing a reducing system. If you can prevented the forefill, I believe it can save a lot of strength. Another way to predict changes is by usage. But remember, the use of patterns can not live. These are external words, if there is a chance, I will focus on this problem in other articles.
Practical
5. Modeling Conference
The meeting is the most important means of business modeling. Although the meeting is always carrying some 名 in China, as long as the organizational is well, it is a very effective communication method. Modeling Conference is a wide range of meetings, in other words, all relevant personnel should take the meeting. Because of the business modeling period, the main purpose is to establish high-order demand for the system, which requires a common participation of many projects to ensure the broadness of demand. So, the size of the modeling meeting is quite large. People, senior managers, managers, direct users, developers, and all parties should participate in or send representatives to participate in modeling meetings.
If you have experienced experience in the large-scale meeting, the more large meetings, the lower it's decision efficiency. this is normal. Because of a person, there is no need to communicate, the decision efficiency is the highest. When two people, they need to communicate time to make decisions. When three people, this communication is more time. If the number is four people, five people or even 120 people, then most of the time will flow on communication. What's more, there is a difference between people and people, and the argument of interest. So, in order to ensure the efficiency and effect of the meeting, you should follow a certain rule:
· Prepare: If you want to meet, the participants are unclear, then what will you do. You must first spend a lot of time to explain the purpose of your meeting, is it. To send the subject of the meeting in advance, the agenda is sent to the participant, let them have a preparation first, and the meeting will quickly enter the topic.
· Try to invite the most people: I have said that if the modeling meeting can't hear the most extensive opinion, it is not a successful meeting. But in reality, this is often difficult to do. Because the target organization is a customer, it is often very "". It is impossible to do all the arrival before the importance of the conference. It is objective to have bad, vacation, and have something to do. Here, on the one hand, you need to clarify the interest to the decision maker to the target organization, let them pay attention. On the other hand, you also need to actively invite the project to participate. Because all people are invited, it is as much as possible. · Divide the level of participants: I really like the meeting room with an inner ring, an outer ring. Because I invite all people who can't do something, I must first guarantee that the core personnel can be all arrived, sit in the inner ring, then the secondary person, sitting outside the outer ring. The core person is close to your project. For example, financial system, financial executives are core persons. To ensure that the core staff arrived, as for the secondary person, the more all the better.
· From the bottom layer: Chinese people have a bad habit, it is the boss to say one, he will never say it. So let the underlying first talk first, then turn to the middle layer, then go to the upper layer. The developers don't talk, they are either listening, or guide everyone to talk. If we first let the leaders come to the train, the bottom of the people will not have to say anything.
· Enume all views of all involved: First, let everyone can speak freely to the new system, then put all the points on the whiteboard. There may be some views here that there will be very absurd, but there is no relationship, despite it. This is a brain force, it is easy to generate new IDEA. The main job of hosting developers is to guide and encourage everyone to say more ideas and record it. Here we have a slight issue, some people say that Chinese people are not willing to express their opinions at the meeting, I don't have to worry too much in this modeling meeting. Why, because the project is involved in any responsibility for their speeches, saying, white saying that Who does not say anyone.
· Classify the views: If you want your project, you are already a bit tired. Creativity is almost, your whiteboard is estimated. But you look at the views on the whiteboard, there are a lot of repetitions, there are a lot of similar. So you need to classify these views with logic. This job can also be guided by you.
· Determine priority: It is also very important to discharge priority to perspective, it can help you identify significant risks and provide guidance for you to develop an iterative plan. Similarly, this work should also be determined by the project.
· Investigate the main business logic: What is the main business logic? Including the main business process of the company, the main business rules, and significant algorithms. These are all clear materials that need to be started at the beginning, and they need to know clearly at the modeling meeting. Of course, you can't say to your project, "this, next, everyone talks about the main business logic." The following is a must not have the mind. You should also guide the public, capture the information you need from the discourse of the people.
· Note the time: people are not machine, it will be tired. So the length of controlling the conference is critical. In general, this conference will have four or five hours, according to statistics, the meeting within two hours will not make people feel fatigue. Therefore, the meeting should be divided into several small segments. In addition, you can also determine the number of people participating in each segment according to the progress of the meeting. Because the meeting is, some participants are not too important.
· Avoid details: The main goal of modeling meetings is to establish high-order needs. If you spend too much time in discussing the little things of the chicken fry garlic, you will waste everyone. At this time, the details of the survey demand are not very significant. Because you don't understand a lot of things, you need to further deepen. The details at this time are not much helpful to you. · Avoiding technology: I met a crowd responsible for the technique at a modeling meeting. He always inquiry the system's technical architecture and promoted his design concept. I have to reiterate a few times. "Technical issues We will find time to talk about it separately." I think the technician should have a better idea, and I hope that I can express it. This is not very good. However, when this time is not discussing technology, the demand has not yet been clear, what is the discussion technology is not inverted?
· Do a good job: As the saying goes, good memory is not as bad. So doing a record at the meeting is critical. Because the price of this meeting is quite high, your project is not possible to do not work every day, accompany you, even if they are willing, their boss is not willing. Therefore, it is necessary to make full use of the results of the conference, so an excellent shorthand is absolutely necessary. In addition, according to the study, if the recorder is used, the participant will make the participant's heart, so do not open, so don't use a recorder.
6. Test
In the initial phase of the demand, it will be strange to test the test. Any project will always have a standard to assess whether it is successful. The test here refers to a "executive target" that the assessment software item is successful.
This goal will be the criteria for the success of the software development to meet the conditions, the successful determination standard. Many companies do not have a more clear goal when information is under construction. So when I asked this question, his answer is often my goal is to build an enterprise's ERP system, and the construction of a company's information platform. How is this software developed? There is no standard ended. Is the fees ended over, or the decision maker stopped. The goal should have a standard that can be quantified. For example, the purpose of the development logistics system is to shorten the product turnover cycle, reduce inventory; development supply chain system is to strengthen and reducing the supplier, reducing inventory. These and specific business-related indicators can be made by refining, with a variety of division indicators, so it can be done.
We refer to this goal is that test is to remind developers to meet this goal as the final test. Your software is doing well, not what is going on, what is it? This is a very simple truth, but in practice, all party and development are often could not see this due to some specific factors. In fact, this goal is in the previous one, then we also called it as a vision, scope. It is essentially the same.
This "executable target" can be measured using some factors:
7. Business entity
Business entity is some categories in the enterprise play a key role. Customers, suppliers, employees, orders, vouchers, such as this business entity can have a lot of many. Business entities tend to become a critical factor, because in the system, the behavior of role operation business entities tend to be assigned to business entities, such as "calculation price according to orders" will become an order of orders. In this way, the implementation of the workflow is often completed by multiple business entities. Therefore, the quality of business entity design will have a big effect on the system.
The main tasks of business entity design include identifying business entities to determine the properties and behaviors of business entities.
To determine a business entity, you must first determine the role and find a business entity from the role. Role requires us to discuss the target organization. With my personal experience, finding business characters is generally relatively simple, but I have to remember that a person may have several business roles, which is often happening. From the behavior of business roles, we can find things handled by the business role, which is the business entity we need. Business entity is a separate business entity or an attribute of a business entity is worth studying. One this is that the property is judged that the business entity will only bring some overhead, but a business entity that the individual listed is just a attribute that is determined to be other business entities, it is possible to bring catastrophic consequences. The biggest possibility is that the system is difficult to expand. In a human resource management system, employee categories may be a very important business entity, which may have a lot of properties. In other systems, such as in stock, employee categories only play a record, the effect of authority management. For example, in some automation processing systems within some enterprises, customers may just be the properties of other entities, while the customer-centric design is now in this design, this design has its fatal defect.
To determine the properties and behaviors of the business entity, it is mainly to determine what you want to do every class (business entity), the property is to better describe classes and classes. It is a good way to use CRC cards.
CRC is an abbreviation of "Class)," Responsibility "and" Accessor "(Collaborator), which are often present on a card.
Class name
Responsible 1 Responsible 1 Auxiliary 1
Responsible 2 Auxiliary 2
...
By making such a CRC card, it is more likely to find behavior (responsibility) and attributes (auxiliaries) of each business entity. You may ask, why not find out the properties and behavior directly, but more this. This problem is that we have been emphasizing. In the modeling phase, we face the crowds that may not understand the computer technology, so we can guarantee the integrity and correctness of the demand.
8. Preparation plan
Currently in software development, there are two extreme misunderstandings on the plan.
In some software organizations, generally don't make a plan, or do something general, there is no need to use. Some developers believe that "doing the plan is virtual, it is better to do some practical things." For the project manager, or there is no way to this situation, or the scheduled developer is yang Yin, let the plan be a paper empty text. The project execution is extremely large, and there is a thing in the direction of the deviation.
In other organizations, the plan is considered to be the top priority, and it takes a lot of time, human, and the plan to make things don't have a big, and there is no legacy. The project manager written by this plan is also considered a senior talent. The developer sighed, "Write the program is not as good as writing documents." But when executed, the originally precise plan often vulnerable, the progress of the project is dragged.
All of us know that in software development, it takes 90% of the time to complete 90% of the project, and then use 90% of the time to complete the remaining 10% project. why? Plan unscientific.
In management, planning, also called planning, definition is "to determine the target, implement the target's strategy and means, steps, procedures," I want to put a box into a place, this The place is my purpose, I have to estimate what the route is pushed, and how fast it is. Then I started to push, but also more than time to compare the original plan, you need to adjust the route and speed. This estimate is a plan. The planned goal is not to eliminate errors, but let all errors become a pile of small errors after careful planning. After four design methods, I finally gave up three kinds, but the most is three small mistakes, but the program is rewritten three times because there is no design, but it may cause three big mistakes.
However, why do the two extremes mentioned above? The first situation is actually the earliest form of the software industry, no plan, resource allocation confusion, software development process is chaotic, disorder, and spontaneous state. The success of the project is fully capable of luck and project members. The second situation is actually a form of progress, the most typical representative is the waterfall model we mentioned before. Why is this consideration of the careful plan easy to fail? Very simple, you think you consider care, but it is actually not necessarily. I have seen the timetable that is considered in a detailed plan for a week. It seems that he didn't plan to let the developer rest. The plan is an estimate of the future. Which one can accurately say the situation after 6 months, I am afraid no one can go. Before September 11, how many people can eat such a big thing? Then what do you calculate for half a year, or even a year? In addition, do you really understand your developers, so that confidence replaces them to formulate plans?
Some people say that the plan has not changed fast. This sentence is very right, it reminds us that there is no plan to do it, and it does not have an executable plan. It is not to be used to show off, it is to be used. When we plan to plan, there is no gorgeous phrase, a beautiful idea. But we can't do not have some elements:
· What (what): The work required to achieve the target is listed in order;
· When is the time required to complete the work;
· How to do it (How-Well): What standards you want to complete;
· Resources: The person / funds required to complete the work;
· Who (who): Who is responsible for completing the task.
But we still can't escape the problem of departure from reality and programs. Although we have a lot of things expected after a year, we have nothing to grasp the developers. But if you think about what you have two weeks should still guess, eight or nine don't leave ten. This will lead the concept of iteration. A project consists of several or even iterative cycles, each iterative cycle is easier to estimate and develop a plan. This is the idea of iteration, and a big leap in software engineering technology. Speaking here, I have to hang everyone's appetite. Regarding the discussion of specific development iterative plans, we will stay to the next chapter to discuss the details of demand modeling.
9. Training
I am hard to imagine how the project is not training. The soldiers have a cloud, "the three armies have not moved, and the grain is first." We can understand that it is well prepared in advance. The project is also the same, and at the beginning, it is necessary to designate a good training plan, and leave the training time. I think, unless it is a very perfect team, his member must still have something you don't understand. If there is no training program, push the task of learning to push down the person, the risk of the project will become difficult to control.