Walk out of the software workshop (26)

Source: Internet
Author: User

26. Lions

 

Many people have said: Your method is not a method of getting dozens of shots from three to five people, such as project manager and publicCodeDevelopers, testers, Dockers, and the number of companies that need to be matched with such a team.

Well. In fact, our team is not very big, and we are also a typical small and medium-sized enterprise.

Generally, a product or project is composed of a business development team lead, a main process, and a secondary process. If the project is simple, it is basically composed of a business development leader and a main process. If the development strength of the business development team lead can be the same as that of the main process, and they work hard, they can not only coordinate well, but also design the requirements well, and code development well, A relatively medium-sized project is also composed of two people. If there are several products, there will be several development teams that match these products.

The rest of the R & D department are the project manager, public code developers, testers, and dockers.

generally, the R & D department has one or two project managers. We have undertaken some major cooperative development and integration projects, and we need someone to go to the customer's site to have a meeting with other partners to discuss, submit the solution, workload report, and Work Progress Report. Someone is always required to go to these project coordination meetings. In addition, when the customer opens a ticket, the customer will always raise some technical questions or questions about whether a certain demand can be made. The sales are also ambiguous, and I don't know whether it can be done or not, as a result, a project manager is always pulled. PPT the solution is implemented by the Project Manager of the R & D department, and the price and business conditions are determined by sales. This project manager is also responsible for pre-sales support when explaining the product or answering questions about the customer's product. For projects, the project manager sometimes serves as the demand research manager and uses the demand research method to generate the demand statement. However, demand research is sometimes done by the business development team lead. It mainly depends on the Communication Power of the business development team in front of the customer. Because the business development team lead is a developer, but the technology is average, the business knowledge is very familiar, the management capability is almost enough to manage a 1-2 A person with long working life has more work experience, but some people are relatively introverted and do not want to communicate with customers in research and communication, so they do not need to conduct demand research. So who will do it depends on the specific person. However, according to their responsibilities, both the project manager and business development team lead should be able to do demand research.

Then there is a public code developer, usually one person. For enterprise management software development, framework development and maintenance, public code development, difficult problem tracking, high-performance design, high-scalability design, high-stability code, high-security code, high-concurrency operations, and complicated code reconstruction are required. Technology that requires performance optimization and is unknownAPI, You can seek help from this public code developer. He is also responsible for tracking new technologies, introducing new technologies, and experimenting with new technologies. However, this new technology must be used to improve the company's existing products and existing customers. The tracking of new technologies must be reported to the technical director to prevent improper tracking or tracking methods and ideas that do not meet the company's objectives. For new technologies that are conducive to existing development, you can prepare training courses and arrange the time by the R & D department manager so that the public code personnel can explain them to all the developers. If you agree to this method, you need to choose the appropriate time to introduce it to the product.

Testers of the R & D department generally also serve as technical support personnel of the Service Department. If any technical problem cannot be solved by the service department, you can transfer it to him. In addition, the tester also serves as the configuration personnel in product packaging, product installation and testing, product release, version branch management,Source codeBackup and historical version archiving are all managed by him. Part-time jobs have many benefits. If he does not serve as a technical support engineer, he does not know how the customer uses it. His test is also a blind test. If he does not manage product packaging and publishing,ProgramMembers will release their own versions. There may be a problem with the version. To fix the problem, you can package another version, but the version number does not change, resulting in a different version code error, which makes the service support very confusing. The tester controls the release of the product version and determines whether the product can be released. If the tester feels that the quality is not met, the tester has the right not to publish the product. In many software workshops, programmers have a great deal of power. An old brother is responsible for the entire project from start to end. The quality of the project depends on the quality and sense of responsibility of the old brother. In order not to allow the project quality to be closely related to specific persons, so that the company's R & D can maintain a consistent level, it is necessary to achieve a division of labor and cooperate with each other.

