Where-path to software architect

Source: Internet
Author: User

 

Wen/Dong Yu

Based on an education network system construction project, the author shares his practical experience and experiences, which provides great guidance for the development of the project manager.

Tang Miao's teacher and apprentice went to westday to learn the Scriptures. They did not fear the hardships and did not give up. After the S, they finally achieved success. This is a great journey, dare to ask where the road is-the road is under your feet! There is no reachable goal in the world, and the farthest journey is under our feet. This is a place that touched us deeply. The colorful magic world of travel to the West is actually a projection of the real society. Ordinary people will suffer for survival and development. As a project manager in the IT industry, I deeply understand that this is a challenging and difficult job, but it is also a way to develop and improve myself. Smooth sailing experiences will not increase your talents. What helps individuals grow is actually difficulties and obstacles and the process of overcoming them. Only by experiencing the storm can we see a rainbow.

This article is based on a large-scale education and training website (referred to as the education network system) construction project I am in charge of, and some experiences based on the practical experience of the project. I experienced this project as a project manager. Now I have reviewed the problems and solutions that I encountered at that time.

Party A does not provide a hardware testing environment, and strives to detect problems in advance during trial run.

This project should build an online learning and education management website, provide a platform for online learning and assessment, and achieve information distribution and organization management of training work. The courseware used by the platform is made by other systems. The system must provide the courseware upload management function. The system uses the Oracle database and WebLogic application server, implements Load Balancing through F5, and uses the B/S architecture based on J2EE technology, which requires running on the UNIX platform.

After taking over the project, I first made a preliminary understanding of the operating environment of the system. The customer's data center has multiple ibm aix minicomputers and PCs. WebLogic application server will be deployed on the AIX minicomputer. On an AIX minicomputer, application systems of multiple companies will be deployed at the same time. Each application system is deployed in WebLogic by establishing an independent domain).

Any application system should be strictly tested before going online, and the test environment should be consistent with the actual running environment, because the functions and performance of the application system are different in different operating system environments, we need to prepare an AIX minicomputer as a test environment to ensure the stable operation of the system. However, the previously undertaken projects basically used HP and Sun servers, without AIX servers.

I realized that this is an important risk and must be properly addressed. The customer's IDC has some test equipment available for use. I will communicate with the sales manager to see if it is possible for the customer to use the test equipment in the IDC. The project was still in the pre-sale phase and is under contract signing. As a result of feedback from the sales manager, the customer is not responsible for providing the test environment, and a clear clause is added in the contract: Party A is not responsible for providing any testing equipment and environment. When I hit the wall on the client side, I had to find another solution. The first thing I thought was to get support from the company.

After the project was started, I reported this risk in the Project Plan. I hope the company can help allocate a testing machine or purchase an AIX minicomputer to share the risk among various projects, solve the same problem that multiple projects may encounter. The Project Management Department quickly called and asked for details, indicating that the company had some difficulties in deploying machines. There were no idle minicomputers in other projects, and there was no budget for purchasing machines. I hope the project team will try its best to solve the problem, and stressed that it is necessary to properly handle the problem, so that the problem cannot occur.

Recalling my bad mood at the time, I felt isolated and helpless, but I also learned an important lesson from this process: the role of the project manager is not only to discover and ask questions, it is more important to solve the problem. The hardware environment for system testing is not available, and customers and companies cannot provide support. This is a problem that must be solved.

This problem is well solved now and can be easily solved by short-term leasing at a small cost. However, at that time, the IT leasing industry had not yet developed and the prices of large companies that could provide equipment were very high, small companies with low prices have incomplete equipment. I asked if two companies with good relationships can borrow the funds. The other company does not have any idle machines. It seems that this risk cannot be avoided, so we need to find countermeasures on how to reduce the impact of the risk. On the one hand, I continue to look for machines. On the other hand, I actively communicate with the customer and finally get the customer's support. We can deploy the machine in the formal environment in advance and try the system for a short period of time before a large-scale test run, this gives us time to solve possible problems.

Locate the cause of the problem, but the consultant questioned it.

I was able to deploy the system in the formal environment in advance, but soon I found a serious problem: the video files of the courseware are usually about several hundred megabytes, when uploaded to the AIX platform, the speed is very slow, only 40 kb/s, so that the browser page does not respond, only a dozen megabytes of small courseware can be uploaded successfully, A slightly larger courseware cannot be uploaded.

I organized a project team to thoroughly analyze the problem. By comparing the differences between the test environment and the formal environment, the cause of the problem may be "network environment" or "Operating System ", in addition, whether the application Upload Component can run normally in the formal environment still needs to be verified. According to the preliminary analysis, we have formulated and implemented the following troubleshooting measures:

