In 20 days, how does one person handle this background management project

After 20 days of communication and development, a new project was finally successfully delivered. At present, the product is running well, the long-distance cooperation with customers is relatively smooth, and the progress is well grasped. It is a relatively successful experience in receiving packages. Now I will share with you the process from the platform package, development, communication, testing and deployment to the final project delivery for your reference. If there is anything that needs to be improved, you are welcome to correct me.

pick up

The projects I have done in the past are all introduced by acquaintances or run by myself, and occasionally pick up some small projects online, but I have never used platforms like free development or crowdsourcing. A crowdsourcing platform has a lot of projects on it. After observing it for a few days, I found that the projects were updated very quickly, so I immediately decided to give it a try. After a while, I finally found one that suits me. It is a background management system that implements a small game. It comes with a functional module description document. After reading it, I feel that the workload is moderate, and the design of the foreground page, background service and database is one person. It can be done, it is not difficult, 6,000 yuan for 20 days feels okay, so I bid decisively.

When bidding, you should set a project quotation according to your own psychological price and the budget of the contracting party, without maliciously lowering the price or unscrupulous, and then choose a suitable construction period, and then write some of your own related skills in the message, and provide some of my previous Participated project cases similar to the target, website or download link, for reference by customers to improve their winning rate.

After submitting, you can wait for the other party's reply. If the customer intends to discuss with you in detail, he can receive the message in time through the APP. The communication at this time is mainly a process of mutual understanding and familiarity. It lays a good foundation for future cooperation. To reassure the customer to hand over the project to you, it is estimated that the character broke out. After talking for a while, the customer decided to let me do it. The next step is to simply sort out the current needs, so as to know what to do. If there are relatively large pits or some obvious problems, bring them up in time, so as not to ramble during the process. The final step is to reconfirm the project price and construction period, determine it at one time or flexibly handle it according to the final project delivery situation, and analyze the specific situation. After these preparations are done, the work can begin.

Technology

The project I took on is a background management system, so the client does not have strict regulations on UI design, as long as it is not ugly and meets the functional requirements. However, the aesthetic ability and demand grasping ability are okay, and I know what kind of system the customer wants. Because the construction period is short, things must be delivered quickly, and the customer has no requirements for technology. After a short period of thinking, the technical solution is determined.

  • Front end: Vue + Element UI
  • Backend: nodejs+thinkjs
  • Database: mysql

The advantage of this combination is that the front-end and back-end development efficiency is very high, and it can be carried out at the same time, and the packaging and deployment are also very convenient. The front-end ElementUI is born for background management. The rich interface components and elegant themes can meet almost all needs. At the same time, there is strong community support, so that my mother no longer has to worry about me falling into the pit and unable to extricate herself. This artifact is paired with the inherently efficient and powerful Vue. Because the project itself is not large, it is enough to use a lightweight node service for the backend, and it is easy to write an API with thinkjs, an industry-tested MVC framework. Not using a lightweight framework like express or koa is entirely out of personal preference, just too lazy to find plugins.

In other words, the open source community is really a good thing. Although the above frameworks are supported by scaffolding and can quickly build projects, you can find better and more time-saving dry goods in the open source community, whether it is GitHub or OSChina. It is very convenient to be able to discover some code or source code that can be used directly, and this time I have helped me a lot.

project management

The most used project management tool in the past is teambition, which is very easy to use, whether it is personnel management or task assignment, but it has not been used much since some functions were charged. Now almost all projects use an er for management and tracking, which is small and flexible, so I also chose an er for this project. After the project is built on an er, the customer is also added, so that the customer can know the current project progress and the remaining problems in the future development process. Identify which features are pending, which are in-progress, and which are completed, so that continuous phased testing and delivery can better ensure project progress and quality.

First, after creating a project on an er, create tasks in stages according to the functional requirements of the project. The tasks in each stage should have priorities, and the most critical ones are always at the top. At the beginning, the task granularity can be slightly larger, and it can be adjusted and refined gradually in the subsequent communication and development process. The task processing and updating should be timely, and it should be updated every day. When encountering problems, make notes and records. , which is convenient for later processing, which not only reflects their workload, but also allows customers to have a bottom line. At the same time, on a certain er, customers can submit bugs during the testing of the system, and they can be detected and dealt with as early as possible.

time management

I am not a full freelance developer, and I still have my own job, so how to balance the time between my job and this part-time job is also more critical. Fortunately, before this, a project of the company was successfully launched, and now it is only for bug fixes and functional maintenance, which is in a stable period, so a certain amount of development work can be guaranteed every day.