generally, the R & D department is equipped with 1-2 named testers, depending on the intensity of concurrent projects and product development and development. We do not produce the same quality as international products. We are engaged in enterprise management software development in the industry, which is a quality recognition in the balance of Customer quality requirements, customer signatures, and competitor quality standards. We cannot achieve a one-to-one ratio of developers and testers like Microsoft. All the products and projects of the R & D department are tested by 1-2 testers, this includes writing test cases, writing test results, and participating in project requirement testing and design testing.

for documents of the R & D department, such as the normalization of documents, the copywriting is the responsibility of the document. The Project Manager often submits some documents to the customer, while the project manager is often a technical source and does not work well. As a result, the document is normalized, beautified, proofread, and the space section wording punctuation marks, all are created by text. The help document is also the responsibility of the document. Help, provides version update instructions, security configuration help, system maintenance management help, basic data configuration and maintenance help, business function operation help, software operation demonstration video, product introduction PPT , product demo version, all by text. In order to prevent text writers from understanding the product and writing product help, if there is any kind of work such as manual or design, it is also done by the copywriter. The copywriter also serves as a product assistant test, mainly for testing as an ordinary operator, simulating customer process customer data during the production of the demo version for Operation input, test the bug in normal use. Generally, a professional test often stays in the software environment, and the mindset is fixed. However, the actual user does not perform the test, but the tester does not feel it. The copywriting personnel can act as common users for testing. We did not emphasize any software when recruiting copywriting personnel. If the copywriting is good, OK . They are indeed the most common users, and their confusions and operations represent a large number of common users. In a R & D department, the copywriter is often 1-2 name, depends on the number and scale of parallel projects.

therefore, a R & D department, a R & D department manager, 1-2 developer, Project Manager, public code developer, and test, A copywriting, that is, 5-6 the total number of people in a software workshop. Sometimes the team is small, the R & D department manager is the project manager, and the public code developer is the main process, A development team is 3-4 People OK . But the method can still be used. Because the method I mentioned is adapted to the organizational structure of the four carriages. Everyone has a number of roles and is very helpful to their own improvement, rather than accumulating irrelevant work content for him. Each role can complement each other and improve the professionalism of his position as a whole.

as the business development team leader, he is responsible for the development project progress and quality management. 1-2 individual developers have such high quality, we often encounter a sudden project or a sudden past project problem that must be tracked by developers, so developers will always be left and right tuned. The Business Development Team Lead does monitor abnormal development progress every day to monitor the development tasks and development progress carried by each developer. Every afternoon, 5 you need to check the development progress of these two people. Some people do not like to take the initiative to say what problems they encounter. They always like to find answers everywhere, delaying normal development plans. Therefore, the development team lead must 5 click here to ask the problem, is it difficult, can you ensure the progress. If there is no guarantee, the business development team lead will find a way to make a diagnosis for the whole group, or to seek public code developers or R & D department managers. Why 5 in the afternoon? Mainly because 5 : 30-6 : 00 it's off work. If you leave work soon, you will ask, and everyone has long been thinking about it, and everyone wants to come home from work quickly, the problem will be separated overnight, leaving an unclear tail. If you have a problem at 5 , if the problem occurs, he will soon decide how to solve the problem. After hearing the details of the problem, the business development team lead could not decide. He knew the problem and thought about it at night. He decided to come to work the next day. This is not a delay.

We useBugManage the system to manage development tasks. It doesn't matter.BugManagement tools can only be managedBug. We only need to solve our problem. Of course, we manage the trueBugThe system is another, but we use the same tool. Of course we will notBugAnd tasks.

From requirements in the demand management system, fromBugManagement SystemBug, Will be evaluated by the business development team lead, according to the current workload of each person in the team to add, set priority, assign tasks, scheduling tasks. Based on the task allocation, which tasks are out of date, which are completed, which are not yet started, and which are in progress to determine the development progress and workload of developers.

The Business Development Team lead will also report the progress to the R & D department manager on a daily basis to briefly describe the existing problems and solutions. The progress list, of course, is exported from the tool. It lists the tasks that are closed today and not closed yet. In this way, the R & D department manager thinks: after the project has been started for so many days, there are still so many tasks that have not been completed, and whether the project can be completed after expiration, he will think about whether to make some adjustments.