Use ftp to upload large video files in the customer's environment, and use network monitoring tools to check whether the uploading process is normal, results are uploaded quickly, and network monitoring is completely normal, network factors are basically excluded;

The WebLogic application server is set up in the Windows environment of the client for testing. The log output function is added to the upload code to print the use time and transmission speed of each segment during the multipart file transfer process, and the results are uploaded quickly, you can confirm that the Upload Component is running normally;

To further narrow down the problem of the operating system, we set up an hp unix test environment in the company, and the upload speed is still very fast. This basically determines that the problem is caused by the AIX operating system.

The project team members of our organization continued to work hard, read a lot of information about the AIX operating system, and analyzed and demonstrated the team's technical backbone, finally, the problem is located because of the network transmission parameters of an AIX operating system. Therefore, we wrote an analysis report and submitted it to the user, explaining the troubleshooting process and conclusion. The customer requested us to allow us to adjust a parameter of the AIX operating system to solve the problem.

However, the incident was not as smooth as expected. The consulting company requested the customer to think that our report was not evidence sufficient and that the problem was caused by an application system error. Therefore, the application system should be modified, parameters should not be adjusted. Since the AIX system runs multiple application systems of multiple companies, the adjustment parameters may affect other systems, therefore, the consulting company insisted that the parameter should be adjusted without obtaining an authoritative conclusion.

We could not find the AIX system to verify our conclusion at the moment, but the customer asked us to solve the problem as soon as possible. Due to time pressure, we had to adopt the right solution and modify the technical solution, the system design has been adjusted, and a Courseware upload management method has been added to avoid directly uploading through the application system. In this way, some operation steps will be added, however, this solution can meet the background maintenance requirements of the courseware, and the customer also accepts this modification solution. This problem has basically been solved.

Respond to questions with facts and win the confirmation of Party

Although the problem has been solved, my mind is not steadfast: Our troubleshooting conclusions have not been verified on the AIX system. This bypassing of the trap is only a matter of expediency, the future promotion and productization of the system will bring about potential risks. We may encounter this trap again in the future. In addition, since the consulting company has been serving customers for many years and plays an important role, their opinions will influence customers' comments on us. This is another important problem that I must thoroughly solve: How to prove our strength and value with facts.

I have never abandoned multiple parties to find a solution to the problem, and have been keeping in touch with our partners. At that time, I was responsible for another project and required a third-party test. Therefore, I invited a professional third-party testing organization. They have a variety of brands, models, and configuration servers, which allows me to see the transfer. During the third-party testing, I established a good relationship with the person in charge of the testing organization. When I proposed to borrow the device for free, the other party readily agreed.

We quickly built an application system on the AIX operating system and conducted a long-standing test. Select several video file samples of different sizes and test the network transmission parameter tcp_nodelayack with the default value 0. The results are the same as those at the customer's site, the file upload speed is about 40 kb/s, and files larger than 50 MB cannot be uploaded successfully. When this parameter is changed to 1 and then tested in the sample file, the upload speed of the result is significantly improved to 4 Mb/s. We recorded the verification process in detail and wrote a report to the customer and the consulting company. The facts prove that the application system has no problems and the troubleshooting conclusion is correct, we have won the recognition of our work from our clients.

Software Vendors interrupt services and refuse to provide support

The education network system was officially put into operation and achieved good results. The customer decided to promote the system in its 20 branches. After the solution demonstration, the customer decided to build the education network system as the center, the system is deployed in 20 organizations in a distributed structure. The customer quickly convened a plenary meeting and asked the branch to complete hardware preparation as soon as possible. We have learned that many branch facilities were previously purchased by the customer's headquarters in a unified manner. AIX Minicomputers are dominant, and some branch offices have a large business volume and tight resources, for this reason, we have purchased an AIX minicomputer.

After the hardware is ready, the customer signs a "Software Development Service" contract with us, requiring that the education network system be transformed and improved based on the individual needs of the branches. In the work of System promotion, another tricky problem emerged: the system needs to use R's Video Server r server to play courseware, in China, R has interrupted product sales, services, and technical support for Aix-based R4 and later versions, even R4 has been rigorously tested only on the operating systems of Aix 4 and earlier versions, while the AIX minicomputers purchased by branches are all versions of Aix 5 and later, therefore, it is impossible to obtain a reliable video server. The headquarters has accumulated a lot of courseware resources over a period of time. These resources are based on the proprietary video file format of the R Company and need to be shared with the branches, so it is impossible to transfer to other video servers.