As soon as I arrive at the company every day, I will finish the urgent matters in my own work first, so that no one will disturb me during the day, and the rest of the time can be fully devoted to the development of the outsourcing project. During that time, I can spend 3 hours during the day at work. , go back at night and do another 2 hours according to the situation. If the time is not squeezed enough during the day, then extend the working hours at night accordingly, and try not to interfere with each other. All in all, there are only so many hours in a day, so improving work efficiency is king.

communication

Due to the remote development, frequent online communication is indispensable. Effective and timely communication is the first step to the success of the project. During the day, it is inconvenient to answer the phone and voice in the company, so we mainly communicate and discuss through WeChat. Although it is equipped with a certain er artifact, it is not very timely. Reply. After all, it is inconvenient to communicate through text during the day, and the description of some problems is unclear. Therefore, every night, we make an appointment with the customer to communicate by voice, summarize the project problems, and discuss the project progress.

The time cost of communication is very high, especially in the requirements discussion stage, but this stage is also very critical. If the understanding is not in place, it is easy to deviate in the later development process. The client of this project only provided an excel sheet, which roughly described the functional requirements. There was no design diagram or flow chart. Because I wanted to do WBS, at the beginning, I discussed with the client through WeChat to refine the functions one by one, and found that it was not only inefficient And it is easy to cause inconsistencies in understanding. Later, I used another artifact—Baidu Brain Map to draw a mind map of my refined functions, and then taught the customer how to use it, and asked him to change it according to what he wanted, so that the needs were formed immediately after repeated several times. , and then add tasks to an er according to this diagram, which greatly alleviates the inconvenience of remote communication and improves communication efficiency. In the future, if there is a problem, you can iterate the mind map first, and then update the task, so as to fully track the requirements.

develop

After sufficient preparations for the preliminary work, you can write code safely and stably. This is the best way to do it. Since the project is not very large, I put the front and back ends into one project, which is very convenient to develop without cutting and cutting. Although it is handled by one person, the code specification should also be done well, so as not to dig a hole for oneself. A person also needs to use the version control tool of the code to do a good job of code tracking. I prefer git, which is not only convenient for development, but also convenient for deployment.

After the code is well controlled, the development cycle should also be planned well. You can't keep your head down from the first day to the last day, and then tell the customer that it's done. In this way, not only will the customer blow up, but it will also be a waste of time for yourself. My project is divided into three stages, just one stage a week. The first stage is mainly about infrastructure construction and front-end static page display. After the end, customers can see the general effect and correct any problems in time. The second stage is mainly about API. The integration of development and main functions, the third stage is the integration of remaining services, testing and problem handling. Give each stage as much time as possible to deal with bugs found by customers and make some small improvements, and try to be as relaxed as possible. Slow and easy. If at a certain stage in the middle, the customer suddenly has a fever and demands a big change, then he must carefully evaluate the risks, talk to him about life, and talk about beautiful things. If he still cannot satisfy him, then he will either add money or time. Add money and it's that simple.

Deploy and test

As mentioned before, it is necessary to develop in stages, so completing the tasks of a stage should allow customers to see things and conduct relevant tests. In this way, you don't have to push the front problems to the back and create confusion for yourself. The customer's server is the Linux server of Alibaba Cloud, which is used to it, so it is very convenient. After two or three times, the environment is set up, and git is used to manually pull and package the code remotely. I have not tried automatic deployment yet. Don't worry, you can try it later. However, try not to upload locally via SSH, because human errors are prone to occur, and dealing with this problem will not be worth the loss. After the server environment is processed, the reverse proxy is configured, and then the service is started. The customer can carry out the project test anytime and anywhere. If the problem is found, it will be reported to me through WeChat in time or put on an er, and I will deal with it in an orderly manner.

deliver

After all functions are developed and tested correctly, the project can be delivered. If you need a warranty, this should be discussed clearly at the beginning, including time and price. If there is any change, it will be another matter. After the customer confirms, the final milestone file can be submitted, and then checkout and pay, let the customer give an evaluation on Yunwoke, and end the contract. At this point, the cycle of a project has officially ended.

Summarize

It is sometimes very lonely to take the package and develop alone, and all the problems have to be carried by oneself, so the preliminary work should be fully done, and the work can be done as soon as possible. If you can't do it, you can bring it up in time. Everyone's time is precious. For developers who have their own jobs, project management and time management must be well planned. If they are not handled properly, they will not only affect their own work but also their own lives, so they must be cautious. This is remote development after all, and it is difficult to communicate face-to-face with customers. Therefore, we must be serious and efficient in communication, and talk about problems without nonsense, and we must trust each other. These are my real experiences, and I feel that I can help you all.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325474935&siteId=291194637