For project progress, whether or not the customer needsXxMonthXxBefore the launch date, we will set up a project end date. The project cannot be moved with the stream.

The end date of the final project development is not determined by the Business Development Team.

My previousArticle. The Business Development Team lead is responsible for sorting out functional points, assigning functional priorities, and preparing detailed functional manuals. In addition, a task is assigned to the developer for each piece of writing.

After the business development team lead divides the function priority, because each function has almost the same complexity, if a function is complex, it will be split. The Business Development Team lead can estimate an approximate project development cycle. Based on previous team experience, you can estimate the time for centralized testing and centralized document testing and packaging. In this way, the business development team lead has an estimate when the entire software can finally come out. If a team is a new team, and everyone's abilities are unclear, it is estimated that there will be deviations, and it is necessary to work together to gain experience. I will talk about it later.

When developers are actually allocated, the time is reversed based on the overall goal completion time. In this case, there is a completion time period for each function, and the Project Manager also has a time to estimate the capabilities of a specific developer, developers also have an estimated time to complete this function. Developers are afraid that they will not be able to complete the task and will usually put the completion time back.1/3Time, and even some people want to be lazy and do their jobs, they will estimate more time, that is to say, they feel3That can be done in days.6A genius can handle it. Of course, the business development team is not vegetarian. The Business Development Team lead is also a developer, who knows how difficult it is. In addition, the business function is designed by the business development team lead. It is clear to yourself what difficulties will be encountered for implementation. In addition, every day these developers, who are capable, who want to be lazy, every day in an office, who do not know who. Therefore, the time of each task is adjusted based on the estimated time of the developer to obtain a task time period that can be accepted by both the developer and the business development team lead. Then adjust the time at any time based on the daily progress report, so that the development progress can be as realistic as possible, instead of setting the actual work before the plan.

There must also be a condition for ensuring the project progress: we do not allow developers to develop at the customer site, and we do not allow developers and Business Development leaders to be separated.

At the customer's site, developers often tend to control the development progress and functional requirements, making the plans and designs made by the development team much more visible to the customer. Developers are not satisfied with the customer's practices, but there is no way at the site, so they have to give up and accept the development right. A rational design was overturned by the customer's self-righteous good practices. Software scalability and compatibility are all put aside. When you come to the customer's site, you have to listen to this specific customer. You have to talk to him about what other customers do, he paid your money. In your eyes, he must be your only customer. (Customers, like women, want to be the only women in the eyes of men, but the reality is that there are many women in the world, and many women are similar, both require that the man corresponding to her must be unique)

In addition, developers develop at the customer's site, so they cannot build daily tests on a daily basis. Development is a collaboration of teams. A piece of software is not all done by developers (many bosses think there are developers ). Without testing, the quality cannot be guaranteed; without documentation, the product is bare software. Many bosses also think that testing and documentation can be done after the code is compiled. They really don't know how to ensure the software quality.

WE do not allow separation between developers and Business Development leaders. Because the design document is not a code during development, the result is that the machine runs completely. Each business development team lead has a high level of documentation, and each person has different ideas. We often encounter a problem, that is, using emails, MSN communication is always wrong, and due to not timely adjustments, the misunderstanding grew bigger and bigger, and then I called directly angrily. When you call a phone call, sometimes it doesn't work. If you ask him to understand it, he says he understands it. You can't see his expression at all. You can't guess whether he really understands it or not. You think he understands correctly, and he thinks he understands correctly. You asked him about the progress. He said there was no problem. After the development, the tester has his own understanding. In the end, no one knows whether the three understand anything or not. Only when the business development team and the team work together can we see the actual software on a daily basis and communicate feedback with each other face to face. Many friends who have just become business development leaders often work hard with their employees. He was angry that he had changed his code three times a day and frequently overturned his code. The Business Development Team Lead believes that his team has a low level of understanding and cannot clearly talk about it many times. He is also talking to himself, so it is better to develop code on his own to save time. After that, I went back to the programmer.