In response to the above problems, I organized a project team to analyze the problem. Based on our technical accumulation and mastery of the video server of the R Company, we can determine: running R4 without strict tests on AIX 5 is not a problem. We can consider purchasing R4 to replace the later version for AIX 5. The following question is how to persuade R to sell an exception to R4.

For this reason, I have communicated with the R Company several times, explained in detail the problems we encountered, and hoped to get support, after communicating with the U. S. Headquarters for multiple times, the person in charge of the R Company clearly stated that this is a sales policy determined by the headquarters and cannot make an exception. In addition, R4 lacks some new features, which is detrimental to project development and implementation, we strongly recommend that you use another operating system to purchase the latest version. However, this means that the customer cannot use the minicomputers that cost hundreds of thousands of dollars. This is absolutely unacceptable to the customer and the problem is deadlocked at the moment.

This problem is not isolated, but also has some potential problems. According to the development of the number of users, the system headquarters and its branches are likely to need a video server cluster in the future. Therefore, it is not just to solve the current problem, so we must plan ahead, otherwise, we will still face this problem in the future.

In this project, we are only responsible for the software part as required in the "Software Development Service" contract, and not for software and hardware system integration. However, if this problem is not solved, the project cannot be smoothly promoted. Breaking through the limits of responsibility and scope of responsibility, standing at the height of the overall interests of the project, I must try to make the software supplier change the rejection attitude, provide full support, and sell a sufficient number of R4 software licenses for exception, we also face and solve problems together, which is a key issue related to the smooth promotion of the system.

Coordinate software suppliers to share risks with Party

I carefully analyzed the status quo and listed two specific problems to be solved: the first is to persuade R to sell the earlier version of R4, the second is to ensure that some business needs in the future cannot be met due to the purchase of R4. I carefully analyzed the new features of the higher version: courseware sharing and support for mobile devices in a distributed environment. The former can be implemented through the application system, and we have already had a solid technical accumulation in this respect, while the latter is not sure about the future even though there is no demand from customers.

These undetermined factors need to be put on the table as soon as possible, and the risks should be raised to attract the attention of relevant parties. It is best to facilitate direct dialogue between the customer and the R Company so that we can share risks in front of the customer, in addition, we can also use the power of the customer to push the R Company to handle this problem based on special cases, so as to avoid us from facing the customer independently and being at a disadvantage and taking over heavy responsibilities and pressure.

To this end, I organized special project meetings attended by relevant customer branches (including business departments and information centers), Project Supervisors, r companies, and us, at the meeting, I reported in detail the current problems, recommended solutions, and the progress of the work we and R have done, and listened to the guidance of the customer.

The customer's business department makes it clear that the customer will not consider upgrading to a higher version in the next five years, and there will be no demand for video services for mobile devices. In this way, my second concern is dispelled. The R Company also said at the meeting that although it was very difficult, it was able to apply for a certain number of permits from the U. S. Headquarters to meet the customer's needs. If any problems occurred during the implementation process, it will also coordinate technical personnel in China and abroad to solve the problem, and will vigorously support system construction.

I have arranged a special person to make a detailed meeting minutes for the meeting. All parties to the Meeting signed the minutes and kept copies of the Minutes. Through the coordination meeting, all parties are fully aware of this issue, in-depth analysis and discussion were conducted, and finally the solution to the problem was clarified and the commitment was made, clearing the obstacles for the smooth progress of the project.

By solving this problem, I realized that in the project implementation process, the project manager must take the initiative to work closely with the customer to enhance communication, and the full participation of the customer can effectively coordinate the supplier, enhance the project manager's control capability. In addition, we cannot unilaterally over-commit to technologies that we do not fully possess. We must have a high degree of professionalism, but also be good at sharing responsibilities with partners through communication and coordination.

Summary

In the project implementation process, project managers often have to deal with various problems, such as lack of hardware and software resources or human resources, in the case of isolated and helpless support, the project manager must display his communication and coordination skills, prove his strength and value with facts, and change the attitude of all parties, win more support, recognition and help for the project.

Difficulties and obstacles are the best teachers who can guide us step up on the ladder to success. From the ground up, Bao Jianfeng said, "I hope you can go further on the way to the" truth "and wish you a richer and more exciting journey! Dare to ask where the road is? Under your feet!

Author profile:

Dong Yu, senior international project manager at ipmp level B, a member of the IBM 360 ° excellent lecturer group, has been engaged in software development since 1996. He has served as a software architect, pre-sales consultant, Project Manager, and project owner, has many years of management experience in large-scale and complex projects.

(This article is from the 10-year issue of programmer magazine)

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.