I also do not allow the team to use multiple technologies. Multiple technologies increase the cost of the team, and each person needs multiple technologies. In order to make money, we must develop enterprise management software at a low cost on a large scale. This is an idea that both my boss and I agree. Therefore, we must use the most common technology. Unless there is no way. I once had one employee who was afraid that I could not compete in job hopping, so I learned popular technologies. php he learns php . ruby he learns ruby . Today, online games are very popular with embedding, communication, and wireless networks. He started learning C . When mobile phone development is on fire, learn j2-< span style = "font-family: ;">. In addition, he also wants to have practical development experience to say that he has done something with this technology during his application. So he tried his best to introduce these technologies into the project. Usage: . net , I cannot guarantee performance and stability, so I must use VC ++ .?? Who else? Everyone is a developer. This excuse is ridiculous.

I do not allow the team to use the latest technology either. We only use the most appropriate technology. We do not want customers to pay for new technologies that are not needed. The customer level can only be managedSqlserverWe will never use such a database.Oracle. If the customer requiresUNIXRun on, we will useJavaDevelopment. Our careful evaluation and introduction of the framework focus on whether the customer can be easily maintained. Are there any significant advantages for us and whether we can solve the most difficult problems well. If we can only solve our less urgent problems, if we can only solve the problems that we can solve through manual or management, we will not introduce them. Everything is about speed, cost, and quality.

We also adopted daily build-daily testing to ensure the progress and quality of the software. Do not perform a daily test. When is the test performed. At that time, we couldn't tell if there were any other uncontrollable problems. This fear of the future requires us to minimize the risk to the day and today. If you close the task today and test it tomorrow, you will know that the problem is not big. If there is a problem, it must be registered by the tester.BugSystem, and the business development team lead can adapt to the current situationBugRepair is added as a task.

We also use version management tools. The version management tool not only allows us to compare the differences in source code, retrieve historical versions, package and update versions at any time, and customize the requirements of each customer in the branch, but also reflects our work. People often hear this: I don't know what the developers are doing? Is it intentional use of code that I don't understand while being lazy.

What are we doing? Can we prove it. Sometimes it is true that a problem cannot be solved for three or two days. We are really embarrassed to say that we made a feature in three days. If we explain why such a technical problem occurs, the boss is not interested in it. He thinks that you are mocking him.

How can we prove it? Can you prove yourself in ways that everyone can understand? So I thought about the document quantity and size, and thought aboutBugNumber, number of tasks, number of requirements, Development Progress Report, number of version releases, source code archive capacity, and number of source code lines.

Number of tasks after a project is developed300Many,BugQuantity400Multiple, document size70MultipleM, Project Discussion Meeting Minutes30 m, Submit previous project solutions20MultipleM, Development Progress Report100Multiple help documents100MultipleM. These can be quantified and visible, making the boss feel that many things have been done.

We once had a customer.10I bought a CD for tens of thousands of yuan and thought it was expensive. To share one talent5You sell me10Tens of thousands. We printed all the help documents,600Multiple pages, bound3This book is printed and handed over to him. Then, the software was packed in a very elegant wooden box, and the customer smiled and put the box and manual in the same way.ItThe top of the Department cabinet. I think the software is composed of code, and it is really difficult for the customer to understand the hardships and efforts, so the customer does not agree with our efforts. The solution is to be clear in a way that the customer can understand. The principle I have always followed is to either solve the problem or shut up. If you can't find a solution and complain about the impact on the team's mood, this kind of person is the poison of the team.

In the past, we talked about how the business development team lead fulfills the responsibilities of function design. Today, we also introduced some experiences of business development team leaders in Task Assignment, software progress, software quality assurance, and work quantification. This is part of the team lead. I hope to inspire my friends who have been put on the development team lead. Don't set yourself as the head of code writing. If you don't meet the current situation in China, the domestic development team lead will need to do these things. How foreign countries do it is a foreign thing, and you cannot enjoy it. This is China. Either do it, or honestly continue to be a programmer.

Related Article

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.